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, unmarkVertices
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
getName
getName
public void init()
PjProject
public 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 PjProject
PvViewerIf.start()
,
PjProject.isEnabledAutoFit()
public boolean update(java.lang.Object event)
PsObject
Central 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 PsUpdateIf
update
in class PsObject
event
- carries a lot of informationPsObject.setParent(PsUpdateIf)
,
PsObject.getFather()
,
PsObject.addUpdateListener(PsUpdateIf)
public void removeGeometry()
public boolean setGeometry(PgGeometryIf geom)
PjProject
This method of PjProject does nothing and must be overwritten in order to be useful. Not all projects support this method.
setGeometry
in class PjProject
geom
- 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"