8 #ifndef Navigation_NavFloorBlobBuilder_H
9 #define Navigation_NavFloorBlobBuilder_H
16 class DynamicNavFloor;
18 class NavFloor1To1StitchDataBlob;
19 class NavFloor1To1StitchDataBlobBuilder;
20 class Stitch1To1ToHalfEdgeInFloor;
22 class DynamicNavVertex;
25 class NavFloorBlobBuilder :
public BaseBlobBuilder<NavFloorBlob>
29 NavFloorBlobBuilder(const DynamicNavFloor& dynamicNavFloor, const NavFloor1To1StitchDataBlob* floor1To1StitchData,
bool hasDifferentLinkFromStitch1To1Edge) :
30 m_dynamicNavFloor(&dynamicNavFloor), m_floor1To1StitchData(floor1To1StitchData), m_hasDifferentLinkFromStitch1To1Edge(hasDifferentLinkFromStitch1To1Edge) {}
33 virtual void DoBuild();
35 void WriteNavHalfEdges(NavHalfEdge* edges,
KyUInt32 numberOfTriangles)
const;
36 void ComputeNavFloorAABB(
KyUInt32 numberOfVertices);
38 const DynamicNavFloor* m_dynamicNavFloor;
39 const NavFloor1To1StitchDataBlob* m_floor1To1StitchData;
40 bool m_hasDifferentLinkFromStitch1To1Edge;
43 class NavFloor1To1StitchDataBlobBuilder :
public BaseBlobBuilder<NavFloor1To1StitchDataBlob>
47 NavFloor1To1StitchDataBlobBuilder(const DynamicNavFloor& dynamicNavFloor) :
48 m_dynamicNavFloor(&dynamicNavFloor) {}
51 virtual void DoBuild();
52 void PushVertex(
const DynamicNavVertex& vertex, NavVertex* navVerticesBuffer,
KyFloat32* navVertexAltitudesBuffer,
KyUInt32 currentVertexIdx);
55 KY_ASSERT(startVertexIdx !=
KyUInt32MAXVAL && ((startVertexIdx & 0xFFF00000) == 0));
56 KY_ASSERT(endVertexIdx !=
KyUInt32MAXVAL && ((endVertexIdx & 0xFFF00000) == 0));
58 edgeData |= startVertexIdx;
59 edgeData |= (endVertexIdx << 12);
60 edgeData |= (edgeType << 29);
63 const DynamicNavFloor* m_dynamicNavFloor;
67 class Stitch1To1ToHalfEdgeInFloorBlobBuilder :
public BaseBlobBuilder<Stitch1To1ToHalfEdgeInFloor>
71 Stitch1To1ToHalfEdgeInFloorBlobBuilder(const DynamicNavFloor* dynamicNavFloor, const NavFloor1To1StitchDataBlob* floor1To1StitchData,
72 bool hasDifferentLinkFromStitch1To1Edge) :
73 m_dynamicNavFloor(dynamicNavFloor), m_floor1To1StitchDataBlob(floor1To1StitchData), m_hasDifferentLinkFromStitch1To1Edge(hasDifferentLinkFromStitch1To1Edge) {}
76 virtual void DoBuild();
79 const DynamicNavFloor* m_dynamicNavFloor;
80 const NavFloor1To1StitchDataBlob* m_floor1To1StitchDataBlob;
81 bool m_hasDifferentLinkFromStitch1To1Edge;
87 #endif // Navigation_NavFloorBlobBuilder_H
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
#define KyUInt32MAXVAL
The maximum value that can be stored in the KyUInt32 variable type.
Definition: types.h:226
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43