CommonLibVR
hkpConstraintAtom.h
Go to the documentation of this file.
1 #pragma once
2 
3 namespace RE
4 {
5  class hkpConstraintMotor;
6 
8  {
9  public:
10  enum AtomType
11  {
12  kInvalid = 0,
13 
15 
19 
22 
28 
30 
37 
39 
43 
45 
47 
49 
50  // modifiers
57 
58  kMAX
59  };
60 
61  enum SolvingMethod : uint8_t
62  {
64  kOld = 1,
65  };
66 
67  // members
69  };
70  static_assert(sizeof(hkpConstraintAtom) == 0x2);
71 
73  {
74  bool enabled; // 02
75  float maxAngle; // 04
76  uint64_t pad08; // 08
77  };
78  static_assert(sizeof(hkpSetupStabilizationAtom) == 0x10);
79 
81  {
83  uint8_t bodiesToNotify; // 03
85  float maxImpulse; // 08
87  };
88  static_assert(sizeof(hkpBallSocketConstraintAtom) == 0x10);
89 
91  {
92  uint32_t pad02; // 02
95  };
96  static_assert(sizeof(hkpSetLocalTransformsConstraintAtom) == 0x90);
97 
99  {
100  uint8_t freeRotationAxis; // 02
101  };
102  static_assert(sizeof(hkp2dAngConstraintAtom) == 0x4);
103 
105  {
106  bool enabled; // 02
107  uint8_t limitAxis; // 03
108  float minAngle; // 04
109  float maxAngle; // 08
111  };
112  static_assert(sizeof(hkpAngLimitConstraintAtom) == 0x10);
113 
115  {
116  bool enabled; // 02
117  uint8_t twistAxis; // 03
118  uint8_t refAxis; // 04
119  float minAngle; // 08
120  float maxAngle; // 0C
122  };
123  static_assert(sizeof(hkpTwistLimitConstraintAtom) == 0x14);
124 
126  {
127  enum MeasurementMode : uint8_t
128  {
131  };
132 
133  bool enabled; // 02
134  uint8_t twistAxisInA; // 03
135  uint8_t refAxisInB; // 04
137  uint8_t memOffsetToAngleOffset; // 06
138  float minAngle; // 08
139  float maxAngle; // 0C
141  };
142  static_assert(sizeof(hkpConeLimitConstraintAtom) == 0x14);
143 
145  {
146  bool enabled; // 02
147  uint8_t firstFrictionAxis; // 03
148  uint8_t numFrictionAxes; // 04
149  float maxFrictionTorque; // 08
150  };
151  static_assert(sizeof(hkpAngFrictionConstraintAtom) == 0xC);
152 
154  {
155  bool enabled; // 02
156  uint8_t motorAxis; // 03
157  int16_t initializedOffset; // 04
160  float targetAngle; // 0C
162  };
163  static_assert(sizeof(hkpAngMotorConstraintAtom) == 0x18);
164 
166  {
167  bool enabled; // 02
168  int16_t initializedOffset; // 04
172  };
173  static_assert(sizeof(hkpRagdollMotorConstraintAtom) == 0x60);
174 }
Definition: hkMatrix3.h:8
Definition: hkTransform.h:9
Definition: hkBaseTypes.h:38
Definition: hkpConstraintMotor.h:8
Definition: AbsorbEffect.h:6
Definition: hkpConstraintAtom.h:99
uint8_t freeRotationAxis
Definition: hkpConstraintAtom.h:100
Definition: hkpConstraintAtom.h:145
bool enabled
Definition: hkpConstraintAtom.h:146
uint8_t firstFrictionAxis
Definition: hkpConstraintAtom.h:147
float maxFrictionTorque
Definition: hkpConstraintAtom.h:149
uint8_t numFrictionAxes
Definition: hkpConstraintAtom.h:148
Definition: hkpConstraintAtom.h:105
float maxAngle
Definition: hkpConstraintAtom.h:109
float angularLimitsTauFactor
Definition: hkpConstraintAtom.h:110
float minAngle
Definition: hkpConstraintAtom.h:108
uint8_t limitAxis
Definition: hkpConstraintAtom.h:107
bool enabled
Definition: hkpConstraintAtom.h:106
Definition: hkpConstraintAtom.h:154
float targetAngle
Definition: hkpConstraintAtom.h:160
int16_t correspondingAngLimitSolverResultOffset
Definition: hkpConstraintAtom.h:159
uint8_t motorAxis
Definition: hkpConstraintAtom.h:156
hkpConstraintMotor * motor
Definition: hkpConstraintAtom.h:161
int16_t initializedOffset
Definition: hkpConstraintAtom.h:157
bool enabled
Definition: hkpConstraintAtom.h:155
int16_t previousTargetAngleOffset
Definition: hkpConstraintAtom.h:158
Definition: hkpConstraintAtom.h:81
uint8_t bodiesToNotify
Definition: hkpConstraintAtom.h:83
SolvingMethod solvingMethod
Definition: hkpConstraintAtom.h:82
hkUFloat8 velocityStabilizationFactor
Definition: hkpConstraintAtom.h:84
float maxImpulse
Definition: hkpConstraintAtom.h:85
float inertiaStabilizationFactor
Definition: hkpConstraintAtom.h:86
Definition: hkpConstraintAtom.h:126
float minAngle
Definition: hkpConstraintAtom.h:138
MeasurementMode angleMeasurementMode
Definition: hkpConstraintAtom.h:136
MeasurementMode
Definition: hkpConstraintAtom.h:128
@ kZeroWhenVectorsPerpendicular
Definition: hkpConstraintAtom.h:130
@ kZeroWhenVectorsAligned
Definition: hkpConstraintAtom.h:129
uint8_t memOffsetToAngleOffset
Definition: hkpConstraintAtom.h:137
float maxAngle
Definition: hkpConstraintAtom.h:139
uint8_t twistAxisInA
Definition: hkpConstraintAtom.h:134
uint8_t refAxisInB
Definition: hkpConstraintAtom.h:135
bool enabled
Definition: hkpConstraintAtom.h:133
float angularLimitsTauFactor
Definition: hkpConstraintAtom.h:140
Definition: hkpConstraintAtom.h:8
SolvingMethod
Definition: hkpConstraintAtom.h:62
@ kOld
Definition: hkpConstraintAtom.h:64
@ kStabilized
Definition: hkpConstraintAtom.h:63
stl::enumeration< AtomType, uint16_t > type
Definition: hkpConstraintAtom.h:68
AtomType
Definition: hkpConstraintAtom.h:11
@ kStiffSpring
Definition: hkpConstraintAtom.h:21
@ kModifier_CenterOfMassChanger
Definition: hkpConstraintAtom.h:56
@ kRagdollMotor
Definition: hkpConstraintAtom.h:38
@ kLinLimit
Definition: hkpConstraintAtom.h:25
@ kSetupStabilization
Definition: hkpConstraintAtom.h:44
@ kCogWheel
Definition: hkpConstraintAtom.h:42
@ kPulley
Definition: hkpConstraintAtom.h:40
@ kAngFriction
Definition: hkpConstraintAtom.h:35
@ kSetLocalTransforms
Definition: hkpConstraintAtom.h:16
@ kInvalid
Definition: hkpConstraintAtom.h:12
@ kLinMotor
Definition: hkpConstraintAtom.h:27
@ kBallSocket
Definition: hkpConstraintAtom.h:20
@ kModifier_SoftContact
Definition: hkpConstraintAtom.h:51
@ kModifier_ViscousSurface
Definition: hkpConstraintAtom.h:53
@ kLinFriction
Definition: hkpConstraintAtom.h:26
@ kLin
Definition: hkpConstraintAtom.h:23
@ kSetLocalRotations
Definition: hkpConstraintAtom.h:18
@ kLinSoft
Definition: hkpConstraintAtom.h:24
@ kModifier_MovingSurface
Definition: hkpConstraintAtom.h:54
@ kTwistLimit
Definition: hkpConstraintAtom.h:33
@ kRackAndPinion
Definition: hkpConstraintAtom.h:41
@ kModifier_MassChanger
Definition: hkpConstraintAtom.h:52
@ kAngMotor
Definition: hkpConstraintAtom.h:36
@ kConeLimit
Definition: hkpConstraintAtom.h:34
@ kSetLocalTranslations
Definition: hkpConstraintAtom.h:17
@ kOverwritePivot
Definition: hkpConstraintAtom.h:46
@ kAngLimit
Definition: hkpConstraintAtom.h:32
@ k2DAng
Definition: hkpConstraintAtom.h:29
@ kMAX
Definition: hkpConstraintAtom.h:58
@ kContact
Definition: hkpConstraintAtom.h:48
@ kAng
Definition: hkpConstraintAtom.h:31
@ kModifier_IgnoreConstraint
Definition: hkpConstraintAtom.h:55
@ kBridge
Definition: hkpConstraintAtom.h:14
Definition: hkpConstraintAtom.h:166
int16_t initializedOffset
Definition: hkpConstraintAtom.h:168
hkpConstraintMotor * motors[3]
Definition: hkpConstraintAtom.h:171
int16_t previousTargetAnglesOffset
Definition: hkpConstraintAtom.h:169
hkMatrix3 target_bRca
Definition: hkpConstraintAtom.h:170
bool enabled
Definition: hkpConstraintAtom.h:167
Definition: hkpConstraintAtom.h:91
uint32_t pad02
Definition: hkpConstraintAtom.h:92
hkTransform transformA
Definition: hkpConstraintAtom.h:93
hkTransform transformB
Definition: hkpConstraintAtom.h:94
Definition: hkpConstraintAtom.h:73
float maxAngle
Definition: hkpConstraintAtom.h:75
bool enabled
Definition: hkpConstraintAtom.h:74
uint64_t pad08
Definition: hkpConstraintAtom.h:76
Definition: hkpConstraintAtom.h:115
uint8_t refAxis
Definition: hkpConstraintAtom.h:118
float maxAngle
Definition: hkpConstraintAtom.h:120
float angularLimitsTauFactor
Definition: hkpConstraintAtom.h:121
bool enabled
Definition: hkpConstraintAtom.h:116
uint8_t twistAxis
Definition: hkpConstraintAtom.h:117
float minAngle
Definition: hkpConstraintAtom.h:119