00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGeoProjectionSource.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2008 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 00019 -------------------------------------------------------------------------*/ 00033 #include "vtkGeoSource.h" 00034 00035 class vtkAbstractTransform; 00036 class vtkGeoTerrainNode; 00037 class vtkMutexLock; 00038 00039 class VTK_GEOVIS_EXPORT vtkGeoProjectionSource : public vtkGeoSource 00040 { 00041 public: 00042 static vtkGeoProjectionSource *New(); 00043 vtkTypeMacro(vtkGeoProjectionSource,vtkGeoSource); 00044 virtual void PrintSelf( ostream& os, vtkIndent indent ); 00045 00046 vtkGeoProjectionSource(); 00047 ~vtkGeoProjectionSource(); 00048 00050 00051 virtual bool FetchRoot(vtkGeoTreeNode* root); 00052 virtual bool FetchChild(vtkGeoTreeNode* node, int index, vtkGeoTreeNode* child); 00054 00056 00057 vtkGetMacro(Projection, int); 00058 virtual void SetProjection(int projection); 00060 00062 00063 vtkGetMacro(MinCellsPerNode, int); 00064 vtkSetMacro(MinCellsPerNode, int); 00066 00068 virtual vtkAbstractTransform* GetTransform(); 00069 00070 protected: 00071 void RefineAndComputeError(vtkGeoTerrainNode* node); 00072 00073 int Projection; 00074 int MinCellsPerNode; 00075 virtual void SetTransform(vtkAbstractTransform* transform); 00076 vtkMutexLock* TransformLock; 00077 vtkAbstractTransform* Transform; 00078 00079 private: 00080 vtkGeoProjectionSource(const vtkGeoProjectionSource&); // Not implemented 00081 void operator=(const vtkGeoProjectionSource&); // Not implemented 00082 }; 00083