Cartesian Transformation

Types

A3DMiscCartesianTransformationData

Functions

A3DStatus

A3DMiscCartesianTransformationGet

A3DStatus

A3DMiscCartesianTransformationCreate

Detailed Description

group a3d_cartesiantransfo3d

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 A3DMiscCartesianTransformationData structure provides parameters for the transformation. The behaviour mask specified by the A3DMiscCartesianTransformationData::m_ucBehaviour member specifies the transformations that apply. Those transformations must be consistent with the actual data provided in other fields as described here:

  • If the m_sOrigin member is null vector, translation is disabled.

  • If the m_sXVector member is (1,0,0) and m_sYVector member is (0,1,0), rotation is disabled.

  • If the m_sScale member is (1,1,1), scaling is disabled.

  • If the m_sXVector and m_sYVector members are not perpendicular or if they are not unit vectors, the data is invalid.

Sample code

A3DMiscCartesianTransformationData sData;
A3D_INITIALIZE_DATA(sData);
A3DUns32 iErr=A3DMiscCartesianTransformationGet(pCsys, &sData);
if (iErr==A3D_SUCCESS)
{
    /* Insert here your own code to parse through members of CartesianTransformation3d */
    iErr = A3DMiscCartesianTransformationGet( NULL, &sData );
}

Version

2.3

Warning

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.

Function Documentation

A3DStatus A3DMiscCartesianTransformationGet(const A3DMiscCartesianTransformation *pCartesianTransformation3d, A3DMiscCartesianTransformationData *pData)

Populates the A3DMiscCartesianTransformationData structure.

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DMiscCartesianTransformationCreate(const A3DMiscCartesianTransformationData *pData, A3DMiscCartesianTransformation **ppCartesianTransformation3d)

Creates an A3DMiscCartesianTransformation from an A3DMiscCartesianTransformationData structure.

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_POINTSET_BADSIZE

  • A3D_TRANSFORMATION3D_INCONSISTENT

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code