gwnavruntime/abstractgraph/blobs/abstractgraphfloorgenerator.h Source File

abstractgraphfloorgenerator.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 
11 
12 
13 namespace Kaim
14 {
15 
16 class NavCellBlob;
17 class AbstractGraphGenerator;
18 class AbstractGraphCellFloorIndices;
19 
20 class AbstractGraphFloorGenerator
21 {
22  KY_DEFINE_NEW_DELETE_OPERATORS(MemStat_NavDataGen)
23 public:
24  AbstractGraphFloorGenerator();
25 
26  void Generate(AbstractGraphGenerator* generator, const NavCellBlob* navCellBlob, KyUInt32 navFloorIdx, KyUInt32 wantedBoundariesType,
27  AbstractGraphCellFloorIndices& graphCellFloorIndices);
28 
29  void ClearAndRelease();
30 
31 public:
32  void GenerateOnCellBoundary(CardinalDir cellBoundaryDir);
33 
34  void CreateNodes(CardinalDir cellBoundaryDir);
35 
36 public:
37  AbstractGraphGenerator* m_generator;
38  const NavCellBlob* m_navCellBlob;
39  KyUInt32 m_originalNavFloorIdx;
40  KyUInt32 m_wantedCellBoundaries;
41 
42  CompactAbstractGraphNodeIdx m_abstractGraphNodeFirstIdx;
43  KyUInt16 m_firstIdxForCellBoundaryDir[4];
44  KyUInt16 m_countForCellBoundaryDir[4];
45  KyArrayPOD<KyFloat32, MemStat_NavDataGen> m_altitudes;
46  KyArrayPOD<AbstractGraphVertex, MemStat_NavDataGen> m_nodeVertices; // Note that nodes are sorted along the Y axis for EAST and WEST cell boundaries, or the X axis for NORTH and SOUTH cell boundaries
47 };
48 
49 }
50 
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
KyUInt32 CardinalDir
Defines a type that refers to one of the cardinal points on the compass:
Definition: cardinaldir.h:15
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
std::uint16_t KyUInt16
uint16_t
Definition: types.h:28
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32