From 8312604ef18ed5ea5efbe4a2bc9240432bb121f6 Mon Sep 17 00:00:00 2001 From: gered Date: Tue, 3 May 2011 23:09:39 -0400 Subject: [PATCH] write assimp bone offset rotation+position to joint chunk --- AssimpToMesh/src/convert/meshutils.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/AssimpToMesh/src/convert/meshutils.cpp b/AssimpToMesh/src/convert/meshutils.cpp index 1eb5a95..6bd5325 100644 --- a/AssimpToMesh/src/convert/meshutils.cpp +++ b/AssimpToMesh/src/convert/meshutils.cpp @@ -208,8 +208,10 @@ void WriteJoints(const std::vector &joints, FILE *fp) uint32_t size = 4 + // count ( 4 + // parent joint index - (sizeof(float) * 3) + // position (x, y, z) - (sizeof(float) * 4) // rotation (x, y, z, w) + (sizeof(float) * 3) + // local position (x, y, z) + (sizeof(float) * 4) + // local rotation (x, y, z, w) + (sizeof(float) * 3) + // offset position (x, y, z) + (sizeof(float) * 4) // offset rotation (x, y, z, w) ) * count; // add up all the variable length joint names @@ -238,6 +240,15 @@ void WriteJoints(const std::vector &joints, FILE *fp) fwrite(&j->localRotation.y, sizeof(float), 1, fp); fwrite(&j->localRotation.z, sizeof(float), 1, fp); fwrite(&j->localRotation.w, sizeof(float), 1, fp); + + fwrite(&j->offsetPosition.x, sizeof(float), 1, fp); + fwrite(&j->offsetPosition.y, sizeof(float), 1, fp); + fwrite(&j->offsetPosition.z, sizeof(float), 1, fp); + + fwrite(&j->offsetRotation.x, sizeof(float), 1, fp); + fwrite(&j->offsetRotation.y, sizeof(float), 1, fp); + fwrite(&j->offsetRotation.z, sizeof(float), 1, fp); + fwrite(&j->offsetRotation.w, sizeof(float), 1, fp); } }