VTK
dox/Rendering/vtkViewTheme.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkViewTheme.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 -------------------------------------------------------------------------*/
00038 #ifndef __vtkViewTheme_h
00039 #define __vtkViewTheme_h
00040 
00041 #include "vtkObject.h"
00042 
00043 class vtkScalarsToColors;
00044 class vtkTextProperty;
00045 
00046 class VTK_RENDERING_EXPORT vtkViewTheme : public vtkObject
00047 {
00048 public:
00049   static vtkViewTheme* New();
00050   vtkTypeMacro(vtkViewTheme, vtkObject);
00051   void PrintSelf(ostream& os, vtkIndent indent);
00052 
00054 
00055   vtkSetMacro(PointSize, double);
00056   vtkGetMacro(PointSize, double);
00058 
00060 
00061   vtkSetMacro(LineWidth, double);
00062   vtkGetMacro(LineWidth, double);
00064 
00066 
00068   vtkSetVector3Macro(PointColor, double);
00069   vtkGetVector3Macro(PointColor, double);
00070   vtkSetMacro(PointOpacity, double);
00071   vtkGetMacro(PointOpacity, double);
00073   
00075 
00078   virtual void SetPointHueRange(double mn, double mx);
00079   virtual void SetPointHueRange(double rng[2]);
00080   virtual double* GetPointHueRange();
00081   virtual void GetPointHueRange(double& mn, double& mx);
00082   virtual void GetPointHueRange(double rng[2]);
00084 
00085   virtual void SetPointSaturationRange(double mn, double mx);
00086   virtual void SetPointSaturationRange(double rng[2]);
00087   virtual double* GetPointSaturationRange();
00088   virtual void GetPointSaturationRange(double& mn, double& mx);
00089   virtual void GetPointSaturationRange(double rng[2]);
00090 
00091   virtual void SetPointValueRange(double mn, double mx);
00092   virtual void SetPointValueRange(double rng[2]);
00093   virtual double* GetPointValueRange();
00094   virtual void GetPointValueRange(double& mn, double& mx);
00095   virtual void GetPointValueRange(double rng[2]);
00096 
00097   virtual void SetPointAlphaRange(double mn, double mx);
00098   virtual void SetPointAlphaRange(double rng[2]);
00099   virtual double* GetPointAlphaRange();
00100   virtual void GetPointAlphaRange(double& mn, double& mx);
00101   virtual void GetPointAlphaRange(double rng[2]);
00102 
00104 
00105   vtkGetObjectMacro(PointLookupTable, vtkScalarsToColors);
00106   virtual void SetPointLookupTable(vtkScalarsToColors* lut);
00108 
00110 
00111   vtkSetMacro(ScalePointLookupTable, bool);
00112   vtkGetMacro(ScalePointLookupTable, bool);
00113   vtkBooleanMacro(ScalePointLookupTable, bool);
00115 
00117 
00119   vtkSetVector3Macro(CellColor, double);
00120   vtkGetVector3Macro(CellColor, double);
00121   vtkSetMacro(CellOpacity, double);
00122   vtkGetMacro(CellOpacity, double);
00124   
00126 
00129   virtual void SetCellHueRange(double mn, double mx);
00130   virtual void SetCellHueRange(double rng[2]);
00131   virtual double* GetCellHueRange();
00132   virtual void GetCellHueRange(double& mn, double& mx);
00133   virtual void GetCellHueRange(double rng[2]);
00135 
00136   virtual void SetCellSaturationRange(double mn, double mx);
00137   virtual void SetCellSaturationRange(double rng[2]);
00138   virtual double* GetCellSaturationRange();
00139   virtual void GetCellSaturationRange(double& mn, double& mx);
00140   virtual void GetCellSaturationRange(double rng[2]);
00141 
00142   virtual void SetCellValueRange(double mn, double mx);
00143   virtual void SetCellValueRange(double rng[2]);
00144   virtual double* GetCellValueRange();
00145   virtual void GetCellValueRange(double& mn, double& mx);
00146   virtual void GetCellValueRange(double rng[2]);
00147 
00148   virtual void SetCellAlphaRange(double mn, double mx);
00149   virtual void SetCellAlphaRange(double rng[2]);
00150   virtual double* GetCellAlphaRange();
00151   virtual void GetCellAlphaRange(double& mn, double& mx);
00152   virtual void GetCellAlphaRange(double rng[2]);
00153 
00155 
00156   vtkGetObjectMacro(CellLookupTable, vtkScalarsToColors);
00157   virtual void SetCellLookupTable(vtkScalarsToColors* lut);
00159 
00161 
00162   vtkSetMacro(ScaleCellLookupTable, bool);
00163   vtkGetMacro(ScaleCellLookupTable, bool);
00164   vtkBooleanMacro(ScaleCellLookupTable, bool);
00166 
00168 
00169   vtkSetVector3Macro(OutlineColor, double);
00170   vtkGetVector3Macro(OutlineColor, double);
00172   
00174 
00175   vtkSetVector3Macro(SelectedPointColor, double);
00176   vtkGetVector3Macro(SelectedPointColor, double);
00177   vtkSetMacro(SelectedPointOpacity, double);
00178   vtkGetMacro(SelectedPointOpacity, double);
00180   
00182 
00183   vtkSetVector3Macro(SelectedCellColor, double);
00184   vtkGetVector3Macro(SelectedCellColor, double);
00185   vtkSetMacro(SelectedCellOpacity, double);
00186   vtkGetMacro(SelectedCellOpacity, double);
00188 
00190 
00191   vtkSetVector3Macro(BackgroundColor, double);
00192   vtkGetVector3Macro(BackgroundColor, double);
00194   
00196 
00197   vtkSetVector3Macro(BackgroundColor2, double);
00198   vtkGetVector3Macro(BackgroundColor2, double);
00200   
00202 
00203   virtual void SetPointTextProperty(vtkTextProperty* tprop);
00204   vtkGetObjectMacro(PointTextProperty, vtkTextProperty);
00206 
00208 
00209   virtual void SetCellTextProperty(vtkTextProperty* tprop);
00210   vtkGetObjectMacro(CellTextProperty, vtkTextProperty);
00212 
00214 
00216   virtual void SetVertexLabelColor(double r, double g, double b);
00217   virtual void SetVertexLabelColor(double c[3])
00218     { this->SetVertexLabelColor(c[0], c[1], c[2]); }
00219   virtual double *GetVertexLabelColor();
00220   virtual void GetVertexLabelColor(double &r, double &g, double &b)
00221     { double* c = this->GetVertexLabelColor(); if (c) { r = c[0]; g = c[1]; b = c[2]; } }
00222   virtual void GetVertexLabelColor(double c[3])
00223     { this->GetVertexLabelColor(c[0], c[1], c[2]); }
00225 
00227 
00229   virtual void SetEdgeLabelColor(double r, double g, double b);
00230   virtual void SetEdgeLabelColor(double c[3])
00231     { this->SetEdgeLabelColor(c[0], c[1], c[2]); }
00232   virtual double *GetEdgeLabelColor();
00233   virtual void GetEdgeLabelColor(double &r, double &g, double &b)
00234     { double* c = this->GetEdgeLabelColor(); if (c) { r = c[0]; g = c[1]; b = c[2]; } }
00235   virtual void GetEdgeLabelColor(double c[3])
00236     { this->GetEdgeLabelColor(c[0], c[1], c[2]); }
00238 
00240 
00243   static vtkViewTheme* CreateOceanTheme();
00244   static vtkViewTheme* CreateMellowTheme();
00245   static vtkViewTheme* CreateNeonTheme();
00247 
00249 
00251   bool LookupMatchesPointTheme(vtkScalarsToColors* s2c);
00252   bool LookupMatchesCellTheme(vtkScalarsToColors* s2c);
00254 
00255 protected:
00256   vtkViewTheme();
00257   ~vtkViewTheme();
00258 
00259   double PointSize;
00260   double LineWidth;
00261 
00262   double PointColor[3];
00263   double PointOpacity;
00264 
00265   double CellColor[3];
00266   double CellOpacity;
00267   
00268   double OutlineColor[3];
00269 
00270   double SelectedPointColor[3];
00271   double SelectedPointOpacity;
00272   double SelectedCellColor[3];
00273   double SelectedCellOpacity;
00274 
00275   double BackgroundColor[3];
00276   double BackgroundColor2[3];
00277 
00278   vtkScalarsToColors* PointLookupTable;
00279   vtkScalarsToColors* CellLookupTable;
00280 
00281   bool ScalePointLookupTable;
00282   bool ScaleCellLookupTable;
00283 
00284   vtkTextProperty* PointTextProperty;
00285   vtkTextProperty* CellTextProperty;
00286 
00287 private:
00288   vtkViewTheme(const vtkViewTheme&);  // Not implemented.
00289   void operator=(const vtkViewTheme&);  // Not implemented.
00290 };
00291 
00292 #endif
00293