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 int` | `AREA`
    `static int` | `BUTTERFLY`
    `static int` | `CURVATURE`
    `static int` | `HAND`
    `static int` | `LOOP`
    `int` | `m_markBy`
    `PuInteger` | `m_maxNumSteps` To steer the maximal number of refinement steps, when selecting for refinement by Gauss curvature.
    `PuDouble` | `m_percentage` To select the triangles with the greatest area for refinement.
    `PuDouble` | `m_tolerance` To steer the tolerance, when selecting for refinement by Gauss curvature.
    `static int` | `PLANAR`

    - ### 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
    --- | ---
    `void` | `cancel()` Reset geometry and close the Workshop.
    `void` | `init()` Initialization.
    `void` | `markBySize()` Select the triangles with the greatest area.
    `void` | `ok()` Hold geometry and close the Workshop.
    `void` | `refine()` Start Rivara refinement.
    `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.
    `void` | `reset()` Remove all previously done refinement and set the workshop to its initial status.
    `void` | `setGeometry(PgElementSet geom)` Register a geometry, on which this workshop will operate.
    `void` | `setScheme(int aScheme)` Set subdivision scheme.
    `void` | `unselectAllElements()` Remove tag IS_SELECTED from all triangles.
    `boolean` | `update(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:
        `init` in class `PjWorkshop`
      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:
        `update` in interface `PsUpdateIf`
      Overrides:
        `update` in class `PjWorkshop`
      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:
        `reset` in class `PjWorkshop`
      Author:
        Ulrich Reitebuch
      Version:
        15.10.03, 1.00 created (ur)

    - #### ok

          public void ok()

      Hold geometry and close the Workshop.
      Overrides:
        `ok` in class `PjWorkshop`

    - #### cancel

          public void cancel()

      Reset geometry and close the Workshop.
      Overrides:
        `cancel` in class `PjWorkshop`

"

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