#include <avoidanceworkspace.h>
AvoidanceWorkspace aggregates at once:
the Avoidance for nearby potential collider to be avoidance.
It is typically fed by an IAvoidanceComputer instance and then provided to a IAvoidanceSolver to compute the more appropriate velocity.
Public Member Functions | |
AvoidanceWorkspace () | |
void | Reset (const AvoidanceCollider &rootCollider, KyFloat32 visualDebugAltitude=0.f) |
AvoidanceWorkspaceAddColliderResult | AddCollider (const AvoidanceConfig &config, AvoidanceCollider &collider) |
KyFloat32 | ComputeAvoidanceScore (const Vec2f &candidateVelocity, const KyFloat32 safetyDistance, const KyFloat32 timeHorizon, KyFloat32 &collisionTime, KyInt32 &colliderIndex) const |
Public Data Members | |
AvoidanceCollider | m_rootCollider |
ColliderArray | m_colliders |
ColliderArray | m_ignoredColliders |
For internal use only | |
bool | m_doSendVisualDebugBlob |
KyFloat32 | m_visualDebugAltitude |
AvoidanceWorkspaceAddColliderResult Kaim::AvoidanceWorkspace::AddCollider | ( | const AvoidanceConfig & | config, |
AvoidanceCollider & | collider | ||
) |
Compute the time to collision and filters accordingly:
KyFloat32 Kaim::AvoidanceWorkspace::ComputeAvoidanceScore | ( | const Vec2f & | candidateVelocity, |
const KyFloat32 | safetyDistance, | ||
const KyFloat32 | timeHorizon, | ||
KyFloat32 & | collisionTime, | ||
KyInt32 & | colliderIndex | ||
) | const |
Compute the avoidance score.
void Kaim::AvoidanceWorkspace::Reset | ( | const AvoidanceCollider & | rootCollider, |
KyFloat32 | visualDebugAltitude = 0.f |
||
) |
Reset the workspace and prepare it for a given root collider.
visualDebugAltitude is used only in order to VisualDebug the 2d AvoidanceWorkspace at the given altitude, usually the Bot's altitude represented by this rootColider
ColliderArray Kaim::AvoidanceWorkspace::m_colliders |
The array of Colliders which Avoidance have been kept in #m_avoidances.
ColliderArray Kaim::AvoidanceWorkspace::m_ignoredColliders |
The array of discarded Colliders.
They are namely used in Integrate() function to complement #m_avoidances with the ones that should enter the focus area in next frame.
AvoidanceCollider Kaim::AvoidanceWorkspace::m_rootCollider |
The AvoidanceCollider corresponding to the Bot for which the AvoidanceWorkspace is used to compute an avoidance velocity.