8 #ifndef Navigation_DiskCanGoQuery_DisplayListBuilder_H
9 #define Navigation_DiskCanGoQuery_DisplayListBuilder_H
19 class DiskCanGoQueryDisplayListBuilder :
public IDisplayListBuilder
22 virtual void DoBuild(ScopedDisplayList* displayList,
char* blob,
KyUInt32 = 0)
24 const DiskCanGoQueryBlob* queryBlob = (DiskCanGoQueryBlob*) blob;
27 DiskCanGoQueryOutputBlob* queryOutputBlob = queryBlob->m_queryOutput.
Ptr();
28 if (queryOutputBlob != NULL)
34 VisualShapeColor shapeColor;
41 displayList->PushArrow(queryBlob->m_startPos3f, queryBlob->m_destPos3f, arrowHalfWidth, shapeColor, 3.0f, 0.1f);
43 shapeColor.SetOnlyLineColor(shapeColor.m_triangleColor);
44 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
50 displayList->PushText(queryBlob->m_startPos3f + offsetVector, shapeColor.m_lineColor,
"Start outside!");
51 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
57 Triangle3f triangle = queryOutputBlob->m_startTriangle.m_triangle;
59 triangle.A.z += triangleZOffset;
60 triangle.B.z += triangleZOffset;
61 triangle.C.z += triangleZOffset;
62 displayList->PushTriangle(triangle, shapeColor);
64 displayList->PushText(queryBlob->m_startPos3f + offsetVector, shapeColor.m_lineColor,
"Start NavTag forbidden!");
65 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
71 Triangle3f triangle = queryOutputBlob->m_startTriangle.m_triangle;
73 triangle.A.z += triangleZOffset;
74 triangle.B.z += triangleZOffset;
75 triangle.C.z += triangleZOffset;
76 displayList->PushTriangle(triangle, shapeColor);
79 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
85 Triangle3f triangle = queryOutputBlob->m_startTriangle.m_triangle;
87 triangle.A.z += triangleZOffset;
88 triangle.B.z += triangleZOffset;
89 triangle.C.z += triangleZOffset;
90 displayList->PushTriangle(triangle, shapeColor);
93 displayList->PushText(queryBlob->m_destPos3f + offsetVector, shapeColor.m_lineColor,
"Arrival in wrong floor!");
94 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
100 Triangle3f triangle = queryOutputBlob->m_startTriangle.m_triangle;
102 triangle.A.z += triangleZOffset;
103 triangle.B.z += triangleZOffset;
104 triangle.C.z += triangleZOffset;
105 displayList->PushTriangle(triangle, shapeColor);
108 displayList->PushText(queryBlob->m_destPos3f + offsetVector, shapeColor.m_lineColor,
"Lack of working memory!");
109 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
115 displayList->PushText(queryBlob->m_destPos3f + offsetVector, shapeColor.m_lineColor,
"Unknown error!");
116 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
123 Triangle3f triangle = queryOutputBlob->m_startTriangle.m_triangle;
125 triangle.A.z += triangleZOffset;
126 triangle.B.z += triangleZOffset;
127 triangle.C.z += triangleZOffset;
128 displayList->PushTriangle(triangle, shapeColor);
130 triangle = queryOutputBlob->m_destTriangle.m_triangle;
131 triangle.A.z += triangleZOffset;
132 triangle.B.z += triangleZOffset;
133 triangle.C.z += triangleZOffset;
134 displayList->PushTriangle(triangle, shapeColor);
136 displayList->PushStadium(queryBlob->m_startPos3f, queryBlob->m_destPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
141 QueryDynamicOutputBlob* queryDynamicOutputBlob = queryOutputBlob->m_queryDynamicOutputBlobRef.Ptr();
142 if (queryDynamicOutputBlob != NULL)
144 QueryDynamicOutputDisplayListBuilder dynamicOutputDLBuilder;
145 dynamicOutputDLBuilder.Build(displayList, (
char*)queryDynamicOutputBlob, 0);
Indicates that a NavMesh triangle has been found for the starting point, but its NavTag is not consid...
Definition: basediskcangoquery.h:30
Indicates the query generated no results, which may indicate that the start and end points are on dif...
Definition: basediskcangoquery.h:32
Indicates the query has not yet been launched.
Definition: basediskcangoquery.h:27
Definition: SF_RefCount.h:377
static const VisualColor Lime
Represents the color with RGBA values ( 0, 255, 0, 255).
Definition: visualcolor.h:172
static const VisualColor Orange
Represents the color with RGBA values (255, 165, 0, 255).
Definition: visualcolor.h:195
static const VisualColor Red
Represents the color with RGBA values (255, 0, 0, 255).
Definition: visualcolor.h:209
Indicates the query has not yet been initialized.
Definition: basediskcangoquery.h:26
Indicates that a NavMesh triangle could not be found for the starting point.
Definition: basediskcangoquery.h:29
DiskCanGoQueryResult
Enumerates the possible results of a DiskCanGoQuery.
Definition: basediskcangoquery.h:24
static Vec3f UnitZ()
Returns the normalized orientation of the Z axis.
Definition: vec3f.h:218
Indicates that the disk can pass in a straight line-from start to end point-without a collision...
Definition: basediskcangoquery.h:36
Definition: gamekitcrowddispersion.h:20
Indicates that a collision was detected along the straight line between the starting and ending point...
Definition: basediskcangoquery.h:31
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
Indicates that an unknown error occurred during the query processing.
Definition: basediskcangoquery.h:34
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43
Indicates that insufficient working memory caused the query to stop.
Definition: basediskcangoquery.h:33