summaryrefslogtreecommitdiff
path: root/indra/llappearance
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llappearance')
-rw-r--r--indra/llappearance/llavatarappearance.cpp3
-rw-r--r--indra/llappearance/lljointdata.h21
2 files changed, 24 insertions, 0 deletions
diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp
index 13bea1e5ea..3c573d7227 100644
--- a/indra/llappearance/llavatarappearance.cpp
+++ b/indra/llappearance/llavatarappearance.cpp
@@ -1683,7 +1683,10 @@ void LLAvatarSkeletonInfo::getJointMatricesAndHierarhy(
{
data.mName = bone_info->mName;
data.mJointMatrix = bone_info->getJointMatrix();
+ data.mScale = glm::vec3(bone_info->mScale[0], bone_info->mScale[1], bone_info->mScale[2]);
+ data.mRotation = bone_info->mRot;
data.mRestMatrix = parent_mat * data.mJointMatrix;
+ data.mIsJoint = bone_info->mIsJoint;
for (LLAvatarBoneInfo* child_info : bone_info->mChildren)
{
LLJointData& child_data = data.mChildren.emplace_back();
diff --git a/indra/llappearance/lljointdata.h b/indra/llappearance/lljointdata.h
index 549f4af041..0b5eff2ae7 100644
--- a/indra/llappearance/lljointdata.h
+++ b/indra/llappearance/lljointdata.h
@@ -36,9 +36,30 @@ public:
std::string mName;
glm::mat4 mJointMatrix;
glm::mat4 mRestMatrix;
+ glm::vec3 mScale;
+ LLVector3 mRotation;
typedef std::vector<LLJointData> bones_t;
bones_t mChildren;
+
+ bool mIsJoint; // if not, collision_volume
+ enum SupportCategory
+ {
+ SUPPORT_BASE,
+ SUPPORT_EXTENDED
+ };
+ SupportCategory mSupport;
+ void setSupport(const std::string& support)
+ {
+ if (support == "extended")
+ {
+ mSupport = SUPPORT_EXTENDED;
+ }
+ else
+ {
+ mSupport = SUPPORT_BASE;
+ }
+ }
};
#endif //LL_LLJOINTDATA_H