8 #ifndef Navigation_DiskCollisionQuery_DisplayListBuilder_H
9 #define Navigation_DiskCollisionQuery_DisplayListBuilder_H
19 class DiskCollisionQueryDisplayListBuilder :
public IDisplayListBuilder
22 virtual void DoBuild(ScopedDisplayList* displayList,
char* blob,
KyUInt32 = 0)
24 const DiskCollisionQueryBlob* queryBlob = (DiskCollisionQueryBlob*) blob;
28 DiskCollisionQueryOutputBlob* queryOutputBlob = queryBlob->m_queryOutput.
Ptr();
29 if (queryOutputBlob != NULL)
33 VisualShapeColor shapeColor;
40 displayList->PushDisk(queryBlob->m_centerPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
46 displayList->PushDisk(queryBlob->m_centerPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
53 Triangle3f triangle = queryOutputBlob->m_centerTriangle.m_triangle;
55 triangle.A.z += triangleZOffset;
56 triangle.B.z += triangleZOffset;
57 triangle.C.z += triangleZOffset;
58 displayList->PushTriangle(triangle, shapeColor);
60 displayList->PushDisk(queryBlob->m_centerPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
67 Triangle3f triangle = queryOutputBlob->m_centerTriangle.m_triangle;
69 triangle.A.z += triangleZOffset;
70 triangle.B.z += triangleZOffset;
71 triangle.C.z += triangleZOffset;
72 displayList->PushTriangle(triangle, shapeColor);
75 displayList->PushDisk(queryBlob->m_centerPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
82 Triangle3f triangle = queryOutputBlob->m_centerTriangle.m_triangle;
84 triangle.A.z += triangleZOffset;
85 triangle.B.z += triangleZOffset;
86 triangle.C.z += triangleZOffset;
87 displayList->PushTriangle(triangle, shapeColor);
90 displayList->PushText(queryBlob->m_centerPos3f + offsetVector, shapeColor.m_lineColor,
"Lack of working memory!");
91 displayList->PushDisk(queryBlob->m_centerPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
97 displayList->PushDisk(queryBlob->m_centerPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
104 Triangle3f triangle = queryOutputBlob->m_centerTriangle.m_triangle;
106 triangle.A.z += triangleZOffset;
107 triangle.B.z += triangleZOffset;
108 triangle.C.z += triangleZOffset;
109 displayList->PushTriangle(triangle, shapeColor);
111 displayList->PushDisk(queryBlob->m_centerPos3f, queryBlob->m_radius, subdivisionCount, shapeColor);
116 QueryDynamicOutputBlob* queryDynamicOutputBlob = queryOutputBlob->m_queryDynamicOutputBlobRef.Ptr();
117 if (queryDynamicOutputBlob != NULL)
119 QueryDynamicOutputDisplayListBuilder dynamicOutputDLBuilder;
120 dynamicOutputDLBuilder.Build(displayList, (
char*)queryDynamicOutputBlob, 0);
Indicates that an unknown error occurred during the query processing.
Definition: basediskcollisionquery.h:30
Indicates that the center point lies inside the NavMesh, but that the radius collides with a border o...
Definition: basediskcollisionquery.h:28
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
Indicates that the center point lies outside the navigable area of the NavMesh.
Definition: basediskcollisionquery.h:26
Indicates that the disk fits inside the navigable area of the NavMesh.
Definition: basediskcollisionquery.h:32
static const VisualColor Red
Represents the color with RGBA values (255, 0, 0, 255).
Definition: visualcolor.h:209
DiskCollisionQueryResult
Enumerates the possible results of a DiskCollisionQuery.
Definition: basediskcollisionquery.h:21
static Vec3f UnitZ()
Returns the normalized orientation of the Z axis.
Definition: vec3f.h:218
Indicates that insufficient working memory caused the query to stop.
Definition: basediskcollisionquery.h:29
Definition: gamekitcrowddispersion.h:20
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
Indicates that the query has not yet been launched.
Definition: basediskcollisionquery.h:24
Indicates that the NavTag at the center point was forbidden.
Definition: basediskcollisionquery.h:27
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43
Indicates that the query has not yet been initialized.
Definition: basediskcollisionquery.h:23