VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
terrainImplementation.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include <geometry/chord.h>
22 #include "features/feature.h"
23 #include "features/featureSet.h"
26 
27 #include <string>
28 #include <boost/noncopyable.hpp>
29 
31 class DtString;
32 class Coordinate_System;
35 
36 namespace makArchives
37 {
38  class DtGenericTerrainRecord;
39 }
40 
41 namespace MAKVRinTerra
42 {
43  class DtProj;
44 }
45 
50  : boost::noncopyable
51 {
52 public:
54  virtual ~DtTerrainImplementation();
55 
57  virtual MAKVRinTerra::DtFeatureDatabase& featureDatabase();
58  virtual const MAKVRinTerra::DtFeatureDatabase& featureDatabase() const;
59 
61  virtual MAKVRinTerra::DtFeatureContext& featureContext();
62  virtual const MAKVRinTerra::DtFeatureContext& featureContext() const;
63 
65  virtual void init();
66 
69  virtual void finishedLoading(const MAKVRinTerra::DtProj& proj);
70 
72  virtual bool loadTerrain(const makArchives::DtGenericTerrainRecord& rec) = 0;
73 
75  virtual void shutdown(bool block=true);
76 
77  virtual const Coordinate_System* coordinateSystem() const = 0;
78 
81  virtual double modelHeightDifferencesFromAppearances(int oldApp, int newApp) const;
82 
84  virtual bool createFromExtent(const Dt3dBoundingVolume&);
85 
88  virtual bool loadModel(const DtFilename&, const DtEntityType& t = DtEntityType());
89 
90  virtual DtTerrainInterfaceConfig& configurationOptions();
91  virtual const DtTerrainInterfaceConfig& configurationOptions() const;
92 
113  virtual bool chordIntersect(const DtChord& chord,
116  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
117  bool overrideBlockingAssert = false, int flags = 0) const = 0;
118 
139  virtual bool allIntersectsAlongChord(const DtChord& chord,
142  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
143  bool overrideBlockingAssert = false, int flags = 0) const = 0;
144 
159  virtual void preloadTerrainAreas(
160  const DtTerrainPagingGeometryList& preloadGeometry) {};
161 
164  virtual const DtTerrainCapabilities* terrainCapabilities() const = 0;
165 
176  virtual void setAssertOnBlockingTerrainCalls(bool assertBlock);
177  virtual bool assertOnBlockingTerrainCalls() const;
179 
182  virtual void setWarnOnBlockingTerrainCalls(bool warnBlock);
183  virtual bool warnOnBlockingTerrainCalls() const;
185 
191  virtual void setIntersectDataLoadExpireTime(const double& expireTime) {};
192 
197  virtual void expireDataLoadRequestsBeforeTime(const double& currentTime) {};
198 
199  virtual void processTrianglesInArea(DtTriangleCallbackFcn func, DtTriangleCallbackFinalizeFcn finalize, DtTerrainProcessPolygonsBox& box, void* usr) const;
200 
201  virtual void breakUpChords(const MAKVRinTerra::DtProj&, const DtChord& chord,
202  std::vector<DtChord>& chords);
203 
205  virtual bool hasFeatureContext() const;
206 
207 protected:
209 
215 
216  boost::scoped_ptr<MAKVRinTerra::DtFeatureDatabase> myFeatureDatabase;
217  boost::scoped_ptr<MAKVRinTerra::DtFeatureContext> myFeatureContext;
218 };
219 

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)