gwnavgeneration/boundary/boundarytypes.h Source File

boundarytypes.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 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 
8 
9 
10 
11 // primary contact: GUAL - secondary contact: NOBODY
12 #ifndef GwNavGen_BoundaryTypes_H
13 #define GwNavGen_BoundaryTypes_H
14 
15 
17 
18 
19 namespace Kaim
20 {
21  // world coordinates
22  typedef KyInt32 BoundaryCoord;
23  typedef Vec2i BoundaryPos;
24  typedef Box2i BoundaryBox;
25 
26  // relative to NavPixelBox
27  typedef KyInt32 NavBoundaryCoord;
28  typedef Vec2i NavBoundaryPos;
29 
30  // relative to NavPixelBox
31  typedef KyInt32 NavPixelCoord;
32  typedef Vec2i NavPixelPos;
33  typedef Vec3i NavPixelPos3d;
34 
35  // relative to exclusivePixelBox
36  typedef KyInt32 ExclBoundaryCoord;
37  typedef Vec2i ExclBoundaryPos;
38  typedef Vec3i ExclBoundaryVertexPos; // x and y are relative to exclusivePixelBox
39 
40  enum BoundaryEdgeType
41  {
42  BoundaryEdgeType_CellLink_East = 0,
43  BoundaryEdgeType_CellLink_North = 1,
44  BoundaryEdgeType_CellLink_West = 2,
45  BoundaryEdgeType_CellLink_South = 3,
46  BoundaryEdgeType_FloorLink = 4, //Represent the outer edges of a 2d floor
47  BoundaryEdgeType_ConnexLink = 5, //Represent and edge that separate 2 navTag in the same layer
48  BoundaryEdgeType_Wall = 6,
49  BoundaryEdgeType_Hole = 7,
50  BoundaryEdgeType_Unset = KyUInt32MAXVAL
51  };
52 
53  KY_INLINE bool IsBoundaryEdgeOnFloorOrCellLink(BoundaryEdgeType type) { return type < BoundaryEdgeType_ConnexLink; }
54 
55  typedef KyInt32 BoundaryVertexStaticStatus;
56  static const BoundaryVertexStaticStatus BoundaryVertexStaticStatus_Dynamic = 0;
57  static const BoundaryVertexStaticStatus BoundaryVertexStaticStatus_Static = 1;
58  static const BoundaryVertexStaticStatus BoundaryVertexStaticStatus_Narrow = 2;
59  static const BoundaryVertexStaticStatus BoundaryVertexStaticStatus_FeatureDiscontinuity = 3;
60 
61  typedef KyUInt32 BoundaryIsVisitedStatus;
62  static const BoundaryIsVisitedStatus BoundaryIsVisitedStatus_Unvisited = 0;
63  static const BoundaryIsVisitedStatus BoundaryIsVisitedStatus_Visited = 1;
64  static const BoundaryIsVisitedStatus BoundaryIsVisitedStatus_NoNeedToBeVisited = 2;
65 
66  typedef KyUInt32 BoundaryPolylineCycleStatus;
67  static const BoundaryPolylineCycleStatus PolylineCycleStatus_NotCycle = 0;
68  static const BoundaryPolylineCycleStatus PolylineCycleStatus_Cycle = 1;
69  static const BoundaryPolylineCycleStatus PolylineCycleStatus_Unset = KyUInt32MAXVAL;
70 
71  typedef KyUInt32 BoundarySide;
72  static const BoundarySide BoundarySide_Left = 0;
73  static const BoundarySide BoundarySide_Right = 1;
74  static const BoundarySide BoundarySide_Unset = KyUInt32MAXVAL;
75 
76  typedef KyUInt32 ContourWinding;
77  static const ContourWinding ContourWinding_CCW = 0;
78  static const ContourWinding ContourWinding_CW = 1;
79  static const ContourWinding ContourWinding_Unset = KyUInt32MAXVAL;
80 
81  typedef KyUInt32 BoundaryOrder;
82  static const BoundaryOrder BoundaryOrder_Straight = 0;
83  static const BoundaryOrder BoundaryOrder_Reverse = 1;
84  static const BoundaryOrder BoundaryOrder_Unset = KyUInt32MAXVAL;
85 }
86 
87 
88 #endif
int KyInt32
Type used internally to represent a 32-bit integer.
Definition: types.h:35
Definition: gamekitcrowddispersion.h:20
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