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

find_limbs(self, scan_center_dir, scan_dirs, observer_position=None)

compute_limb_jacobian

compute_limb_jacobian(self, scan_center_dir, scan_dirs, limb_points, observer_position=None)