dzzd
Interface IScene3DObject

All Superinterfaces:
IProgress, ISceneObject
All Known Subinterfaces:
ICamera3D, ILight3D, IMesh3D

public interface IScene3DObject
extends ISceneObject

Used for accessing a Scene3DObject.
- 3D scene objects are all positioned objects (visible or not) in the 3d scene.
eg.: Cameras,lights and meshes are all 3d scene object

- 3D scene objects can be hierarchically linked each other.

Positioning 3D scene objects in 3D scene:
each object is positioned in the 3D scene by a pivot,position and rotation vector relative to its parent space.

Since:
1.0
Version:
1.0, 01/01/04
Author:
Bruno Augier
See Also:
IPoint3D

Method Summary
 void addChild(IScene3DObject childToAdd)
          Add child to this object.
 IAxis3D getAxis3D()
          Gets object axis3D.
 IPoint3D getCenter()
          Gets the center (in object space) for this object.
 IScene3DObject getFirstChild()
          Gets the first child of this object.
 IScene3DObject getInstanceCopy()
          Gets an instance copy for this object.
 IScene3DObject getNextChild()
          Gets the next child for this parent object.
 IScene3DObject getParent()
          Gets parent object.
 IPoint3D getPivot()
          Gets the current pivot point (in object space) for this object.
 IPoint3D getPosition()
          Gets the current position => this object pivot 3d coordinates relative to this object parent space.
 IPoint3D getRotation()
          Gets the current rotation around pivot in the following order (rx,rz,ry).
 IScene3DObjectAnimator getScene3DObjectAnimator()
          Gets Scene3DObjectAnimator.
 double getSphereBox()
          Gets object spherebox radius.
 ISolidSphere3DResult moveAsSolidSphere(double x, double y, double z, double radius, int maxLoop)
          Translate this object as a solid object in its parent object space by performing physic collisions.
 void pauseScene3DObjectAnimator()
          Call this Scene3DObjectAnimator start method (also call on chidrens).
 void playScene3DObjectAnimator()
          Call this Scene3DObjectAnimator play method (also call on chidrens).
 void removeChild(IScene3DObject childToRemove)
          Remove child from this object.
 void resumeScene3DObjectAnimator()
          Call this Scene3DObjectAnimator resume method (also call on chidrens).
 void setParent(IScene3DObject parent)
          Sets parent object.
 void setScene3DObjectAnimator(IScene3DObjectAnimator animator)
          Sets Scene3DObjectAnimator.
 void setSphereBox(double radius)
          Sets object spherebox radius.
 void startScene3DObjectAnimator()
          Call this Scene3DObjectAnimator start method (also call on chidrens).
 void startScene3DObjectAnimator(long start)
          Call this Scene3DObjectAnimator start method (also call on chidrens).
 void startScene3DObjectAnimator(long start, long end)
          Call this Scene3DObjectAnimator start method (also call on chidrens).
 void stopScene3DObjectAnimator()
          Call this Scene3DObjectAnimator stop method (also call on chidrens).
 void zoom(double x, double y, double z)
          Zoom that object and all chidrens object by x,y,z factor.
 
Methods inherited from interface dzzd.ISceneObject
getId, getName, getScene3D, setId, setName
 
Methods inherited from interface dzzd.IProgress
getCurrentState, getNextState, getProgress, isStateReached, setProgress
 

Method Detail

getInstanceCopy

public IScene3DObject getInstanceCopy()
Gets an instance copy for this object.

the returned instance share material but use a different vertex array (original vertex are duplicated)

Returns:
interface for a newly allocated instance of this object

getPosition

public IPoint3D getPosition()
Gets the current position => this object pivot 3d coordinates relative to this object parent space.

Returns:
interface of vector representing current position

getRotation

public IPoint3D getRotation()
Gets the current rotation around pivot in the following order (rx,rz,ry). component x of the returned vector is the rotation angle around the x axis.
component y of the returned vector is the rotation angle around the y axis.
component z of the returned vector is the rotation angle around the z axis.

Returns:
interface of vector representing current rotation

getPivot

public IPoint3D getPivot()
Gets the current pivot point (in object space) for this object.

Returns:
interface of vector representing current pivot point

zoom

public void zoom(double x,
                 double y,
                 double z)
