VR-Forces 4.3 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 
14 #include <geometry/intersectionRecord.h>
15 #include <geometry/chord.h>
16 #include <gdb/vectorNetworkRecord.h>
17 #include <gdb/vectorNetworkIntersectionRecord.h>
18 #include <geometry/chordIntersectRecordList.h>
19 #include "tdbutil/stringKeyFactory.h"
22 #include "features/feature.h"
23 #include "features/featureSet.h"
26 
27 #include <string>
28 #include <boost/noncopyable.hpp>
29 
30 class DtChordIntersectionRecord;
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 
79  virtual DtTerrainInterfaceConfig& configurationOptions();
80  virtual const DtTerrainInterfaceConfig& configurationOptions() const;
81 
101  virtual bool chordIntersect(const DtChord& chord,
102  DtChordIntersectionRecord& record,
103  DtIntersectionRecord::DtIntersectionType irtFlag =
104  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
105  bool overrideBlockingAssert = false) const = 0;
106 
126  virtual bool allIntersectsAlongChord(const DtChord& chord,
127  DtChordIntersectRecordList& intList,
128  DtIntersectionRecord::DtIntersectionType irtFlag =
129  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
130  bool overrideBlockingAssert = false) const = 0;
131 
146  virtual void preloadTerrainAreas(
147  const DtTerrainPagingGeometryList& preloadGeometry) {};
148 
151  virtual const DtTerrainCapabilities* terrainCapabilities() const = 0;
152 
163  virtual void setAssertOnBlockingTerrainCalls(bool assertBlock);
164  virtual bool assertOnBlockingTerrainCalls() const;
166 
172  virtual void setIntersectDataLoadExpireTime(const double& expireTime) {};
173 
178  virtual void expireDataLoadRequestsBeforeTime(const double& currentTime) {};
179 
180  virtual void processTrianglesInArea(DtTriangleCallbackFcn func, DtTriangleCallbackFinalizeFcn finalize, DtTerrainProcessPolygonsBox& box, void* usr) const;
181 
182  virtual void breakUpChords(const MAKVRinTerra::DtProj&, const DtChord& chord,
183  std::vector<DtChord>& chords);
184 
185 protected:
187 
192 
193  const boost::scoped_ptr<MAKVRinTerra::DtFeatureDatabase> myFeatureDatabase;
194  boost::scoped_ptr<MAKVRinTerra::DtFeatureContext> myFeatureContext;
195 };
196 
197 typedef DtStringKeyFactoryWithParam<DtTerrainImplementation,
199 typedef DtTerrainImplementationFactory::DtCreatorFcn

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)