#include <vtkGenericSubdivisionErrorMetric.h>
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.
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 vtkGenericSubdivisionErrorMetric * | SafeDownCast (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 vtkGenericAdaptorCell * | GetGenericCell () |
void | SetDataSet (vtkGenericDataSet *ds) |
virtual vtkGenericDataSet * | GetDataSet () |
Protected Member Functions | |
vtkGenericSubdivisionErrorMetric () | |
~vtkGenericSubdivisionErrorMetric () | |
Protected Attributes | |
vtkGenericAdaptorCell * | GenericCell |
vtkGenericDataSet * | DataSet |
Standard VTK type and error macros.
Reimplemented from vtkObject.
Reimplemented in vtkAttributesErrorMetric, vtkGeometricErrorMetric, vtkSmoothErrorMetric, and vtkViewDependentErrorMetric.
Definition at line 51 of file vtkGenericSubdivisionErrorMetric.h.
vtkGenericSubdivisionErrorMetric::vtkGenericSubdivisionErrorMetric | ( | ) | [protected] |
vtkGenericSubdivisionErrorMetric::~vtkGenericSubdivisionErrorMetric | ( | ) | [protected] |
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)
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.
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.
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.
Definition at line 103 of file vtkGenericSubdivisionErrorMetric.h.
Definition at line 104 of file vtkGenericSubdivisionErrorMetric.h.