17 class InsidePosFromOutsidePosQueryDisplayListBuilder :
public IDisplayListBuilder
20 void DrawSearchBox(
const InsidePosFromOutsidePosQueryBlob* queryBlob,
const Color& color, DisplayList* displayList)
22 Vec3f boxMax(queryBlob->m_inputPos3f);
23 Vec3f boxMin(queryBlob->m_inputPos3f);
24 boxMin.x -= queryBlob->m_horizontalTolerance;
25 boxMin.y -= queryBlob->m_horizontalTolerance;
26 boxMin.z -= queryBlob->m_positionSpatializationRange.m_rangeBelowPosition;
28 boxMax.x += queryBlob->m_horizontalTolerance;
29 boxMax.y += queryBlob->m_horizontalTolerance;
30 boxMax.z += queryBlob->m_positionSpatializationRange.m_rangeAbovePosition;
32 ShapeColor shapeColor;
33 shapeColor.m_lineColor = color;
34 displayList->PushBox(Box3f(boxMin, boxMax), shapeColor);
37 virtual void DoBuild(DisplayList* displayList,
char* blob)
39 const InsidePosFromOutsidePosQueryBlob* query = (InsidePosFromOutsidePosQueryBlob*)blob;
40 InsidePosFromOutsidePosQueryOutputBlob* output = query->m_queryOutput.Ptr();
41 if (output ==
nullptr)
48 useCastPos = query->m_inputPos3f + Vec3f(query->m_castDirection * 2.f * query->m_horizontalTolerance);
56 DrawSearchBox(query, Color::Orange, displayList);
57 displayList->PushPoint(query->m_inputPos3f, radius, Color::White);
63 DrawSearchBox(query, Color::Red, displayList);
64 displayList->PushPoint(query->m_inputPos3f, radius, Color::Red);
66 displayList->PushLine(query->m_inputPos3f, useCastPos, Color::Red);
71 DrawSearchBox(query, Color::LightGreen, displayList);
72 displayList->PushText(output->m_insidePos3f.OffsetZ(1.0f), Color::Green,
"Inside pos");
73 displayList->PushDisk(output->m_insidePos3f, query->m_distFromObstacle, Color::Green);
74 displayList->PushPoint(query->m_inputPos3f, radius, Color::Green);
75 displayList->PushArrowPyramid(query->m_inputPos3f, output->m_insidePos3f, Color::Green);
77 displayList->PushLine(query->m_inputPos3f, useCastPos, Color::LightGreen);
InsidePosFromOutsidePosQueryResult
Enumerates the possible results of an InsidePosFromOutsidePosQuery.
Definition: baseinsideposfromoutsideposquery.h:20
Indicates that the query was completed successfully, and a valid position on the NavMesh was found wi...
Definition: baseinsideposfromoutsideposquery.h:28
#define KyFloat32MAXVAL
KyFloat32 max value
Definition: types.h:71
Indicates the query has not yet been initialized.
Definition: baseinsideposfromoutsideposquery.h:22
Indicates that insufficient working memory caused the query to stop.
Definition: baseinsideposfromoutsideposquery.h:25
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Indicates the query has not yet been launched.
Definition: baseinsideposfromoutsideposquery.h:23
Indicates that a valid position was not found within the query's bounding box.
Definition: baseinsideposfromoutsideposquery.h:27
float KyFloat32
float
Definition: types.h:32