VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pagedNode2TerrainSourcePager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
12 
18 #include <vlutil/vlPerformanceStats.h>
19 #include <osgEarth/NodeUtils>
20 #include <set>
21 #include <map>
22 
26 {
27 public:
28 
31  DtVantageTerrainEngine* terrainEngine,
32  osg::Group* mapNode,
33  const DtFilename& surfaceCharacterMap);
34 
37 
40 
42  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0);
43 
46  static DtTerrainSourcePager* terrainChooserFunction(
47  osg::Node& node,
48  DtVantageTerrainEngine* terrainEngine,
49  const DtFilename& surfaceCharacterMap);
50 
52  virtual bool pageInGeometry(const DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectIDType intersectId = 0);
53 
54  virtual int performTriangleCollectionAndAddTerrain(DtTimedSection& timer, const DtTerrainPagingGeometryPtr geometry,
55  DtTerrainIntersectIDType intersectId);
56 
57  virtual int performTriangleCollectionAndAddTerrain(DtTimedSection& timer, const DtTerrainPagingGeometryPtr geometry,
58  DtTerrainIntersectIDType intersectId, const std::set< osg::ref_ptr<osg::Node> > & foundNodes);
59  virtual int addToTerrain(DtTimedSection& timer, const DtTerrainPagingGeometryPtr geometry,
60  DtTerrainIntersectIDType intersectId, const DtNodeBoundingExtendedInfoMap& pagedInBoundingMap, DrawableMap& newDrawables);
62  virtual bool pageOutNodes(std::list<DtNodeId>& nodesToRemove);
63 
64 protected:
65 
68 
74  mutable tbb::spin_rw_mutex myPagedInNodesMutex;
75 
77  osgEarth::MapNode* myMapNode;
78 
81 };
82 
boost::unordered_map< DtNodeId, DtPagedInExtendInfo > DtNodeBoundingExtendedInfoMap
Definition: boundingNodeInfo.h:133
DtBoost::shared_ptr< DtTerrainPagingGeometry > DtTerrainPagingGeometryPtr
Definition: terrainPagingGeometry.h:46
A DtPagedNode2TerrainSourcePager pages in data osgEarth pagedNode2 data.
Definition: pagedNode2TerrainSourcePager.h:24
virtual bool pageOutNodes(std::list< DtNodeId > &nodesToRemove)=0
This function must cause the page out of the nodeIds specified. It should return true when successful...
std::map< std::string, NodePagingRecord > NodePagingRecordMap
Definition: vantageTerrainImplementationUtil.h:101
DtTerrainSourcePager is the base class for terrain pagers. There will be one terrainSourcePager per t...
Definition: terrainSourcePager.h:58
virtual void updatePageTracker(DtTerrainIntersectIDType intersectId=0)=0
NodePagingRecordMap myPagedOutNodes
Definition: pagedNode2TerrainSourcePager.h:71
osgEarth::MapNode * myMapNode
Keep a reference of the map node.
Definition: pagedNode2TerrainSourcePager.h:77
virtual DtTerrainSourceTracker * createTerrainSourceTracker(DtVantageTerrainEngine *)=0
Creates and returns a DtTerrainSourceTracker.
DtFilename mySurfaceCharacterMap
Surface Map file.
Definition: pagedNode2TerrainSourcePager.h:80
NodePagingRecordMap myEmptyPagedInNodes
Holds all the nodes which have been paged in (with no geometry)
Definition: pagedNode2TerrainSourcePager.h:73
contain different node visitor used by pagednode2 pager/tracker
DtPagedNode2TerrainSourceTracker * myPagedNode2TerrainSourceTracker
Reference to the pagedNode2 tracker.
Definition: pagedNode2TerrainSourcePager.h:67
Base class for Terrain Source trackers. Determines if the necessary data To perform an intersection i...
Definition: terrainSourceTracker.h:75
std::map< size_t, DrawableInfo > DrawableMap
Definition: vantageTerrainImplementationUtil.h:83
virtual bool pageInGeometry(const DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectIDType intersectId=0)=0
This function must page in all the geometry specified by the argument, and return true when successfu...
tbb::spin_rw_mutex myPagedInNodesMutex
Definition: pagedNode2TerrainSourcePager.h:74
DtBoundingVolumeTerrainSourcePager is a derived terrainSourcePager that handles a source such as meta...
Definition: boundingVolumeTerrainSourcePager.h:21
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
This class wraps the VR-Vantage Display Engine, and uses as a terrain loader and intersector. This is the terrain engine that powers the DtVantageTerrainImplementation. The DtVantageTerrainEngine runs the DtDe it its own thread, and processes commands thought the command queue.
Definition: vantageTerrainEngine.h:99
NodePagingRecordMap myPagedInNodes
Holds all the nodes which have been paged in / paged out.
Definition: pagedNode2TerrainSourcePager.h:70
A DtPagedNode2TerrainSourceTracker tracks data from osgEarth pagedNode2 terrain source.
Definition: pagedNode2TerrainSourceTracker.h:22

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)