VR-Forces 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  makVrf::DtSurfaceCharacteristicMapConstPtr surfaceCharacterMap);
34 
37 
40 
42  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0) override;
43 
46  static DtTerrainSourcePager* terrainChooserFunction(
47  osg::Node& node,
48  DtVantageTerrainEngine* terrainEngine,
49  makVrf::DtSurfaceCharacteristicMapConstPtr surfaceCharacterMap);
50 
52  virtual bool pageInGeometry(const DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectIDType intersectId = 0) override;
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) override;
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:131
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...
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
std::unordered_map< std::string, NodePagingRecord > NodePagingRecordMap
Definition: vantageTerrainImplementationUtil.h:102
unsigned long long DtTerrainIntersectIDType
Definition: terrainInterfaceDefines.h:28
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.
DtBoost::shared_ptr< const DtSurfaceCharacteristicMap > DtSurfaceCharacteristicMapConstPtr
Definition: surfaceCharacteristicsMap.h:31
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:84
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:109
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
makVrf::DtSurfaceCharacteristicMapConstPtr mySurfaceCharacterMap
Surface Map file.
Definition: pagedNode2TerrainSourcePager.h:80

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)