VR-Forces 4.0.4 Class Documentation
include/vantageTerrainImplementation/pagedLodTerrainSourcePager.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 #pragma once
00007 
00010 
00012 
00013 #include <vantageTerrainImplementation/terrainEngineCommand.h>
00014 #include <vantageTerrainImplementation/boundingVolumeTerrainSourcePager.h>
00015 #include <vantageTerrainImplementation/pageInVisitor.h>
00016 #include <vantageTerrainImplementation/pagedLodTerrainSourceTracker.h>
00017 #include <terrainInterface/terrainPagingGeometry.h>
00018 
00021 class DT_DLL_vantageTerrainImplementation DtPagedLodTerrainSourcePager : public DtBoundingVolumeTerrainSourcePager
00022 {
00023 public:
00024 
00025    DtPagedLodTerrainSourcePager(DtVantageTerrainEngine* terrainEngine, osg::Group* rootNode);
00026 
00027    virtual ~DtPagedLodTerrainSourcePager();
00028 
00030    virtual DtTerrainSourceTracker* createTerrainSourceTracker();
00031 
00032    virtual bool pageInGeometry(const DtTerrainPagingGeometryPtr geometry,
00033       const unsigned int intersectId = 0);
00034 
00035    virtual bool pageOutNodes(std::list<DtNodeId>& nodesToRemove);
00036 
00037    virtual void updateTerrain(const unsigned int intersectId = 0);
00038 
00040    virtual void updatePageTracker(const unsigned int intersectId = 0);
00041 
00044    static DtTerrainSourcePager* terrainChooserFunction(osg::Node& node,
00045       DtVantageTerrainEngine* terrainEngine);
00046 
00047 protected:
00049    osg::Node* terrainRoot();
00050 
00051    virtual bool pageInData(DtPageInVisitor& visitor);
00052 
00057 
00058    static DtNodeId osgNodeId(osg::Node* node);
00059    static osg::Node* nodeFromId(DtNodeId nodeId);
00061 
00062 protected:
00063 
00065    osg::Node* myRootNode;
00066 
00068    bool myForceUpdate;
00069 
00071    class DtActivePageVisitor : public DtBoundingVolumeActivePageVisitor
00072    {
00073    public:
00074       DtActivePageVisitor(unsigned int intersectId = 0);
00075       virtual void apply(osg::Group& node);
00076       virtual void apply(osg::LOD& node);
00077       virtual void apply(osg::PagedLOD& node);
00078    };
00079 
00080 };
00081 

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)