VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtScene.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtScene.h,v $ $Revision: 1.23 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #ifndef DtScene_H_
00014 #define DtScene_H_
00015 
00016 #include <vrvCore/vrvCore.h>
00017 #include <vrvUtil/DtVirtualBaseClass.h>
00018 #include <vrvCore/DtUniqueID.h>
00019 
00020 #include <boost/signal.hpp>
00021 
00022 #include <string>
00023 #include <vector>
00024 
00025 namespace makArchives
00026 {
00027    class DtSceneRecord;
00028    class DtTerrainRecord;
00029 }
00030 
00031 namespace makVrv
00032 {
00033    class DtAgentManagerInterface;
00034    class DtDe;   
00035    class DtEnvironment;
00036    class DtFeature;
00037    class DtProp;
00038    class DtSceneSignaler;
00039    class DtTerrain;
00040    class DtTerrainLayer;
00041 
00044    class DT_DLL_VRVCORE DtScene
00045    {
00046    public:
00047 
00049       DtScene(DtDe& de,DtAgentManagerInterface& agentManager);
00050 
00052       virtual ~DtScene();
00053 
00055 
00056       inline DtTerrain& terrain() { return *myTerrain; }
00057       inline const DtTerrain& terrain() const { return *myTerrain; }
00059 
00061       void getRecord(makArchives::DtSceneRecord& record) const;
00062 
00064       void setFromRecord(const makArchives::DtSceneRecord& record);
00065 
00071       bool saveTerrain( const std::string& filePath, bool saveAs = true );
00072 
00074       bool loadTerrain( const std::string& filePath );
00075 
00077 
00078       inline DtEnvironment& environment() { return *myEnvironment; }
00079       inline const DtEnvironment& environment() const { return *myEnvironment; }
00081 
00087       bool saveEnvironment( const std::string& filePath, bool saveAs = true );
00088 
00090       bool loadEnvironment( const std::string& filePath );
00091 
00093       virtual void resetScene();
00094 
00096       virtual void resetTerrain();
00097 
00099 
00100 
00102       typedef std::vector<DtProp*> ScenePropReferences;
00103 
00105       virtual void getScenePropReferences(ScenePropReferences& props);
00106      
00109       virtual DtProp* findProp(DtElementID id);
00110 
00113       virtual bool destroyProp(DtElementID id);
00114 
00116 
00118       virtual DtFeature* findFeature(DtElementID id);
00119 
00122       virtual bool destroyFeature(DtElementID id);
00123 
00125       const std::string& terrainFileName() const;
00126 
00128       const std::string& enviromentFileName() const;
00129 
00130    protected:
00131 
00132       void copyPropReferences( DtTerrainLayer* patch, DtScene::ScenePropReferences &spRefs );
00133 
00134    protected:
00135       DtDe& myDe;
00136 
00137       DtTerrain* myTerrain;
00138       DtEnvironment* myEnvironment;
00139       DtSceneSignaler& mySignaler;
00140 
00141       std::string myTerrainFileName;
00142       std::string myEnviromentFileName;
00143    };
00144 
00147    class DT_DLL_VRVCORE DtSceneSignaler : public DtVirtualBaseClass
00148    {
00149    public:
00150 
00152       static DtSceneSignaler& instance(DtDe& de);
00153 
00155       virtual ~DtSceneSignaler();
00156 
00158       boost::signal<void ()> signal_sceneCreated;
00159 
00161       boost::signal<void (DtScene&)> signal_sceneToBeCleared;
00162 
00164       boost::signal<void (DtScene&)> signal_sceneCleared;
00165 
00167       boost::signal<void ()> signal_sceneToBeDeleted;
00168 
00170       boost::signal<void (const std::string&, const makArchives::DtTerrainRecord&)> signal_terrainAboutToBeSaved;
00171 
00173       boost::signal<void (const std::string&, const makArchives::DtTerrainRecord&)> signal_terrainSaved;
00174 
00175    protected:
00176 
00177       DtSceneSignaler();
00178 
00179    };
00180 }
00181 
00182 #endif
00183 

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)