VR-Forces 4.0.4 Class Documentation
include/vantageTerrainImplementation/boundingVolumeTerrainSourcePager.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00009 #pragma once
00010 
00011 #include <vantageTerrainImplementation/terrainEngineCommand.h>
00012 #include <vantageTerrainImplementation/terrainSourcePager.h>
00013 #include <vantageTerrainImplementation/pageInVisitor.h>
00014 #include <vantageTerrainImplementation/boundingVolumeTerrainSourceTracker.h>
00015 #include <terrainInterface/terrainPagingGeometry.h>
00016 
00019 class DT_DLL_vantageTerrainImplementation DtBoundingVolumeTerrainSourcePager : public DtTerrainSourcePager
00020 {
00021 public:
00022 
00023    DtBoundingVolumeTerrainSourcePager(DtVantageTerrainEngine* terrainEngine);
00024 
00025    virtual ~DtBoundingVolumeTerrainSourcePager();
00026 
00031    virtual bool pageInGeometry(const DtTerrainPagingGeometryPtr geometry,
00032       const unsigned int intersectId = 0) = 0;
00033 
00037    virtual bool pageOutNodes(std::list<DtNodeId>& nodesToRemove) = 0;
00038 
00039    virtual void updateTerrain(const unsigned int intersectId = 0) = 0;
00040 
00041    virtual void updatePageTracker(const unsigned int intersectId = 0) = 0;
00042 
00043 protected:
00045    class DtBoundingVolumeActivePageVisitor : public DtMaintainMatrixVisitor
00046    {
00047    public:
00048       DtBoundingVolumeActivePageVisitor(unsigned int intersectId = 0);
00049 
00050       const DtNodeBoundingInfoList& pagedOutBoundingVolumes() const;
00051       const DtNodeBoundingInfoMap& pagedInBoundingVolumes() const;
00052       bool noValidAreas() const;
00053 
00054    protected:
00055       void pushBound(osg::Node& node);
00056       void popBound();
00057 
00058       bool addToPagedOutVolumesList(const DtNodeBoundingInfoPtr pagedOutArea);
00059 
00060    protected:
00061       DtNodeBoundingInfoList myPagedOutBoundingList;
00062       DtNodeBoundingInfoMap myPagedInBoundingMap;
00063       bool myNoValidAreas;
00064       std::stack<osg::BoundingSphere> myBoundingNodeStack;
00065       unsigned int myIntersectId;
00066    };
00067 
00068 };

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)