jvx.geom
Class PwLocalButterfly
- java.lang.Object
-
- jv.object.PsObject
-
- jvx.project.PjWorkshop
-
- jvx.geom.PwLocalButterfly
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, PsUpdateIf, PjWorkshopIf
public class PwLocalButterfly extends PjWorkshop
Workshop for local refinement of triangles of a surface. The connectivity is refined according to the combinatorical Rivara algorithm, the geometrical informations are computed using the butterfly scheme, the Loop scheme, or planar subdividing by edge midpoints.- See Also:
- Serialized Form
- Author:
- Ulrich Reitebuch
- Version:
- 23.01.06, 1.10 revised (ur) Adaptive Loop subdivision implemented.
15.10.03, 1.00 created (ur)
-
-
Field Summary
Fields Modifier and Type Field and Description static intAREAstatic intBUTTERFLYstatic intCURVATUREstatic intHANDstatic intLOOPintm_markByPuIntegerm_maxNumStepsTo steer the maximal number of refinement steps, when selecting for refinement by Gauss curvature.PuDoublem_percentageTo select the triangles with the greatest area for refinement.PuDoublem_toleranceTo steer the tolerance, when selecting for refinement by Gauss curvature.static intPLANAR-
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 PwLocalButterfly()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidcancel()Reset geometry and close the Workshop.voidinit()Initialization.voidmarkBySize()Select the triangles with the greatest area.voidok()Hold geometry and close the Workshop.voidrefine()Start Rivara refinement.voidrefineByCurvature()Refine triangles, until all vertices have Gauss curvature inside a tolerance interval given by m_tolerance or triangles are more often refined than defined by m_maxNumSteps.voidreset()Remove all previously done refinement and set the workshop to its initial status.voidsetGeometry(PgElementSet geom)Register a geometry, on which this workshop will operate.voidsetScheme(int aScheme)Set subdivision scheme.voidunselectAllElements()Remove tag IS_SELECTED from all triangles.booleanupdate(java.lang.Object event)Update the class whenever a child has changed.-
Methods inherited from class jvx.project.PjWorkshop
close, getDisplay, getDisplays, getGeometry, getMode, getSavedGeometry, getViewer, isModal, isStandalone, removeGeometry, setDisplay, setDisplays, setGeometry, setModal, setMode, setStandalone, setViewer
-
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
-
-
-
-
Field Detail
-
PLANAR
public static int PLANAR
-
BUTTERFLY
public static int BUTTERFLY
-
LOOP
public static int LOOP
-
m_tolerance
public PuDouble m_tolerance
To steer the tolerance, when selecting for refinement by Gauss curvature.
-
m_maxNumSteps
public PuInteger m_maxNumSteps
To steer the maximal number of refinement steps, when selecting for refinement by Gauss curvature.
-
m_percentage
public PuDouble m_percentage
To select the triangles with the greatest area for refinement.
-
HAND
public static final int HAND
- See Also:
- Constant Field Values
-
CURVATURE
public static final int CURVATURE
- See Also:
- Constant Field Values
-
AREA
public static final int AREA
- See Also:
- Constant Field Values
-
m_markBy
public int m_markBy
-
-
Constructor Detail
-
PwLocalButterfly
public PwLocalButterfly()
Constructor.- Author:
- Ulrich Reitebuch
- Version:
- 15.10.03, 1.00 created (ur)
-
-
Method Detail
-
setGeometry
public void setGeometry(PgElementSet geom)
Register a geometry, on which this workshop will operate.
-
setScheme
public void setScheme(int aScheme)
Set subdivision scheme.
-
init
public void init()
Initialization.- Overrides:
initin classPjWorkshop- Author:
- Ulrich Reitebuch
- Version:
- 15.10.03, 1.00 created (ur)
-
markBySize
public void markBySize()
Select the triangles with the greatest area. The number of selected triangles will be computed by the PuInteger m_percentage.- Author:
- Ulrich Reitebuch
- Version:
- 15.10.03, 1.00 created (ur)
-
update
public boolean update(java.lang.Object event)
Update the class whenever a child has changed. Method is usually invoked from the children.- Specified by:
updatein interfacePsUpdateIf- Overrides:
updatein classPjWorkshop- Parameters:
event- sender of this update.- Returns:
- true if update was correctly handled by superclass.
- See Also:
PsObject.setParent(PsUpdateIf),PsObject.getFather(),PsObject.addUpdateListener(PsUpdateIf)- Author:
- Ulrich Reitebuch
- Version:
- 15.10.03, 1.00 created (ur)
-
unselectAllElements
public void unselectAllElements()
Remove tag IS_SELECTED from all triangles.
-
refineByCurvature
public void refineByCurvature()
Refine triangles, until all vertices have Gauss curvature inside a tolerance interval given by m_tolerance or triangles are more often refined than defined by m_maxNumSteps.- Author:
- Ulrich Reitebuch
- Version:
- 15.10.03, 1.00 created (ur)
-
refine
public void refine()
Start Rivara refinement. All triangles marked with tag IS_SELECTED are bisected.- Author:
- Ulrich Reitebuch
- Version:
- 15.10.03, 1.00 created (ur)
-
reset
public void reset()
Remove all previously done refinement and set the workshop to its initial status.- Overrides:
resetin classPjWorkshop- Author:
- Ulrich Reitebuch
- Version:
- 15.10.03, 1.00 created (ur)
-
ok
public void ok()
Hold geometry and close the Workshop.- Overrides:
okin classPjWorkshop
-
cancel
public void cancel()
Reset geometry and close the Workshop.- Overrides:
cancelin classPjWorkshop
-
-
"