VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfNavAreaManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vector>
14 #include <map>
15 
16 #include <matrix/vlVector.h>
18 
19 class DtTerrainInterface;
20 class DtSimManager;
21 class DtVrfObject;
22 class DtLocalVertexList;
23 class DtNavArea;
24 class DtSimMessage;
25 class Coordinate_System;
26 class DtUUID;
27 
28 namespace makArchives
29 {
30  class DtGenericTerrainRecord;
31 }
32 
34 typedef void (*DtNavAreaRemovalCallbackFcn)(DtNavArea* area,
35  void* usr);
36 
41 {
42 public:
43 
45 
47  virtual ~DtVrfNavAreaManager();
48 
49  static void tickCallback(void* args);
50 
51  //Register callback on DtIfRequestNavAreaDebugPorts messages.
52  virtual bool init();
53 
54  virtual void tick();
55 
56  virtual void setTerrainInterface(DtTerrainInterface* terrainInterface);
57 
58  static void genericRecordLoadedCallback(
59  makArchives::DtGenericTerrainRecord* record, void *user);
60  virtual void processGenericRecordLoaded(
62 
63  void loadObjectNavData(DtVrfObject* simObject);
64  void removeObjectNavData(DtVrfObject* simObject);
65  DtNavArea* areaForObject(DtVrfObject* simObject) const;
66 
68  virtual void unloadAllNavData();
69 
73  virtual DtNavArea* findNavAreaForLocation(const DtVector& localPosition,
74  DtVrfObject* parentObject = 0);
75  virtual std::vector<DtNavArea*> findNavAreasForLocation(const DtVector& localPosition,
76  DtVrfObject* parentObject = 0);
77  virtual DtNavArea* findNavAreaForArea(const DtLocalVertexList* area,
78  DtVrfObject* parentObject = 0);
79 
82  virtual void addNavAreaAboutToBeRemovedCallback(
83  DtNavAreaRemovalCallbackFcn fcn, void* usrData);
84 
87  virtual void removeNavAreaAboutToBeRemovedCallback(
88  DtNavAreaRemovalCallbackFcn fcn, void* usrData);
90 
91  //If navArea debugging is on, send debug info for all navAreas.
92  static void requestNavAreaDebugPortsCallback(DtSimMessage*, void* usr);
93  virtual void processRequestNavAreaDebugPorts();
94 
95  static void requestSimObjectDebugPortsCallback(DtSimMessage* msg, void* usr);
96  virtual void processRequestSimObjectDebugPortsCallback(DtUUID uuid);
97 
98  virtual void sendNavDataDebugPorts();
99 
100  static void setGamewareWorkingMemorySize(int sizeInMb);
101 
102 protected:
103 
104  static void objectAboutToBeRemovedCallback(DtVrfObject* simObject, void* userData);
105  virtual void processObjectAboutToBeRemoved(DtVrfObject* simObject);
106 
108  virtual void invokeAreaAboutToBeDeletedCallbacks(DtNavArea*);
109 
110 protected:
112 
113  typedef std::vector<DtNavArea*> DtNavAreas;
115 
116  typedef std::map<DtVrfObject*, DtNavArea*> DtObjectNavAreaMap;
122 
124 
127 };
128 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)