vtkGenericSubdivisionErrorMetric Class Reference
#include <vtkGenericSubdivisionErrorMetric.h>
Inheritance diagram for vtkGenericSubdivisionErrorMetric:
[legend]Collaboration diagram for vtkGenericSubdivisionErrorMetric:
[legend]List of all members.
Detailed Description
class to compute error during cell tessellation
This class is used to compute a tessellation error during cell subdivision. 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.
While this class implements a simple error measure based on geometric and attribute error (i.e., variation of edge from a straight line, variation of the attribute value from a linear ramp), it is designed to be subclassed.
See Also vtkGenericCellTessellator
- Created by:
-
- CVS contributions (if > 5%):
-
- CVS logs (CVSweb):
.cxx (/Filtering/vtkGenericSubdivisionErrorMetric
.cxx)
.h (/Filtering/vtkGenericSubdivisionErrorMetric
.h)
Definition at line 52 of file vtkGenericSubdivisionErrorMetric.h.
Member Typedef Documentation
Constructor & Destructor Documentation
vtkGenericSubdivisionErrorMetric::vtkGenericSubdivisionErrorMetric |
( |
|
) |
[protected] |
|
Member Function Documentation
|
Construct the tessellator.
Reimplemented from vtkObject. |
virtual const char* vtkGenericSubdivisionErrorMetric::GetClassName |
( |
|
) |
[virtual] |
|
|
Standard VTK type and error macros.
Reimplemented from vtkObject. |
int vtkGenericSubdivisionErrorMetric::IsTypeOf |
( |
const char * |
type |
) |
[static] |
|
|
Standard VTK type and error macros.
Reimplemented from vtkObject. |
virtual int vtkGenericSubdivisionErrorMetric::IsA |
( |
const char * |
type |
) |
[virtual] |
|
|
Standard VTK type and error macros.
Reimplemented from vtkObject. |
|
Standard VTK type and error macros.
Reimplemented from vtkObject. |
void vtkGenericSubdivisionErrorMetric::PrintSelf |
( |
ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
[virtual] |
|
|
Standard VTK type and error macros.
Reimplemented from vtkObject. |
virtual double vtkGenericSubdivisionErrorMetric::GetGeometricTolerance |
( |
|
) |
[virtual] |
|
|
Specify the number of component to interpolate This is for internal use only |
void vtkGenericSubdivisionErrorMetric::SetAbsoluteGeometricTolerance |
( |
double |
value |
) |
|
|
|
Set the geometric accuracy with an absolute value. This is the geometric object-based accuracy. Subdivision will be required if the square distance between the real point and the interpolated point is greater than `value'. For instance 0.01 will give better result than 0.1. - Precondition:
- positive_value: value>0
|
void vtkGenericSubdivisionErrorMetric::SetRelativeGeometricTolerance |
( |
double |
value, |
|
|
vtkGenericDataSet * |
ds |
|
) |
|
|
|
Set the geometric accuracy with a value relative to the length of the bounding box of the dataset. Internally compute the absolute tolerance. For instance 0.01 will give better result than 0.1. - Precondition:
- valid_range_value: value>0 && value<1
ds_exists: ds!=0
|
virtual double vtkGenericSubdivisionErrorMetric::GetPixelTolerance |
( |
|
) |
[virtual] |
|
|
Subdivision is required if the square distance between the projection of the real point and the projection of the interpolated point is greater than PixelTolerance. This is the geometric screen-based accuracy. An accuracy less or equal to 0.25 means that the two projected point are on the same pixel. CAN WE HAVE A VALUE <0.25 with antialiasing ? |
void vtkGenericSubdivisionErrorMetric::SetPixelTolerance |
( |
double |
value |
) |
|
|
|
Set the pixel accuracy to `value'. See GetPixelTolerance() for details. - Precondition:
- valid_value: value>=0.25
|
virtual double vtkGenericSubdivisionErrorMetric::GetAttributeTolerance |
( |
|
) |
[virtual] |
|
|
Relative tolerance of the active scalar (attribute+component). Subdivision is required if the square distance between the real attribute at the mid point on the edge and the interpolated attribute is greater than AttributeTolerance. This is the attribute accuracy. 0.01 will give better result than 0.1. |
void vtkGenericSubdivisionErrorMetric::SetAttributeTolerance |
( |
double |
value |
) |
|
|
|
Set the relative attribute accuracy to `value'. See GetAttributeTolerance() for details. - Precondition:
- valid_range_value: value>0 && value<1
|
virtual bool vtkGenericSubdivisionErrorMetric::EvaluateEdge |
( |
double * |
e1, |
|
|
double * |
e2 |
|
) |
[virtual] |
|
|
Return whether the indicated edge exceeds the error metric. e1 and e2 are in parametric coordinates. |
|
The error metric is based on variation of the tessellation from the actual cell geometry. |
|
The error metric is based on variation of the tessellation from the actual cell geometry. |
|
The error metric may be based on attribute variation. |
|
The error metric may be based on attribute variation. |
virtual double vtkGenericSubdivisionErrorMetric::EvaluateScreenError |
( |
double * |
vtkNotUsed(e1), |
|
|
double * |
vtkNotUsed(e2) |
|
) |
[inline, virtual] |
|
|
Subclasses of this class may evaluate screen error by overloading this method. This method returns the screen error of a particular edge given the coordinates of the endpoint of the edge. (It has been made virtual to avoid dependencies on the VTK/Rendering subdirectory. Subclasses of this class can be found in VTK/GenericFiltering.)
Definition at line 137 of file vtkGenericSubdivisionErrorMetric.h. |
void vtkGenericSubdivisionErrorMetric::ComputeAbsoluteAttributeTolerance |
( |
|
) |
[protected] |
|
|
Compute the absolute attribute tolerance, only if the cached value is obsolete. |
void vtkGenericSubdivisionErrorMetric::ComputeCoordinates |
( |
double * |
e1, |
|
|
double * |
e2 |
|
) |
[protected] |
|
|
Compute world coordinates of the vertices `e1' and `e2' defining the edge. The result is in Edge1Cache and Edge2Cache. The middle of the straight line is InterpolatedCenterCache, the middle of the arc is RealCenterCache. |
double vtkGenericSubdivisionErrorMetric::Distance2LinePoint |
( |
double |
x[3], |
|
|
double |
y[3], |
|
|
double |
z[3] |
|
) |
[protected] |
|
|
Square distance between a straight line (defined by points x and y) and a point z. Property: if x and y are equal, the line is a point and the result is the square distance between points x and z. |
double vtkGenericSubdivisionErrorMetric::EvaluateGeometricError |
( |
double * |
e1, |
|
|
double * |
e2 |
|
) |
[protected] |
|
double vtkGenericSubdivisionErrorMetric::EvaluateAttributesError |
( |
double * |
e1, |
|
|
double * |
e2 |
|
) |
[protected] |
|
Member Data Documentation
The documentation for this class was generated from the following file: