|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object vtk.vtkObjectBase vtk.vtkObject vtk.vtkProcessObject vtk.vtkSource vtk.vtkPolyDataSource vtk.vtkPolyDataToPolyDataFilter vtk.vtkQuadricClustering
vtkQuadricClustering - reduce the number of triangles in a mesh. vtkQuadricClustering is a filter to reduce the number of triangles in a triangle mesh, forming a good approximation to the original geometry. The input to vtkQuadricClustering is a vtkPolyData object, and all types of polygonal data are handled. The algorithm used is the one described by Peter Lindstrom in his Siggraph 2000 paper, "Out-of-Core Simplification of Large Polygonal Models." The general approach of the algorithm is to cluster vertices in a uniform binning of space, accumulating the quadric of each triangle (pushed out to the triangles vertices) within each bin, and then determining an optimal position for a single vertex in a bin by using the accumulated quadric. In more detail, the algorithm first gets the bounds of the input poly data. It then breaks this bounding volume into a user-specified number of spatial bins. It then reads each triangle from the input and hashes its vertices into these bins. (If this is the first time a bin has been visited, initialize its quadric to the 0 matrix.) The algorithm computes the error quadric for this triangle and adds it to the existing quadric of the bin in which each vertex is contained. Then, if 2 or more vertices of the triangle fall in the same bin, the triangle is dicarded. If the triangle is not discarded, it adds the triangle to the list of output triangles as a list of vertex identifiers. (There is one vertex id per bin.) After all the triangles have been read, the representative vertex for each bin is computed (an optimal location is found) using the quadric for that bin. This determines the spatial location of the vertices of each of the triangles in the output. To use this filter, specify the divisions defining the spatial subdivision in the x, y, and z directions. You must also specify an input vtkPolyData. Then choose to either 1) use the original points that minimize the quadric error to produce the output triangles or 2) compute an optimal position in each bin to produce the output triangles (recommended and default behavior). This filter can take multiple inputs. To do this, the user must explicity call StartAppend, Append (once for each input), and EndAppend. StartAppend sets up the data structure to hold the quadric matrices. Append processes each triangle in the input poly data it was called on, hashes its vertices to the appropriate bins, determines whether to keep this triangle, and updates the appropriate quadric matrices. EndAppend determines the spatial location of each of the representative vertices for the visited bins. While this approach does not fit into the visualization architecture and requires manual control, it has the advantage that extremely large data can be processed in pieces and appended to the filter piece-by-piece. JavaBean wrapper for vtkQuadricClustering object.
vtkQuadricDecimation
,
vtkDecimatePro
,
Serialized FormField Summary | |
protected java.beans.PropertyChangeSupport |
changes
|
Fields inherited from class vtk.vtkObjectBase |
vtkId |
Constructor Summary | |
|
vtkQuadricClustering()
|
protected |
vtkQuadricClustering(int dmy)
|
Method Summary | |
void |
append(vtkPolyData id0)
These methods provide an alternative way of executing the filter. |
void |
autoAdjustNumberOfDivisionsOff()
Enable automatic adjustment of number of divisions. |
void |
autoAdjustNumberOfDivisionsOn()
Enable automatic adjustment of number of divisions. |
void |
copyCellDataOff()
This flag makes the filter copy cell data from input to output (the best it can). |
void |
copyCellDataOn()
This flag makes the filter copy cell data from input to output (the best it can). |
void |
endAppend()
These methods provide an alternative way of executing the filter. |
int |
getAutoAdjustNumberOfDivisions()
Enable automatic adjustment of number of divisions. |
java.lang.String |
getClassName()
Return the class name as a string. |
int |
getCopyCellData()
This flag makes the filter copy cell data from input to output (the best it can). |
double[] |
getDivisionOrigin()
This is an alternative way to set up the bins. |
double[] |
getDivisionSpacing()
This is an alternative way to set up the bins. |
vtkFeatureEdges |
getFeatureEdges()
By default, this flag is off. |
double |
getFeaturePointsAngle()
Set/Get the angle to use in determining whether a point on a boundary / feature edge is a feature point. |
double |
getFeaturePointsAngleMaxValue()
Set/Get the angle to use in determining whether a point on a boundary / feature edge is a feature point. |
double |
getFeaturePointsAngleMinValue()
Set/Get the angle to use in determining whether a point on a boundary / feature edge is a feature point. |
int[] |
getNumberOfDivisions()
Set/Get the number of divisions along each axis for the spatial bins. |
void |
getNumberOfDivisions(int[] id0)
Set/Get the number of divisions along each axis for the spatial bins. |
int |
getNumberOfXDivisions()
Set/Get the number of divisions along each axis for the spatial bins. |
int |
getNumberOfYDivisions()
Set/Get the number of divisions along each axis for the spatial bins. |
int |
getNumberOfZDivisions()
Set/Get the number of divisions along each axis for the spatial bins. |
vtkQuadricClustering |
getThisQuadricClustering()
|
int |
getUseFeatureEdges()
By default, this flag is off. |
int |
getUseFeaturePoints()
By default, this flag is off. |
int |
getUseInputPoints()
Normally the point that minimizes the quadric error function is used as the output of the bin. |
int |
getUseInternalTriangles()
When this flag is on (and it is on by default), then triangles that are completely contained in a bin are added to the bin quadrics. |
int |
isA(java.lang.String id0)
Return 1 if this class is the same type of (or a subclass of) the named class. |
void |
setAutoAdjustNumberOfDivisions(int id0)
Enable automatic adjustment of number of divisions. |
void |
setCopyCellData(int id0)
This flag makes the filter copy cell data from input to output (the best it can). |
void |
setDivisionOrigin(double[] id0)
This is an alternative way to set up the bins. |
void |
setDivisionOrigin(double id0,
double id1,
double id2)
This is an alternative way to set up the bins. |
void |
setDivisionSpacing(double[] id0)
This is an alternative way to set up the bins. |
void |
setDivisionSpacing(double id0,
double id1,
double id2)
This is an alternative way to set up the bins. |
void |
setFeaturePointsAngle(double id0)
Set/Get the angle to use in determining whether a point on a boundary / feature edge is a feature point. |
void |
setNumberOfDivisions(int[] id0)
Set/Get the number of divisions along each axis for the spatial bins. |
void |
setNumberOfDivisions(int id0,
int id1,
int id2)
Set/Get the number of divisions along each axis for the spatial bins. |
void |
setNumberOfXDivisions(int id0)
Set/Get the number of divisions along each axis for the spatial bins. |
void |
setNumberOfYDivisions(int id0)
Set/Get the number of divisions along each axis for the spatial bins. |
void |
setNumberOfZDivisions(int id0)
Set/Get the number of divisions along each axis for the spatial bins. |
void |
setUseFeatureEdges(int id0)
By default, this flag is off. |
void |
setUseFeaturePoints(int id0)
By default, this flag is off. |
void |
setUseInputPoints(int id0)
Normally the point that minimizes the quadric error function is used as the output of the bin. |
void |
setUseInternalTriangles(int id0)
When this flag is on (and it is on by default), then triangles that are completely contained in a bin are added to the bin quadrics. |
void |
startAppend(double id0,
double id1,
double id2,
double id3,
double id4,
double id5)
These methods provide an alternative way of executing the filter. |
void |
useFeatureEdgesOff()
By default, this flag is off. |
void |
useFeatureEdgesOn()
By default, this flag is off. |
void |
useFeaturePointsOff()
By default, this flag is off. |
void |
useFeaturePointsOn()
By default, this flag is off. |
void |
useInputPointsOff()
Normally the point that minimizes the quadric error function is used as the output of the bin. |
void |
useInputPointsOn()
Normally the point that minimizes the quadric error function is used as the output of the bin. |
void |
useInternalTrianglesOff()
When this flag is on (and it is on by default), then triangles that are completely contained in a bin are added to the bin quadrics. |
void |
useInternalTrianglesOn()
When this flag is on (and it is on by default), then triangles that are completely contained in a bin are added to the bin quadrics. |
protected void |
VTKCastInit()
|
void |
VTKInit()
|
Methods inherited from class vtk.vtkPolyDataToPolyDataFilter |
getInput, getThisPolyDataToPolyDataFilter, setInput |
Methods inherited from class vtk.vtkPolyDataSource |
getOutput, getOutput, getThisPolyDataSource, setOutput |
Methods inherited from class vtk.vtkObject |
AddObserver, breakOnError, debugOff, debugOn, getDebug, getGlobalWarningDisplay, getMTime, getThisObject, globalWarningDisplayOff, globalWarningDisplayOn, hasObserver, hasObserver, invokeEvent, invokeEvent, modified, Print, PrintRevisions, register, removeObserver, removeObservers, removeObservers, setDebug, setGlobalWarningDisplay |
Methods inherited from class vtk.vtkObjectBase |
addPropertyChangeListener, finalize, getReferenceCount, getThisObjectBase, isTypeOf, removePropertyChangeListener, setReferenceCount, VTKDelete |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.beans.PropertyChangeSupport changes
Constructor Detail |
public vtkQuadricClustering()
protected vtkQuadricClustering(int dmy)
Method Detail |
public vtkQuadricClustering getThisQuadricClustering()
public java.lang.String getClassName()
vtkObjectBase
getClassName
in class vtkPolyDataToPolyDataFilter
public int isA(java.lang.String id0)
vtkObjectBase
isA
in class vtkPolyDataToPolyDataFilter
public void setNumberOfXDivisions(int id0)
public void setNumberOfYDivisions(int id0)
public void setNumberOfZDivisions(int id0)
public int getNumberOfXDivisions()
public int getNumberOfYDivisions()
public int getNumberOfZDivisions()
public void setNumberOfDivisions(int[] id0)
public void setNumberOfDivisions(int id0, int id1, int id2)
public int[] getNumberOfDivisions()
public void getNumberOfDivisions(int[] id0)
public void setAutoAdjustNumberOfDivisions(int id0)
public int getAutoAdjustNumberOfDivisions()
public void autoAdjustNumberOfDivisionsOn()
public void autoAdjustNumberOfDivisionsOff()
public void setDivisionOrigin(double id0, double id1, double id2)
public void setDivisionOrigin(double[] id0)
public double[] getDivisionOrigin()
public void setDivisionSpacing(double id0, double id1, double id2)
public void setDivisionSpacing(double[] id0)
public double[] getDivisionSpacing()
public void setUseInputPoints(int id0)
public int getUseInputPoints()
public void useInputPointsOn()
public void useInputPointsOff()
public void setUseFeatureEdges(int id0)
public int getUseFeatureEdges()
public void useFeatureEdgesOn()
public void useFeatureEdgesOff()
public vtkFeatureEdges getFeatureEdges()
public void setUseFeaturePoints(int id0)
public int getUseFeaturePoints()
public void useFeaturePointsOn()
public void useFeaturePointsOff()
public void setFeaturePointsAngle(double id0)
public double getFeaturePointsAngleMinValue()
public double getFeaturePointsAngleMaxValue()
public double getFeaturePointsAngle()
public void setUseInternalTriangles(int id0)
public int getUseInternalTriangles()
public void useInternalTrianglesOn()
public void useInternalTrianglesOff()
public void startAppend(double id0, double id1, double id2, double id3, double id4, double id5)
public void append(vtkPolyData id0)
public void endAppend()
public void setCopyCellData(int id0)
public int getCopyCellData()
public void copyCellDataOn()
public void copyCellDataOff()
public void VTKInit()
VTKInit
in class vtkObject
protected void VTKCastInit()
VTKCastInit
in class vtkPolyDataToPolyDataFilter
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |