+ """A triangular mesh i.e. a surface composed of triangular faces.

+ Note that a trimesh need not be closed. For example, it could be

+ used to model the ground surface.

+ Its geometry is defined by two attributes: :attr:`vertices` and

+ :attr:`faces`, both list of 3-tuple numbers. However, each tuple

+ in :attr:`vertices` designates a 3D point in space whereas each tuple

+ in :attr:`faces` is a group of indices referencing points in

+ The order of vertices indices for each face **does** matter.

+ vertices = [(0, 0.0, 0), (0, 0.0, 1), (0, 0.0, 2), (0, 0.0, 3),

+ (1, 0.0, 0), (1, 0.0, 1), (1, 0.0, 2), (1, 0.0, 3)]

+ faces = [(0, 1, 4), (1, 5, 4), (1, 6, 5),

+ (1, 2, 6), (2, 3, 6), (3, 7, 6)]

+ The, the first face is defined by points:

+ ``(0, 0.0, 0), (0, 0.0, 1), (1, 0.0, 0)``.

+ With that order, the normal to the face is ``(0, 1.0, 0)`` i.e. the Y axis.

+ The rationale to determining the *inwards* and *outwards* directions

+ follows the well-known "right hand rule".

def __init__(self, space, vertices, faces):

super(Trimesh, self).__init__()