VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pagedLodTerrainSourcePager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
12 
17 
18 #include <set>
19 
24 {
25 public:
26  typedef std::map<std::string, DtPageInVisitor::NodePagingRecord> NodePagingRecordMap;
27 
29  DtVantageTerrainEngine* terrainEngine,
30  osg::Group* rootNode,
31  const DtFilename& surfaceCharacterMap);
32 
34  DtVantageTerrainEngine* terrainEngine,
35  osg::Group* rootNode,
36  const osg::Matrix& matrix,
37  const DtFilename& surfaceCharacterMap);
38 
40 
43 
44  virtual bool pageInGeometry(
45  const DtTerrainPagingGeometryPtr geometry,
46  DtTerrainIntersectIDType intersectId = 0);
47 
48  virtual bool pageOutNodes(std::list<DtNodeId>& nodesToRemove);
49 
51  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0);
52 
53  virtual void updatePageTrackerAndRedraw(bool force, DtTerrainIntersectIDType intersectId = 0);
54 
55  virtual const NodePagingRecordMap& pagedInNodes() const;
56 
59  static DtTerrainSourcePager* terrainChooserFunction(
60  osg::Node& node,
61  DtVantageTerrainEngine* terrainEngine,
62  const DtFilename& surfaceCharacterMap);
63 
64 protected:
66  osg::Node* terrainRoot();
67 
68  virtual bool pageInData(
69  DtPageInVisitor& visitor,
70  DtTerrainIntersectIDType intersectId = 0);
71 
77  static DtNodeId osgNodeId(osg::Node* node);
79 
80 protected:
82  class DtActivePageVisitor : public DtBoundingVolumeActivePageVisitor
83  {
84  public:
85  using DtBoundingVolumeActivePageVisitor::apply;
86 
87  explicit DtActivePageVisitor(
88  const NodePagingRecordMap&, DtTerrainIntersectIDType intersectId = 0);
89 
90  virtual void apply(osg::Group& node);
91  virtual void apply(osg::LOD& node);
92  virtual void apply(osg::PagedLOD& node);
93 
94  private:
96  };
97 
99  osg::ref_ptr<osg::Node> myRootNode;
100  osg::Matrix myMatrix;
101 
104 
106 
107 };
108 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)