public class PwRefineElementSet extends PjWorkshop
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.
Modifier and Type | Field and Description |
---|---|
static int |
REFINE_BARYCENTRIC |
static int |
REFINE_BUTTERFLY |
static int |
REFINE_CATMULL_CLARK |
static int |
REFINE_DOO_SABIN |
static int |
REFINE_GLOBAL_INTO_FOUR |
static int |
REFINE_LOOP |
static int |
REFINE_QUADRISECTION |
static int |
REFINE_RIVARA |
static int |
REFINE_SPLIT_CENTRAL |
static int |
REFINE_SQRT2 |
static int |
REFINE_SQRT2_QUAD |
static int |
REFINE_SQRT2_QUAD_FLAT |
static int |
REFINE_SQRT3 |
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
MODE_BUG, MODE_STANDARD, MODE_VALIDATE
Constructor and Description |
---|
PwRefineElementSet()
Constructor of a refinement class.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Remove all internal variables and break external links.
|
boolean |
isShowingControlGrid()
Show the control grid in the display.
|
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.
|
static void |
quadrisection(PgElementSet geom,
int scheme)
Refine an element set by flat quadrisection to quadrilaterals or by Catmull-Clark subdivision.
|
void |
refineBarycentric()
Applies barycentric subdivision algorithm to element set.
|
static void |
refineBarycentric(PgElementSet geom)
Barycentric subdivision of a polyhedral surface.
|
void |
refineButterfly()
Applies Butterfly subdivision algorithm to element set.
|
void |
refineCatmullClark()
Applies Catmull-Clark subdivision algorithm to element set.
|
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.
|
static void |
refineDooSabin(PgElementSet geom)
Cut all edges and vertices and fill the gaps with new elements.
|
void |
refineGlobalIntoFour()
This method assures, that the elementSet is suitable to be refined global into four
and calls
PgElementSet#refineGlobalIntoFour(boolean) . |
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.
|
void |
refineLoop()
Applies Loop subdivision algorithm to element set.
|
void |
refineQuadrisection()
Refines each triangle into four congruent children in a 1-4 split.
|
void |
refineQuadSqrt2()
Refine the workshop's PgElementSet by Sqrt(2) Subdivision.
|
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).
|
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).
|
void |
refineQuadSqrt2Flat()
Refine the workshop's PgElementSet by Sqrt(2) refinement.
|
static void |
refineQuadSqrt2Flat(PgElementSet geom) |
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.
|
void |
refineSplitCentral()
Refine the workshop's PgElementSet by Central Split.
|
static void |
refineSplitCentral(PgElementSet geom)
Refine a PgElementSet by Central Split.
|
void |
refineSqrt2()
Refine the workshop's PgElementSet by Sqrt(2) Subdivision.
|
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.
|
void |
refineSqrt3()
Refine the workshop's PgElementSet by Sqrt(3) Subdivision.
|
static void |
refineSqrt3(PgElementSet geom)
Refine a PgElementSet by Sqrt(3) Subdivision (by Leif Kobbelt).
|
void |
reset()
Remove all previously done refinements and set
the workshop to its initial status.
|
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.
|
void |
showControlGrid(boolean bShow)
Show the control grid in the display.
|
void |
undo()
Undo the last executed refinement step,
and remove the entry from refinement sequence.
|
boolean |
update(java.lang.Object event)
Update the class whenever a child has changed.
|
cancel, getDisplay, getDisplays, getGeometry, getMode, getSavedGeometry, getViewer, init, isModal, isStandalone, ok, openDialog, removeGeometry, setDisplay, setDisplays, setGeometry, setModal, setMode, setStandalone, setViewer
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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFather, getName, setParent
public static final int REFINE_GLOBAL_INTO_FOUR
public static final int REFINE_RIVARA
public static final int REFINE_DOO_SABIN
public static final int REFINE_BUTTERFLY
public static final int REFINE_QUADRISECTION
public static final int REFINE_CATMULL_CLARK
public static final int REFINE_LOOP
public static final int REFINE_SQRT3
public static final int REFINE_SQRT2
public static final int REFINE_BARYCENTRIC
public static final int REFINE_SQRT2_QUAD
public static final int REFINE_SQRT2_QUAD_FLAT
public static final int REFINE_SPLIT_CENTRAL
public PwRefineElementSet()
public void setGeometry(PgElementSet geom)
public boolean update(java.lang.Object event)
update
in interface PsUpdateIf
update
in class PjWorkshop
event
- sender of this update.PsObject.setParent(PsUpdateIf)
,
PsObject.getFather()
,
PsObject.addUpdateListener(PsUpdateIf)
public void reset()
reset
in class PjWorkshop
public boolean isShowingControlGrid()
Must update this workshop to see the effect.
public void showControlGrid(boolean bShow)
Must update this workshop to see the effect.
public void close()
close
in class PjWorkshop
public void undo()
public void refineGlobalIntoFour()
PgElementSet#refineGlobalIntoFour(boolean)
.public void refineRivara()
public void refineDooSabin()
public void refineButterfly()
public void refineLoop()
public void refineBarycentric()
public static void refineIntoFour(PgElementSet geom, int scheme)
public static void refineBarycentric(PgElementSet geom)
public void refineQuadrisection()
public void refineCatmullClark()
public static void quadrisection(PgElementSet geom, int scheme)
public static void quadrisection(PgElementSet geom, boolean bInsertMidPoints)
public void refineSqrt3()
public static void refineSqrt3(PgElementSet geom)
public static void refineDooSabin(PgElementSet geom)
public void refineSqrt2()
public static void refineSqrt2(PgElementSet geom)
public void refineQuadSqrt2()
public void refineQuadSqrt2Flat()
public static void refineQuadSqrt2Flat(PgElementSet geom)
public static void refineQuadSqrt2(PgElementSet geom)
public static void refineQuadSqrt2(PgElementSet geom, int scheme)
public static void refineSplitCentral(PgElementSet geom)
public void refineSplitCentral()
"