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

__init__(self, vertices, albedos, facets, normals=None, compute_bounding_box=True, bounding_box=None, compute_reference_ellipsoid=True, reference_ellipsoid=None)

Surface32

__init__(self, vertices, albedos, facets, normals=None, compute_bounding_box=True, bounding_box=None, compute_reference_ellipsoid=True, reference_ellipsoid=None)

Surface64

__init__(self, vertices, albedos, facets, normals=None, compute_bounding_box=True, bounding_box=None, compute_reference_ellipsoid=True, reference_ellipsoid=None)

find_limbs_surface

find_limbs_surface(target, scan_center_dir, scan_dirs, observer_position=None, initial_step=None, max_iterations=25, rtol=1e-12, atol=1e-12)