mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 02:43:32 +02:00
30 lines
1 KiB
C++
30 lines
1 KiB
C++
//
|
|
// EntityRig.cpp
|
|
// libraries/animation/src/
|
|
//
|
|
// Created by SethAlves on 2015-7-22.
|
|
// Copyright 2015 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
#include "EntityRig.h"
|
|
|
|
/// Updates the state of the joint at the specified index.
|
|
void EntityRig::updateJointState(int index, glm::mat4 parentTransform) {
|
|
JointState& state = _jointStates[index];
|
|
const FBXJoint& joint = state.getFBXJoint();
|
|
|
|
// compute model transforms
|
|
int parentIndex = joint.parentIndex;
|
|
if (parentIndex == -1) {
|
|
state.computeTransform(parentTransform);
|
|
} else {
|
|
// guard against out-of-bounds access to _jointStates
|
|
if (joint.parentIndex >= 0 && joint.parentIndex < _jointStates.size()) {
|
|
const JointState& parentState = _jointStates.at(parentIndex);
|
|
state.computeTransform(parentState.getTransform(), parentState.getTransformChanged());
|
|
}
|
|
}
|
|
}
|