VR-Forces 4.0.4 Class Documentation
include/terrainInterface/terrainImplementation.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00010 
00011 #pragma once
00012 
00013 #include "terrainInterface/terrainInterfaceDefines.h"
00014 #include <geometry/intersectionRecord.h>
00015 #include <geometry/chord.h>
00016 #include <gdb/vecNetwrkRecord.h>
00017 #include <gdb/vecNwrkIntRec.h>
00018 #include <geometry/intRecLst.h>
00019 #include "tdbutil/stringKeyFactory.h"
00020 #include "terrainInterface/terrainPagingGeometry.h"
00021 #include "terrainInterface/terrainProcessPolygonsBox.h"
00022 
00023 class DtChordIntersectionRecord;
00024 class DtSphereIntersectionRecord;
00025 class DtString;
00026 class Coordinate_System;
00027 class DtVectorNetwork;
00028 class DtConsoleCommandManager;
00029 class DtTerrainCapabilities;
00030 
00031 namespace makArchives
00032 {
00033    class DtGenericTerrainRecord;
00034 }
00035 
00039 class DT_DLL_terrainInterface DtTerrainImplementation
00040 {
00041 public:
00042    typedef std::map<std::string, std::string> TerrainSettings;
00043 
00044 private:
00046 
00047    DtTerrainImplementation();
00048    DtTerrainImplementation(const DtTerrainImplementation& orig);
00049    DtTerrainImplementation& operator=(const DtTerrainImplementation& orig);
00051 public:
00052    DtTerrainImplementation(DtConsoleCommandManager* cmdManager);
00053    virtual ~DtTerrainImplementation();
00054 
00057    virtual bool loadTerrain(const makArchives::DtGenericTerrainRecord& rec,
00058       const TerrainSettings& settings = TerrainSettings()) = 0;
00059 
00060    virtual const Coordinate_System* coordinateSystem() const = 0;
00061 
00081    virtual bool chordIntersect(const DtChord& chord,
00082       DtChordIntersectionRecord& record,
00083       DtIntersectionRecord::DtIntersectionType irtFlag = 
00084       DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
00085       bool overrideBlockingAssert = false) const = 0;
00086 
00106    virtual bool allIntersectsAlongChord(const DtChord& chord,
00107       DtChordIntersectRecordList& intList,
00108       DtIntersectionRecord::DtIntersectionType irtFlag = 
00109       DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
00110       bool overrideBlockingAssert = false) const = 0;
00111 
00131    virtual bool sphereIntersect(const DtSphere& sphere, 
00132       DtSphereIntersectionRecord& record,
00133       DtIntersectionRecord::DtIntersectionType irtFlag = 
00134       DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
00135       bool overrideBlockingAssert = false) const = 0;
00136 
00142    virtual bool intersectVectorNetwork(const DtChord& chord,
00143       DtVectorNetworkRecord* vectorRecord, 
00144       DtVectorNetworkIntersectionRecord* vectorIntersectionRecord) const = 0;
00145 
00146    virtual const DtVectorNetwork* vectorNetwork() const = 0;
00147 
00162    virtual void preloadTerrainAreas(
00163       const DtTerrainPagingGeometryList& preloadGeometry) {};
00164 
00167    virtual const DtTerrainCapabilities* terrainCapabilities() const = 0;
00168 
00179    virtual void setAssertOnBlockingTerrainCalls(bool assertBlock);
00180    virtual bool assertOnBlockingTerrainCalls() const;
00182 
00188    virtual void setIntersectDataLoadExpireTime(const double& expireTime) {};
00189 
00194    virtual void expireDataLoadRequestsBeforeTime(const double& currentTime) {};
00195 
00196    virtual void processTrianglesInArea(DtTriangleCallbackFcn func, DtTriangleCallbackFinalizeFcn finalize, DtTerrainProcessPolygonsBox& box, void* usr) const;
00197 
00198 protected:
00202    bool myAssertOnBlockingTerrainCalls;
00203 
00205    TerrainSettings mySettings;
00206 };
00207 
00208 typedef DtStringKeyFactoryWithParam<DtTerrainImplementation, 
00209    DtConsoleCommandManager*> DtTerrainImplementationFactory;
00210 typedef DtTerrainImplementationFactory::DtCreatorFcn 
00211    DtTerrainImplementationCreatorFcn;

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)