VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simTerrainVisualizationController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
16 
17 #include <boost/signals2.hpp>
18 
19 #include <tbb/atomic.h>
20 
21 namespace makVrv
22 {
23  class DtDynamicTerrainFeature;
24 }
25 
28 {
29 public:
30 
34  DtVrfObject* owner,
35  DtSimManager* simManager,
36  DtComponentDescriptor* desc = 0,
37  DtReaderWriterRegistry* parentRegistry = 0);
38 
41 
44  virtual const char* type() const;
45 
46  virtual bool init();
47 
48  virtual bool taskVisualizationsActive() const;
49 
50  virtual void preFirstTickInit();
51 
53  virtual void tick();
54 
58  static DtSimComponent * creator(const DtString& name,
59  DtVrfObject* owner,
60  DtSimManager* simManager,
61  DtComponentDescriptor* desc = 0,
62  DtReaderWriterRegistry* parentRegistry = 0);
63 
64 protected:
65  class OutputIFace;
66  friend class OutputIFace;
67 
69  virtual void updateTerrainVisualization();
71  virtual void addDynamicTerrainFeatureCallbacks(const makVrv::DtDynamicTerrainFeature&);
73  void disconnectFromDynamicTerrainFeatures();
74 
75 
77 
78  virtual bool forcePaging();
79  virtual bool drawAABBs();
80  virtual bool drawTerrainSkin();
81  unsigned maxTrianglesToDraw();
83 
85 
86  virtual bool processTerrainTriangle(const DtTerrainTriangleStruct& triangle, unsigned triangleNum);
87  virtual void processQueryAABB(
88  const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
89  virtual bool processObjectAABB(
90  unsigned index, const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
91  virtual bool processElevationTile(
92  unsigned index, const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
94 
96 
97  static void verticesChangedCallback(DtVrfObject* object, void* usr);
98  virtual void processVerticesChanged(DtVrfObject* object);
99  virtual void dynamicTerrainFeatureChanged();
101 
103 
104  virtual bool drawTriangle(const DtTerrainTriangleStruct& triangle);
105  virtual bool drawLine(const DtString& name, const DtVector& p1, const DtVector& p2,
106  unsigned red = 0, unsigned green = 255, unsigned blue = 0);
108 
109 private:
111 
116 
117 protected:
125 
126  tbb::atomic<bool> myTriggerUpdateFlag;
127 
128  std::list <boost::signals2::connection> myFeatureConnections;
129 };
130 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)