jvx.geom

## Class PwIdentify

- java.lang.Object
- - jv.object.PsObject
  - - jvx.project.PjWorkshop
    - - jvx.geom.PwIdentify

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, PsUpdateIf, PjWorkshopIf

      public class PwIdentify
      extends PjWorkshop

  Utility programs for cleaning and correcting a polyhedral mesh. Contains static functions to operate on a PgElementSet.

  Identification of vertices incorporated into loader manager jv.loader.PgLoader. Therefore functionality to identify vertices moved from jvx.geom.PwCleanMesh to jv.geom.PuCleanMesh.

  See Also:
    Serialized Form
  Author:
    Konrad Polthier, Ulrich Reitebuch
  Version:
    09.10.07, 4.00 revised (mn) Split into PwIdentify and PwCleanMesh.
    27.06.07, 3.30 revised (ur) Some methods changed from protected to public.
    22.09.06, 3.20 revised (ur) New methods to repair non-manifold situations are added.
    01.01.04, 3.10 revised (kp) New methods regarding number of components.
    06.10.03, 3.00 revised (kp) Functionality for identification of vertices moved to jv.geom.PuCleanMesh.
    08.05.02, 2.40 revised (ur) New methods to handle parameter lines added.
    02.05.02, 2.30 revised (kp) Working implementation of new method to identify flat vertex stars.
    08.04.02, 2.20 revised (ur) PgElementSet boundary methods moved from PwCleanMesh to PwBoundary.
    14.02.02, 2.10 revised (ur) New Method to make Boundary Constraints.
    07.02.02, 2.00 revised (ur) PwCleanMesh now extends PjWorkshop.
    IdentifyVertices and removeDegenerateElements maintain Neighbourhoods.
    21.12.01, 1.90 revised (ur) Identify Vertices enabled for PointSet, Polygon and PolygonSet.
    19.11.01, 1.80 revised (ur) Three new methods added.
    06.06.01, 1.70 revised (ur) RemoveDegenerateElements method improved.
    02.02.01, 1.60 revised (ur) New Method orientate(PgElementSet) added.
    13.12.00, 1.50 revised (ur) Methods markVertices and removeMarks added.
    21.11.00, 1.40 revised (ur) Added method getDialog().
    21.11.00, 1.30 revised (ep) Added method isDegenerated(PgElementSet).
    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)

- - ### Field Summary

    - ### Fields inherited from class jv.object.PsObject

      `HAS_BOUNDARY_PANEL, HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS`

    - ### Fields inherited from interface jv.project.PjWorkshopIf

      `MODE_BUG, MODE_STANDARD, MODE_VALIDATE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PwIdentify()` Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close workshop and remove itself as listener from various classes.
    `static int` | `identifyFlatEdges(PgElementSet geom, double eps)` Identify pairs of adjacent elements whose dihedral angle is less than a given threshold.
    `static int` | `identifyFlatRegions(PgElementSet geom, double eps)` Identify flat vertex stars to a single elements if the discrete Gauss curvature is less or equal than a given threshold.
    `static int` | `markFlatEdges(PgElementSet geom, double eps)` Mark pairs of adjacent elements whose dihedral angle is less than a given threshold.
    `static int` | `markFlatRegions(PgElementSet geom, double eps)` Mark flat regions by identifying adjacent elements whose dihedral angle is less or equal than a given threshold.
    `void` | `markVertices(double eps)` Mark vertices which are identical, or within an epsilon box of each other.
    `static void` | `markVertices(PgPointSet geom, double eps)` Mark vertices which are identical, or within an epsilon box of each other.
    `void` | `ok()` Accept the current state of the geometry and close the workshop.
    `void` | `removeMarks()` Remove tag IS_SELECTED from all vertices in geometry.
    `static void` | `removeMarks(PgGeometry geom)` Remove tag IS_SELECTED from all vertices and elements in geometry.
    `void` | `reset()` Reset this workshop to its initial state from which computations can start.

    - ### Methods inherited from class jvx.project.PjWorkshop

      `cancel, getDisplay, getDisplays, getGeometry, getMode, getSavedGeometry, getViewer, init, isModal, isStandalone, removeGeometry, setDisplay, setDisplays, setGeometry, setModal, setMode, setStandalone, setViewer, update`

    - ### Methods inherited from class jv.object.PsObject

      `addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, toString, updatePanels`

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

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

    - ### Methods inherited from interface jv.object.PsUpdateIf

      `getFather, getName, setParent`

