VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 
18 namespace BHAVE
19 {
22 enum DT_DLL_bhaveSim DtPieCollisionQueryResult
23 {
33  PIECOLLISION_FORCE32 = 0xFFFFFFFF
34 };
35 
42 {
43  KY_DEFINE_NEW_DELETE_OPERATORS
44 
45 public:
47  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) {}
48 
52  DtPieCollisionQuery(const Kaim::Vec3f& center, KyFloat32 radius, KyFloat32 startingRadian, KyFloat32 endingRadian) :
53  m_centerPos3f(center), m_centerCoordPos(Kaim::InvalidCoord64, Kaim::InvalidCoord64), m_radius(radius),
54  m_terrainTypeMask(Kaim::NavTerrainTypeMask_All), m_searchRange(1.f),
55  myStartingRadian(startingRadian), myEndingRadian(endingRadian), m_returnCode(PIECOLLISION_QUERY_NOT_PROCESSED) {}
56 
61  DtPieCollisionQuery(const Kaim::Vec3f& center, KyFloat32 radius, KyFloat32 startingRadian, KyFloat32 endingRadian, Kaim::NavTriangleId centerTriangleId) :
62  m_centerPos3f(center), m_centerCoordPos(Kaim::InvalidCoord64, Kaim::InvalidCoord64), m_centerTriangleId(centerTriangleId), m_radius(radius),
63  myStartingRadian(startingRadian), myEndingRadian(endingRadian), m_terrainTypeMask(Kaim::NavTerrainTypeMask_All), m_searchRange(1.f), m_returnCode(PIECOLLISION_QUERY_NOT_PROCESSED) {}
64 
66  KY_FORCE_INLINE DtPieCollisionQueryResult GetResult() const { return m_returnCode; }
67 
69  KY_FORCE_INLINE void Clear()
70  {
71  m_radius = 0.f;
72  m_centerPos3f.Set(0.f, 0.f, 0.f);
73  m_centerCoordPos.Set(Kaim::InvalidCoord64, Kaim::InvalidCoord64);
74 
75  m_centerTriangleId.Invalidate();
76  m_terrainTypeMask = Kaim::NavTerrainTypeMask_All;
77  m_searchRange = 1.f;
78 
79  CleanOutput();
80  }
81 
83  KY_FORCE_INLINE void CleanOutput() { m_returnCode = PIECOLLISION_QUERY_NOT_PROCESSED; }
84 
86  KY_FORCE_INLINE Kaim::Vec3f& GetCenter() { return m_centerPos3f; }
87 
89  KY_FORCE_INLINE const Kaim::Vec3f& GetCenter() const { return m_centerPos3f; }
90 
92  KY_FORCE_INLINE Kaim::NavTriangleId& GetCenterTriangleId() { return m_centerTriangleId; }
93 
95  KY_FORCE_INLINE const Kaim::NavTriangleId& GetCenterTriangleId() const { return m_centerTriangleId; }
96 
98  KY_FORCE_INLINE KyFloat32 GetRadius() const { return m_radius; }
99 
101  KY_FORCE_INLINE Kaim::NavTerrainTypeMask GetTerrainTypeMask() const { return m_terrainTypeMask; }
102 
104  KY_FORCE_INLINE void SetTerrainTypeMask(Kaim::NavTerrainTypeMask terrainTypeMask) { m_terrainTypeMask = terrainTypeMask; }
105 
107  KY_FORCE_INLINE KyFloat32 GetSearchRange() const { return m_searchRange; }
108 
110  KY_FORCE_INLINE void SetSearchRange(KyFloat32 searchRange) { m_searchRange = searchRange; }
111 
113  void PerformQuery(Kaim::NavMeshQueryServer& queryServer);
114 
116  void PerformQueryWithInputCoordPos(Kaim::NavMeshQueryServer& queryServer);
117 
118 public:
120  Kaim::Vec3f m_centerPos3f;
121 
123  Kaim::CoordPos64 m_centerCoordPos;
124 
127  Kaim::NavTriangleId m_centerTriangleId;
128 
130  KyFloat32 m_radius;
131 
133  Kaim::NavTerrainTypeMask m_terrainTypeMask;
134 
137  KyFloat32 m_searchRange;
138 
141  Kaim::PropagationQueryMemory m_memory;
142 
144  DtPieCollisionQueryResult m_returnCode;
145 
147  KyFloat32 myStartingRadian;
148 
150  KyFloat32 myEndingRadian;
151 };
152 
153 
154 }
155 
156 
157 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)