28 #include <vlpi/appearance.h>
31 #include <boost/noncopyable.hpp>
52 class DtGenericTerrainRecord;
55 namespace MAKVRinTerra
62 class DtDynamicTerrainGeometry;
63 class DtDynamicTerrainChange;
64 class DtDynamicTerrainFeature;
65 class DtDynamicTerrainChanges;
79 virtual void removeTerrainChange() = 0;
80 virtual void releaseOwnership() = 0;
92 void removeTerrainChange();
96 void releaseOwnership();
100 boost::shared_ptr<RequestHandleImpl>
myImpl;
114 virtual void removeQuery() = 0;
115 virtual void releaseOwnership() = 0;
129 void releaseOwnership();
133 boost::shared_ptr<QueryHandleImpl>
myImpl;
136 typedef boost::function<void (const makVrv::DtDynamicTerrainFeature&)>
148 virtual bool isDisabled()
const = 0;
152 virtual void disable() = 0;
155 virtual void setAppearance(DtAppearance app) = 0;
158 virtual void setPosition(
const DtPoint& location,
const DtDcm& orientation) = 0;
190 virtual void clearCache();
193 virtual void shutdown(
bool block=
true);
199 virtual double modelHeightDifferencesFromAppearances(
int oldApp,
int newApp)
const;
202 virtual bool createFromExtent(
const Dt3dBoundingVolume&);
206 virtual bool loadModel(
const DtFilename&,
const DtEntityType& t = DtEntityType());
218 virtual bool chordIntersect(
272 virtual void setAssertOnBlockingTerrainCalls(
bool assertBlock);
273 virtual bool assertOnBlockingTerrainCalls()
const;
278 virtual void setWarnOnBlockingTerrainCalls(
bool warnBlock);
279 virtual bool warnOnBlockingTerrainCalls()
const;
302 std::vector<DtChord>& chords);
305 virtual bool hasFeatureContext()
const;
325 typedef boost::function<void (const makVrv::DtDynamicTerrainFeature&)>
344 bool useOriginalGeometry =
false) {
351 bool useOriginalGeometry =
false) { };
355 virtual void cacheTerrainArea(
int requestId,
356 unsigned minLOD,
unsigned maxLOD,
const DtExtent& cacheArea,
360 virtual void cancelCacheTerrainArea(
int requestId);
363 virtual void writeTerrainIndex(
const DtString& name);
374 virtual void invokeTerrainChangeNotificationCallBacks();
boost::scoped_ptr< MAKVRinTerra::DtFeatureDatabase > myFeatureDatabase
Definition: terrainImplementation.h:385
boost::function< void(const makVrv::DtDynamicTerrainFeature &)> DtDynamicTerrainQueryCallback
Definition: terrainImplementation.h:137
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
Definition: stringKeyFactory.h:80
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:32
This is the abstract base class for all terrain implementations.
Definition: terrainImplementation.h:164
boost::function< void(const makVrv::DtDynamicTerrainFeature &)> DtDynamicTerrainQueryCallback
Definition: terrainImplementation.h:326
Definition: terrainIntersectOptions.h:78
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords.
Definition: vrfChordIntersectRecordList.h:31
virtual DtTerrainGeometryHandle * createEntityGeometry(const DtFilename &file)
Create geometry in the terrain which represents the entity.
Definition: terrainImplementation.h:308
virtual void queryCurrentDynamicTerrainFeatures(const DtDynamicTerrainQueryCallback &callback, makVrv::DtDynamicTerrainGeometry *geometry=0, bool useOriginalGeometry=false)
Definition: terrainImplementation.h:348
DtGenericTerrainRecords allow the VR-Forces terrainInterface library to instantiate and configure the...
Definition: DtGenericTerrainRecord.h:34
DtTerrainImplementation *(* DtCreatorFcn)(DtConsoleCommandManager *)
Definition: stringKeyFactory.h:84
std::list< std::pair< DtPagingMetaDataPtr, DtTerrainPagingGeometryPtr > > DtTerrainPagingGeometryList
Definition: terrainPagingGeometry.h:104
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
Allows manipulating a terrain object.
Definition: terrainImplementation.h:141
bool myAssertOnBlockingTerrainCalls
Determines if an exception should be thrown if a blocking terrain call is made.
Definition: terrainImplementation.h:382
DtTerrainInterfaceConfig myConfig
Definition: terrainImplementation.h:377
Definition: terrainImplementation.h:75
This is a class which maintains a list of string command names and the callback functions that are to...
Definition: consoleCommandManager.h:48
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
boost::shared_ptr< RequestHandleImpl > myImpl
Definition: terrainImplementation.h:100
bool myWarnOnBlockingTerrainCalls
Definition: terrainImplementation.h:383
DtTerrainIntersectOptions Passed to terrain intersect functions to modify how intersect acts...
Definition: terrainIntersectOptions.h:15
virtual bool dataAvailable(const DtTerrainPagingGeometryList &geometry, DtTerrainIntersectOptions::Fidelity=DtTerrainIntersectOptions::MAX_FIDELITY)
Returns true if all of the terrain which intersects the geometry list is paged in.
Definition: terrainImplementation.h:254
Definition: coordSystem.h:54
Represents some coordinate system.
Definition: proj.h:44
void(* DtTerrainChangeNotificationCallbackFcn)(const DtExtent &spatExtent, void *userData)
Definition: terrainImplementation.h:48
#define DT_DLL_terrainInterface
This file is used to determine how to build.
Definition: terrainInterfaceDefines.h:25
Factory templates DtStringKeyFactory and DtStringKeyFactoryWithParam.
virtual DtTerrainGeometryHandle * createEntityGeometry(const DtEntityType &file)
Create geometry in the terrain which represents the entity by the given type, looking up visuals...
Definition: terrainImplementation.h:311
This class holds parameters which define the capabilities of the current terrain. ...
Definition: terrainCapabilities.h:25
virtual void preloadTerrainAreas(const DtTerrainPagingGeometryList &preloadGeometry)
Specifies a list of terrain areas that should be preloaded by the terrain implementation, in the case of a paging or streaming terrain source.
Definition: terrainImplementation.h:250
RequestHandleImpl()
Definition: terrainImplementation.h:78
Definition: featureContext.h:51
DtTerrainImplementationFactory::DtCreatorFcn DtTerrainImplementationCreatorFcn
Definition: terrainImplementation.h:392
virtual DtTerrainInformation * terrainInformation()
Return the terrain information pointer of the terrain implementation (null if none exist) this is a d...
Definition: terrainImplementation.h:299
virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(double time, makVrv::DtDynamicTerrainChange *command)
Add a dynamic terrain change request to the system.
Definition: terrainImplementation.h:321
Definition: terrainImplementation.h:110
boost::shared_ptr< QueryHandleImpl > myImpl
Definition: terrainImplementation.h:133
Definition: vrfChordIntersectionRecord.h:19
virtual void loadVisuals(const DtScenarioExplorer &)
Tells the terrain implementation (if it cares) to load visuals to support terrain/model usage...
Definition: terrainImplementation.h:314
A DtChord is a finite line segment in 3-space, represented by two points.
Fidelity
Allows the system to use differently fidelity data for intersecting against.
Definition: terrainIntersectOptions.h:76
virtual void setIntersectDataLoadExpireTime(const double &expireTime)
No-op.
Definition: terrainImplementation.h:287
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtStringKeyFactoryWithParam< DtTerrainImplementation, DtConsoleCommandManager * > DtTerrainImplementationFactory
Definition: terrainImplementation.h:390
Command which can be given to the dynamic terrain system to perform some change.
Definition: DtDynamicTerrainChange.h:42
void(* DtCacheProgressCallbackFunction)(int requestId, int current, bool completed, double elapsedTime, void *usr)
Callback for terrain caching.
Definition: terrainImplementation.h:46
Resource handle for a query which has been added to the system.
Definition: terrainImplementation.h:106
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea.
Definition: terrainProcessPolygonsBox.h:113
Definition: featureContext.h:223
Resource handle for a dynamic terrain change request which has been added to the system.
Definition: terrainImplementation.h:71
boost::scoped_ptr< MAKVRinTerra::DtFeatureContext > myFeatureContext
Definition: terrainImplementation.h:386
virtual DtDynamicTerrainQueryHandle queryDynamicTerrainFeatures(const DtDynamicTerrainQueryCallback &callback, makVrv::DtDynamicTerrainGeometry *geometry=0, bool useOriginalGeometry=false)
Install a query which will call the supplied callback on matching dynamic terrain features as they ar...
Definition: terrainImplementation.h:341
virtual void expireDataLoadRequestsBeforeTime(const double ¤tTime)
No-op.
Definition: terrainImplementation.h:293
DtTerrainIntersectStatus Contains information about result of terrain intersection.
Definition: terrainIntersectStatus.h:16
QueryHandleImpl()
Definition: terrainImplementation.h:113
Represents an area query which can be used to extract triangles from DtTerrainInterface.
Definition: terrainProcessPolygonsBox.h:39