Documentation of 'jvx.geom.PwRefineElementSet' Java class
PwRefineElementSet ("JavaView Reference Manual")
"JavaView? v5.03.003"
jvx.geom

Class PwRefineElementSet

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


    public class PwRefineElementSet
    extends PjWorkshop
    Workshop provides several subdivision algorithms to refine an element set.

    List of performed subdivision steps is stored which allows to recalculate the subdivision when the control grid is changed.

    Undo of one or more recent subdivision steps is possible.

    See Also:
    Serialized Form
    Author:
    Ulrich Reitebuch
    Version:
    20.01.15, 3.00 revised (ur) Corrected Catmull Clark weights.
    23.03.03, 2.50 revised (kp) Class prepared for outside batch usage.
    09.03.03, 2.00 revised (kp) Several methods names changed and synchronized.
    10.03.02, 1.40 revised (ur) Sqrt(2) subdivision added.
    06.03.02, 1.30 revised (ur) Method dooSabin moved from PwModel to this class.
    04.03.02, 1.20 revised (ur) Sqrt(3) subdivision method added.
    11.02.02, 1.10 revised (ur) Loop and Catmull-Clark subdivision added.
    18.01.02, 1.00 created (ur)
    • Constructor Detail

      • PwRefineElementSet

        public PwRefineElementSet()
        Constructor of a refinement class.
    • Method Detail

      • setGeometry

        public void setGeometry(PgElementSet geom)
        Assign a geometry on which this workshop operates, and create two backup copies: One for canceling and one to be used as control grid for the refined geometry.
      • reset

        public void reset()
        Remove all previously done refinements and set the workshop to its initial status.
        Overrides:
        reset in class PjWorkshop
      • isShowingControlGrid

        public boolean isShowingControlGrid()
        Show the control grid in the display. Add this workshop as update listener of the control grid.

        Must update this workshop to see the effect.

        Version:
        23.07.03, 1.10 revised (kp) Require additional update.
      • showControlGrid

        public void showControlGrid(boolean bShow)
        Show the control grid in the display. Add this workshop as update listener of the control grid.

        Must update this workshop to see the effect.

        Version:
        23.07.03, 1.10 revised (kp) Require additional update.
      • close

        public void close()
        Remove all internal variables and break external links. Here the control grid is removed from the display.
        Overrides:
        close in class PjWorkshop
      • undo

        public void undo()
        Undo the last executed refinement step, and remove the entry from refinement sequence.
      • refineGlobalIntoFour

        public void refineGlobalIntoFour()
        This method assures, that the elementSet is suitable to be refined global into four and calls PgElementSet#refineGlobalIntoFour(boolean).
        Author:
        Ulrich Reitebuch
        Version:
        18.01.02, 1.00 created (ur)
      • refineRivara

        public void refineRivara()
        This method assures, that the elementSet is suitable to be refined by the Rivara algorithm and refines all elements marked with the tag PsObject.IS_SELECTED. Beware that the edge stars of the geometry will NOT be maintained..
        Author:
        Ulrich Reitebuch
        Version:
        24.10.02, 1.10 revised (ur) Select new elements, when they lay within old selected elements.
        18.01.02, 1.00 created (ur)
      • refineDooSabin

        public void refineDooSabin()
        This method assures, that the elementSet is suitable to be refined by the Doo-Sabin algorithm and calls refineDooSabin refinement for the workshop's PgElementSet.
        Author:
        Ulrich Reitebuch
        Version:
        18.01.02, 1.00 created (ur)
      • refineButterfly

        public void refineButterfly()
        Applies Butterfly subdivision algorithm to element set.
        Author:
        Konrad Polthier
        Version:
        09.05.03, 1.00 created (kp)
      • refineLoop

        public void refineLoop()
        Applies Loop subdivision algorithm to element set.
        Author:
        Konrad Polthier
        Version:
        09.05.03, 1.00 created (kp)
      • refineBarycentric

        public void refineBarycentric()
        Applies barycentric subdivision algorithm to element set.
        Author:
        Konrad Polthier
        Version:
        16.01.09, 1.00 created (kp)
      • refineIntoFour

        public static void refineIntoFour(PgElementSet geom,
                                          int scheme)
        This method assures, that the elementSet is suitable to be refined global into four; The positions of new vertices are computed upon the old connectivity, afterwards the new connectivity is generated by PgElementSet.refineGlobalIntoFour.
        Author:
        Ulrich Reitebuch
        Version:
        13.11.08, 1.10 revised (ur) Loop subdivision now blends vertex textures like the geometry coordinates.
        18.01.02, 1.00 created (ur)
      • refineBarycentric

        public static void refineBarycentric(PgElementSet geom)
        Barycentric subdivision of a polyhedral surface. Each k-polygon is linearly split into 2k triangles. New vertices are introduced at edge midpoints and centers of gravity of elements.
        Author:
        Konrad Polthier
        Version:
        16.01.09, 1.00 revised (kp)
        16.01.09, 1.00 created (kp) Based on quadrisection().
      • refineQuadrisection

        public void refineQuadrisection()
        Refines each triangle into four congruent children in a 1-4 split.
        Author:
        Konrad Polthier
        Version:
        09.05.03, 1.00 created (kp)
      • refineCatmullClark

        public void refineCatmullClark()
        Applies Catmull-Clark subdivision algorithm to element set.
        Author:
        Konrad Polthier
        Version:
        09.05.03, 1.00 created (kp)
      • quadrisection

        public static void quadrisection(PgElementSet geom,
                                         int scheme)
        Refine an element set by flat quadrisection to quadrilaterals or by Catmull-Clark subdivision.
        Author:
        Ulrich Reitebuch
        Version:
        29.01.15, 2.00 revised (ur) Corrected Catmull Clark weights.
        11.03.02, 1.10 revised (ur) Avoid call of PgVertexStar.makeVertexStar with argument -1.
        11.02.02, 1.00 created (ur)
      • quadrisection

        public static void quadrisection(PgElementSet geom,
                                         boolean bInsertMidPoints)
        Cut all elements into quadrilaterals, each touching two edge mid points, the element mid point and one original vertex of the element.
        Author:
        Ulrich Reitebuch
        Version:
        11.02.02, 1.00 created (ur)
      • refineSqrt3

        public void refineSqrt3()
        Refine the workshop's PgElementSet by Sqrt(3) Subdivision.
        Author:
        Ulrich Reitebuch
        Version:
        22.02.02, 1.00 created (ur)
      • refineSqrt3

        public static void refineSqrt3(PgElementSet geom)
        Refine a PgElementSet by Sqrt(3) Subdivision (by Leif Kobbelt). The limit surface is C2 continuous, except at extraordinary vertices, where it is C1 continuous.
        Author:
        Ulrich Reitebuch
        Version:
        22.02.02, 1.00 created (ur)
      • refineDooSabin

        public static void refineDooSabin(PgElementSet geom)
        Cut all edges and vertices and fill the gaps with new elements. Each edge gets replaced by a quadrilateral, original elements get shrunk and new n-gonal faces are inserted at vertices with n original faces touching. The limit surface is C1 continuous.
        Author:
        Ulrich Reitebuch
        Version:
        09.05.03, 1.60 revised (kp) Renamed to refineDooSabin from dooSabin.
        16.12.02, 1.50 revised (ur) Texture handling improved.
        11.03.02, 1.40 revised (ur) Avoid call of PgVertexStar.makeVertexStar with argument -1.
        06.03.02, 1.30 revised (ur) Moved from PwModel to PwRefineELementSet.
        24.09.01, 1.20 revised (ur) Adjust Vector Fields.
        20.09.01, 1.10 revised (ur) Adjust Element Textures.
        06.06.01, 1.00 created (ur).
      • refineSqrt2

        public void refineSqrt2()
        Refine the workshop's PgElementSet by Sqrt(2) Subdivision.
        Author:
        Ulrich Reitebuch
        Version:
        09.05.03, 1.10 revised (kp) Renamed to refineSqrt2 from sqrt2Subdivision.
        10.03.02, 1.00 created (ur).
      • refineSqrt2

        public static void refineSqrt2(PgElementSet geom)
        Refine a PgElementSet by Sqrt(2) (or 4-8) Subdivision (by Luiz Velho and Denis Zorin) The limit surface is C4 continuous, C1 at extraordinary vertices.
        Author:
        Ulrich Reitebuch
        Version:
        09.05.03, 1.40 revised (kp) Renamed to refineSqrt2 from sqrt2Subdivision.
        16.12.02, 1.30 revised (ur) Handling of element based texture improved.
        29.04.02, 1.20 revised (ur) Bug in neighbourhoods removed.
        23.04.02, 1.10 revised (ur) Bugs in handling boundary vertices removed.
        10.03.02, 1.00 created (ur).
      • refineQuadSqrt2

        public void refineQuadSqrt2()
        Refine the workshop's PgElementSet by Sqrt(2) Subdivision.
        Author:
        Ulrich Reitebuch
        Version:
        30.09.09, 1.00 created (ur).
      • refineQuadSqrt2Flat

        public void refineQuadSqrt2Flat()
        Refine the workshop's PgElementSet by Sqrt(2) refinement.
        Author:
        Ulrich Reitebuch
        Version:
        30.09.09, 1.00 created (ur).
      • refineQuadSqrt2Flat

        public static void refineQuadSqrt2Flat(PgElementSet geom)
      • refineQuadSqrt2

        public static void refineQuadSqrt2(PgElementSet geom)
        Refine a PgElementSet by Sqrt(2) (or 4-8) Subdivision (by Luiz Velho and Denis Zorin) - this is a modified quad version, removing the old edges in every refinement step, so the mesh is a quadrangulation almost everywhere (at the boundary there may be triangles). The limit surface is C4 continuous, C1 at extraordinary vertices.
        Author:
        Ulrich Reitebuch
        Version:
        30.09.09, 1.00 created (ur).
      • refineQuadSqrt2

        public static void refineQuadSqrt2(PgElementSet geom,
                                           int scheme)
        Refine a PgElementSet by Sqrt(2) (or 4-8) Subdivision (by Luiz Velho and Denis Zorin) - this is a modified quad version, removing the old edges in every refinement step, so the mesh is a quadrangulation almost everywhere (at the boundary there may be triangles). The limit surface is C4 continuous, C1 at extraordinary vertices.
        Author:
        Ulrich Reitebuch
        Version:
        30.09.09, 1.00 created (ur).
      • refineSplitCentral

        public static void refineSplitCentral(PgElementSet geom)
        Refine a PgElementSet by Central Split.
        Author:
        Ulrich Reitebuch
        Version:
        01.10.09, 1.00 created (ur).
      • refineSplitCentral

        public void refineSplitCentral()
        Refine the workshop's PgElementSet by Central Split.
        Author:
        Ulrich Reitebuch
        Version:
        01.10.09, 1.00 created (ur).
"JavaView? v5.03.003"

"

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

Ads help maintain this website.