Solid

giant.ray_tracer.shapes.solid:

class giant.ray_tracer.shapes.solid.Solid

A solid represents an 3D object that can be mathematically represented without resorting to tesselation (for instance a tri-axial ellipsoid).

This is essentially an abstract base class that is primarily used to identify what are solids in GIANT. It only adds an id attribute above the standard Shape base class from which it is defined.

In general a user should not have to interact with this class unless they are defining a new solid for GIANT, in which case they should subclass this class and ensure that they set the id attribute.

bounding_box: AxisAlignedBoundingBox

The AxisAlignedBoundingBox that fully contains this solid.

id: int

The unique identifier for this object as an integer.

Summary of Methods

compute_intersect

This method computes the intersections between a ray and the geometry defined by the class, returning the results as a numpy array with type INTERSECT_DTYPE.

rotate

This method rotates the shape in place.

trace

This method computes the intersections between a series of rays and the geometry defined by the class, returning the results as a numpy array with type INTERSECT_DTYPE.

translate

This method translates the shape in place.

find_limbs

The method determines the limb points (visible edge of the shape) that would be an observed for an observer located at observer_position looking toward scan_center_dir along the directions given by scan_dirs.

compute_limb_jacobian

This method computes the linear change in the limb location given a change in the relative position between the ellipsoid and the shape.