From 70dd8ec19a518da29f384a6fa1a3264b733fbe05 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Tue, 1 Dec 2015 11:44:42 -0800 Subject: [PATCH] Remove left/right relative pos/rot from c++ --- interface/src/avatar/AvatarActionHold.cpp | 76 ++++++------------- interface/src/avatar/AvatarActionHold.h | 9 +-- .../networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 1 - 4 files changed, 26 insertions(+), 62 deletions(-) diff --git a/interface/src/avatar/AvatarActionHold.cpp b/interface/src/avatar/AvatarActionHold.cpp index bff6af7337..8a59f91bc8 100644 --- a/interface/src/avatar/AvatarActionHold.cpp +++ b/interface/src/avatar/AvatarActionHold.cpp @@ -65,15 +65,13 @@ std::shared_ptr AvatarActionHold::getTarget(glm::quat& rotation, glm::ve } } - if (isRightHand) { - rotation = palmRotation * _rightRelativeRotation; - position = palmPosition + rotation * _rightRelativePosition; - } else { + if (!isRightHand) { static const glm::quat yFlip = glm::angleAxis(PI, Vectors::UNIT_Y); palmRotation *= yFlip; // Match right hand frame of reference - rotation = palmRotation * _leftRelativeRotation; - position = palmPosition + rotation * _leftRelativePosition; } + + rotation = palmRotation * _relativeRotation; + position = palmPosition + rotation * _relativePosition; }); return holdingAvatar; @@ -175,10 +173,8 @@ void AvatarActionHold::doKinematicUpdate(float deltaTimeStep) { } bool AvatarActionHold::updateArguments(QVariantMap arguments) { - glm::vec3 leftRelativePosition; - glm::quat leftRelativeRotation; - glm::vec3 rightRelativePosition; - glm::quat rightRelativeRotation; + glm::vec3 relativePosition; + glm::quat relativeRotation; float timeScale; QString hand; QUuid holderID; @@ -190,27 +186,15 @@ bool AvatarActionHold::updateArguments(QVariantMap arguments) { bool somethingChanged = ObjectAction::updateArguments(arguments); withReadLock([&]{ bool ok = true; - leftRelativePosition = EntityActionInterface::extractVec3Argument("hold", arguments, "leftRelativePosition", ok, false); + relativePosition = EntityActionInterface::extractVec3Argument("hold", arguments, "relativePosition", ok, false); if (!ok) { - leftRelativePosition = _leftRelativePosition; + relativePosition = _relativePosition; } - + ok = true; - leftRelativeRotation = EntityActionInterface::extractQuatArgument("hold", arguments, "leftRelativeRotation", ok, false); + relativeRotation = EntityActionInterface::extractQuatArgument("hold", arguments, "relativeRotation", ok, false); if (!ok) { - leftRelativeRotation = _leftRelativeRotation; - } - - ok = true; - rightRelativePosition = EntityActionInterface::extractVec3Argument("hold", arguments, "rightRelativePosition", ok, false); - if (!ok) { - rightRelativePosition = _rightRelativePosition; - } - - ok = true; - rightRelativeRotation = EntityActionInterface::extractQuatArgument("hold", arguments, "rightRelativeRotation", ok, false); - if (!ok) { - rightRelativeRotation = _rightRelativeRotation; + relativeRotation = _relativeRotation; } ok = true; @@ -234,25 +218,17 @@ bool AvatarActionHold::updateArguments(QVariantMap arguments) { if (!ok) { _kinematic = false; } - + ok = true; kinematicSetVelocity = EntityActionInterface::extractBooleanArgument("hold", arguments, "kinematicSetVelocity", ok, false); if (!ok) { _kinematicSetVelocity = false; } - - ok = true; - ignoreIK = EntityActionInterface::extractBooleanArgument("hold", arguments, "ignoreIK", ok, false); - if (!ok) { - _ignoreIK = true; - } if (somethingChanged || - leftRelativePosition != _leftRelativePosition || - leftRelativeRotation != _leftRelativeRotation || - rightRelativePosition != _rightRelativePosition || - rightRelativeRotation != _rightRelativeRotation || + relativePosition != _relativePosition || + relativeRotation != _relativeRotation || timeScale != _linearTimeScale || hand != _hand || holderID != _holderID || @@ -265,10 +241,8 @@ bool AvatarActionHold::updateArguments(QVariantMap arguments) { if (needUpdate) { withWriteLock([&] { - _leftRelativePosition = leftRelativePosition; - _leftRelativeRotation = leftRelativeRotation; - _rightRelativePosition = rightRelativePosition; - _rightRelativeRotation = rightRelativeRotation; + _relativePosition = relativePosition; + _relativeRotation = relativeRotation; const float MIN_TIMESCALE = 0.1f; _linearTimeScale = glm::max(MIN_TIMESCALE, timeScale); _angularTimeScale = _linearTimeScale; @@ -295,10 +269,8 @@ QVariantMap AvatarActionHold::getArguments() { QVariantMap arguments = ObjectAction::getArguments(); withReadLock([&]{ arguments["holderID"] = _holderID; - arguments["leftRelativePosition"] = glmToQMap(_leftRelativePosition); - arguments["leftRelativeRotation"] = glmToQMap(_leftRelativeRotation); - arguments["rightRelativePosition"] = glmToQMap(_rightRelativePosition); - arguments["rightRelativeRotation"] = glmToQMap(_rightRelativeRotation); + arguments["relativePosition"] = glmToQMap(_relativePosition); + arguments["relativeRotation"] = glmToQMap(_relativeRotation); arguments["timeScale"] = _linearTimeScale; arguments["hand"] = _hand; arguments["kinematic"] = _kinematic; @@ -318,10 +290,8 @@ QByteArray AvatarActionHold::serialize() const { dataStream << AvatarActionHold::holdVersion; dataStream << _holderID; - dataStream << _leftRelativePosition; - dataStream << _leftRelativeRotation; - dataStream << _rightRelativePosition; - dataStream << _rightRelativeRotation; + dataStream << _relativePosition; + dataStream << _relativeRotation; dataStream << _linearTimeScale; dataStream << _hand; @@ -353,10 +323,8 @@ void AvatarActionHold::deserialize(QByteArray serializedArguments) { withWriteLock([&]{ dataStream >> _holderID; - dataStream >> _leftRelativePosition; - dataStream >> _leftRelativeRotation; - dataStream >> _rightRelativePosition; - dataStream >> _rightRelativeRotation; + dataStream >> _relativePosition; + dataStream >> _relativeRotation; dataStream >> _linearTimeScale; _angularTimeScale = _linearTimeScale; dataStream >> _hand; diff --git a/interface/src/avatar/AvatarActionHold.h b/interface/src/avatar/AvatarActionHold.h index d3aad19384..8a6948dde2 100644 --- a/interface/src/avatar/AvatarActionHold.h +++ b/interface/src/avatar/AvatarActionHold.h @@ -38,15 +38,12 @@ public: std::shared_ptr getTarget(glm::quat& rotation, glm::vec3& position); private: - static const uint16_t holdVersion; - void doKinematicUpdate(float deltaTimeStep); - glm::vec3 _leftRelativePosition{ Vectors::ZERO }; - glm::quat _leftRelativeRotation{ Quaternions::IDENTITY }; - glm::vec3 _rightRelativePosition{ Vectors::ZERO }; - glm::quat _rightRelativeRotation{ Quaternions::IDENTITY }; + static const uint16_t holdVersion; + glm::vec3 _relativePosition { Vectors::ZERO }; + glm::quat _relativeRotation { Quaternions::IDENTITY }; QString _hand { "right" }; QUuid _holderID; diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index 7bb3a1e46f..2f685b7e08 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -41,7 +41,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::EntityAdd: case PacketType::EntityEdit: case PacketType::EntityData: - return VERSION_ENTITIES_ACTIONS_PER_HAND_OFFSET; + return VERSION_ENTITIES_POLYLINE_TEXTURE; case PacketType::AvatarData: case PacketType::BulkAvatarData: default: diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 5610d31661..23df89b3d7 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -160,6 +160,5 @@ const PacketVersion VERSION_ENTITIES_KEYLIGHT_PROPERTIES_GROUP = 47; const PacketVersion VERSION_ENTITIES_KEYLIGHT_PROPERTIES_GROUP_BIS = 48; const PacketVersion VERSION_ENTITIES_PARTICLES_ADDITIVE_BLENDING = 49; const PacketVersion VERSION_ENTITIES_POLYLINE_TEXTURE = 50; -const PacketVersion VERSION_ENTITIES_ACTIONS_PER_HAND_OFFSET = 51; #endif // hifi_PacketHeaders_h