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 voidclose()Close workshop and remove itself as listener from various classes.static intidentifyFlatEdges(PgElementSet geom, double eps)Identify pairs of adjacent elements whose dihedral angle is less than a given threshold.static intidentifyFlatRegions(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 intmarkFlatEdges(PgElementSet geom, double eps)Mark pairs of adjacent elements whose dihedral angle is less than a given threshold.static intmarkFlatRegions(PgElementSet geom, double eps)Mark flat regions by identifying adjacent elements whose dihedral angle is less or equal than a given threshold.voidmarkVertices(double eps)Mark vertices which are identical, or within an epsilon box of each other.static voidmarkVertices(PgPointSet geom, double eps)Mark vertices which are identical, or within an epsilon box of each other.voidok()Accept the current state of the geometry and close the workshop.voidremoveMarks()Remove tag IS_SELECTED from all vertices in geometry.static voidremoveMarks(PgGeometry geom)Remove tag IS_SELECTED from all vertices and elements in geometry.voidreset()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
-
-
-
-
Method Detail
-
reset
public void reset()
Reset this workshop to its initial state from which computations can start.- Overrides:
resetin classPjWorkshop
-
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:
closein classPjWorkshop
-
ok
public void ok()
Accept the current state of the geometry and close the workshop.- Overrides:
okin classPjWorkshop
-
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 identifiedeps- 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 identifiedeps- 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 identifiedeps- 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 identifiedeps- 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 markedeps- 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)
-
-
"