shapes

This subpackage defines all shapes that are used throughout GIANT.

In GIANT, shapes are used to represent targets in a scene for rendering as well as for other analysis. Therefore, shapes enable ray tracing, finding limbs for a target, tracking the location and orientation of a target, among other things.

There are 2 primary shapes that are typically used to represent targets in GIANT. These are Ellipsoid and Triangle64 / Triangle32. Ellipsoid are typically used for “regular” bodies (bodies that are well modeled by a sphere/triaxial ellipsoid like planets and moons, while Triangle64 / Triangle32 are typically used for more general terrain, as well as small patches of terrain from targets that otherwise are globally ellipsoids. There are a few other shapes, and the following documentation discusses the typical use case for each, but generally knowing these 2 is sufficient.

Generally a user probably won’t have much direct interaction with this subpackage, as there are many higher level scripts and modules that handle things for you, like ingest_shape, tile_shape, spc_to_feature_catalogue, and scene, but understanding what is going on under the hood can be beneficial so we do recommend at least skimming through this documentation.

Modules

axis_aligned_bounding_box

This cython module defines the AxisAlignedBoundingBox used internally by the GIANT cpu ray tracer for acceleration purpose.

ellipsoid

This cython module defines the Ellipsoid used for representing regular (well modelled by a tri-axial ellipsoid) in GIANT.

point

This module implements a basic point object for GIANT, used to represent objects that cannot be traced but that exist in a scene.

shape

This cython module defines what is essentially the abstract base class for all renderable objects in GIANT (defining the minimum interface required for an object to be renderable).

solid

This cython module defines the base class for all solids in GIANT.

surface

This Cython module defines base classes for surface objects and their acceleration structures in GIANT.

triangle

This cython module defines surfaces for GIANT tesselated using Triangles as the geometry primitive.