fastest 3D software for linux

Linux 3D
interactive ray-tracing
[1 introduction] [2 overview] [3 reference] [4 GUI]

Index

 E3dTransformSet_Reset
 E3dTransformSet_Init
 E3dTransformSet_Copy
 E3dTransformSet_ToTraditional


E3dTransformSet_Reset

Set a TransformSet to an identity transform

Syntax
void E3dTransformSet_Reset(E3dTransformSet* PTransformSet, const EBool PFreeTransformList)

Argument
E3dTransformSet* PTransformSet Pointer to the TransformSet const EBool PFreeTransformList Free or reset the arbitrary transform list
Description
Resets the transformations of the TransformSet in the following manner: - Scaling[XYZ] = 1,1,1 - Rotation[XYZ] = 0,0,0 - Translation[XYZ] = 0,0,0 If PFreeTransformList is TRUE, it frees the arbitrary transform list, otherwise, it resets all transforms in the list, in the same manner as above.

Return value
None.

E3dTransformSet_Init

Initialize TransformSet

Syntax
void E3dTransformSet_Init(E3dTransformSet* PTransformSet)

Arguments
E3dTransformSet* PTransformSet Pointer to the TransformSet
Description
Initializes a newly created TransformSet.

Return value
None.

See also
E3dTransformSet_Reset, E3dTransformSet_Copy

E3dTransformSet_Copy

Copy TransformSet

Syntax
void E3dTransformSet_Copy(const E3dTransformSet* PSTransformSet, E3dTransformSet* PDTransformSet)

Arguments
const E3dTransformSet* PSTransformSet Pointer to the source TransformSet E3dTransformSet* PDTransformSet Pointer to the destination TransformSet
Description
PDTransformSet must point to an initialized E3dTransformSet.

Return value
None.

See also
E3dTransformSet_Init, E3dTransformSet_Reset

E3dTransformSet_ToTraditional

Convert an arbitrary transform sequence to traditional scale-rotate-translate

Syntax
int E3dTransformSet_ToTraditional(const E3dTransformSet* PSrcTransformSet, const uint8_t PRotationOrder, E3dTransformSet* PDstTransformSet)

Arguments
const E3dTransformSet* PSrcTransformSet The source E3dTransformSet* PDstTransformSet The destination
Description
libE3D supports arbitrary transform sequences per Node. This allows applications built on libE3D (EQUINOX-3D, FusionEngine, etc.) 100% compatibility with every 3D software ever made.
For example, it can use the same transform sequence on Nodes as in Maya, or 3DS Max, etc., with the same numbers.
In other words, you can import and edit Node hierarchies from any other software 'losslessly'. This is not possible between for example, Maya and 3DS Max.
However, when a Node hierarchy is saved into a file format that only supports a fixed set of transforms (e.g. FBX), these transform lists need to be "down-converted". This funcion performs such a down-conversion:
First, it checks if the sequence of transforms in PSrcTransformSet (PSrcTransformSet->Transforms) maps directly to a standard transform triplet.
If so, it sets the contents of PDstTransformSet accordingly.
If not, it concatenates all the transforms into a Matrix, decomposes the Matrix into a standard transform triplet, then sets PDstTransformSet.

Return value
E_SUCCESS on success, E_NOTHING_TO_DO if PSrcTransformSet does not have a transform list, or an error code, in case of an error.
© 1996-2022 By Gabor Nagy