VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pagedLodTerrainSourcePager.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 
17 
18 #include <set>
19 
24 {
25 public:
26 
28  DtVantageTerrainEngine* terrainEngine,
29  osg::Group* rootNode,
30  makVrf::DtSurfaceCharacteristicMapConstPtr surfaceCharacterMap);
31 
32  //DtPagedLodTerrainSourcePager(
37 
39 
42 
43  virtual bool pageInGeometry(
44  const DtTerrainPagingGeometryPtr geometry,
45  DtTerrainIntersectIDType intersectId = 0) override;
46 
47  virtual bool pageOutNodes(std::list<DtNodeId>& nodesToRemove) override;
48 
50  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0) override;
51 
52  virtual const NodePagingRecordMap& pagedInNodes() const;
53 
56  static DtTerrainSourcePager* terrainChooserFunction(
57  osg::Node& node,
58  DtVantageTerrainEngine* terrainEngine,
59  makVrf::DtSurfaceCharacteristicMapConstPtr surfaceCharacterMap);
60 
61 protected:
63  osg::Node* terrainRoot();
64 
65  virtual bool pageInData(
66  DtPageInVisitor& visitor,
67  DtTerrainIntersectIDType intersectId = 0);
68 
69 protected:
72  {
73  public:
75 
76  explicit DtActivePageVisitor(
77  const NodePagingRecordMap&, DtTerrainIntersectIDType intersectId = 0);
78 
79  virtual void apply(osg::Group& node);
80  virtual void apply(osg::LOD& node);
81  virtual void apply(osg::PagedLOD& node);
82 
83  private:
85  };
86 
89  osg::Matrix myMatrix;
90 
93 
95 
96 };
97 
DtBoost::shared_ptr< DtTerrainPagingGeometry > DtTerrainPagingGeometryPtr
Definition: terrainPagingGeometry.h:46
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
const NodePagingRecordMap & myPagedInNodes
Definition: pagedLodTerrainSourcePager.h:84
unsigned long long DtTerrainIntersectIDType
Definition: terrainInterfaceDefines.h:28
virtual DtTerrainSourceTracker * createTerrainSourceTracker(DtVantageTerrainEngine *)=0
Creates and returns a DtTerrainSourceTracker.
NodePagingRecordMap myPagedInNodes
Holds all the nodes which have been paged in.
Definition: pagedLodTerrainSourcePager.h:92
DtBoost::shared_ptr< const DtSurfaceCharacteristicMap > DtSurfaceCharacteristicMapConstPtr
Definition: surfaceCharacteristicsMap.h:31
Visitor class used to find the active paged of a OSG scene graph.
Definition: pagedLodTerrainSourcePager.h:71
A DtPagedLodTerrainSourcePager pages in data from a specific terrain patch.
Definition: pagedLodTerrainSourcePager.h:22
Visitor class used to find the active paged of a OSG scene graph.
Definition: boundingVolumeTerrainSourcePager.h:48
OSG Visitor class which pages the highest level of detail of paged LOD nodes in. This is a base class...
Definition: pageInVisitor.h:71
Base class for Terrain Source trackers. Determines if the necessary data To perform an intersection i...
Definition: terrainSourceTracker.h:75
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...
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
osg::ref_ptr< osg::Node > myRootNode
The node on which this pager operates.
Definition: pagedLodTerrainSourcePager.h:88
makVrf::DtSurfaceCharacteristicMapConstPtr mySurfaceCharacterMap
Definition: pagedLodTerrainSourcePager.h:94
virtual void apply(osg::Transform &node)
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
osg::Matrix myMatrix
Definition: pagedLodTerrainSourcePager.h:89

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)