FinitePlane¶
- class marxs.math.geometry.FinitePlane(kwargs={})[source]¶
Bases:
GeometryBase class for geometrically flat optical elements.
Attributes Summary
name for output columns with interaction point in local coordinates.
Methods Summary
get_local_euklid_bases(interpos_local)Obtain a local euclidean base at a set of positions.
intersect(dir, pos)Calculate the intersection point between a ray and the element
Attributes Documentation
- loc_coos_name = ['y', 'z']¶
name for output columns with interaction point in local coordinates.
- shape = 'box'¶
Methods Documentation
- get_local_euklid_bases(interpos_local)[source]¶
Obtain a local euclidean base at a set of positions.
Parameters¶
- interpos_local
numpy.ndarrayof shape (N, 2) coordinates in the coordinate system of the geometry (x, y)
Returns¶
- e_1, e_2, n
numpy.ndarrayof shape (N, 4) Vectors pointing in direction 1, 2, and normal to the surface.
- interpos_local
- intersect(dir, pos)[source]¶
Calculate the intersection point between a ray and the element
Parameters¶
- dir
numpy.ndarrayof shape (N, 4) homogeneous coordinates of the direction of the ray
- pos
numpy.ndarrayof shape (N, 4) homogeneous coordinates of a point on the ray
Returns¶
- intersectboolean array of length N
Trueif an intersection point is found.- interpos
numpy.ndarrayof shape (N, 4) homogeneous coordinates of the intersection point. Values are set to
np.nanif no intersection point is found.- interpos_local
numpy.ndarrayof shape (N, 2) y and z coordinates in the coordinate system of the active plane (not normalized to the dimensions of the element in question, but in absolute units).
- dir