VR-Forces 4.7 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 drawCollisionObjects();
80  virtual bool drawQuery();
81  virtual bool drawElevationTiles();
82  virtual bool drawTerrainSkin();
83  unsigned maxTrianglesToDraw();
85 
87 
88  virtual bool processTerrainTriangle(const DtTerrainTriangleStruct& triangle, unsigned triangleNum);
89  virtual void processQueryAABB(
90  const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
91  virtual bool processObjectAABB(
92  unsigned index, const DtVector& min, const DtVector& max, const DtCoordTransform& toLocal);
93  virtual bool processElevationTile(
94  unsigned index, const DtVector &p1, const DtVector& p2, const DtVector& p3, const DtVector& p4);
96 
98 
99  static void verticesChangedCallback(DtVrfObject* object, void* usr);
100  virtual void processVerticesChanged(DtVrfObject* object);
101  virtual void dynamicTerrainFeatureChanged();
103 
105 
106  virtual bool drawTriangle(const DtTerrainTriangleStruct& triangle);
107  virtual bool drawLine(const DtString& name, const DtVector& p1, const DtVector& p2,
108  unsigned red = 0, unsigned green = 255, unsigned blue = 0);
110 
111 private:
113 
118 
119 protected:
130 
131  tbb::atomic<bool> myTriggerUpdateFlag;
132  double myLastTime;
133 
134  std::list <boost::signals2::connection> myFeatureConnections;
135 };
136 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)