#include "GL_Transform.h" #include "X3D_Transform.h" using namespace std; namespace X3DTK { namespace GL { Transform::Transform() : X3DGroupingNode() { define(Recorder::getTypeName("Transform", "Grouping")); define(Recorder::getAttribute("transformMatrix", &Transform::_transformMatrix, MFFloat(16))); } Transform::~Transform() { } void Transform::setTransformMatrix(const MFFloat &transformMatrix) { _transformMatrix = transformMatrix; } void Transform::update() { if (x3dReference == 0) return; X3D::Transform *T = static_cast(x3dReference); SFMatrix34f transform(T->getTranslation(), T->getCenter(), T->getRotation(), T->getScaleOrientation(), T->getScale()); float *tmp = transform.toFloat16(); for (int i = 0; i < 16; ++i) _transformMatrix[i] = *(tmp + i); } } }