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

Servers/Filters/vtkTempTessellatorFilter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkTempTessellatorFilter.h,v $
00005   Language:  C++
00006 
00007   Copyright 2003 Sandia Corporation.
00008   Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00009   license for use of this work by or on behalf of the
00010   U.S. Government. Redistribution and use in source and binary forms, with
00011   or without modification, are permitted provided that this Notice and any
00012   statement of authorship are reproduced on all copies.
00013 
00014 =========================================================================*/
00015 #ifndef __vtkTempTessellatorFilter_h
00016 #define __vtkTempTessellatorFilter_h
00017 
00056 #include "vtkDataSetToUnstructuredGridFilter.h"
00057 
00058 class vtkDataArray;
00059 class vtkDataSet;
00060 class vtkDataSetSubdivisionAlgorithm;
00061 class vtkPoints;
00062 class vtkStreamingTessellator;
00063 class vtkSubdivisionAlgorithm;
00064 class vtkUnstructuredGrid;
00065 
00066 class VTK_EXPORT vtkTempTessellatorFilter : public vtkDataSetToUnstructuredGridFilter
00067 {
00068   public:
00069     vtkTypeRevisionMacro(vtkTempTessellatorFilter,vtkDataSetToUnstructuredGridFilter);
00070     void PrintSelf( ostream& os, vtkIndent indent );
00071 
00072     static vtkTempTessellatorFilter* New();
00073 
00074     virtual void SetTessellator( vtkStreamingTessellator* );
00075     vtkGetObjectMacro(Tessellator, vtkStreamingTessellator);
00076 
00077     virtual void SetSubdivider( vtkDataSetSubdivisionAlgorithm* );
00078     vtkGetObjectMacro(Subdivider, vtkDataSetSubdivisionAlgorithm);
00079 
00080     virtual unsigned long GetMTime();
00081 
00082     vtkSetClampMacro(OutputDimension,int,1,3);
00083     vtkGetMacro(OutputDimension,int);
00084     int GetOutputDimension() const;
00085 
00087 
00090     virtual void SetMaximumNumberOfSubdivisions( int num_subdiv_in );
00091     int GetMaximumNumberOfSubdivisions();
00092     virtual void SetChordError( double ce );
00093     double GetChordError();
00095 
00097 
00098     virtual void ResetFieldCriteria();
00099     virtual void SetFieldCriterion( int field, double chord );
00101 
00103 
00107     virtual void SetMergePoints( int OnOrOff );
00108     vtkBooleanMacro(MergePoints,int);
00109     vtkGetMacro(MergePoints,int);
00110     int GetMergePoints() const { return this->MergePoints; }
00112 
00113   protected:
00114     vtkTempTessellatorFilter();
00115     ~vtkTempTessellatorFilter();
00116 
00120     void SetupOutput();
00121 
00123     virtual void Execute();
00124 
00127     void Teardown();
00128 
00129     //BTX
00130     vtkStreamingTessellator* Tessellator;
00131     vtkDataSetSubdivisionAlgorithm* Subdivider;
00132     int OutputDimension;
00133     int MergePoints;
00134 
00136 
00138     vtkUnstructuredGrid* OutputMesh;
00139     vtkPoints* OutputPoints;
00140     vtkDataArray** OutputAttributes;
00141     int* OutputAttributeIndices;
00143 
00144     static void AddALine( const double*, const double*, vtkSubdivisionAlgorithm*, void*, const void* );
00145     static void AddATriangle( const double*, const double*, const double*, vtkSubdivisionAlgorithm*, void*, const void* );
00146     static void AddATetrahedron( const double*, const double*, const double*, const double*, vtkSubdivisionAlgorithm*, void*, const void* );
00147     void OutputLine( const double*, const double* );
00148     void OutputTriangle( const double*, const double*, const double* );
00149     void OutputTetrahedron( const double*, const double*, const double*, const double* );
00150     //ETX
00151 
00152   private:
00153     vtkTempTessellatorFilter( const vtkTempTessellatorFilter& ); // Not implemented.
00154     void operator = ( const vtkTempTessellatorFilter& ); // Not implemented.
00155 };
00156 
00157 //BTX
00158 inline int vtkTempTessellatorFilter::GetOutputDimension() const { return this->OutputDimension; }
00159 //ETX
00160 
00161 #endif // __vtkTempTessellatorFilter_h

Generated on Tue May 30 12:31:47 2006 for ParaView by doxygen 1.3.5