VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkArcPlotter.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 =========================================================================*/ 00043 #ifndef __vtkArcPlotter_h 00044 #define __vtkArcPlotter_h 00045 00046 #include "vtkPolyDataAlgorithm.h" 00047 00048 #define VTK_PLOT_SCALARS 1 00049 #define VTK_PLOT_VECTORS 2 00050 #define VTK_PLOT_NORMALS 3 00051 #define VTK_PLOT_TCOORDS 4 00052 #define VTK_PLOT_TENSORS 5 00053 #define VTK_PLOT_FIELD_DATA 6 00054 00055 class vtkCamera; 00056 class vtkDataArray; 00057 class vtkPointData; 00058 class vtkPoints; 00059 00060 class VTK_HYBRID_EXPORT vtkArcPlotter : public vtkPolyDataAlgorithm 00061 { 00062 public: 00064 static vtkArcPlotter *New(); 00065 00066 vtkTypeMacro(vtkArcPlotter,vtkPolyDataAlgorithm); 00067 void PrintSelf(ostream& os, vtkIndent indent); 00068 00070 00072 virtual void SetCamera(vtkCamera*); 00073 vtkGetObjectMacro(Camera,vtkCamera); 00075 00077 00081 vtkSetMacro(PlotMode, int); 00082 vtkGetMacro(PlotMode, int); 00083 void SetPlotModeToPlotScalars() {this->SetPlotMode(VTK_PLOT_SCALARS);}; 00084 void SetPlotModeToPlotVectors() {this->SetPlotMode(VTK_PLOT_VECTORS);}; 00085 void SetPlotModeToPlotNormals() {this->SetPlotMode(VTK_PLOT_NORMALS);}; 00086 void SetPlotModeToPlotTCoords() {this->SetPlotMode(VTK_PLOT_TCOORDS);}; 00087 void SetPlotModeToPlotTensors() {this->SetPlotMode(VTK_PLOT_TENSORS);}; 00088 void SetPlotModeToPlotFieldData() 00089 {this->SetPlotMode(VTK_PLOT_FIELD_DATA);}; 00091 00093 00096 vtkSetMacro(PlotComponent,int); 00097 vtkGetMacro(PlotComponent,int); 00099 00101 00102 vtkSetClampMacro(Radius,double,0.0,VTK_LARGE_FLOAT); 00103 vtkGetMacro(Radius,double); 00105 00107 00109 vtkSetClampMacro(Height,double,0.0,VTK_LARGE_FLOAT); 00110 vtkGetMacro(Height,double); 00112 00114 00117 vtkSetClampMacro(Offset, double, 0.0, VTK_LARGE_FLOAT); 00118 vtkGetMacro(Offset, double); 00120 00122 00125 vtkSetMacro(UseDefaultNormal,int); 00126 vtkGetMacro(UseDefaultNormal,int); 00127 vtkBooleanMacro(UseDefaultNormal,int); 00129 00131 00133 vtkSetVector3Macro(DefaultNormal,float); 00134 vtkGetVectorMacro(DefaultNormal,float,3); 00136 00138 00140 vtkSetClampMacro(FieldDataArray,int,0,VTK_LARGE_INTEGER); 00141 vtkGetMacro(FieldDataArray,int); 00143 00145 unsigned long GetMTime(); 00146 00147 protected: 00148 vtkArcPlotter(); 00149 ~vtkArcPlotter(); 00150 00151 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00152 int OffsetPoint(vtkIdType ptId, vtkPoints *inPts, double n[3], 00153 vtkPoints *newPts, double offset, 00154 double *range, double val); 00155 int ProcessComponents(vtkIdType numPts, vtkPointData *pd); 00156 00157 vtkCamera *Camera; 00158 int PlotMode; 00159 int PlotComponent; 00160 double Radius; 00161 double Height; 00162 double Offset; 00163 float DefaultNormal[3]; 00164 int UseDefaultNormal; 00165 int FieldDataArray; 00166 00167 private: 00168 vtkDataArray *Data; 00169 double *DataRange; 00170 double *Tuple; 00171 int NumberOfComponents; 00172 int ActiveComponent; 00173 int StartComp; 00174 int EndComp; 00175 00176 private: 00177 vtkArcPlotter(const vtkArcPlotter&); // Not implemented. 00178 void operator=(const vtkArcPlotter&); // Not implemented. 00179 }; 00180 00181 #endif