CommonLibSSE NG
hkpConstraintData.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  class hkpSolverResults;
8  class hkpConstraintRuntime;
9 
11  {
12  public:
14  {
16  kHinge = 1,
20  kRagdoll = 7,
22  kWheel = 9,
23  kGeneric = 10,
24  kContact = 11,
25  kBreakable = 12,
26  kMalleable = 13,
28 
29  kPulley = 15,
30 
32 
35 
36  kCustom = 20,
37 
39  kCogWheel = 22,
40 
41  kChainTypes = 100,
44  kPoweredChain = 102
45  };
46 
48  {
50  kOld = 1
51  };
52 
53  struct RuntimeInfo
54  {
57  };
58 
59  inline static constexpr auto RTTI = RTTI_hkpConstraintData;
60  inline static constexpr auto VTABLE = VTABLE_hkpConstraintData;
61 
62  ~hkpConstraintData() override; // 00
63 
64  // add
65  virtual void SetMaxLinearImpulse(float a_maxImpulse); // 03
66  virtual float GetMaxLinearImpulse() const; // 04
67  virtual void SetSolvingMethod(SolvingMethod a_method); // 05
68  virtual hkResult GetInertiaStabilizationFactor(float& a_inertiaStabilizationFactorOut) const; // 06
69  virtual hkResult SetInertiaStabilizationFactor(const float a_inertiaStabilizationFactorIn); // 07
70  virtual void SetBodyToNotify(int32_t a_bodyIdx); // 08
71  virtual uint8_t GetNotifiedBodyIndex() const; // 09
72  virtual bool IsValid() const = 0; // 0A
73  virtual int32_t GetType() const = 0; // 0B
74  virtual void GetRuntimeInfo(bool bWantRuntime, RuntimeInfo& a_infoOut) const = 0; // 0C
75  virtual hkpSolverResults GetSolverResults(hkpConstraintRuntime* a_runtime); // 0D
76  virtual void AddInstance(hkpConstraintInstance* a_constraint, hkpConstraintRuntime* a_runtime, int32_t a_sizeOfRuntime) const; // 0E
77  virtual void RemoveInstance(hkpConstraintInstance* a_constraint, hkpConstraintRuntime* a_runtime, int32_t a_sizeOfRuntime) const; // 0F
78 
79  // members
80  uint64_t userData; // 10
81  };
82  static_assert(sizeof(hkpConstraintData) == 0x18);
83 }
Definition: hkReferencedObject.h:11
Definition: hkpConstraintData.h:11
virtual int32_t GetType() const =0
virtual hkResult GetInertiaStabilizationFactor(float &a_inertiaStabilizationFactorOut) const
ConstraintType
Definition: hkpConstraintData.h:14
@ kHinge
Definition: hkpConstraintData.h:16
@ kPointToPath
Definition: hkpConstraintData.h:18
@ kRackAndPinion
Definition: hkpConstraintData.h:38
@ kWheel
Definition: hkpConstraintData.h:22
@ kMalleable
Definition: hkpConstraintData.h:26
@ kRagdollLimits
Definition: hkpConstraintData.h:34
@ kPoweredChain
Definition: hkpConstraintData.h:44
@ kRagdoll
Definition: hkpConstraintData.h:20
@ kCustom
Definition: hkpConstraintData.h:36
@ kCogWheel
Definition: hkpConstraintData.h:39
@ kStiffSpring
Definition: hkpConstraintData.h:21
@ kBreakable
Definition: hkpConstraintData.h:25
@ kGeneric
Definition: hkpConstraintData.h:23
@ kBallAndSocket
Definition: hkpConstraintData.h:15
@ kLimitedHinge
Definition: hkpConstraintData.h:17
@ kBallSocketChain
Definition: hkpConstraintData.h:43
@ kContact
Definition: hkpConstraintData.h:24
@ kStiffSpringChain
Definition: hkpConstraintData.h:42
@ kPrismatic
Definition: hkpConstraintData.h:19
@ kHingeLimits
Definition: hkpConstraintData.h:33
@ kPulley
Definition: hkpConstraintData.h:29
@ kRotational
Definition: hkpConstraintData.h:31
@ kPointToPlane
Definition: hkpConstraintData.h:27
@ kChainTypes
Definition: hkpConstraintData.h:41
uint64_t userData
Definition: hkpConstraintData.h:80
SolvingMethod
Definition: hkpConstraintData.h:48
@ kStabilized
Definition: hkpConstraintData.h:49
@ kOld
Definition: hkpConstraintData.h:50
virtual void SetBodyToNotify(int32_t a_bodyIdx)
virtual hkpSolverResults GetSolverResults(hkpConstraintRuntime *a_runtime)
virtual void GetRuntimeInfo(bool bWantRuntime, RuntimeInfo &a_infoOut) const =0
virtual uint8_t GetNotifiedBodyIndex() const
virtual void AddInstance(hkpConstraintInstance *a_constraint, hkpConstraintRuntime *a_runtime, int32_t a_sizeOfRuntime) const
virtual bool IsValid() const =0
~hkpConstraintData() override
static constexpr auto RTTI
Definition: hkpConstraintData.h:59
virtual void SetMaxLinearImpulse(float a_maxImpulse)
virtual void RemoveInstance(hkpConstraintInstance *a_constraint, hkpConstraintRuntime *a_runtime, int32_t a_sizeOfRuntime) const
static constexpr auto VTABLE
Definition: hkpConstraintData.h:60
virtual void SetSolvingMethod(SolvingMethod a_method)
virtual hkResult SetInertiaStabilizationFactor(const float a_inertiaStabilizationFactorIn)
virtual float GetMaxLinearImpulse() const
Definition: hkpConstraintInstance.h:13
Definition: hkpSolverResults.h:7
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_hkpConstraintData(689858, 397713, 0x1f59530)
constexpr std::array< REL::VariantID, 1 > VTABLE_hkpConstraintData
Definition: Offsets_VTABLE.h:5009
hkResult
Definition: hkBaseTypes.h:9
Definition: hkpConstraintData.h:54
int32_t numSolverResults
Definition: hkpConstraintData.h:56
int32_t sizeOfExternalRuntime
Definition: hkpConstraintData.h:55