VR-Forces 4.1 Class Documentation
pieCollisionQuery.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2009 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 
7 #pragma once
8 
9 
10 #include "kypathdata/navmesh/navmeshtypes.h"
11 #include "kypathdata/navmesh/navtriangleid.h"
12 #include "kypathdata/generic/memory.h"
13 #include "kypathdata/navmesh/propagationquerymemory.h"
14 #include "kypathdata/navmesh/navmeshqueryserver.h"
15 #include "kypathdata/math/vec3f.h"
16 
17 namespace BHAVE
18 {
22 {
32  PIECOLLISION_FORCE32 = 0xFFFFFFFF
33 };
34 
41 {
42  KY_DEFINE_NEW_DELETE_OPERATORS
43 
44 public:
46  DtPieCollisionQuery() : m_centerCoordPos(Kaim::InvalidCoord64, Kaim::InvalidCoord64), m_radius(0.f), m_terrainTypeMask(Kaim::NavTerrainTypeMask_All), m_searchRange(1.f), m_returnCode(PIECOLLISION_QUERY_NOT_PROCESSED) {}
47 
51  DtPieCollisionQuery(const Kaim::Vec3f& center, KyFloat32 radius, KyFloat32 startingRadian, KyFloat32 endingRadian) :
52  m_centerPos3f(center), m_centerCoordPos(Kaim::InvalidCoord64, Kaim::InvalidCoord64), m_radius(radius),
53  m_terrainTypeMask(Kaim::NavTerrainTypeMask_All), m_searchRange(1.f),
55 
60  DtPieCollisionQuery(const Kaim::Vec3f& center, KyFloat32 radius, KyFloat32 startingRadian, KyFloat32 endingRadian, Kaim::NavTriangleId centerTriangleId) :
61  m_centerPos3f(center), m_centerCoordPos(Kaim::InvalidCoord64, Kaim::InvalidCoord64), m_centerTriangleId(centerTriangleId), m_radius(radius),
62  myStartingRadian(startingRadian), myEndingRadian(endingRadian), m_terrainTypeMask(Kaim::NavTerrainTypeMask_All), m_searchRange(1.f), m_returnCode(PIECOLLISION_QUERY_NOT_PROCESSED) {}
63 
65  KY_FORCE_INLINE DtPieCollisionQueryResult GetResult() const { return m_returnCode; }
66 
68  KY_FORCE_INLINE void Clear()
69  {
70  m_radius = 0.f;
71  m_centerPos3f.Set(0.f, 0.f, 0.f);
72  m_centerCoordPos.Set(Kaim::InvalidCoord64, Kaim::InvalidCoord64);
73 
74  m_centerTriangleId.Invalidate();
75  m_terrainTypeMask = Kaim::NavTerrainTypeMask_All;
76  m_searchRange = 1.f;
77 
78  CleanOutput();
79  }
80 
83 
85  KY_FORCE_INLINE Kaim::Vec3f& GetCenter() { return m_centerPos3f; }
86 
88  KY_FORCE_INLINE const Kaim::Vec3f& GetCenter() const { return m_centerPos3f; }
89 
91  KY_FORCE_INLINE Kaim::NavTriangleId& GetCenterTriangleId() { return m_centerTriangleId; }
92 
94  KY_FORCE_INLINE const Kaim::NavTriangleId& GetCenterTriangleId() const { return m_centerTriangleId; }
95 
97  KY_FORCE_INLINE KyFloat32 GetRadius() const { return m_radius; }
98 
100  KY_FORCE_INLINE Kaim::NavTerrainTypeMask GetTerrainTypeMask() const { return m_terrainTypeMask; }
101 
103  KY_FORCE_INLINE void SetTerrainTypeMask(Kaim::NavTerrainTypeMask terrainTypeMask) { m_terrainTypeMask = terrainTypeMask; }
104 
106  KY_FORCE_INLINE KyFloat32 GetSearchRange() const { return m_searchRange; }
107 
109  KY_FORCE_INLINE void SetSearchRange(KyFloat32 searchRange) { m_searchRange = searchRange; }
110 
112  void PerformQuery(Kaim::NavMeshQueryServer& queryServer);
113 
115  void PerformQueryWithInputCoordPos(Kaim::NavMeshQueryServer& queryServer);
116 
117 public:
119  Kaim::Vec3f m_centerPos3f;
120 
122  Kaim::CoordPos64 m_centerCoordPos;
123 
126  Kaim::NavTriangleId m_centerTriangleId;
127 
129  KyFloat32 m_radius;
130 
132  Kaim::NavTerrainTypeMask m_terrainTypeMask;
133 
136  KyFloat32 m_searchRange;
137 
140  Kaim::PropagationQueryMemory m_memory;
141 
144 
146  KyFloat32 myStartingRadian;
147 
149  KyFloat32 myEndingRadian;
150 };
151 
152 
153 }
154 
155 
156 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)