VR-Forces 4.3.1 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 
28  DtVantageTerrainEngine* terrainEngine,
29  osg::Group* rootNode,
30  const DtFilename& surfaceCharacterMap);
31 
33  DtVantageTerrainEngine* terrainEngine,
34  osg::Group* rootNode,
35  const osg::Matrix& matrix,
36  const DtFilename& surfaceCharacterMap);
37 
39 
42 
43  virtual bool pageInGeometry(
44  const DtTerrainPagingGeometryPtr geometry,
45  DtTerrainIntersectIDType intersectId = 0);
46 
47  virtual bool pageOutNodes(std::list<DtNodeId>& nodesToRemove);
48 
50  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0);
51 
52  virtual void updatePageTrackerAndRedraw(bool force, DtTerrainIntersectIDType intersectId = 0);
53 
56  static DtTerrainSourcePager* terrainChooserFunction(
57  osg::Node& node,
58  DtVantageTerrainEngine* terrainEngine,
59  const DtFilename& surfaceCharacterMap);
60 
61 protected:
63  osg::Node* terrainRoot();
64 
65  virtual bool pageInData(
66  DtPageInVisitor& visitor,
67  DtTerrainIntersectIDType intersectId = 0);
68 
74  static DtNodeId osgNodeId(osg::Node* node);
76 
77 protected:
78  typedef std::map<std::string, DtPageInVisitor::NodePagingRecord> NodePagingRecordMap;
79 
81  class DtActivePageVisitor : public DtBoundingVolumeActivePageVisitor
82  {
83  public:
84  using DtBoundingVolumeActivePageVisitor::apply;
85 
86  explicit DtActivePageVisitor(
87  const NodePagingRecordMap&, DtTerrainIntersectIDType intersectId = 0);
88 
89  virtual void apply(osg::Group& node);
90  virtual void apply(osg::LOD& node);
91  virtual void apply(osg::PagedLOD& node);
92 
93  private:
95  };
96 
98  osg::ref_ptr<osg::Node> myRootNode;
99  osg::Matrix myMatrix;
100 
103 
105 };
106 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)