jv.geom
Class PuCleanMesh
- java.lang.Object
-
- jv.geom.PuCleanMesh
-
public class PuCleanMesh extends java.lang.ObjectUtility programs for identification of equal vertices and other cleaning operations.- Author:
- Konrad Polthier, Ulrich Reitebuch
- Version:
- 06.10.03, 3.00 created (kp) Class created from a subset of methods of jvx.geom.PwCleanMesh.
07.02.02, 2.00 revised (ur) IdentifyVertices and removeDegenerateElements maintain Neighbourhoods.
21.12.01, 1.90 revised (ur) Identify Vertices enabled for PointSet, Polygon and PolygonSet.
06.06.01, 1.70 revised (ur) RemoveDegenerateElements method improved.
15.06.00, 1.20 revised (kp) Added method identifyVertices().
27.04.00, 1.10 revised (kp) Method adapt() moved from PgElementSet into this workshop.
25.01.00, 1.00 created (ur) Original class jvx.geom.PwCleanMesh.
-
-
Constructor Summary
Constructors Constructor and Description PuCleanMesh()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static intgetNumDegenerateElements(PgElementSet geom)Count degenerated elements. degenerated are elements, which do not have pairwise distinct vertices or element with less than three vertices.static intidentifyVertices(PgGeometry geom)Identify vertices which are identical.static intidentifyVertices(PgPointSet geom, double eps)Identify vertices which are within an epsilon box of each other.static intidentifyVertices(PgPointSet geom, double eps, boolean bMarked)Identify vertices which are within an epsilon box of each other.static voidremoveDegenerateElements(PgElementSet geom)Adapt triangulation to the following conventions: - the vertices of an element must be pairwise different
-
-
-
Method Detail
-
identifyVertices
public static int identifyVertices(PgGeometry geom)
Identify vertices which are identical. Vertices are first sorted along the diagonal of the bounding box to accelerate the comparison.Vertex normals are recomputed if previously available and a positive number of vertices were removed.
Method is applicable to PgPointSet and its subclasses.
- Parameters:
geom- Geometry whose vertices shall be identified- Returns:
- number of removed vertices
- See Also:
identifyVertices(PgPointSet, double)- Author:
- Konrad Polthier
- Version:
- 25.10.04, 1.10 revised (kp) Recompute vertex normals if previously available.
06.10.03, 1.00 created (kp)
-
identifyVertices
public static int identifyVertices(PgPointSet geom, double eps)
Identify vertices which are within an epsilon box of each other. Vertices are first sorted along the diagonal of the bounding box to accelerate the comparison.- Parameters:
geom- Geometry whose vertices shall be identifiedeps- tolerance of coordinate components, not distance- Returns:
- number of removed vertices
- See Also:
identifyVertices(PgGeometry),identifyVertices(PgPointSet, double, boolean)- Author:
- Konrad Polthier
- Version:
- 15.06.00, 1.00 created (kp) Method calls #identifyVertices(PgPointSet,double,false).
-
identifyVertices
public static int identifyVertices(PgPointSet geom, double eps, boolean bMarked)
Identify vertices which are within an epsilon box of each other. The new position of joined vertices is the average of the old ones. Vertices are first sorted along the diagonal of the bounding box to accelerate the comparison.If flag bMarked is true then nearby vertices are identified only if both of the vertices are marked. This allows to perform identification only on a selected set of vertices.
- Parameters:
geom- Geometry whose vertices shall be identifiedeps- tolerance of coordinate components, not distancebMarked- flag if identification is only performed on selected set of vertices- Returns:
- number of removed vertices
- See Also:
identifyVertices(PgPointSet, double)- Author:
- Konrad Polthier
- Version:
- 04.06.07, 2.20 revised (fk) New position of joined vertices is now average of old ones.
14.03.05, 2.10 revised (kp) Recompute vertex normals if initially existing.
13.08.04, 2.00 revised (kp) Additional parameter bMarked added.
20.03.03, 1.80 revised (ep) Check for (numVertices < 2).
19.05.02, 1.70 revised (kp) Sort vertices first along diagonal of bounding box.
20.12.01, 1.60 revised (ur) Extended to handle different types of geometries.
01.03.01, 1.50 revised (kp) Use heapsort to reduce complexity of method.
15.06.00, 1.00 created (kp)
-
getNumDegenerateElements
public static int getNumDegenerateElements(PgElementSet geom)
Count degenerated elements. degenerated are elements, which do not have pairwise distinct vertices or element with less than three vertices.- Author:
- Ulrich Reitebuch
- Version:
- 14.08.06, 1.00 created (ur)
-
removeDegenerateElements
public static void removeDegenerateElements(PgElementSet geom)
Adapt triangulation to the following conventions: - the vertices of an element must be pairwise different. - every element has at least three vertices.- Author:
- Ulrich Reitebuch
- Version:
- 14.08.06, 1.30 revised (ur) Maintain element textures, normals and vector fields.
30.01.02, 1.20 revised (ur) Maintain neighbourhood informations.
06.06.01, 1.10 revised (ur) Divide elements with not subsequent equal vertices.
25.01.00, 1.00 created (ur)
-
-
"