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

Servers/Filters/vtkDataSetSubdivisionAlgorithm.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkDataSetSubdivisionAlgorithm.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 __vtkDataSetSubdivisionAlgorithm_h
00016 #define __vtkDataSetSubdivisionAlgorithm_h
00017 
00041 #include "vtkSubdivisionAlgorithm.h"
00042 
00043 class vtkCell;
00044 class vtkDataSet;
00045 
00046 class VTK_EXPORT vtkDataSetSubdivisionAlgorithm : public vtkSubdivisionAlgorithm
00047 {
00048   public:
00049     vtkTypeRevisionMacro(vtkDataSetSubdivisionAlgorithm,vtkSubdivisionAlgorithm);
00050     static vtkDataSetSubdivisionAlgorithm* New();
00051     virtual void PrintSelf( ostream& os, vtkIndent indent );
00052 
00053     virtual void SetMesh( vtkDataSet* );
00054     vtkDataSet* GetMesh();
00055     const vtkDataSet* GetMesh() const;
00056 
00057     virtual void SetCellId( vtkIdType cell );
00058     vtkIdType  GetCellId() const;
00059     //BTX
00060     vtkIdType& GetCellId();
00061     //ETX
00062     vtkCell* GetCell();
00063     const vtkCell* GetCell() const;
00064 
00065     virtual bool EvaluateEdge( const double* p0, double* midpt, const double* p1, int field_start );
00066 
00096     double* EvaluateFields( double* vertex, double* weights, int field_start );
00097 
00099 
00102     void EvaluatePointDataField( double* result, double* weights, int field );
00103     void EvaluateCellDataField( double* result, double* weights, int field );
00105 
00107 
00109     vtkSetMacro(ChordError2,double);
00110     vtkGetMacro(ChordError2,double);
00112 
00114 
00118     virtual void SetFieldError2( int s, double err );
00119     double GetFieldError2( int s ) const;
00121 
00125     virtual void ResetFieldError2();
00126 
00128 
00131     vtkGetMacro(ActiveFieldCriteria,int);
00132     int GetActiveFieldCriteria() const { return this->ActiveFieldCriteria; }
00134 
00135   protected:
00136     vtkDataSetSubdivisionAlgorithm();
00137     virtual ~vtkDataSetSubdivisionAlgorithm();
00138 
00139     vtkDataSet* CurrentMesh;
00140     vtkIdType CurrentCellId;
00141     vtkCell* CurrentCellData;
00142 
00143     double ChordError2;
00144     double* FieldError2;
00145     int FieldError2Length;
00146     int FieldError2Capacity;
00147     int ActiveFieldCriteria;
00148 
00149   private:
00150     vtkDataSetSubdivisionAlgorithm( const vtkDataSetSubdivisionAlgorithm& ); // Not implemented.
00151     void operator = ( const vtkDataSetSubdivisionAlgorithm& ); // Not implemented.
00152 
00153 };
00154 
00155 //BTX
00156 
00157 inline vtkIdType& vtkDataSetSubdivisionAlgorithm::GetCellId()       { return this->CurrentCellId; }
00158 inline vtkIdType  vtkDataSetSubdivisionAlgorithm::GetCellId() const { return this->CurrentCellId; }
00159 
00160 inline       vtkDataSet* vtkDataSetSubdivisionAlgorithm::GetMesh()       { return this->CurrentMesh; }
00161 inline const vtkDataSet* vtkDataSetSubdivisionAlgorithm::GetMesh() const { return this->CurrentMesh; }
00162 
00163 inline       vtkCell* vtkDataSetSubdivisionAlgorithm::GetCell()       { return this->CurrentCellData; }
00164 inline const vtkCell* vtkDataSetSubdivisionAlgorithm::GetCell() const { return this->CurrentCellData; }
00165 
00166 //ETX
00167 
00168 #endif // __vtkDataSetSubdivisionAlgorithm_h

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