forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvtkGeoAlignedImageRepresentation.h
105 lines (86 loc) · 3.31 KB
/
vtkGeoAlignedImageRepresentation.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*=========================================================================
Program: Visualization Toolkit
Module: vtkGeoAlignedImageRepresentation.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright 2008 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
/**
* @class vtkGeoAlignedImageRepresentation
* @brief A multi-resolution image tree
*
*
* vtkGeoAlignedImageRepresentation represents a high resolution image
* over the globle. It has an associated vtkGeoSource which is responsible
* for fetching new data. This class keeps the fetched data in a quad-tree
* structure organized by latitude and longitude.
*/
#ifndef vtkGeoAlignedImageRepresentation_h
#define vtkGeoAlignedImageRepresentation_h
#include "vtkGeovisCoreModule.h" // For export macro
#include "vtkDataRepresentation.h"
class vtkGeoImageNode;
class vtkGeoSource;
class vtkGeoTreeNodeCache;
class VTKGEOVISCORE_EXPORT vtkGeoAlignedImageRepresentation : public vtkDataRepresentation
{
public:
static vtkGeoAlignedImageRepresentation *New();
vtkTypeMacro(vtkGeoAlignedImageRepresentation,vtkDataRepresentation);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
/**
* Retrieve the most refined image patch that covers the specified
* latitude and longitude bounds (lat-min, lat-max, long-min, long-max).
*/
virtual vtkGeoImageNode* GetBestImageForBounds(double bounds[4]);
/**
* The source for this representation. This must be set first before
* calling GetBestImageForBounds.
*/
virtual vtkGeoSource* GetSource()
{ return this->GeoSource; }
virtual void SetSource(vtkGeoSource* source);
/**
* Serialize the database to the specified directory.
* Each image is stored as a .vti file.
* The Origin and Spacing of the saved image contain (lat-min, long-min)
* and (lat-max, long-max), respectively.
* Files are named based on their level and id within that level.
*/
void SaveDatabase(const char* path);
protected:
vtkGeoAlignedImageRepresentation();
~vtkGeoAlignedImageRepresentation() VTK_OVERRIDE;
//@{
/**
* The source for creating image nodes.
*/
void SetGeoSource(vtkGeoSource* source);
vtkGeoSource* GeoSource;
//@}
/**
* The root of the image tree.
*/
vtkGeoImageNode* Root;
/**
* Initialize the representation with the current source.
*/
void Initialize();
/**
* Print information about the image tree.
*/
void PrintTree(ostream& os, vtkIndent indent, vtkGeoImageNode* root);
vtkGeoTreeNodeCache* Cache;
private:
vtkGeoAlignedImageRepresentation(const vtkGeoAlignedImageRepresentation&) VTK_DELETE_FUNCTION;
void operator=(const vtkGeoAlignedImageRepresentation&) VTK_DELETE_FUNCTION;
};
#endif