10 #include <AtomsGraph/Ports.h>
12 #include <Atoms/Globals.h>
13 #include <Atoms/Graph/Operator.h>
14 #include <Atoms/HeightFields.h>
15 #include <AtomsUtils/Mesh.h>
34 void computePelvisAndFeetHeightField(
38 const std::string& hf,
39 const std::string& gf,
44 double heightFieldOffset,
45 bool compensateStretchLeg,
46 bool useHeightFieldOnCreationOnly);
48 void computePelvisAndFeetHeightFieldInParentSpace(
52 const std::string& hf,
53 const std::string& gf,
58 double heightFieldOffset,
59 bool compensateStretchLeg,
60 bool useHeightFieldOnCreationOnly);
62 void computeSpinesHeightfields(
63 const std::string& hf,
64 const std::string& gf,
68 double heightFieldOffset,
69 bool useHeightFieldOnCreationOnly);
71 void computeSpinesHeightfieldsInParentSpace(
72 const std::string& hf,
73 const std::string& gf,
77 double heightFieldOffset,
78 bool useHeightFieldOnCreationOnly);
80 void compensateLegStretch(
88 double heightFieldOffset);
90 void compensateLegStretchInParentSpace(
98 double heightFieldOffset);
100 inline void useLocomotion(
bool value) { m_isLocomotion = value; }
102 inline void setNavMeshAdaptationCallback(std::function<
bool(
Atoms::Agent*, AtomsMath::Vector3*,
double)>& callback) { m_navMeshAdaptationCallback = callback; }
104 inline double groundHeight() {
return m_groundHeight; }
106 inline void setGroundHeight(
double value) { m_groundHeight = value; }
110 std::function<bool(
Atoms::Agent*, AtomsMath::Vector3*,
double)> m_navMeshAdaptationCallback;
146 double m_groundHeight;
153 std::vector<unsigned int> m_footFrameAfterDown;
154 std::vector<unsigned int> m_footWasDown;
155 std::vector<AtomsCore::Matrix> m_detachedJointMatrices;
157 AtomsPtr<AtomsCore::MapMetadata> m_hfAnimatedMetaMap;
165 double m_agentTypeHeight;
168 double m_virtualRootPelvisHeight;
169 int m_animPointFaceId;
171 bool m_particleFirst;
174 bool m_hasCacheReader;
176 bool m_useVirtualRoot;
180 static const std::string maxTurnAngleKey;
181 static const std::string ikSolverKey;
182 static const std::string ikTolleranceKey;
183 static const std::string ikMaxIterationsKey;
185 static const std::string pelvisBehave3dCacheDirKey;
186 static const std::string pelvisBehave3dCacheUpKey;
Agent.
Definition: Agent.h:44
Container for all agent types.
Definition: HeightField.h:17
Container for all agent types.
Definition: HeightFields.h:19
Operator node.
Definition: Operator.h:26
Definition: PelvisOperator.h:21
void reset()
Operator reset function.
bool compute(const AtomsGraph::ComputeData *computeData)
Compute function.
Joint pose.
Definition: JointPose.h:20
Skeleton class.
Definition: Skeleton.h:68
Generic node port class.
Definition: PortTemplate.h:24
AtomsMath::Quaternion Quaternion
Quaternion class.
Definition: AtomsMath.h:67
AtomsMath::Vector3 Vector3
Vector3 class.
Definition: AtomsMath.h:57
AtomsMath::Matrix Matrix
Matrix class.
Definition: AtomsMath.h:63
Atoms namespace.
Definition: Agent.h:29