- - ### Constructor Detail

    - #### PwIdentify

          public PwIdentify()

      Constructor.

  - ### Method Detail

    - #### reset

          public void reset()

      Reset this workshop to its initial state from which computations can start.
      Overrides:
        `reset` in class `PjWorkshop`

    - #### close

          public void close()

      Close workshop and remove itself as listener from various classes. The workshop will no longer be functional after this call.
      Overrides:
        `close` in class `PjWorkshop`

    - #### ok

          public void ok()

      Accept the current state of the geometry and close the workshop.
      Overrides:
        `ok` in class `PjWorkshop`

    - #### markFlatEdges

          public static int markFlatEdges(PgElementSet geom,
                                          double eps)

      Mark pairs of adjacent elements whose dihedral angle is less than a given threshold. Identification at long edges is preferred since presumable for triangles they are diagonals in a quadrilateral.
      Parameters:
        `geom` - geometry whose elements shall be identified
        `eps` - threshold in [0, 180]
      Returns:
        number of removed elements
      Author:
        Konrad Polthier
      Version:
        16.05.04, 1.00 created (kp)

    - #### identifyFlatEdges

          public static int identifyFlatEdges(PgElementSet geom,
                                              double eps)

      Identify pairs of adjacent elements whose dihedral angle is less than a given threshold. Identification at long edges is preferred since presumable for triangles they are diagonals in a quadrilateral.
      Parameters:
        `geom` - geometry whose elements shall be identified
        `eps` - threshold in [0, 180]
      Returns:
        number of removed elements
      Author:
        Konrad Polthier
      Version:
        16.05.04, 1.00 created (kp)

    - #### identifyFlatRegions

          public static int identifyFlatRegions(PgElementSet geom,
                                                double eps)

      Identify flat vertex stars to a single elements if the discrete Gauss curvature is less or equal than a given threshold.
      Parameters:
        `geom` - Geometry whose vertices shall be identified
        `eps` - threshold in [0, 180]
      Returns:
        number of removed elements
      Author:
        Konrad Polthier
      Version:
        28.04.02, 1.00 created (kp)

    - #### markFlatRegions

          public static int markFlatRegions(PgElementSet geom,
                                            double eps)

      Mark flat regions by identifying adjacent elements whose dihedral angle is less or equal than a given threshold.
      Parameters:
        `geom` - Geometry whose vertices shall be identified
        `eps` - threshold in [0, 180]
      Returns:
        number of removed elements
      Author:
        Konrad Polthier
      Version:
        28.04.02, 1.00 created (kp)

    - #### markVertices

          public void markVertices(double eps)

      Mark vertices which are identical, or within an epsilon box of each other. This is a non-static call for PjWorkshop use.

    - #### markVertices

          public static void markVertices(PgPointSet geom,
                                          double eps)

      Mark vertices which are identical, or within an epsilon box of each other.
      Parameters:
        `geom` - Geometry whose vertices shall be marked
        `eps` - tolerance of coordinate components, not distance
      Author:
        Konrad Polthier, Ulrich Reitebuch
      Version:
        12.01.05, 1.90 revised (ur) Deselect vertices first.
        13.08.04, 1.80 revised (kp) Select target vertex too.
        19.05.02, 1.70 revised (kp) Algorithm now O(n log(n)) instead of O(n*n).
        20.12.01, 1.10 revised (ur) Argument changed from PgElementSet to PgPointSet.
        13.12.00, 1.00 created (ur)

    - #### removeMarks

          public void removeMarks()

      Remove tag IS_SELECTED from all vertices in geometry. This is a non-static call for PjWorkshop use.

    - #### removeMarks

          public static void removeMarks(PgGeometry geom)

      Remove tag IS_SELECTED from all vertices and elements in geometry.
      Author:
        Ulrich Reitebuch
      Version:
        15.05.04, 1.20 revised (kp) Reset flags of elements too, if PgElementSet.
        20.12.01, 1.10 revised (ur) Argument changed from PgElementSet to PgPointSet.
        13.12.00, 1.00 created (ur)

"

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