Defines an assembly of surfaces as an object. The object has its own set of coordinates such that each surface composing the object can be described in terms of the object’s coordinate system, and thus the user can rotate or translate the entire object together as one piece. The object also tracks refractive indices as a ray bundle leaves or enters a new material.
Attributes
Adds a boundary to the object. Surfaces not enclosed by the boundary sphere will not count as hit. Arguments: boundary - a spherical boundary objects
Adds a surface to the object Arguments: surface - a surface object
Decide which of the rays continue to propagate inside the object, so only the object’s surfaces need be checked for intersection. This default implementation owns nothing.
Arguments
Returns
a boolean array of length rays.get_num_rays() with False if not owned, True if owned.
Informs the ray tracer that some of the surfaces can be skipped in the next ireration for some of the rays. This default implementation marks all surfaces as relevant to all rays.
Arguments
Returns
an array of size s by r for s surfaces in this object and r rays, stating whether ray i=1..r should be intersected with surface j=1..s in the next iteration.
Transforms an object if the assembly is transformed