VTK
vtkGeoTerrainNode.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGeoTerrainNode.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
16 /*-------------------------------------------------------------------------
17  Copyright 2008 Sandia Corporation.
18  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
19  the U.S. Government retains certain rights in this software.
20 -------------------------------------------------------------------------*/
21 
30 #ifndef vtkGeoTerrainNode_h
31 #define vtkGeoTerrainNode_h
32 
33 #include "vtkGeovisCoreModule.h" // For export macro
34 #include "vtkGeoTreeNode.h"
35 #include "vtkSmartPointer.h" // for SP
36 
37 class vtkPolyData;
38 
40 {
41 public:
42  static vtkGeoTerrainNode *New();
44  void PrintSelf(ostream& os, vtkIndent indent);
45 
47 
49  vtkGeoTerrainNode* GetChild(int idx);
50  vtkGeoTerrainNode* GetParent();
52 
55  double GetAltitude(double longitude, double latitude);
56 
58 
60  vtkPolyData* GetModel();
61  void SetModel(vtkPolyData* model);
63 
65 
66  void UpdateBoundingSphere();
67  vtkGetMacro(BoundingSphereRadius, double);
68  vtkGetVector3Macro(BoundingSphereCenter, double);
70 
71  vtkGetVector3Macro(CornerNormal00,double);
72  vtkGetVector3Macro(CornerNormal01,double);
73  vtkGetVector3Macro(CornerNormal10,double);
74  vtkGetVector3Macro(CornerNormal11,double);
75 
77 
79  vtkGetVector4Macro(ProjectionBounds,double);
80  vtkSetVector4Macro(ProjectionBounds,double);
82 
84 
86  vtkGetMacro(GraticuleLevel,int);
87  vtkSetMacro(GraticuleLevel,int);
89 
91 
93  vtkGetMacro(Error,double);
94  vtkSetMacro(Error,double);
96 
98 
100  vtkGetMacro(Coverage,float);
101  vtkSetMacro(Coverage,float);
103 
105 
106  virtual void ShallowCopy(vtkGeoTreeNode *src);
107  virtual void DeepCopy(vtkGeoTreeNode *src);
109 
112  virtual bool HasData();
113 
117  virtual void DeleteData();
118 
119 protected:
122 
123 //BTX
125 //ETX
126 
128  double BoundingSphereCenter[3];
129 
130  // I hate having to store this, but it is the easiest
131  // way to determine if a node is not visible because
132  // it is on the other side of the earth.
133  double CornerNormal00[3];
134  double CornerNormal01[3];
135  double CornerNormal10[3];
136  double CornerNormal11[3];
137 
138  double ProjectionBounds[4];
140  double Error;
141  float Coverage;
142 
143 private:
144  vtkGeoTerrainNode(const vtkGeoTerrainNode&); // Not implemented.
145  void operator=(const vtkGeoTerrainNode&); // Not implemented.
146 };
147 
148 #endif
virtual void ShallowCopy(vtkGeoTreeNode *src)
void PrintSelf(ostream &os, vtkIndent indent)
virtual bool HasData()
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:83
vtkSmartPointer< vtkPolyData > Model
a simple class to control print indentation
Definition: vtkIndent.h:38
static vtkGeoTreeNode * New()
#define VTKGEOVISCORE_EXPORT
Stores data for a patch of the globe.
virtual void DeleteData()
virtual void DeepCopy(vtkGeoTreeNode *src)