VR-Forces 4.0.4 Class Documentation
include/vantageTerrainImplementation/terrainSourceTracker.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00009 #pragma once
00010 
00011 #include <vantageTerrainImplementation/terrainSourcePager.h>
00012 #include <vantageTerrainImplementation/vantageTerrainImplementationDefines.h>
00013 
00014 #include <terrainInterface/terrainPagingGeometry.h>
00015 
00016 #include <tbb/spin_rw_mutex.h>
00017 
00018 class btIDebugDraw;
00019 
00020 
00021 typedef std::multimap<DtNodeId, btCollisionObject*> DtNodeToCollObjMMap;
00022 typedef std::pair<DtNodeToCollObjMMap::iterator, DtNodeToCollObjMMap::iterator> 
00023 DtNodeToCollObjRangePair;
00024 
00028 class DT_DLL_vantageTerrainImplementation DtTerrainSourceTracker
00029 {
00030 public:
00031 
00032    DtTerrainSourceTracker(DtPagerCommandQueue* commandQueue);
00033 
00034    virtual ~DtTerrainSourceTracker();
00035 
00037    virtual bool dataAvailable(DtPagingMetaDataPtr metaData, 
00038       DtTerrainPagingGeometryPtr geometry) = 0;
00039 
00040    virtual void pageInData(DtPagingMetaDataPtr metaData, 
00041       DtTerrainPagingGeometryPtr geometry) = 0;
00042 
00043    virtual void drawDebugInfo(btIDebugDraw* debugDrawer) = 0;   
00044 
00045    //Should return true if the tracker is capable of paging out data.
00046    virtual bool canPageOutData(unsigned int intersectId) = 0;
00047 
00048    virtual unsigned int findOldestPagedData(unsigned int& numTriangles) = 0;
00049 
00050    virtual void pageOutOldestData(const int priority) = 0;
00051 
00052    virtual void addNodeToCollisionMapping(DtNodeId node, 
00053       btCollisionObject* collisionObject);
00054    virtual void removeNodeToCollisionMappings(DtNodeId node);
00055 
00056    virtual std::list<btCollisionObject*> collisionObjectsForNode(
00057       DtNodeId node);
00058 
00059 protected:
00060 
00061    DtPagerCommandQueue* myCommandQueue;
00062 
00063    DtNodeToCollObjMMap myNodeToCollObjMMap;
00064 
00065    mutable tbb::spin_rw_mutex myMutex;
00066 };

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)