Cartesian Transformation

Functions and structures for defining combinations of transformations (without the use of a matrix)

Entity type is kA3DTypeMiscCartesianTransformation.

This entity describes combinations of transformations such as relocation to a new 3D Cartesian coordinate system, scaling, and rotation. The A3DMiscCartesianTransformationDatastructure provides parameters for the transformation. The behaviour mask specified by the A3DMiscCartesianTransformationData::m_ucBehaviourmember specifies the transformations that apply. Those transformations must be consistent with the actual data provided in other fields as described here:

  • If the m_sOriginmember is null vector, translation is disabled.
  • If the m_sXVectormember is (1,0,0) and m_sYVectormember is (0,1,0), rotation is disabled.
  • If the m_sScalemember is (1,1,1), scaling is disabled.
  • If the m_sXVectorand m_sYVectormembers are not perpendicular or if they are not unit vectors, the data is invalid.

Sample code

A3DMiscCartesianTransformationDatasData=A3D_MAKE_DATA(A3DMiscCartesianTransformationData);
A3DUns32iErr=A3DMiscCartesianTransformationGet(pCsys,&sData);
if(iErr==A3D_SUCCESS)
{
/*InserthereyourowncodetoparsethroughmembersofCartesianTransformation3d*/
iErr=A3DMiscCartesianTransformationGet(A3D_NULL_HANDLE,&sData);
}


2.3



Some particular formats do not support Cartesian transformations directly, but define general ones instead. When possible, the associated readers try to make cartesian tranformations out of them, setting this Behaviour flag. In all cases, except for Mirror, direct use of transformation members is valid, where behavior is just informational.

Returns

A3D_SUCCESSon success, or an error code on failure

Topics

Structures

Functions