Working with transforms
The Simplygon API allows the user to do transformations on geometry data and scene nodes (see section on Working with scene data).
IMatrix4x4
The IMatrix4x4 class is used to represent a standard or homogeneous 4x4 matrix inside the Simplygon API. The matrix is stored in a row major form. The class provides methods for accessing and setting matrix elements, transposing a matrix, calculating an inverse and can be used to transform 3D homogeneous coordinates.
ITransform3
The ITransform3 class is a utility class to setup a 4x4 homogeneous transform in the Simplygon API. You can use the ITransform3 to concatenate transformations. Transforms can be performed by calling AddTranslation, AddRotation and AddScaling. AddRotationworks like a quaternion where you pass in the angle of rotation in radians and set the axis along which to rotate. The PreMultiplyfunction can be use to add a transform around the current transform and PostMultiply can be used to add a transform inside the current transform. The default behaviour is set to do post multiplication.
Example - Transformation
void TransformGeometryData(spGeometryData geom)
{
spTransform3 xform = sg->CreateTransform3();
// Set the tranfrom to use pre multiply.
xform->PreMultiply();
// Do a translations transformation.
xform->AddTranslation(0,5.0,0.0);
// ... do other transformations ...
geom->Transform(xform);
}