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

Graphics/vtkMaskFields.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkMaskFields.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 =========================================================================*/
00043 #ifndef __vtkMaskFields_h
00044 #define __vtkMaskFields_h
00045 
00046 #include "vtkDataSetToDataSetFilter.h"
00047 
00048 #include "vtkDataSetAttributes.h" // Needed for NUM_ATTRIBUTES
00049 
00050 class vtkDataSet;
00051 
00052 class VTK_GRAPHICS_EXPORT vtkMaskFields : public vtkDataSetToDataSetFilter
00053 {
00054 public:
00055   vtkTypeRevisionMacro(vtkMaskFields,vtkDataSetToDataSetFilter);
00056   void PrintSelf(ostream& os, vtkIndent indent);
00057 
00059   static vtkMaskFields *New();
00060 
00062 
00071   void CopyFieldOn(int fieldLocation, const char* name) { this->CopyFieldOnOff(fieldLocation, name, 1); }
00072   void CopyFieldOff(int fieldLocation, const char* name) { this->CopyFieldOnOff(fieldLocation, name, 0); }
00074 
00075 
00077 
00087   void CopyAttributeOn(int attributeLocation, int attributeType) { this->CopyAttributeOnOff(attributeLocation, attributeType, 1); }
00088   void CopyAttributeOff(int attributeLocation, int attributeType) { this->CopyAttributeOnOff(attributeLocation, attributeType, 0); }
00090 
00092 
00094   void CopyFieldsOff() { this->CopyFields = 0; }
00095   void CopyAttributesOff() { this->CopyAttributes = 0; }
00097 
00098   void CopyFieldsOn() { this->CopyFields = 1; }
00099   void CopyAttributesOn() { this->CopyAttributes = 1; }
00100 
00102 
00104   void CopyAttributeOn(const char* attributeLoc, 
00105                        const char* attributeType);
00106   void CopyAttributeOff(const char* attributeLoc, 
00107                         const char* attributeType);
00108   void CopyFieldOn(const char* fieldLoc, 
00109                    const char* name);
00110   void CopyFieldOff(const char* fieldLoc, 
00111                     const char* name);
00113 
00119   virtual void CopyAllOn();
00120 
00126   virtual void CopyAllOff();
00127 
00128   vtkMaskFields();
00129   virtual ~vtkMaskFields();
00130 
00131 //BTX
00132   enum FieldLocation
00133     {
00134       OBJECT_DATA=0,
00135       POINT_DATA=1,
00136       CELL_DATA=2
00137     };
00138 //ETX
00139 
00140 protected:
00141 
00142   void Execute();
00143 
00144 //BTX
00145   struct CopyFieldFlag
00146   {
00147     char* Name;
00148     int Type;
00149     int Location;
00150     int IsCopied;
00151   };
00152 //ETX
00153 
00154   CopyFieldFlag* CopyFieldFlags; // the names of fields not to be copied
00155   int NumberOfFieldFlags; // the number of fields not to be copied
00156   void CopyFieldOnOff(int fieldLocation, const char* name, int onOff);
00157   void CopyAttributeOnOff(int attributeLocation, int attributeType, int onOff);
00158   void ClearFieldFlags();
00159   int FindFlag(const char* field, int location);
00160   int FindFlag(int arrayType, int location);
00161   int GetFlag(const char* field, int location);
00162   int GetFlag(int arrayType, int location);
00163   int GetAttributeLocation(const char* loc);
00164   int GetAttributeType(const char* type);
00165 
00166   int CopyFields;
00167   int CopyAttributes;
00168 
00169   static char FieldLocationNames[3][12];
00170   static char AttributeNames[vtkDataSetAttributes::NUM_ATTRIBUTES][10];
00171 
00172 private:
00173   vtkMaskFields(const vtkMaskFields&);  // Not implemented.
00174   void operator=(const vtkMaskFields&);  // Not implemented.
00175 };
00176 
00177 #endif
00178 
00179