Package org.jzy3d.plot3d.rendering.scene
Class Graph
- java.lang.Object
-
- org.jzy3d.plot3d.rendering.scene.Graph
-
- Direct Known Subclasses:
MultithreadedGraph
public class Graph extends Object
The scene'sGraph
basically stores the scene content and facilitate objects control. The graph may decompose allComposite
into a list of theirDrawable
s primitives if constructor is called with parameters enabling sorting. The list of primitives is ordered using either the providedDefaultOrderingStrategy
or an other specifiedAbstractOrderingStrategy
. Sorting is usefull for handling transparency properly. TheGraph
maintains a reference to its motherScene
in order to inform theView
s when its content has change and that repainting is required. The add() method allows adding aDrawable
to the scene Graph and updates all views' viewpoint in order to target the center of the scene.- Author:
- Martin Pernollet
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Graph.GraphListener
-
Field Summary
Fields Modifier and Type Field Description protected static float
CLIP_MARGIN_RATIO
protected BoundingBox3d
clipBox
protected boolean
clipIncludesLimits
protected List<Drawable>
components
protected List<Graph.GraphListener>
graphListener
protected Scene
scene
protected boolean
sort
protected AbstractOrderingStrategy
strategy
protected Transform
transform
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(List<? extends Drawable> drawables)
void
add(List<? extends Drawable> drawables, boolean updateViews)
void
add(Drawable drawable)
void
add(Drawable drawable, boolean updateViews)
Add a Drawable to the graph and call all views' so that they update their bounds according to their mode (automatic or manual).void
addGraphListener(Graph.GraphListener graphListener)
void
dispose()
void
draw(IPainter painter)
Decompose allComposite
objects, and sort the extracted monotype (i.e.void
draw(IPainter painter, List<Drawable> components, boolean sort)
void
drawDecomposition(IPainter painter)
render all items of the graph after decomposing all composite item into primitive drawablesvoid
drawSimple(IPainter painter, List<Drawable> components)
render all items of the graphprotected void
fireMountAll()
List<Drawable>
getAll()
List<IGLBindedResource>
getAllGLBindedResources()
BoundingBox3d
getBounds()
Creates and return a BoundingBox3d that embed all Drawable bounds, among those that have a defined bounding box.BoundingBox3d
getClipBox()
List<Drawable>
getDecomposition()
Expand allAbstractComposites
instance into a list of atomicDrawable
types and return all the current Graph primitives decomposition.List<Graph.GraphListener>
getGraphListener()
List<ILegend>
getLegends()
Scene
getScene()
AbstractOrderingStrategy
getStrategy()
Get the {@link @Drawable} ordering strategy.Transform
getTransform()
Return the transform that was affected to this composite.int
hasLegends()
boolean
isSort()
void
mountAllGLBindedResources(IPainter painter)
void
project(IPainter painter, Camera camera)
Update all interactiveDrawable
projectionsboolean
remove(Drawable drawable)
boolean
remove(Drawable drawable, boolean updateViews)
Delete a Drawable from the SceneGraph and update all views' viewpoint in order to target the center of the scene.void
setClipBox(BoundingBox3d clipBox)
void
setClipBox(BoundingBox3d clipBox, boolean includeLimits)
void
setSort(boolean sort)
Set sort to false to desactivate decomposition of drawable.void
setStrategy(AbstractOrderingStrategy strategy)
Set the {@link @Drawable} ordering strategy.void
setTransform(Transform transform)
Delegate transforming iteratively to all Drawable of this graph and stores the given transform for keeping the ability of retrieving it.String
toString()
Print out information concerning all Drawable of this composite.protected void
viewsShoot()
protected void
viewsUpdateBounds()
-
-
-
Field Detail
-
scene
protected Scene scene
-
transform
protected Transform transform
-
strategy
protected AbstractOrderingStrategy strategy
-
sort
protected boolean sort
-
graphListener
protected List<Graph.GraphListener> graphListener
-
clipBox
protected BoundingBox3d clipBox
-
clipIncludesLimits
protected boolean clipIncludesLimits
-
CLIP_MARGIN_RATIO
protected static final float CLIP_MARGIN_RATIO
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Graph
public Graph(Scene scene)
-
Graph
public Graph(Scene scene, boolean sort)
-
Graph
public Graph(Scene scene, AbstractOrderingStrategy strategy)
-
Graph
public Graph(Scene scene, AbstractOrderingStrategy strategy, boolean sort)
-
Graph
protected Graph()
-
-
Method Detail
-
dispose
public void dispose()
-
add
public void add(Drawable drawable, boolean updateViews)
Add a Drawable to the graph and call all views' so that they update their bounds according to their mode (automatic or manual). Addition to the graph is synchronized.- Parameters:
drawable
- : The drawable that must be added to the scene graph.update
- : should be true if you wish to have all the views updated with old bounds including drawable bounds
-
add
public void add(Drawable drawable)
-
remove
public boolean remove(Drawable drawable, boolean updateViews)
Delete a Drawable from the SceneGraph and update all views' viewpoint in order to target the center of the scene.- Parameters:
drawable
- The drawable that must be deleted from the scene graph.
-
remove
public boolean remove(Drawable drawable)
-
getAllGLBindedResources
public List<IGLBindedResource> getAllGLBindedResources()
-
mountAllGLBindedResources
public void mountAllGLBindedResources(IPainter painter)
-
fireMountAll
protected void fireMountAll()
-
getGraphListener
public List<Graph.GraphListener> getGraphListener()
-
addGraphListener
public void addGraphListener(Graph.GraphListener graphListener)
-
draw
public void draw(IPainter painter)
Decompose allComposite
objects, and sort the extracted monotype (i.e. non-Composite
Drawable
s) in order to render them according to the default -or defined-AbstractOrderingStrategy
.
-
drawSimple
public void drawSimple(IPainter painter, List<Drawable> components)
render all items of the graph
-
drawDecomposition
public void drawDecomposition(IPainter painter)
render all items of the graph after decomposing all composite item into primitive drawables
-
getDecomposition
public List<Drawable> getDecomposition()
Expand allAbstractComposites
instance into a list of atomicDrawable
types and return all the current Graph primitives decomposition.
-
project
public void project(IPainter painter, Camera camera)
Update all interactiveDrawable
projections
-
getStrategy
public AbstractOrderingStrategy getStrategy()
Get the {@link @Drawable} ordering strategy.
-
setStrategy
public void setStrategy(AbstractOrderingStrategy strategy)
Set the {@link @Drawable} ordering strategy.
-
setTransform
public void setTransform(Transform transform)
Delegate transforming iteratively to all Drawable of this graph and stores the given transform for keeping the ability of retrieving it.
-
getTransform
public Transform getTransform()
Return the transform that was affected to this composite.
-
getBounds
public BoundingBox3d getBounds()
Creates and return a BoundingBox3d that embed all Drawable bounds, among those that have a defined bounding box.
-
getClipBox
public BoundingBox3d getClipBox()
-
setClipBox
public void setClipBox(BoundingBox3d clipBox)
-
setClipBox
public void setClipBox(BoundingBox3d clipBox, boolean includeLimits)
-
hasLegends
public int hasLegends()
-
toString
public String toString()
Print out information concerning all Drawable of this composite.
-
isSort
public boolean isSort()
-
setSort
public void setSort(boolean sort)
Set sort to false to desactivate decomposition of drawable. This bypass ranking polygons w.r.t. camera. This will produce visual cue if the scene is dynamic (changing the list of polygons or viewpoints).- Parameters:
sort
-
-
getScene
public Scene getScene()
-
viewsUpdateBounds
protected void viewsUpdateBounds()
-
viewsShoot
protected void viewsShoot()
-
-