#include <vtkQuadricDecimation.h>
Inheritance diagram for vtkQuadricDecimation:
vtkQuadricDecimation is a filter to reduce the number of triangles in a triangle mesh, forming a good approximation to the original geometry. The input to vtkQuadricDecimation is a vtkPolyData object, and only triangles are treated. If you desire to decimate polygonal meshes, first triangulate the polygons with vtkTriangleFilter.
The algorithm is based on repeated edge collapses until the requested mesh reduction is achieved. Edges are placed in a priority queue based on the "cost" to delete the edge. The cost is an approximate measure of error (distance to the original surface)--described by the so-called quadric error measure. The quadric error measure is associated with each vertex of the mesh and represents a matrix of planes incident on that vertex. The distance of the planes to the vertex is the error in the position of the vertex (originally the vertex error iz zero). As edges are deleted, the quadric error measure associated with the two end points of the edge are summed (this combines the plane equations) and an optimal collapse point can be computed. Edges connected to the collapse point are then reinserted into the queue after computing the new cost to delete them. The process continues until the desired reduction level is reached or topological constraints prevent further reduction. Note that this basic algorithm can be extended to higher dimensions by taking into account variation in attributes (i.e., scalars, vectors, and so on).
This paper is based on the work of Garland and Heckbert who first presented the quadric error measure at Siggraph '97 "Surface Simplification Using Quadric Error Metrics". For details of the algorithm Michael Garland's Ph.D. thesis is also recommended. Hughues Hoppe's Vis '99 paper, "New Quadric Metric for Simplifying Meshes with Appearance Attributes" is also a good take on the subject especially as it pertains to the error metric applied to attributes.
Definition at line 69 of file vtkQuadricDecimation.h.
|
Reimplemented from vtkPolyDataAlgorithm. Definition at line 72 of file vtkQuadricDecimation.h. |
|
|
|
|
|
Reimplemented from vtkPolyDataAlgorithm. |
|
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkPolyDataAlgorithm. |
|
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkPolyDataAlgorithm. |
|
Reimplemented from vtkPolyDataAlgorithm. |
|
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes. Reimplemented from vtkPolyDataAlgorithm. |
|
Set/Get the desired reduction (expressed as a fraction of the original number of triangles). The actual reduction may be less depending on triangulation and topological constraints. Reimplemented from vtkPolyDataAlgorithm. |
|
Set/Get the desired reduction (expressed as a fraction of the original number of triangles). The actual reduction may be less depending on triangulation and topological constraints. |
|
Set/Get the desired reduction (expressed as a fraction of the original number of triangles). The actual reduction may be less depending on triangulation and topological constraints. |
|
Decide whether to include data attributes in the error metric. If off, then only geometric error is used to control the decimation. By default the attribute errors are off. |
|
Decide whether to include data attributes in the error metric. If off, then only geometric error is used to control the decimation. By default the attribute errors are off. |
|
Decide whether to include data attributes in the error metric. If off, then only geometric error is used to control the decimation. By default the attribute errors are off. |
|
Decide whether to include data attributes in the error metric. If off, then only geometric error is used to control the decimation. By default the attribute errors are off. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
If attribute errors are to be included in the metric (i.e., AttributeErrorMetric is on), then the following flags control which attributes are to be included in the error calculation. By default all of these are on. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Set/Get the scaling weight contribution of the attribute. These values are used to weight the contribution of the attributes towards the error metric. |
|
Get the actual reduction. This value is only valid after the filter has executed. |
|
This is called by the superclass. This is the method you should override. Reimplemented from vtkPolyDataAlgorithm. |
|
Do the dirty work of eliminating the edge; return the number of triangles deleted. |
|
Compute quadric for all vertices |
|
Free boundary edges are weighted |
|
Compute quadric for this vertex. |
|
Add the quadrics for these 2 points since the edge between them has been collapsed. |
|
Compute cost for contracting this edge and the point that gives us this cost. |
|
Add the quadrics for these 2 points since the edge between them has been collapsed. |
|
Find all edges that will have an endpoint change ids because of an edge collapse. p1Id and p2Id are the endpoints of the edge. p2Id is the pointId being removed. |
|
Find a cell that uses this edge. |
|
|
|
|
|
|
|
|
|
Helper function to set and get the point and it's attributes as an array |
|
|
|
Find out how many components there are for each attribute for this poly data. |
|
Definition at line 192 of file vtkQuadricDecimation.h. |
|
Definition at line 193 of file vtkQuadricDecimation.h. |
|
Definition at line 194 of file vtkQuadricDecimation.h. |
|
Definition at line 196 of file vtkQuadricDecimation.h. |
|
Definition at line 197 of file vtkQuadricDecimation.h. |
|
Definition at line 198 of file vtkQuadricDecimation.h. |
|
Definition at line 199 of file vtkQuadricDecimation.h. |
|
Definition at line 200 of file vtkQuadricDecimation.h. |
|
Definition at line 202 of file vtkQuadricDecimation.h. |
|
Definition at line 203 of file vtkQuadricDecimation.h. |
|
Definition at line 204 of file vtkQuadricDecimation.h. |
|
Definition at line 205 of file vtkQuadricDecimation.h. |
|
Definition at line 206 of file vtkQuadricDecimation.h. |
|
Definition at line 208 of file vtkQuadricDecimation.h. |
|
Definition at line 209 of file vtkQuadricDecimation.h. |
|
Definition at line 210 of file vtkQuadricDecimation.h. |
|
Definition at line 211 of file vtkQuadricDecimation.h. |
|
Definition at line 212 of file vtkQuadricDecimation.h. |
|
Definition at line 213 of file vtkQuadricDecimation.h. |
|
Definition at line 214 of file vtkQuadricDecimation.h. |
|
Definition at line 215 of file vtkQuadricDecimation.h. |
|
Definition at line 224 of file vtkQuadricDecimation.h. |
|
Definition at line 225 of file vtkQuadricDecimation.h. |
|
Definition at line 226 of file vtkQuadricDecimation.h. |
|
Definition at line 229 of file vtkQuadricDecimation.h. |
|
Definition at line 230 of file vtkQuadricDecimation.h. |
|
Definition at line 231 of file vtkQuadricDecimation.h. |
|
Definition at line 232 of file vtkQuadricDecimation.h. |
|
Definition at line 233 of file vtkQuadricDecimation.h. |
|
Definition at line 234 of file vtkQuadricDecimation.h. |