vtkGenericSubdivisionErrorMetric Class Reference

#include <vtkGenericSubdivisionErrorMetric.h>

Inheritance diagram for vtkGenericSubdivisionErrorMetric:

Inheritance graph
[legend]
Collaboration diagram for vtkGenericSubdivisionErrorMetric:

Collaboration graph
[legend]
List of all members.

Detailed Description

Objects that compute error during cell tessellation.

Objects of that class answer the following question during the cell subdivision: "does the edge need to be subdivided?" through RequiresEdgeSubdivision(). The answer depends on the criterium actually used in the subclass of this abstract class: a geometric-based error metric (variation of edge from a straight line), an attribute-based error metric (variation of the active attribute/component value from a linear ramp) , a view-depend error metric, ... Cell subdivision is performed in the context of the adaptor framework: higher-order, or complex cells, are automatically tessellated into simplices so that they can be processed with conventional visualization algorithms.

See also:
vtkGenericCellTessellator

Definition at line 46 of file vtkGenericSubdivisionErrorMetric.h.
typedef vtkObject Superclass
virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
static int IsTypeOf (const char *type)
static vtkGenericSubdivisionErrorMetricSafeDownCast (vtkObject *o)

Public Member Functions

virtual int RequiresEdgeSubdivision (double *leftPoint, double *midPoint, double *rightPoint, double alpha)=0
virtual double GetError (double *leftPoint, double *midPoint, double *rightPoint, double alpha)=0
void SetGenericCell (vtkGenericAdaptorCell *cell)
virtual vtkGenericAdaptorCellGetGenericCell ()
void SetDataSet (vtkGenericDataSet *ds)
virtual vtkGenericDataSetGetDataSet ()

Protected Member Functions

 vtkGenericSubdivisionErrorMetric ()
 ~vtkGenericSubdivisionErrorMetric ()

Protected Attributes

vtkGenericAdaptorCellGenericCell
vtkGenericDataSetDataSet


Member Typedef Documentation

typedef vtkObject vtkGenericSubdivisionErrorMetric::Superclass

Standard VTK type and error macros.

Reimplemented from vtkObject.

Reimplemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

Definition at line 51 of file vtkGenericSubdivisionErrorMetric.h.


Constructor & Destructor Documentation

vtkGenericSubdivisionErrorMetric::vtkGenericSubdivisionErrorMetric (  )  [protected]

vtkGenericSubdivisionErrorMetric::~vtkGenericSubdivisionErrorMetric (  )  [protected]


Member Function Documentation

virtual const char* vtkGenericSubdivisionErrorMetric::GetClassName (  )  [virtual]

Standard VTK type and error macros.

Reimplemented from vtkObject.

Reimplemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

static int vtkGenericSubdivisionErrorMetric::IsTypeOf ( const char *  type  )  [static]

Standard VTK type and error macros.

Reimplemented from vtkObject.

Reimplemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

virtual int vtkGenericSubdivisionErrorMetric::IsA ( const char *  type  )  [virtual]

Standard VTK type and error macros.

Reimplemented from vtkObject.

Reimplemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

static vtkGenericSubdivisionErrorMetric* vtkGenericSubdivisionErrorMetric::SafeDownCast ( vtkObject o  )  [static]

Standard VTK type and error macros.

Reimplemented from vtkObject.

Reimplemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

void vtkGenericSubdivisionErrorMetric::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Standard VTK type and error macros.

Reimplemented from vtkObject.

Reimplemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

virtual int vtkGenericSubdivisionErrorMetric::RequiresEdgeSubdivision ( double *  leftPoint,
double *  midPoint,
double *  rightPoint,
double  alpha 
) [pure virtual]

Does the edge need to be subdivided according to the implemented computation? The edge is defined by its `leftPoint' and its `rightPoint'. `leftPoint', `midPoint' and `rightPoint' have to be initialized before calling RequiresEdgeSubdivision(). Their format is global coordinates, parametric coordinates and point centered attributes: xyx rst abc de... `alpha' is the normalized abscissa of the midpoint along the edge. (close to 0 means close to the left point, close to 1 means close to the right point)

Precondition:
leftPoint_exists: leftPoint!=0

midPoint_exists: midPoint!=0

rightPoint_exists: rightPoint!=0

clamped_alpha: alpha>0 && alpha<1

valid_size: sizeof(leftPoint)=sizeof(midPoint)=sizeof(rightPoint) =GetAttributeCollection()->GetNumberOfPointCenteredComponents()+6

Implemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

virtual double vtkGenericSubdivisionErrorMetric::GetError ( double *  leftPoint,
double *  midPoint,
double *  rightPoint,
double  alpha 
) [pure virtual]

Return the error at the mid-point. The type of error depends on the state of the concrete error metric. For instance, it can return an absolute or relative error metric. See RequiresEdgeSubdivision() for a description of the arguments.

Precondition:
leftPoint_exists: leftPoint!=0

midPoint_exists: midPoint!=0

rightPoint_exists: rightPoint!=0

clamped_alpha: alpha>0 && alpha<1

valid_size: sizeof(leftPoint)=sizeof(midPoint)=sizeof(rightPoint) =GetAttributeCollection()->GetNumberOfPointCenteredComponents()+6

Postcondition:
positive_result: result>=0

Implemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.

void vtkGenericSubdivisionErrorMetric::SetGenericCell ( vtkGenericAdaptorCell cell  ) 

The cell that the edge belongs to.

virtual vtkGenericAdaptorCell* vtkGenericSubdivisionErrorMetric::GetGenericCell (  )  [virtual]

The cell that the edge belongs to.

void vtkGenericSubdivisionErrorMetric::SetDataSet ( vtkGenericDataSet ds  ) 

Set/Get the dataset to be tessellated.

virtual vtkGenericDataSet* vtkGenericSubdivisionErrorMetric::GetDataSet (  )  [virtual]

Set/Get the dataset to be tessellated.


Member Data Documentation

vtkGenericAdaptorCell* vtkGenericSubdivisionErrorMetric::GenericCell [protected]

Definition at line 103 of file vtkGenericSubdivisionErrorMetric.h.

vtkGenericDataSet* vtkGenericSubdivisionErrorMetric::DataSet [protected]

Definition at line 104 of file vtkGenericSubdivisionErrorMetric.h.


The documentation for this class was generated from the following file:
Generated on Mon Mar 10 13:13:08 2008 for VTK by  doxygen 1.5.1