gwnavgeneration/navraster/navrastertypes.h Source File

navrastertypes.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 
10 
11 namespace Kaim
12 {
13 
14 typedef KyUInt16 NavRasterNeighborType;
15 static const NavRasterNeighborType NavRasterNeighborType_CONNECT = 0;
16 static const NavRasterNeighborType NavRasterNeighborType_HOLE = 1;
17 static const NavRasterNeighborType NavRasterNeighborType_WALL = 2;
18 static const NavRasterNeighborType NavRasterNeighborType_OUTSIDE = 4;
19 
20 typedef KyUInt32 PixelColor;
21 static const PixelColor PixelColor_Unset = KyUInt32MAXVAL;
22 static const PixelColor PixelColor_IrrelevantColor = KyUInt32MAXVAL - 7; //to be compliant with boundary colors
23 
24 typedef KyUInt32 NavRasterFloorIdx;
25 static const NavRasterFloorIdx NavRasterFloorIdx_Invalid = KyUInt32MAXVAL;
26 
27 typedef KyUInt32 NavRasterCardinalDir;
28 static const NavRasterCardinalDir NavRasterCardinalDir_EAST = CardinalDir_EAST ; // 0
29 static const NavRasterCardinalDir NavRasterCardinalDir_NORTH = CardinalDir_NORTH; // 1
30 static const NavRasterCardinalDir NavRasterCardinalDir_WEST = CardinalDir_WEST ; // 2
31 static const NavRasterCardinalDir NavRasterCardinalDir_SOUTH = CardinalDir_SOUTH; // 3
32 static const NavRasterCardinalDir NavRasterCardinalDir_NORTH_EAST = 4;
33 static const NavRasterCardinalDir NavRasterCardinalDir_NORTH_WEST = 5;
34 static const NavRasterCardinalDir NavRasterCardinalDir_SOUTH_WEST = 6;
35 static const NavRasterCardinalDir NavRasterCardinalDir_SOUTH_EAST = 7;
36 KY_INLINE bool IsNavRasterCardinalDirOnDiagonal(const NavRasterCardinalDir dir) { return dir >= 4; }
37 
38 KY_INLINE Vec2i GetNavRasterPixelNeighbor(const Vec2i& v, NavRasterCardinalDir dir)
39 {
40  // N E S W NE NW SW SE
41  const KyInt8 dx[8] = { 1, 0, -1, 0, 1, -1, -1, 1};
42  const KyInt8 dy[8] = { 0, 1, 0, -1, 1, 1, -1, -1};
43  return Vec2i(v.x + dx[dir], v.y + dy[dir]);
44 }
45 
46 enum NavRasterFeatureMask
47 {
48  NavRasterPixelFeature_None = 0,
49  NavRasterPixelFeature_Hole = 1,
50  NavRasterPixelFeature_Wall = 2,
51  NavRasterPixelFeature_Wall_And_Hole = NavRasterPixelFeature_Hole | NavRasterPixelFeature_Wall
52 };
53 
54 }
static const CardinalDir CardinalDir_NORTH
Y positive axis.
Definition: cardinaldir.h:17
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
std::uint16_t KyUInt16
uint16_t
Definition: types.h:28
static const CardinalDir CardinalDir_SOUTH
Y negative axis.
Definition: cardinaldir.h:19
static const CardinalDir CardinalDir_EAST
X positive axis.
Definition: cardinaldir.h:16
static const CardinalDir CardinalDir_WEST
X negative axis.
Definition: cardinaldir.h:18
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
std::int8_t KyInt8
int8_t
Definition: types.h:22
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68