jv.geom

## Class PuCleanMesh

- java.lang.Object
- - jv.geom.PuCleanMesh

-     public class PuCleanMesh
      extends java.lang.Object

  Utility 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 int` | `getNumDegenerateElements(PgElementSet geom)` Count degenerated elements. degenerated are elements, which do not have pairwise distinct vertices or element with less than three vertices.
    `static int` | `identifyVertices(PgGeometry geom)` Identify vertices which are identical.
    `static int` | `identifyVertices(PgPointSet geom, double eps)` Identify vertices which are within an epsilon box of each other.
    `static int` | `identifyVertices(PgPointSet geom, double eps, boolean bMarked)` Identify vertices which are within an epsilon box of each other.
    `static void` | `removeDegenerateElements(PgElementSet geom)` Adapt triangulation to the following conventions: - the vertices of an element must be pairwise different

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PuCleanMesh

          public PuCleanMesh()

  - ### 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 identified
        `eps` - 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 identified
        `eps` - tolerance of coordinate components, not distance
        `bMarked` - 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)

"

The software JavaView? is copyright protected. All Rights Reserved.
"