gwnavruntime/navmesh/navfloorvisualgeometrybuilder.h Source File

navfloorvisualgeometrybuilder.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 
12 
13 namespace Kaim
14 {
15 
16 class NavFloor;
17 class NavFloorBlob;
18 class NavFloor1To1StitchDataBlob;
19 
21 class NavFloorVisualGeometryBuilder : public IVisualGeometryBuilder
22 {
23 public:
24  NavFloorVisualGeometryBuilder(NavFloor* navFloor, KyInt32 cellSizeInPixel, KyFloat32 integerPrecision);
25 
26  virtual void DoBuild();
27 
28 private:
29  void RenderInvalidLink(const NavHalfEdgeIdx edgeIdx, const NavFloorBlob& currentFloorBlob, const CoordPos64 cellOrigin);
30 
31 public:
32  NavFloor* m_navFloor;
33  KyFloat32 m_integerPrecision;
34  KyInt32 m_cellSizeInPixel;
35  KyInt32 m_cellSizeInCoord;
36  DatabaseVisualDetails::Enum m_databaseVisualDetails;
37 };
38 
39 class NavFloorBlobVisualGeometryBuilder : public IVisualGeometryBuilder
40 {
41 public:
42  NavFloorBlobVisualGeometryBuilder(const NavFloorBlob* navFloorBlob, KyUInt32 floorIdx, KyFloat32 integerPrecision, KyInt32 cellSizeInCoord, const CellPos& cellPos);
43 
44  virtual void DoBuild();
45 
46  void RenderEdge(NavHalfEdgeType edgeType, const CoordPos64& start64, const CoordPos64& end64, const Vec3f& start, const Vec3f& end);
47  void RenderStitchDataBlob(const CoordPos64& cellOrigin);
48 
49 public:
50  const NavFloorBlob* m_navFloorBlob;
51  KyFloat32 m_integerPrecision;
52  KyInt32 m_cellSizeInCoord;
53  KyUInt32 m_floorIdx;
54  CellPos m_cellPos;
55  const NavFloor1To1StitchDataBlob* m_stitchDataBlob;
56  DatabaseVisualDetails::Enum m_databaseVisualDetails;
57 };
58 
59 }
60 
This class is a runtime wrapper of a NavFloorBlob, it gathers all the runtime information associated ...
Definition: navfloor.h:32
The NavFloorBlob contains a connected and not overlapping part of triangle mesh static data within a ...
Definition: navfloorblob.h:38
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
KyUInt32 NavHalfEdgeIdx
An index that uniquely identifies a single edge of a triangle within the set of edges owned by a NavF...
Definition: navmeshtypes.h:84
Displays a NavFloor.
Definition: navfloorvisualgeometrybuilder.h:21
2d vector using KyInt64
Definition: vec2ll.h:18
2d vector using KyInt32
Definition: vec2i.h:18
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
std::int32_t KyInt32
int32_t
Definition: types.h:24
NavHalfEdgeType
Enumerates the possible types of boundary that can be represented by a NavHalfEdge.
Definition: navmeshtypes.h:49
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16