Contains 3 flat surface geometry managers. An infinite surface, and two derived GMs: rectangular and circular plates.
Calculates intersection points before select_rays(), so that those outside the aperture can be dropped, and on select_rays trims it.
Register the working frame and ray bundle, calculate intersections and save the parametric locations of intersection on the surface. Algorithm taken from [1].
In this class, global- and local-coordinates of intersection points are calculated and kept. _global is handled in select_rays(), but _local must be taken care off by subclasses.
Arguments
Returns
A 1D array with the parametric position of intersection along each of the rays. Rays that missed the surface return +infinity.
Inform the geometry manager that only the given rays are to be used, so that internal data size is kept small.
Arguments
Implements the geometry of an infinite flat surface, an the XY plane of its local coordinates (so the local Z is the surface normal).
Discard internal data structures. This should be called after all information on the latest bundle’s results have been extracted already.
Register the working frame and ray bundle, calculate intersections and save the parametric locations of intersection on the surface. Algorithm taken from [1].
Arguments
Returns
A 1D array with the parametric position of intersection along each of the rays. Rays that missed the surface return +infinity.
Get the ray/surface intersection points in the global coordinates.
Returns
A 3-by-n array for 3 spatial coordinates and n rays selected.
Report the normal to the surface at the hit point of selected rays in the working bundle.
Inform the geometry manager that only the given rays are to be used, so that internal data size is kept small.
Arguments
Trims the infinite flat surface by marking rays whose intersection with the surface are outside the given width and height.
Arguments
Extends the parent flat geometry manager by discarding in advance impact points outside a centered rectangle.
Represent the surface as a mesh in local coordinates.
Arguments
Returns
x, y, z - each a 2D array holding in its (i,j) cell the x, y, and z coordinate (respectively) of point (i,j) in the mesh.
Trims the infinite flat surface by marking as missing the rays falling outside the given radius.
Arguments
Extends the parent flat geometry manager by discarding in advance impact points outside a centered circle.
Represent the surface as a mesh in local coordinates. Uses polar bins, i.e. the points are equally distributed by angle and radius, not by x,y.
Arguments
Returns
x, y, z - each a 2D array holding in its (i,j) cell the x, y, and z coordinate (respectively) of point (i,j) in the mesh.