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

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 Jan 21 23:46:17 2008 for VTK by  doxygen 1.4.3-20050530