15 class TriangleFromPosQueryDisplayListBuilder :
public IDisplayListBuilder
18 TriangleFromPosQueryDisplayListBuilder() { Clear(); }
21 const TriangleFromPosQueryBlob* m_query;
22 TriangleFromPosQueryOutputBlob* m_output;
23 DisplayList* m_displayList;
30 m_displayList =
nullptr;
33 void StartText(Color color,
const char* text)
35 m_displayList->PushText(m_query->m_inputPos3f.OffsetZ(1.0f), color, text);
38 void StartPoint(Color color)
40 m_displayList->PushPoint(m_query->m_inputPos3f, color);
43 void StartTriangle(Color color)
45 m_displayList->PushTriangle(m_output->m_resultTrianglePtr.m_triangle.OffsetZ(0.1f), color);
48 void PushSpatializationRange(Color color)
50 const KyFloat32 above = m_query->m_positionSpatializationRange.m_rangeAbovePosition;
51 const KyFloat32 below = m_query->m_positionSpatializationRange.m_rangeBelowPosition;
52 const Vec3f& rangeTop = m_query->m_inputPos3f.OffsetZ(above);
53 const Vec3f& rangeBottom = m_query->m_inputPos3f.OffsetZ(-below);
54 m_displayList->PushLine(rangeBottom, rangeTop, color);
57 virtual void DoBuild(DisplayList* displayList,
char* blob)
59 m_query = (TriangleFromPosQueryBlob*)blob;
60 m_output = m_query->m_queryOutput.Ptr();
61 m_displayList = displayList;
62 if (m_output ==
nullptr)
70 StartPoint(Color::Orange);
71 PushSpatializationRange(Color::Cyan);
74 StartPoint(Color::Red);
75 StartText(Color::Red,
"No triangle found!");
76 PushSpatializationRange(Color::Cyan);
79 StartPoint(Color::Red);
80 StartText(Color::Red,
"Lack of working memory!");
81 PushSpatializationRange(Color::Cyan);
84 StartPoint(Color::Green);
85 StartTriangle(Color::Green);
86 PushSpatializationRange(Color::Cyan);
Indicates the query has not yet been initialized.
Definition: trianglefromposquery.h:25
TriangleFromPosQueryResult
Enumerates the possible results of a TriangleFromPosQuery.
Definition: trianglefromposquery.h:23
Indicates that insufficient working memory caused the query to stop.
Definition: trianglefromposquery.h:29
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Indicates that the point provided is outside the navigable boundaries of the NavMesh.
Definition: trianglefromposquery.h:28
Indicates that the query was completed successfully; a triangle was found.
Definition: trianglefromposquery.h:31
float KyFloat32
float
Definition: types.h:32
Indicates the query has not yet been launched.
Definition: trianglefromposquery.h:26