summaryrefslogtreecommitdiff
path: root/indra/llprimitive
diff options
context:
space:
mode:
authorprep linden <prep@lindenlab.com>2010-09-24 13:11:53 -0400
committerprep linden <prep@lindenlab.com>2010-09-24 13:11:53 -0400
commitc7f5a9419b4b93efdc04ebfbb8e05a2ef0e09142 (patch)
treed4bd4000daf955114e9dc1ed96a873b620115299 /indra/llprimitive
parente0588af08737177f8a1bc519376073e14b886434 (diff)
Added support for joint offsets
Diffstat (limited to 'indra/llprimitive')
-rwxr-xr-xindra/llprimitive/llmodel.cpp15
-rwxr-xr-xindra/llprimitive/llmodel.h2
2 files changed, 16 insertions, 1 deletions
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 349c844470..f3f9c29157 100755
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -1342,6 +1342,21 @@ LLSD LLModel::writeModel(std::ostream& ostr, LLModel* physics, LLModel* high, LL
mdl["skin"]["bind_shape_matrix"][i*4+j] = high->mBindShapeMatrix.mMatrix[i][j];
}
}
+
+ if ( high->mAlternateBindMatrix.size() > 0 )
+ {
+ for (U32 i = 0; i < high->mJointList.size(); ++i)
+ {
+ for (U32 j = 0; j < 4; j++)
+ {
+ for (U32 k = 0; k < 4; k++)
+ {
+ mdl["skin"]["alt_inverse_bind_matrix"][i][j*4+k] = high->mAlternateBindMatrix[i].mMatrix[j][k];
+ }
+ }
+ }
+ }
+
}
if (!decomp.empty())
diff --git a/indra/llprimitive/llmodel.h b/indra/llprimitive/llmodel.h
index ea703d7228..ff22d39e60 100755
--- a/indra/llprimitive/llmodel.h
+++ b/indra/llprimitive/llmodel.h
@@ -152,7 +152,7 @@ public:
LLMatrix4 mBindShapeMatrix;
std::vector<LLMatrix4> mInvBindMatrix;
-
+ std::vector<LLMatrix4> mAlternateBindMatrix;
std::string mLabel;
LLVector3 mNormalizedScale;