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

# Patented/vtkSynchronizedTemplates3D.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkSynchronizedTemplates3D.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 =========================================================================*/
    00059 #ifndef __vtkSynchronizedTemplates3D_h
    00060 #define __vtkSynchronizedTemplates3D_h
    00061
    00062 #include "vtkPolyDataSource.h"
    00063 #include "vtkContourValues.h" // Passes calls through
    00064
    00065 class vtkImageData;
    00066 class vtkKitwareContourFilter;
    00067 class vtkMultiThreader;
    00068
    00069 class VTK_PATENTED_EXPORT vtkSynchronizedTemplates3D : public vtkPolyDataSource
    00070 {
    00071 public:
    00072   static vtkSynchronizedTemplates3D *New();
    00073
    00074   vtkTypeRevisionMacro(vtkSynchronizedTemplates3D,vtkPolyDataSource);
    00075   void PrintSelf(ostream& os, vtkIndent indent);
    00076
    00078
    00079   void SetInput(vtkImageData *input);
    00080   vtkImageData *GetInput();
    00082
    00084   unsigned long int GetMTime();
    00085
    00087
    00091   vtkSetMacro(ComputeNormals,int);
    00092   vtkGetMacro(ComputeNormals,int);
    00093   vtkBooleanMacro(ComputeNormals,int);
    00095
    00097
    00103   vtkSetMacro(ComputeGradients,int);
    00104   vtkGetMacro(ComputeGradients,int);
    00105   vtkBooleanMacro(ComputeGradients,int);
    00107
    00109
    00110   vtkSetMacro(ComputeScalars,int);
    00111   vtkGetMacro(ComputeScalars,int);
    00112   vtkBooleanMacro(ComputeScalars,int);
    00114
    00117   void SetValue(int i, float value) {this->ContourValues->SetValue(i,value);}
    00118
    00120   float GetValue(int i) {return this->ContourValues->GetValue(i);}
    00121
    00124   float *GetValues() {return this->ContourValues->GetValues();}
    00125
    00127
    00130   void GetValues(float *contourValues) {
    00131     this->ContourValues->GetValues(contourValues);}
    00133
    00135
    00138   void SetNumberOfContours(int number) {
    00139     this->ContourValues->SetNumberOfContours(number);}
    00141
    00143
    00144   int GetNumberOfContours() {
    00145     return this->ContourValues->GetNumberOfContours();}
    00147
    00149
    00151   void GenerateValues(int numContours, float range[2]) {
    00152     this->ContourValues->GenerateValues(numContours, range);}
    00154
    00156
    00158   void GenerateValues(int numContours, float rangeStart, float rangeEnd)
    00159     {this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);}
    00161
    00163
    00164   int *GetExecuteExtent() {return this->ExecuteExtent;}
    00165   void ThreadedExecute(vtkImageData *data, int *exExt, int threadId);
    00167
    00169
    00170   vtkSetClampMacro( NumberOfThreads, int, 1, VTK_MAX_THREADS );
    00171   vtkGetMacro( NumberOfThreads, int );
    00173
    00175
    00178   void SetInputMemoryLimit(unsigned long limit);
    00179   unsigned long GetInputMemoryLimit();
    00181
    00182 protected:
    00183   vtkSynchronizedTemplates3D();
    00184   ~vtkSynchronizedTemplates3D();
    00185
    00187
    00190   vtkGetStringMacro(InputScalarsSelection);
    00191   void SelectInputScalars(const char *fieldName)
    00192     {this->SetInputScalarsSelection(fieldName);}
    00194
    00195
    00196   int ComputeNormals;
    00197   int ComputeGradients;
    00198   int ComputeScalars;
    00199   vtkContourValues *ContourValues;
    00200
    00201   void Execute();
    00202   void ExecuteInformation();
    00203
    00204   void ComputeInputUpdateExtents(vtkDataObject *output);
    00205
    00206   int ExecuteExtent[6];
    00207
    00208   int NumberOfThreads;
    00209   vtkMultiThreader *Threader;
    00210   // temporary outputs
    00211   vtkPolyData *Threads[VTK_MAX_THREADS];
    00212
    00213   char *InputScalarsSelection;
    00214   vtkSetStringMacro(InputScalarsSelection);
    00215
    00216 private:
    00217   //BTX
    00218   friend class VTK_PATENTED_EXPORT vtkKitwareContourFilter;
    00219   //ETX
    00220
    00221 private:
    00222   vtkSynchronizedTemplates3D(const vtkSynchronizedTemplates3D&);  // Not implemented.
    00223   void operator=(const vtkSynchronizedTemplates3D&);  // Not implemented.
    00224 };
    00225
    00226
    00227
    00228
    00229
    00230
    00231
    00232 // template table.
    00233 //BTX
    00234
    00235 extern int VTK_SYNCHONIZED_TEMPLATES_3D_TABLE_1[];
    00236 extern int VTK_SYNCHONIZED_TEMPLATES_3D_TABLE_2[];
    00237
    00238 //ETX
    00239
    00240 #endif
    00241