22 class VisualDebugServer;
23 class SplineTrajectoryConfig;
24 class PositionOnLivePath;
25 class CircleArcSplineComputer;
27 class ComputeVelocityVisualDebug;
28 class BaseShortcutTrajectory;
30 class IAvoidanceComputer;
47 void Compute(
KyFloat32 simulationTimeInSeconds,
KyUInt32 worldUpdateIdx, Ptr<BaseShortcutTrajectory> shortcutTrajectory);
61 void ClearTrajectory();
68 virtual void SendVisualDebugBlob(VisualDebugServer& visualDebugServer, VisualDebugSendChangeEvent changeEvent);
69 void RemoveAllVisualDebugBeforeTrajectoryChange(VisualDebugServer& visualDebugServer);
72 void ForceClearTrajectory();
73 void ClearSplineComputer();
74 void ClearSplineCut();
80 bool IsBotBackInChannel();
81 bool IsBotOutOfChannel();
82 bool IsEndOfChannelReached();
83 bool IsFallbackToShortcutRequired();
85 void FollowFrozenSpline(
KyFloat32 simulationTimeInSeconds);
86 bool CanFrozenSplineBeFollowed();
91 void RequestSplineComputation();
92 void IntegrateSplineFromQuery();
94 bool ShouldRecomputeSpline(
const ChannelSectionPtr& upperBoundSection);
95 void ComputeSpline(
KyFloat32 simulationTimeInSeconds,
const ChannelSectionPtr& upperBoundSection);
97 void InitSplineStartPosition();
98 void ComputeSplineStartPosition();
99 void UpdateStartCutWithUpperBound(
const ChannelSectionPtr& upperBoundSection);
100 KyResult ComputeNewSplineEndPosition();
101 void CutFrozenSpline(
KyFloat32 simulationTimeInSeconds);
102 void AddStartConstraintToSplineQuery();
105 void ComputeSplineFromShortcutTrajectory(
KyFloat32 simulationTimeInSeconds, Ptr<BaseShortcutTrajectory> shortcutTrajectory);
110 void UpdateSplinePosition(
KyFloat32 simulationTimeInSeconds);
111 void UpdateSplineTargetPosition(
KyFloat32 simulationTimeInSeconds);
112 void ComputeMovingDirection2D(
KyFloat32 simulationTimeInSeconds,
Vec2f& out_movingDirection);
113 void ComputeVelocity(
KyFloat32 simulationTimeInSeconds);
116 void StopBot(
const Vec2f& frontDirection);
118 void DrawComputeVelocityVisualDebug(
const ComputeVelocityVisualDebug& collectedDebugData);
124 SplineCut() { Clear(); }
125 ~SplineCut() { Clear(); }
127 bool IsValid() {
return m_channelSectionIdx !=
KyUInt32MAXVAL && m_positionOnSpline.IsValid() && m_splineSection.IsInitialized(); }
131 m_positionOnSpline.Invalidate();
132 m_splineSection.Reset();
134 m_mode = CutSplineAtArcStart;
141 SplineCutMode m_mode;
146 Ptr<IAvoidanceComputer> m_avoidanceComputer;
151 ChannelSectionPtr m_splineComputerStartSection;
152 Vec3f m_splineComputerStartPosition;
157 SplineCutMode m_botPosSplineCutMode;
158 SplineCut m_splineCutThisFrame;
159 SplineCut m_splineCutWhenSplineRequested;
161 Ptr<CircleArcSplineComputationQuery> m_splineComputationQuery;
166 Vec2f m_previousMovingDirection;
167 float m_stopWaitTime;
169 bool m_advancedVisualDebuggingEnabled;
This class is the world element that represent an active character in Autodesk Navigation.
Definition: bot.h:128
SplineTrajectory computes a CircleArcSpline that allows to anticipate and adapt the velocity in the t...
Definition: splinetrajectory.h:37
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
Maintains a position moving along a given CricleArcSpline.
Definition: positiononcirclearcspline.h:60
RadiusProfile is an array of preferred radii.
Definition: radiusprofile.h:26
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
KyUInt32 m_positionOnSplineChannelSectionIdx
CircleArcSpline with start/end information as well current position and target.
Definition: splinetrajectory.h:148
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
Class that configures how the trajectory is computed from the Channel.
Definition: splinetrajectoryconfig.h:28
const FollowedCircleArcSpline * GetFollowedCircleArcSpline() const
Returns information about the currently followed circleArcSpline if any.
Definition: splinetrajectory.cpp:486
2d vector using KyFloat32.
Definition: vec2f.h:18
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Class used to compute a CircleArcSpline in a Channel.
Definition: circlearcsplinecomputer.h:86
CircleArcSpline with computation information and current position of follow.
Definition: followedcirclearcspline.h:30
Class representing either an oriented circle arc or a straight line segment, to be aggregated into a ...
Definition: circlearcsplinesection.h:23
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68
This class computes the trajectory either with ShortcutTrajectory or with SplineTrajectory.
Definition: trajectory.h:26
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16
ResetTrajectoryStatus
Definition: resettrajectorystatus.h:13