mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 00:56:45 +02:00
More sit work
This commit is contained in:
parent
cc5967e8f9
commit
6821c8621f
4 changed files with 32 additions and 0 deletions
|
@ -2475,6 +2475,14 @@ glm::vec3 MyAvatar::getAbsoluteJointTranslationInObjectFrame(int index) const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyAvatar::pintJointInWorldSpace(int index, const glm::vec3& position, const glm::quat& orientation) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyAvatar::clearPinOnJoint(int index) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// thread-safe
|
// thread-safe
|
||||||
void MyAvatar::addHoldAction(AvatarActionHold* holdAction) {
|
void MyAvatar::addHoldAction(AvatarActionHold* holdAction) {
|
||||||
std::lock_guard<std::mutex> guard(_holdActionsMutex);
|
std::lock_guard<std::mutex> guard(_holdActionsMutex);
|
||||||
|
|
|
@ -216,6 +216,9 @@ public:
|
||||||
virtual void clearJointData(int index) override;
|
virtual void clearJointData(int index) override;
|
||||||
virtual void clearJointsData() override;
|
virtual void clearJointsData() override;
|
||||||
|
|
||||||
|
Q_INVOKABLE void pintJointInWorldSpace(int index, const glm::vec3& position, const glm::quat& orientation);
|
||||||
|
Q_INVOKABLE void clearPinOnJoint(int index);
|
||||||
|
|
||||||
Q_INVOKABLE void useFullAvatarURL(const QUrl& fullAvatarURL, const QString& modelName = QString());
|
Q_INVOKABLE void useFullAvatarURL(const QUrl& fullAvatarURL, const QString& modelName = QString());
|
||||||
Q_INVOKABLE QUrl getFullAvatarURLFromPreferences() const { return _fullAvatarURLFromPreferences; }
|
Q_INVOKABLE QUrl getFullAvatarURLFromPreferences() const { return _fullAvatarURLFromPreferences; }
|
||||||
Q_INVOKABLE QString getFullAvatarModelName() const { return _fullAvatarModelName; }
|
Q_INVOKABLE QString getFullAvatarModelName() const { return _fullAvatarModelName; }
|
||||||
|
|
|
@ -319,6 +319,24 @@ void Rig::clearIKJointLimitHistory() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Rig::setMaxHipsOffsetLength(float maxLength) {
|
||||||
|
_maxHipsOffsetLength = maxLength;
|
||||||
|
|
||||||
|
if (_animNode) {
|
||||||
|
_animNode->traverse([&](AnimNode::Pointer node) {
|
||||||
|
auto ikNode = std::dynamic_pointer_cast<AnimInverseKinematics>(node);
|
||||||
|
if (ikNode) {
|
||||||
|
ikNode->setMaxHipsOffsetLength(_maxHipsOffsetLength);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float Rig::getMaxHipsOffsetLength() const {
|
||||||
|
return _maxHipsOffsetLength;
|
||||||
|
}
|
||||||
|
|
||||||
int Rig::getJointParentIndex(int childIndex) const {
|
int Rig::getJointParentIndex(int childIndex) const {
|
||||||
if (_animSkeleton && isIndexValid(childIndex)) {
|
if (_animSkeleton && isIndexValid(childIndex)) {
|
||||||
return _animSkeleton->getParentIndex(childIndex);
|
return _animSkeleton->getParentIndex(childIndex);
|
||||||
|
|
|
@ -104,6 +104,8 @@ public:
|
||||||
void clearJointAnimationPriority(int index);
|
void clearJointAnimationPriority(int index);
|
||||||
|
|
||||||
void clearIKJointLimitHistory();
|
void clearIKJointLimitHistory();
|
||||||
|
void setMaxHipsOffsetLength(float maxLength);
|
||||||
|
float getMaxHipsOffsetLength() const;
|
||||||
|
|
||||||
int getJointParentIndex(int childIndex) const;
|
int getJointParentIndex(int childIndex) const;
|
||||||
|
|
||||||
|
@ -318,6 +320,7 @@ protected:
|
||||||
bool _enabledAnimations { true };
|
bool _enabledAnimations { true };
|
||||||
|
|
||||||
mutable uint32_t _jointNameWarningCount { 0 };
|
mutable uint32_t _jointNameWarningCount { 0 };
|
||||||
|
float _maxHipsOffsetLength { 1.0f };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QMap<int, StateHandler> _stateHandlers;
|
QMap<int, StateHandler> _stateHandlers;
|
||||||
|
|
Loading…
Reference in a new issue