1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| int Geometry::updateDynamicData(int current_key)
{
MMatrix *matricesArray;
bool initialisation = false;
AtArray *dataArray;
dataArray = AiNodeGetArray(handle, "matrix");
if (dataArray->data != NULL)
{
matricesArray = (MMatrix*)dataArray->data;
}
else
{
matricesArray = new MMatrix[mMotionKeys];
initialisation = true;
}
int offset = current_key-1;
AtMatrix tmp;
MMatrix matrix(mDagPath.inclusiveMatrix());
matrix.get(tmp);
matricesArray[offset] = tmp;
setMatrixArray("matrix", &matricesArray, 1, mMotionKeys, false);
if (initialisation)
delete [] matricesArray;
return true;
} |
Partager