gwnavruntime/queries/blobs/querydynamicoutputdisplaylistbuilder.h Source File

querydynamicoutputdisplaylistbuilder.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 #pragma once
8 
13 
14 namespace Kaim
15 {
16 
17 class DisplayList;
18 
19 class QueryDynamicOutputDisplayListBuilder : public IDisplayListBuilder
20 {
21 private:
22  virtual void DoBuild(DisplayList* displayList, char* blob)
23  {
24  const QueryDynamicOutputBlob* queryDynamicOutputBlob = (QueryDynamicOutputBlob*) blob;
25 
26  if (queryDynamicOutputBlob == NULL)
27  return;
28 
29  const Color color = Color::White;
30  const ShapeColor shapeColor = ShapeColor::LineOnly(color);
31 
32  // navTriangles
33  const NavTriangleBlob* navTriangles = queryDynamicOutputBlob->m_navTriangles.GetValues();
34  for (KyUInt32 i = 0; i < queryDynamicOutputBlob->m_navTriangles.GetCount(); ++i)
35  {
36  const Triangle3f& triangle = navTriangles[i].m_triangle.OffsetZ(0.1f);
37  displayList->PushTriangle(triangle, shapeColor);
38  }
39 
40  const NavFloorBoxBlob* navFloorBoxes = queryDynamicOutputBlob->m_navFloorBoxes.GetValues();
41  for (KyUInt32 i = 0; i < queryDynamicOutputBlob->m_navFloorBoxes.GetCount(); ++i)
42  {
43  displayList->PushBox(navFloorBoxes[i].m_floorAABB, shapeColor);
44  }
45 
46  const NavTagSubSegmentBlob* navTagSubSegments = queryDynamicOutputBlob->m_navTagSubSegments.GetValues();
47  for (KyUInt32 i = 0; i < queryDynamicOutputBlob->m_navTagSubSegments.GetCount(); ++i)
48  {
49  displayList->PushLine(navTagSubSegments[i].m_entrancePos3f, navTagSubSegments[i].m_exitPos3f,
50  (i%2 == 0 ? Color::Orange : Color::Yellow));
51  }
52 
53  // spatializedPoints
54  const SpatializedPointBlob* spatializedPoints = queryDynamicOutputBlob->m_spatializedPoints.GetValues();
55  for (KyUInt32 i = 0; i < queryDynamicOutputBlob->m_spatializedPoints.GetCount(); ++i)
56  {
57  displayList->PushPoint(spatializedPoints[i].m_position, color);
58  }
59  }
60 };
61 
62 }
63 
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17