Zoom that object and all chidrens object by x,y,z factor.

Parameters:
x - x zoom factor
y - y zoom factor
z - z zoom factor

getAxis3D

public IAxis3D getAxis3D()
Gets object axis3D.

Returns:
axis used by this object

getParent

public IScene3DObject getParent()
Gets parent object.

Returns:
parent object interface or null if no parent

setParent

public void setParent(IScene3DObject parent)
Sets parent object.

Parameters:
parent - new parent object for this object (pass null for no parent)

addChild

public void addChild(IScene3DObject childToAdd)
Add child to this object.

Parameters:
childToAdd - new child to add to this object

removeChild

public void removeChild(IScene3DObject childToRemove)
Remove child from this object.

Parameters:
childToRemove - child to remove from this object

getFirstChild

public IScene3DObject getFirstChild()
Gets the first child of this object.

Returns:
first chid object for this object or null if none

getNextChild

public IScene3DObject getNextChild()
Gets the next child for this parent object.

Returns:
next child for that object parent object related to this object

getSphereBox

public double getSphereBox()
Gets object spherebox radius.
return object sphere box radius relative to object center and expressed in scene unit.

Returns:
sphere box radius in scene units

setSphereBox

public void setSphereBox(double radius)
Sets object spherebox radius.
set object sphere box radius relative to object center and expressed in scene unit.

Parameters:
radius - new sphere box radius in scene units

moveAsSolidSphere

public ISolidSphere3DResult moveAsSolidSphere(double x,
                                              double y,
                                              double z,
                                              double radius,
                                              int maxLoop)
Translate this object as a solid object in its parent object space by performing physic collisions.
collision are performed using sphereBox (relative to object center) and current Render3D owner scene objects

Parameters:
x - x translation vector component
y - y translation vector component
z - z translation vector component
radius - sphere radius to use for collision tests (you may use this object sphereBox)
maxLoop - collision is a recursive process (rebounds) you can limit recursive depth with this parameter (you may use 4)
Returns:
collision result giving informations about the collision performed

getCenter

public IPoint3D getCenter()
Gets the center (in object space) for this object.

Returns:
this object center.

getScene3DObjectAnimator

public IScene3DObjectAnimator getScene3DObjectAnimator()
Gets Scene3DObjectAnimator.

Returns:
current Scene3DObjectAnimator or null if none.

setScene3DObjectAnimator

public void setScene3DObjectAnimator(IScene3DObjectAnimator animator)
Sets Scene3DObjectAnimator.

Parameters:
animator - Scene3DObjectAnimator to set for this Scene3DObject or null to remove/disable current Scene3DObjectAnimator.

playScene3DObjectAnimator

public void playScene3DObjectAnimator()
Call this Scene3DObjectAnimator play method (also call on chidrens).
To avoid animation of chidrens use : this.getScene3DObjectAnimator().play()


startScene3DObjectAnimator

public void startScene3DObjectAnimator()
Call this Scene3DObjectAnimator start method (also call on chidrens).
To avoid animation of chidrens use : this.getScene3DObjectAnimator().start()


startScene3DObjectAnimator

public void startScene3DObjectAnimator(long start)
Call this Scene3DObjectAnimator start method (also call on chidrens).
To avoid animation of chidrens use : this.getScene3DObjectAnimator().start()


startScene3DObjectAnimator

public void startScene3DObjectAnimator(long start,
                                       long end)
Call this Scene3DObjectAnimator start method (also call on chidrens).
To avoid animation of chidrens use : this.getScene3DObjectAnimator().start()


stopScene3DObjectAnimator

public void stopScene3DObjectAnimator()
Call this Scene3DObjectAnimator stop method (also call on chidrens).
To avoid animation of chidrens use : this.getScene3DObjectAnimator().stop()


pauseScene3DObjectAnimator

public void pauseScene3DObjectAnimator()
Call this Scene3DObjectAnimator start method (also call on chidrens).
To avoid animation of chidrens use : this.getScene3DObjectAnimator().start()


resumeScene3DObjectAnimator

public void resumeScene3DObjectAnimator()
Call this Scene3DObjectAnimator resume method (also call on chidrens).
To avoid animation of chidrens use : this.getScene3DObjectAnimator().resume()