public class PjSubdivisionCurve extends PjProject
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| Constructor and Description |
|---|
PjSubdivisionCurve() |
| Modifier and Type | Method and Description |
|---|---|
static PgPolygonOnElementSet |
computeSubdivisionCurve(PgElementSet geom,
PiVector refElem,
PdBary[] refBary,
int depth,
PgPolygonOnElementSet outpoly,
boolean reuseTriangleStrips)
Chaikin-Type subdivision.
|
boolean |
getReuseTriangleRunsWhileIterating() |
void |
init()
Initialize and reset project, stops the running animation if any.
|
void |
removeGeometry() |
boolean |
setGeometry(PgGeometryIf geom)
Interface method used by subclassed project to initialize the project geometry
from outside the project, for example, during initialization or loading of the project.
|
void |
setReuseTriangleRunsWhileIterating(boolean flag) |
void |
start()
Method is invoked during loading of a project in JavaView.
|
boolean |
update(java.lang.Object event)
Update all inspector panels, send update to all registered update listeners
and finally update parent.
|
addDisplay, addGeometry, addGeometry, dispose, dragDisplay, dragInitial, dragVertex, fitDisplays, getAnimation, getDisplay, getDisplays, getGeometry, getGeometry, getNumGeometries, getParameter, getViewer, hasAnimation, hasDisplay, isEnabledAutoFit, markVertices, pickDisplay, pickInitial, pickVertex, removeDisplay, removeGeometries, removeGeometry, selectDisplay, selectGeometry, setAnimation, setBackColor, setBorderType, setDisplay, setEnabledAutoFit, setParameter, setTime, setViewer, stop, unmarkVerticesaddInspector, 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, updatePanelsequals, getClass, hashCode, notify, notifyAll, wait, wait, waitgetNamegetNamepublic void init()
PjProjectpublic void start()
PjProject
If a project has an animation object, then the animation panel is shown
when the project's this start() method is invoked during loading
of the project. Use setAnimation(PsAnimation)
to register an animation.
If auto fit is enabled then scenery is scaled to fit in each display.
start in class PjProjectPvViewerIf.start(),
PjProject.isEnabledAutoFit()public boolean update(java.lang.Object event)
PsObjectCentral update method of this object. Must be overwritten if this class receives unknown events, say, from new children. Any subclass must class invoke super.update(event) on all events it does handle itself.
update in interface PsUpdateIfupdate in class PsObjectevent - carries a lot of informationPsObject.setParent(PsUpdateIf),
PsObject.getFather(),
PsObject.addUpdateListener(PsUpdateIf)public void removeGeometry()
public boolean setGeometry(PgGeometryIf geom)
PjProjectThis method of PjProject does nothing and must be overwritten in order to be useful. Not all projects support this method.
setGeometry in class PjProjectgeom - needs to be triangulatedpublic boolean getReuseTriangleRunsWhileIterating()
public void setReuseTriangleRunsWhileIterating(boolean flag)
public static PgPolygonOnElementSet computeSubdivisionCurve(PgElementSet geom, PiVector refElem, PdBary[] refBary, int depth, PgPolygonOnElementSet outpoly, boolean reuseTriangleStrips)
geom - underlying triangulation, 2d surface in 3drefElem - vector of element indices for control pointsrefBary - vector of barycentric coordinates for control pointsdepth - num of subdivision stepsoutpoly - result, computed subdivision curve, may be nullreuseTriangleStrips - use element strips from previous step for current step;
should be true in normal case, false only for demonstration purpose"