VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkEdgeSubdivisionCriterion.h 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 __vtkEdgeSubdivisionCriterion_h 00016 #define __vtkEdgeSubdivisionCriterion_h 00017 00040 #include "vtkFiltersCoreModule.h" // For export macro 00041 #include "vtkObject.h" 00042 00043 class vtkDataSetAttributes; 00044 class vtkMatrix4x4; 00045 class vtkStreamingTessellator; 00046 00047 class VTKFILTERSCORE_EXPORT vtkEdgeSubdivisionCriterion : public vtkObject 00048 { 00049 public: 00050 vtkTypeMacro(vtkEdgeSubdivisionCriterion,vtkObject); 00051 virtual void PrintSelf( ostream& os, vtkIndent indent ); 00052 00056 virtual bool EvaluateEdge( const double* p0, double* p1, const double* p2, int field_start ) = 0 ; 00057 00064 virtual int PassField( int sourceId, int sourceSize, vtkStreamingTessellator* t ); 00065 00069 virtual void ResetFieldList(); 00070 00074 virtual bool DontPassField( int sourceId, vtkStreamingTessellator* t ); 00075 00079 const int* GetFieldIds() const; 00080 00085 const int* GetFieldOffsets() const; 00086 00089 int GetOutputField( int fieldId ) const; 00090 00094 int GetNumberOfFields() const; 00095 00096 protected: 00097 vtkEdgeSubdivisionCriterion(); 00098 virtual ~vtkEdgeSubdivisionCriterion(); 00099 00100 int* FieldIds; 00101 int* FieldOffsets; 00102 int NumberOfFields; 00103 00123 bool ViewDependentEval( const double* p0, double* p1, double* p1_actual, const double* p2, int field_start, vtkMatrix4x4* viewtrans, const double* pixelSize, double allowableChordErr ) const; 00124 00148 bool FixedFieldErrorEval( const double* p0, double* p1, double* p1_actual, const double* p2, int field_start, int field_criteria, double* allowableFieldErr ) const; 00149 00150 private: 00151 vtkEdgeSubdivisionCriterion( const vtkEdgeSubdivisionCriterion& ); // Not implemented. 00152 void operator = ( const vtkEdgeSubdivisionCriterion& ); // Not implemented. 00153 }; 00154 00155 //BTX 00156 00157 inline const int* vtkEdgeSubdivisionCriterion::GetFieldIds() const { return this->FieldIds; } 00158 inline const int* vtkEdgeSubdivisionCriterion::GetFieldOffsets() const { return this->FieldOffsets; } 00159 inline int vtkEdgeSubdivisionCriterion::GetNumberOfFields() const { return this->NumberOfFields; } 00160 00161 //ETX 00162 00163 #endif // __vtkEdgeSubdivisionCriterion_h