10 #include <Atoms/Globals.h>
11 #include <Atoms/AgentType.h>
12 #include <AtomsCore/Pose.h>
13 #include <AtomsCore/Metadata/MapMetadata.h>
14 #include <AtomsCore/Metadata/Vector3Metadata.h>
15 #include <AtomsCore/Metadata/IntMetadata.h>
16 #include <AtomsCore/Metadata/BoolMetadata.h>
17 #include <AtomsCore/Metadata/DoubleMetadata.h>
18 #include <AtomsCore/Metadata/StringMetadata.h>
19 #include <AtomsCore/Metadata/MatrixArrayMetadata.h>
20 #include <AtomsCore/Metadata/QuaternionMetadata.h>
21 #include <AtomsCore/Metadata/FloatArrayMetadata.h>
22 #include <AtomsCore/Metadata/Vector3ArrayMetadata.h>
23 #include <AtomsCore/Serialiser.h>
24 #include <Atoms/Graph/AgentBehaviourNetwork.h>
121 inline AtomsCore::Rand48& random();
127 inline size_t profileTime()
const;
130 inline size_t profileThreadId()
const;
133 inline void setProfileThreadBatch(
size_t value);
136 inline size_t profileThreadBatch()
const;
148 AtomsPtr<AtomsCore::IntMetadata>& groupId();
149 AtomsPtr<AtomsCore::StringMetadata>& groupIdStr();
150 AtomsPtr<AtomsCore::IntMetadata>& id();
151 AtomsPtr<AtomsCore::Vector3Metadata>& position();
152 AtomsPtr<AtomsCore::Vector3Metadata>& scale();
153 AtomsPtr<AtomsCore::QuaternionMetadata>& rotation();
154 AtomsPtr<AtomsCore::Vector3Metadata>& direction();
155 AtomsPtr<AtomsCore::Vector3Metadata>& up();
156 AtomsPtr<AtomsCore::Vector3Metadata>& velocity();
157 AtomsPtr<AtomsCore::Vector3Metadata>& gravity();
158 AtomsPtr<AtomsCore::DoubleMetadata>& birth();
159 AtomsPtr<AtomsCore::IntMetadata>& state();
160 AtomsPtr<AtomsCore::IntMetadata>& currentState();
161 AtomsPtr<AtomsCore::IntMetadata>& active();
162 AtomsPtr<AtomsCore::DoubleMetadata>& frameRate();
163 AtomsPtr<AtomsCore::DoubleMetadata>& frameRateOverride();
164 AtomsPtr<AtomsCore::BoolMetadata>& disableIk();
165 AtomsPtr<AtomsCore::BoolMetadata>& disableFootLock();
166 AtomsPtr<AtomsCore::IntMetadata>& syncLevel();
167 AtomsPtr<AtomsCore::IntMetadata>& animationMode();
168 AtomsPtr<AtomsCore::Metadata>& animState();
169 AtomsPtr<AtomsCore::BoolMetadata>& forceClipTransition();
170 AtomsPtr<AtomsCore::BoolMetadata>& visible();
171 AtomsPtr<AtomsCore::DoubleMetadata>& linearVelocity();
172 AtomsPtr<AtomsCore::DoubleMetadata>& angularVelocity();
173 AtomsPtr<AtomsCore::BoolMetadata>& locomotionActive();
174 AtomsPtr<AtomsCore::Vector3Metadata>& velocityOverride();
175 AtomsPtr<AtomsCore::BoolMetadata>& useVelocityOverride();
177 AtomsPtr<AtomsCore::IntMetadata>& _atypeid();
178 AtomsPtr<AtomsCore::BoolMetadata>& _culled();
179 AtomsPtr<AtomsCore::MatrixArrayMetadata>& _wm();
180 AtomsPtr<AtomsCore::DoubleMetadata>& maxSimDistance(
double defaultValue);
181 AtomsPtr<AtomsCore::FloatArrayMetadata>& perInstanceMetadata();
183 AtomsPtr<AtomsCore::Vector3Metadata>& _navtp();
184 AtomsPtr<AtomsCore::Vector3ArrayMetadata>& _navfp();
186 AtomsPtr<const AtomsCore::IntMetadata> groupId()
const;
187 AtomsPtr<const AtomsCore::StringMetadata> groupIdStr()
const;
188 AtomsPtr<const AtomsCore::IntMetadata> id()
const;
189 AtomsPtr<const AtomsCore::Vector3Metadata> position()
const;
190 AtomsPtr<const AtomsCore::Vector3Metadata> scale()
const;
191 AtomsPtr<const AtomsCore::QuaternionMetadata> rotation()
const;
192 AtomsPtr<const AtomsCore::Vector3Metadata> direction()
const;
193 AtomsPtr<const AtomsCore::Vector3Metadata> up()
const;
194 AtomsPtr<const AtomsCore::Vector3Metadata> velocity()
const;
195 AtomsPtr<const AtomsCore::Vector3Metadata> gravity()
const;
196 AtomsPtr<const AtomsCore::DoubleMetadata> birth()
const;
197 AtomsPtr<const AtomsCore::IntMetadata> state()
const;
198 AtomsPtr<const AtomsCore::IntMetadata> currentState()
const;
199 AtomsPtr<const AtomsCore::IntMetadata> active()
const;
200 AtomsPtr<const AtomsCore::DoubleMetadata> frameRate()
const;
201 AtomsPtr<const AtomsCore::DoubleMetadata> frameRateOverride()
const;
202 AtomsPtr<const AtomsCore::BoolMetadata> disableIk()
const;
203 AtomsPtr<const AtomsCore::BoolMetadata> disableFootLock()
const;
204 AtomsPtr<const AtomsCore::IntMetadata> syncLevel()
const;
205 AtomsPtr<const AtomsCore::IntMetadata> animationMode()
const;
206 AtomsPtr<const AtomsCore::Metadata> animState()
const;
207 AtomsPtr<const AtomsCore::BoolMetadata> forceClipTransition()
const;
208 AtomsPtr<const AtomsCore::BoolMetadata> visible()
const;
209 AtomsPtr<const AtomsCore::DoubleMetadata> linearVelocity()
const;
210 AtomsPtr<const AtomsCore::DoubleMetadata> angularVelocity()
const;
211 AtomsPtr<const AtomsCore::BoolMetadata> locomotionActive()
const;
212 AtomsPtr<const AtomsCore::Vector3Metadata> velocityOverride()
const;
213 AtomsPtr<const AtomsCore::BoolMetadata> useVelocityOverride()
const;
214 AtomsPtr<const AtomsCore::Vector3Metadata> _navtp()
const;
215 AtomsPtr<const AtomsCore::Vector3ArrayMetadata> _navfp()
const;
219 AtomsPtr<AtomsCore::IntMetadata> m_groupIdPtr;
220 AtomsPtr<AtomsCore::StringMetadata> m_groupIdStrPtr;
221 AtomsPtr<AtomsCore::IntMetadata> m_idPtr;
222 AtomsPtr<AtomsCore::Vector3Metadata> m_positionPtr;
223 AtomsPtr<AtomsCore::Vector3Metadata> m_scalePtr;
224 AtomsPtr<AtomsCore::QuaternionMetadata> m_rotationPtr;
225 AtomsPtr<AtomsCore::Vector3Metadata> m_directionPtr;
226 AtomsPtr<AtomsCore::Vector3Metadata> m_upPtr;
227 AtomsPtr<AtomsCore::Vector3Metadata> m_velocityPtr;
228 AtomsPtr<AtomsCore::Vector3Metadata> m_gravityPtr;
229 AtomsPtr<AtomsCore::DoubleMetadata> m_birthPtr;
230 AtomsPtr<AtomsCore::IntMetadata> m_statePtr;
231 AtomsPtr<AtomsCore::IntMetadata> m_currentStatePtr;
232 AtomsPtr<AtomsCore::IntMetadata> m_activePtr;
233 AtomsPtr<AtomsCore::DoubleMetadata> m_frameRatePtr;
234 AtomsPtr<AtomsCore::DoubleMetadata> m_frameRateOverridePtr;
235 AtomsPtr<AtomsCore::BoolMetadata> m_disableIkPtr;
236 AtomsPtr<AtomsCore::BoolMetadata> m_disableFootLockPtr;
237 AtomsPtr<AtomsCore::IntMetadata> m_syncLevelPtr;
238 AtomsPtr<AtomsCore::IntMetadata> m_animationModePtr;
239 AtomsPtr<AtomsCore::Metadata> m_animStatePtr;
240 AtomsPtr<AtomsCore::BoolMetadata> m_forceClipTransitionPtr;
241 AtomsPtr<AtomsCore::BoolMetadata> m_visiblePtr;
242 AtomsPtr<AtomsCore::DoubleMetadata> m_linearVelocityPtr;
243 AtomsPtr<AtomsCore::DoubleMetadata> m_angularVelocityPtr;
244 AtomsPtr<AtomsCore::BoolMetadata> m_locomotionActivePtr;
245 AtomsPtr<AtomsCore::Vector3Metadata> m_velocityOverridePtr;
246 AtomsPtr<AtomsCore::BoolMetadata> m_useVelocityOverridePtr;
248 AtomsPtr<AtomsCore::IntMetadata> m_atypeidPtr;
249 AtomsPtr<AtomsCore::BoolMetadata> m_culledPtr;
250 AtomsPtr<AtomsCore::MatrixArrayMetadata> m_wmPtr;
251 AtomsPtr<AtomsCore::DoubleMetadata> m_maxSimDistancePtr;
252 AtomsPtr<AtomsCore::FloatArrayMetadata> m_perInstanceMetadata;
255 AtomsPtr<AtomsCore::Vector3Metadata> m_navtpPtr;
256 AtomsPtr<AtomsCore::Vector3ArrayMetadata> m_navfpPtr;
289 AtomsCore::Rand48 m_random;
292 size_t m_profileTime;
295 size_t m_profileThreadId;
298 size_t m_profileThreadBatch;
313 #include "Agent.impl.h"