#include <vtkGeoSource.h>
vtkGeoSource is an abstract superclass for all multi-resolution data sources shown in a geographic view like vtkGeoView or vtkGeoView2D. vtkGeoSource subclasses need to implement the FetchRoot() method, which fills a vtkGeoTreeNode with the low-res data at the root, and FetchChild(), which produces a refinement of a parent node. Other geovis classes such as vtkGeoTerrain, vtkGeoTerrain2D, and vtkGeoAlignedImageSource use a vtkGeoSource subclass to build their geometry or image caches which are stored in trees. The source itself does not maintain the tree, but simply provides a mechanism for generating refined tree nodes.
Sources are multi-threaded. Each source may have one or more worker threads associated with it, which this superclass manages. It is essential that the FetchChild() method is thread-safe, since it may be called from multiple workers simultaneously.
Definition at line 55 of file vtkGeoSource.h.
Public Types | |
typedef vtkObject | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
vtkGeoSource () | |
~vtkGeoSource () | |
void | Initialize (int numThreads=1) |
void | ShutDown () |
void | WorkerThread () |
virtual vtkAbstractTransform * | GetTransform () |
virtual bool | FetchRoot (vtkGeoTreeNode *root)=0 |
virtual bool | FetchChild (vtkGeoTreeNode *node, int index, vtkGeoTreeNode *child)=0 |
virtual void | RequestChildren (vtkGeoTreeNode *node) |
virtual vtkCollection * | GetRequestedNodes (vtkGeoTreeNode *node) |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkGeoSource * | SafeDownCast (vtkObject *o) |
Protected Attributes | |
vtkCollection * | InputSet |
vtkCollection * | ProcessingSet |
vtkMutexLock * | Lock |
vtkConditionVariable * | Condition |
vtkMultiThreader * | Threader |
bool | StopThread |
bool | Initialized |
implementation * | Implementation |
vtkMutexLock * | InputSetLock |
vtkMutexLock * | ProcessingSetLock |
vtkMutexLock * | OutputSetLock |
typedef vtkObject vtkGeoSource::Superclass |
Reimplemented from vtkObject.
Reimplemented in vtkGeoAlignedImageSource, vtkGeoFileImageSource, vtkGeoFileTerrainSource, vtkGeoGlobeSource, and vtkGeoProjectionSource.
Definition at line 58 of file vtkGeoSource.h.
vtkGeoSource::vtkGeoSource | ( | ) |
vtkGeoSource::~vtkGeoSource | ( | ) |
virtual const char* vtkGeoSource::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkObject.
Reimplemented in vtkGeoAlignedImageSource, vtkGeoFileImageSource, vtkGeoFileTerrainSource, vtkGeoGlobeSource, and vtkGeoProjectionSource.
static int vtkGeoSource::IsTypeOf | ( | const char * | name | ) | [static] |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.
Reimplemented from vtkObject.
Reimplemented in vtkGeoAlignedImageSource, vtkGeoFileImageSource, vtkGeoFileTerrainSource, vtkGeoGlobeSource, and vtkGeoProjectionSource.
virtual int vtkGeoSource::IsA | ( | const char * | name | ) | [virtual] |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.
Reimplemented from vtkObject.
Reimplemented in vtkGeoAlignedImageSource, vtkGeoFileImageSource, vtkGeoFileTerrainSource, vtkGeoGlobeSource, and vtkGeoProjectionSource.
static vtkGeoSource* vtkGeoSource::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkObject.
Reimplemented in vtkGeoAlignedImageSource, vtkGeoFileImageSource, vtkGeoFileTerrainSource, vtkGeoGlobeSource, and vtkGeoProjectionSource.
virtual bool vtkGeoSource::FetchRoot | ( | vtkGeoTreeNode * | root | ) | [pure virtual] |
Blocking access methods.
Implemented in vtkGeoAlignedImageSource, vtkGeoFileImageSource, vtkGeoFileTerrainSource, vtkGeoGlobeSource, and vtkGeoProjectionSource.
virtual bool vtkGeoSource::FetchChild | ( | vtkGeoTreeNode * | node, | |
int | index, | |||
vtkGeoTreeNode * | child | |||
) | [pure virtual] |
Blocking access methods.
Implemented in vtkGeoAlignedImageSource, vtkGeoFileImageSource, vtkGeoFileTerrainSource, vtkGeoGlobeSource, and vtkGeoProjectionSource.
virtual void vtkGeoSource::RequestChildren | ( | vtkGeoTreeNode * | node | ) | [virtual] |
Non-blocking methods for sources with high latency.
virtual vtkCollection* vtkGeoSource::GetRequestedNodes | ( | vtkGeoTreeNode * | node | ) | [virtual] |
Non-blocking methods for sources with high latency.
void vtkGeoSource::Initialize | ( | int | numThreads = 1 |
) |
Spawn worker threads.
void vtkGeoSource::ShutDown | ( | ) |
Shut down the source. This terminates the thread and releases memory.
void vtkGeoSource::WorkerThread | ( | ) |
virtual vtkAbstractTransform* vtkGeoSource::GetTransform | ( | ) | [inline, virtual] |
Return the projection transformation used by this source.
Reimplemented in vtkGeoProjectionSource.
Definition at line 84 of file vtkGeoSource.h.
vtkCollection* vtkGeoSource::InputSet [protected] |
Definition at line 88 of file vtkGeoSource.h.
vtkCollection* vtkGeoSource::ProcessingSet [protected] |
Definition at line 89 of file vtkGeoSource.h.
vtkMutexLock* vtkGeoSource::InputSetLock [protected] |
Locks the set for reading or writing
Definition at line 93 of file vtkGeoSource.h.
vtkMutexLock* vtkGeoSource::ProcessingSetLock [protected] |
Locks the set for reading or writing
Definition at line 94 of file vtkGeoSource.h.
vtkMutexLock* vtkGeoSource::OutputSetLock [protected] |
Locks the set for reading or writing
Definition at line 95 of file vtkGeoSource.h.
vtkMutexLock* vtkGeoSource::Lock [protected] |
Definition at line 98 of file vtkGeoSource.h.
vtkConditionVariable* vtkGeoSource::Condition [protected] |
Definition at line 100 of file vtkGeoSource.h.
vtkMultiThreader* vtkGeoSource::Threader [protected] |
Definition at line 102 of file vtkGeoSource.h.
bool vtkGeoSource::StopThread [protected] |
Definition at line 103 of file vtkGeoSource.h.
bool vtkGeoSource::Initialized [protected] |
Definition at line 104 of file vtkGeoSource.h.
implementation* vtkGeoSource::Implementation [protected] |
Definition at line 107 of file vtkGeoSource.h.