VR-Forces 4.5 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 
72 protected:
74  class DtActivePageVisitor : public DtBoundingVolumeActivePageVisitor
75  {
76  public:
77  using DtBoundingVolumeActivePageVisitor::apply;
78 
79  explicit DtActivePageVisitor(
80  const NodePagingRecordMap&, DtTerrainIntersectIDType intersectId = 0);
81 
82  virtual void apply(osg::Group& node);
83  virtual void apply(osg::LOD& node);
84  virtual void apply(osg::PagedLOD& node);
85 
86  private:
88  };
89 
91  osg::ref_ptr<osg::Node> myRootNode;
92  osg::Matrix myMatrix;
93 
96 
98 
99 };
100 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)