From 3e553f015c7f5f6b87d79cd0980b8e88b1e6c321 Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 5 Feb 2019 15:54:37 -0800 Subject: [PATCH] added the arm ik files to the repo, this is for the shoulder and elbow extensions --- libraries/animation/src/AnimArmIK.cpp | 40 +++++++++++++++++++++++++++ libraries/animation/src/AnimArmIK.h | 34 +++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 libraries/animation/src/AnimArmIK.cpp create mode 100644 libraries/animation/src/AnimArmIK.h diff --git a/libraries/animation/src/AnimArmIK.cpp b/libraries/animation/src/AnimArmIK.cpp new file mode 100644 index 0000000000..202e8c8420 --- /dev/null +++ b/libraries/animation/src/AnimArmIK.cpp @@ -0,0 +1,40 @@ +// +// AnimArmIK.cpp +// +// Created by Angus Antley on 1/9/19. +// Copyright (c) 2019 High Fidelity, Inc. All rights reserved. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "AnimArmIK.h" + +#include + +#include "AnimationLogging.h" +#include "AnimUtil.h" + +AnimArmIK::AnimArmIK(const QString& id, float alpha, bool enabled, float interpDuration, + const QString& baseJointName, const QString& midJointName, + const QString& tipJointName, const glm::vec3& midHingeAxis, + const QString& alphaVar, const QString& enabledVar, + const QString& endEffectorRotationVarVar, const QString& endEffectorPositionVarVar) : + AnimTwoBoneIK(id, alpha, enabled, interpDuration, baseJointName, midJointName, tipJointName, midHingeAxis, alphaVar, enabledVar, endEffectorRotationVarVar, endEffectorPositionVarVar) { + +} + +AnimArmIK::~AnimArmIK() { + +} + +const AnimPoseVec& AnimArmIK::evaluate(const AnimVariantMap& animVars, const AnimContext& context, float dt, AnimVariantMap& triggersOut) { + qCDebug(animation) << "evaluating the arm IK"; + + assert(_children.size() == 1); + if (_children.size() != 1) { + return _poses; + } else { + return _poses; + } +} \ No newline at end of file diff --git a/libraries/animation/src/AnimArmIK.h b/libraries/animation/src/AnimArmIK.h new file mode 100644 index 0000000000..26f79a1b9c --- /dev/null +++ b/libraries/animation/src/AnimArmIK.h @@ -0,0 +1,34 @@ +// +// AnimArmIK.h +// +// Created by Angus Antley on 1/9/19. +// Copyright (c) 2019 High Fidelity, Inc. All rights reserved. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#ifndef hifi_AnimArmIK_h +#define hifi_AnimArmIK_h + +//#include "AnimNode.h" +#include "AnimTwoBoneIK.h" +//#include "AnimChain.h" + +// Simple two bone IK chain +class AnimArmIK : public AnimTwoBoneIK { +public: + AnimArmIK(const QString& id, float alpha, bool enabled, float interpDuration, + const QString& baseJointName, const QString& midJointName, + const QString& tipJointName, const glm::vec3& midHingeAxis, + const QString& alphaVar, const QString& enabledVar, + const QString& endEffectorRotationVarVar, const QString& endEffectorPositionVarVar); + virtual ~AnimArmIK(); + virtual const AnimPoseVec& evaluate(const AnimVariantMap& animVars, const AnimContext& context, float dt, AnimVariantMap& triggersOut) override; + +protected: + +}; + +#endif // hifi_AnimArmIK_h +