VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainPagerCommand.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <geometry/chord.h>
14 #include <geometry/sphere.h>
15 #include <osgTerrain/TerrainTile>
16 
19 
20 #include <vrfutil/objectCounter.h>
21 
24 
31 #ifdef DtObjectDebugger_Enable
32  : public DtObjectDebugger<DtTerrainPagerCommand>
33 #endif
34 {
35 public:
37  {
38  public:
39  virtual ~CommandCounter() { }
40 
41  private:
42  friend class DtTerrainPagerCommand;
43 
44  virtual void incrementCommandCount() = 0;
45  virtual void decrementCommandCount() = 0;
46  };
47 
49  : myMetaData(metaData)
50  , myComplete(false)
51  , myProcessing(false)
52  , myCount(0)
53  , myMutex()
54  {
55  };
56 
58  {
59  if (myCount)
61  };
62 
63  virtual void setCount(CommandCounter& count)
64  {
65  if (myCount)
67 
68  myCount = &count;
69 
70  if (myCount)
72  }
73 
74  virtual void execute(DtTerrainSourcePager* pager) = 0;
75 
76  virtual const bool complete()
77  {
78  tbb::spin_mutex::scoped_lock lock(myMutex);
79  return myComplete;
80  }
81 
82  virtual const bool processing()
83  {
84  tbb::spin_mutex::scoped_lock lock(myMutex);
85  return myProcessing;
86  }
87 
88  virtual void startProcessing()
89  {
90  tbb::spin_mutex::scoped_lock lock(myMutex);
91  myProcessing = true;
92  }
93 
94  virtual void stopProcessing()
95  {
96  tbb::spin_mutex::scoped_lock lock(myMutex);
97  myProcessing = false;
98  }
99 
100  virtual const DtPagingMetaDataPtr metaData()
101  {
102  tbb::spin_mutex::scoped_lock lock(myMutex);
103  return myMetaData;
104  }
105 
106  virtual const int type() const = 0;
107 
109 
110 protected:
111  mutable tbb::spin_mutex myMutex;
116 
118 };
119 
121 
125 template <typename T_Pager>
127 {
128 public:
130  : DtTerrainPagerCommand(metaData)
131  {
132 
133  }
134 
136  {
137  };
138 
139 
140  virtual void execute(DtTerrainSourcePager* pager)
141  {
144  T_Pager* specificPager = static_cast<T_Pager*>(pager);
145  execute(specificPager);
146  }
147 
148  virtual void execute(T_Pager* pager) = 0;
149 };
150 
151 
152 
virtual ~CommandCounter()
Definition: terrainPagerCommand.h:39
virtual const bool complete()
Definition: terrainPagerCommand.h:76
DtTerrainPagerSpecificCommand(DtPagingMetaDataPtr metaData)
Definition: terrainPagerCommand.h:129
DtTerrainSourcePager is the base class for terrain pagers. There will be one terrainSourcePager per t...
Definition: terrainSourcePager.h:58
CommandCounter * myCount
Definition: terrainPagerCommand.h:115
bool myProcessing
Definition: terrainPagerCommand.h:114
virtual const DtPagingMetaDataPtr metaData()
Definition: terrainPagerCommand.h:100
Template class for creating DtTerrainPagerCommand subclasses that are used for a specific subclass of...
Definition: terrainPagerCommand.h:126
static DtTerrainPagerCommandFactory theFactory
Definition: terrainPagerCommand.h:117
#define DT_DEFINE_OBJECT_DEBUGGER_NAME(type)
Definition: objectCounter.h:265
Default on in debug, off in release.
Definition: objectCounter.h:31
virtual void execute(DtTerrainSourcePager *pager)
Definition: terrainPagerCommand.h:140
DtTerrainPagerCommand(const DtPagingMetaDataPtr &metaData)
Definition: terrainPagerCommand.h:48
virtual void stopProcessing()
Definition: terrainPagerCommand.h:94
virtual ~DtTerrainPagerSpecificCommand()
Definition: terrainPagerCommand.h:135
Base class for commands that can be passed into the DtVantageTerrainEngine. These commands are passed...
Definition: terrainPagerCommand.h:30
virtual void execute(DtTerrainSourcePager *pager)=0
Definition: terrainPagerCommand.h:36
Definition: terrainPagerCommandFactory.h:32
A DtChord is a finite line segment in 3-space, represented by two points. Data derived from the two e...
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
tbb::spin_mutex myMutex
Definition: terrainPagerCommand.h:111
DtPagingMetaDataPtr myMetaData
Definition: terrainPagerCommand.h:112
virtual const bool processing()
Definition: terrainPagerCommand.h:82
virtual const int type() const =0
virtual ~DtTerrainPagerCommand()
Definition: terrainPagerCommand.h:57
bool myComplete
Definition: terrainPagerCommand.h:113
static DtTerrainPagerCommandFactory * factory()
virtual void setCount(CommandCounter &count)
Definition: terrainPagerCommand.h:63
DtBoost::shared_ptr< DtPagingMetaData > DtPagingMetaDataPtr
Definition: terrainPagingGeometry.h:101
virtual void startProcessing()
Definition: terrainPagerCommand.h:88

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)