00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkGeoImageNode.h,v $ 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 -------------------------------------------------------------------------*/ 00031 #ifndef __vtkGeoImageNode_h 00032 #define __vtkGeoImageNode_h 00033 00034 #include "vtkGeoTreeNode.h" 00035 #include "vtkSmartPointer.h" // for SP 00036 #include "vtkImageData.h" // for SP 00037 00038 class vtkPolyData; 00039 class vtkTexture; 00040 00041 class VTK_GEOVIS_EXPORT vtkGeoImageNode : public vtkGeoTreeNode 00042 { 00043 public: 00044 static vtkGeoImageNode *New(); 00045 vtkTypeRevisionMacro(vtkGeoImageNode, vtkGeoTreeNode); 00046 void PrintSelf(ostream& os, vtkIndent indent); 00047 00049 00051 vtkGeoImageNode* GetChild(int idx); 00052 vtkGeoImageNode* GetParent(); 00054 00056 00057 vtkImageData* GetImage(); 00058 void SetImage(vtkImageData* image); 00060 00062 00063 vtkTexture* GetTexture(); 00064 void SetTexture(vtkTexture* texture); 00066 00068 00072 void CropImageForTile(vtkImageData* image,double* imageLonLatExt, 00073 const char* prefix = 0); 00075 00077 void LoadAnImage(const char* prefix); 00078 00080 00081 virtual void ShallowCopy(vtkGeoTreeNode *src); 00082 virtual void DeepCopy(vtkGeoTreeNode *src); 00084 00085 protected: 00086 vtkGeoImageNode(); 00087 ~vtkGeoImageNode(); 00088 00089 int PowerOfTwo(int val); 00090 00091 //BTX 00092 vtkSmartPointer<vtkImageData> Image; 00093 vtkSmartPointer<vtkTexture> Texture; 00094 //ETX 00095 00096 private: 00097 vtkGeoImageNode(const vtkGeoImageNode&); // Not implemented. 00098 void operator=(const vtkGeoImageNode&); // Not implemented. 00099 }; 00100 00101 #endif