BVB Source Codes

CRYENGINE Show IKTorsoAim.h Source code

Return Download CRYENGINE: download IKTorsoAim.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #ifndef IKTorsoAim_h
  4. #define IKTorsoAim_h
  5.  
  6. #include <CryExtension/ClassWeaver.h>
  7.  
  8. #define TORSOAIM_MAX_JOINTS 5
  9.  
  10. class CRY_ALIGN(32) CIKTorsoAim:
  11.         public IAnimationPoseModifier
  12. {
  13. public:
  14.         CRYINTERFACE_BEGIN()
  15.         CRYINTERFACE_ADD(IAnimationPoseModifier)
  16.         CRYINTERFACE_END()
  17.  
  18.         CRYGENERATE_CLASS(CIKTorsoAim, "AnimationPoseModifier_IKTorsoAim", 0x2058e99dd05243e2, 0x88985eff40b942e4)
  19.  
  20.         CIKTorsoAim();
  21.         virtual ~CIKTorsoAim() {}
  22.  
  23. public:
  24.         void Enable(bool enable);
  25.         static void InitCVars();
  26.  
  27.         // IAnimationIKTorsoAim
  28. public:
  29.         virtual void SetBlendWeight(float blend);
  30.         virtual void SetBlendWeightPosition(float blend);
  31.         virtual void SetTargetDirection(const Vec3 &direction);
  32.         virtual void SetViewOffset(const QuatT &offset);
  33.         virtual void SetAbsoluteTargetPosition(const Vec3 &targetPosition);
  34.         virtual void SetFeatherWeights(uint32 weights, const f32 * customBlends);
  35.         virtual void SetJoints(uint32 jntEffector, uint32 jntAdjustment);
  36.         virtual void SetBaseAnimTrackFactor(float factor);
  37.  
  38.         // IAnimationPoseModifier
  39. public:
  40.         virtual bool Prepare(const SAnimationPoseModifierParams &params) override;
  41.         virtual bool Execute(const SAnimationPoseModifierParams &params) override;
  42.         virtual void Synchronize() override;
  43.  
  44.         virtual void GetMemoryUsage(ICrySizer* pSizer) const override
  45.         {
  46.                 pSizer->AddObject(this, sizeof(*this));
  47.         }
  48.  
  49.         const QuatT& GetLastProcessedEffector() const
  50.         {
  51.                 return m_lastProcessedEffector;
  52.         }
  53.  
  54. private:
  55.  
  56.         struct SParams
  57.         {
  58.                 SParams();
  59.  
  60.                 QuatT viewOffset;
  61.                 Vec3  targetDirection;
  62.                 Vec3  absoluteTargetPosition;
  63.                 float baseAnimTrackFactor;
  64.                 float weights[TORSOAIM_MAX_JOINTS];
  65.                 float blend;
  66.                 float blendPosition;
  67.                 int   numParents;
  68.                 int   effectorJoint;
  69.                 int   aimJoint;
  70.         };
  71.  
  72.         struct STorsoAim_CVars
  73.         {
  74.                 STorsoAim_CVars()
  75.                         : m_initialized(false)
  76.                         , STAP_DEBUG(0)
  77.                         , STAP_DISABLE(0)
  78.                         , STAP_TRANSLATION_FUDGE(0)
  79.                         , STAP_TRANSLATION_FEATHER(0)
  80.                         , STAP_LOCK_EFFECTOR(0)
  81.                         , STAP_OVERRIDE_TRACK_FACTOR(0.0f)
  82.                 {
  83.                 }
  84.  
  85.                 ~STorsoAim_CVars()
  86.                 {
  87.                         ReleaseCVars();
  88.                 }
  89.  
  90.                 void InitCvars();
  91.  
  92.                 int   STAP_DEBUG;
  93.                 int   STAP_DISABLE;
  94.                 int   STAP_TRANSLATION_FUDGE;
  95.                 int   STAP_TRANSLATION_FEATHER;
  96.                 int   STAP_LOCK_EFFECTOR;
  97.                 float STAP_OVERRIDE_TRACK_FACTOR;
  98.  
  99.         private:
  100.  
  101.                 void ReleaseCVars();
  102.  
  103.                 bool m_initialized;
  104.         };
  105.  
  106.         SParams m_params;
  107.         SParams m_setParams;
  108.  
  109.         bool m_active;
  110.         bool m_blending;
  111.         float m_blendRate;
  112.  
  113.         Vec3 m_aimToEffector;
  114.         Quat m_effectorDirQuat;
  115.         QuatT m_lastProcessedEffector;
  116.  
  117.         static STorsoAim_CVars s_CVars;
  118.  
  119.         void Init();
  120.  
  121. };
  122.  
  123. #endif // IKTorsoAim_h
  124.  
downloadIKTorsoAim.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top