Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Patented/vtkGridSynchronizedTemplates3D.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkGridSynchronizedTemplates3D.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015      THIS CLASS IS PATENT PENDING.
00016 
00017      Application of this software for commercial purposes requires 
00018      a license grant from Kitware. Contact:
00019          Ken Martin
00020          Kitware
00021          469 Clifton Corporate Parkway,
00022          Clifton Park, NY 12065
00023          Phone:1-518-371-3971 
00024      for more information.
00025 
00026 =========================================================================*/
00056 #ifndef __vtkGridSynchronizedTemplates3D_h
00057 #define __vtkGridSynchronizedTemplates3D_h
00058 
00059 #include "vtkStructuredGridToPolyDataFilter.h"
00060 #include "vtkContourValues.h" // Because it passes all the calls to it
00061 
00062 class vtkKitwareContourFilter;
00063 class vtkMultiThreader;
00064 
00065 class VTK_PATENTED_EXPORT vtkGridSynchronizedTemplates3D : public vtkStructuredGridToPolyDataFilter
00066 {
00067 public:
00068   static vtkGridSynchronizedTemplates3D *New();
00069   vtkTypeRevisionMacro(vtkGridSynchronizedTemplates3D,vtkStructuredGridToPolyDataFilter);
00070   void PrintSelf(ostream& os, vtkIndent indent);
00071 
00073   unsigned long int GetMTime();
00074 
00076 
00080   vtkSetMacro(ComputeNormals,int);
00081   vtkGetMacro(ComputeNormals,int);
00082   vtkBooleanMacro(ComputeNormals,int);
00084 
00086 
00092   vtkSetMacro(ComputeGradients,int);
00093   vtkGetMacro(ComputeGradients,int);
00094   vtkBooleanMacro(ComputeGradients,int);
00096 
00098 
00099   vtkSetMacro(ComputeScalars,int);
00100   vtkGetMacro(ComputeScalars,int);
00101   vtkBooleanMacro(ComputeScalars,int);
00103 
00106   void SetValue(int i, float value) {this->ContourValues->SetValue(i,value);}
00107 
00109   float GetValue(int i) {return this->ContourValues->GetValue(i);}
00110 
00113   float *GetValues() {return this->ContourValues->GetValues();}
00114 
00116 
00119   void GetValues(float *contourValues) {
00120     this->ContourValues->GetValues(contourValues);}
00122 
00124 
00127   void SetNumberOfContours(int number) {
00128     this->ContourValues->SetNumberOfContours(number);}
00130 
00132 
00133   int GetNumberOfContours() {
00134     return this->ContourValues->GetNumberOfContours();}
00136 
00138 
00140   void GenerateValues(int numContours, float range[2]) {
00141     this->ContourValues->GenerateValues(numContours, range);}
00143 
00145 
00147   void GenerateValues(int numContours, float rangeStart, float rangeEnd)
00148     {this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);}
00150 
00152 
00153   int *GetExecuteExtent() {return this->ExecuteExtent;}
00154   void ThreadedExecute(int *exExt, int threadId);
00156 
00158 
00159   vtkSetClampMacro( NumberOfThreads, int, 1, VTK_MAX_THREADS );
00160   vtkGetMacro( NumberOfThreads, int );
00162 
00165   void SetInputMemoryLimit(long limit);
00166 
00167 protected:
00168   vtkGridSynchronizedTemplates3D();
00169   ~vtkGridSynchronizedTemplates3D();
00170 
00172 
00175   vtkGetStringMacro(InputScalarsSelection);
00176   void SelectInputScalars(const char *fieldName) 
00177     {this->SetInputScalarsSelection(fieldName);}
00179   
00180   void Execute();
00181   void ExecuteInformation();
00182 
00183   void ComputeInputUpdateExtents( vtkDataObject *output );
00184 
00185   int ComputeNormals;
00186   int ComputeGradients;
00187   int ComputeScalars;
00188   vtkContourValues *ContourValues;
00189 
00190   int NumberOfThreads;
00191   vtkMultiThreader *Threader;
00192   int MinimumPieceSize[3];
00193   int ExecuteExtent[6];
00194 
00195   vtkPolyData *Threads[VTK_MAX_THREADS];
00196 
00197   char *InputScalarsSelection;
00198   vtkSetStringMacro(InputScalarsSelection);
00199 
00200 private:
00201   //BTX
00202   friend class VTK_PATENTED_EXPORT vtkKitwareContourFilter;
00203   //ETX
00204 private:
00205   vtkGridSynchronizedTemplates3D(const vtkGridSynchronizedTemplates3D&);  // Not implemented.
00206   void operator=(const vtkGridSynchronizedTemplates3D&);  // Not implemented.
00207 };
00208 
00209 
00210 #endif