surface

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

Description

In GIANT a surface is an object which is represented by small, tessellated geometry primitives (like triangles). It is the most common way to represent an object in GIANT, since it can be used to represent arbitrary terrain, as well as both small patches and full global shape models. In general a user won’t interact with this module, though, and instead will used the predefined surfaces described in triangle. This module is reserved primarily for those developing new surface geometry primitives or acceleration structures.

For those developing new surface geometry primitives, consider the RawSurface, Surface64 and Surface32 classes below. For those developing a new acceleration structure consider the Surface class below. For examples of how this is done refer to the triangle and kdtree modules.

Classes

Surface

This defines the basic interface expected of all surfaces in GIANT.

RawSurface

This interface class serves as the backbone for surfaces in GIANT.

Surface32

This class serves as the backbone for surfaces in GIANT represented using single precision.

Surface64

This class serves as the backbone for surfaces in GIANT represented using double precision.

find_limbs_surface

This helper function determines the limb points for a surface (visible edge of the surface) that would be visible for an observer located at observer_position looking toward scan_center_dir along the directions given by scan_dirs.