Index

 E3d_GeometryFree
 E3d_GeometryTransform
 E3d_GeometryClone
 E3d_GeometryUpdateForDisplay


E3d_GeometryFree

Free a Geometry

Syntax
 void E3d_GeometryFree(E3dGeometry* LGeometry)
Arguments
 E3dGeometry* LGeometry      Pointer to the E3dGeometry to be freed
Description
This function first decrements the reference count (RefCnt field) of the given Geometry structure (if it's not already zero).
Then, if RefCnt is still greater than zero, E3d_GeometryFree() will simply return.
If RefCnt is zero, E3d_GeometryFree() will free all the memory associated with this Geometry and the Geometry structure itself.
Note that there are separate functions for allocating different kinds of Geometries, but any Geometry can and should be freed by calling E3d_GeometryFree().

Return value
None.

See also
E3d_FaceAllocate, E3d_MeshAllocate, E3d_SkinMeshAllocate, E3d_SplineAllocate

E3d_GeometryTransform

Perform transformation on a Geometry

Syntax
 void E3d_GeometryTransform(E3dGeometry* LGeometry, E3dMatrix LMatrix)
Arguments
 E3dGeometry* LGeometry      The Geometry to be transformed
 E3dMatrix    LMatrix        The Matrix, defining the transformation
Description
This function performs the transformation, described by LMatrix, on the given Geometry, by transforming the actual Vertices (of a Mesh), CVs (of a Spline, Face etc.) etc..
This operation is sometimes referred to as "Freezing the transformation" of an object, or more colloquially: "baking the transformation into a Geometry / object".

Return value
None.

E3d_GeometryClone

Clone a Geometry

Syntax
 E3dGeometry* E3d_GeometryClone(E3dGeometry* LGeometry, int LFlags)
Arguments
 E3dGeometry* LGeometry      Pointer to the E3dGeometry to be duplicated
 int          LFlags         Option flags
Description
This function creates an exact duplicate of the given Geometry. The option flags are OR-ed together bits that have the following meaning:
  E3dCLONE_CONSTRUCTION_HISTORY -  Clone the resources in GeoInfo
  E3dCLONE_LODS                  - Clone Levels of Detail
  E3dCLONE_MATERIALS             - Clone Materials (otherwise they will be shared)


Return value
A pointer to the copy, or NULL in case of an error

E3d_GeometryUpdateForDisplay

Update a Geometry for drawing

Syntax
 void E3d_GeometryUpdateForDisplay(E3dGeometry* LGeometry, unsigned int LFlags)
Arguments
 E3dGeometry* LGeometry      The Geometry to update
 unsigned int LFlags         OR-ed together flags, telling what to update
Description
This function updates the given Geometry for rendering (drawing). This is a platform-independent procedure that ensures that the given Geometry will be drawn correctly after changes to its components. Calling this function for a Geometry after change, with only the necessary flags set, helps EQUINOX-3D greatly improve performance by only updating things that really changed. For example, if the position of a few Vertices changed in a Mesh, use the E3dGF_SHAPE flag bit.

Return value
None.