Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## de.grogra.ray2
Interface Scene

All Known Implementing Classes:
  SceneVisitor

    public interface Scene

A `Scene` represents the complete geometry, shading, and lighting information which is needed for a raytracer. In addition, it defines the sensors within the scene for a radiation model.

Note that the methods are not thread-safe: For each additional thread, its own instance of `Scene` has to be created from the original instance via the method `dup()`.

Author:
  Ole Kniemeyer

Method Summary
`void` | `appendStatistics(java.lang.StringBuffer stats)` Appends some statistics information about the scene to `stats`.
`boolean` | `computeIntersections(Line line, int which, IntersectionList list, Intersection excludeStart, Intersection excludeEnd)` Computes intersections between the boundary surface of the objects of the scene and the specified `line`.
`Spectrum` | `createSpectrum()` This factory method creates a new spectrum which shall be used for light computations within the context of this scene.
`Scene` | `dup()` Returns a clone of this `Scene`.
`BoundingBox` | `getBoundingBox()` Returns a bounding box which contains all finite geometric objects of the scene.
`java.lang.Object` | `getGraph()` Returns an object identifying the underlying scene graph.
`Interior` | `getInterior(Volume v)` Returns the interior which is associated with volume `v`.
`Matrix4d` | `getInverseLightTransformation(int light)` Returns the affine light transformation from global world coordinates to local light coordinates for the light having index `light` in `getLights()`.
`Matrix4d` | `getInverseSensorTransformation(int sensor)` Returns the affine sensor transformation from global world coordinates to local sensor coordinates for the sensor having index `sensor` in `getSensors()`.
`int` | `getLight(Volume v)` Returns the index in `getLights()` of the light which is associated with volume `v`, or `-1` if no such light exists.
`Light[]` | `getLights()` Returns an array of all lights in the scene.
`Matrix4d` | `getLightTransformation(int light)` Returns the affine light transformation from local light coordinates to global world coordinates for the light having index `light` in `getLights()`.
`OctreeUnion` | `getOctree()`
`int` | `getSensor(Volume v)` Returns the index in `getSensors()` of the sensor which is associated with volume `v`, or `-1` if no such sensor exists.
`Sensor[]` | `getSensors()` Returns an array of all sensors in the scene.
`Matrix4d` | `getSensorTransformation(int sensor)` Returns the affine sensor transformation from local sensor coordinates to global world coordinates for the sensor having index `sensor` in `getSensors()`.
`Shader` | `getShader(Volume v)` Returns the shader which is associated with volume `v`.
`int` | `getStamp()` Returns a modification stamp for the underlying scene graph.
`java.lang.String` | `getUniqueName()` Returns a unique name for the current scene, so that the test whether two scenes are identical can be performed.
`void` | `transform(Volume v, Tuple3d global, Tuple3d localOut)` Transforms a point in global world coordinates to local object coordinates of the volume `v`.

Method Detail

### appendStatistics

    void appendStatistics(java.lang.StringBuffer stats)

  Appends some statistics information about the scene to `stats`.

  Parameters:
    `stats` - buffer for statistics information

### computeIntersections

    boolean computeIntersections(Line line,
                                 int which,
                                 IntersectionList list,
                                 Intersection excludeStart,
                                 Intersection excludeEnd)

  Computes intersections between the boundary surface of the objects of the scene and the specified `line`. For the precise behaviour and the meaning of the parameters, see `Volume.computeIntersections(de.grogra.vecmath.geom.Line, int, de.grogra.vecmath.geom.IntersectionList, de.grogra.vecmath.geom.Intersection, de.grogra.vecmath.geom.Intersection)`.

  Parameters:
    `line` - a line
    `which` - one of `Intersection.ALL`, `Intersection.CLOSEST`, `Intersection.ANY`, this determines which intersections have to be added to `list`
    `list` - the intersections are added to this list
    `excludeStart` - intersection at start point which shall be excluded, or `null`
    `excludeEnd` - intersection at end point which shall be excluded, or `null`
  Returns:
    `true` iff the beginning of the line lies within the volume (i.e., if the line starts within the volume or enters the volume at the starting point); however note that the returned value is valid only if `which == Intersection.ALL`
  See Also:
    `Volume.computeIntersections(de.grogra.vecmath.geom.Line, int, de.grogra.vecmath.geom.IntersectionList, de.grogra.vecmath.geom.Intersection, de.grogra.vecmath.geom.Intersection)`

### createSpectrum

    Spectrum createSpectrum()

  This factory method creates a new spectrum which shall be used for light computations within the context of this scene.

  Returns:
    new spectrum instance for use in computations

### dup

    Scene dup()

  Returns a clone of this `Scene`. All constant variables which are related to the structure of the scene are copied shallowly, state variables are newly created without copying.

  Returns:
    clone of this scene

### getBoundingBox

    BoundingBox getBoundingBox()

  Returns a bounding box which contains all finite geometric objects of the scene. The returned box must not be modified.

  Returns:
    bounding box of finite geometry

### getGraph

    java.lang.Object getGraph()

  Returns an object identifying the underlying scene graph.

  Returns:
    scene graph

### getInterior

    Interior getInterior(Volume v)

  Returns the interior which is associated with volume `v`.

  Parameters:
    `v` - a volume
  Returns:
    corresponding interior

### getInverseLightTransformation

    Matrix4d getInverseLightTransformation(int light)

  Returns the affine light transformation from global world coordinates to local light coordinates for the light having index `light` in `getLights()`.

  Parameters:
    `light` - index of light in `getLights()`
  Returns:
    inverse light transformation for `light`
  See Also:
    `getLights()`

### getInverseSensorTransformation

    Matrix4d getInverseSensorTransformation(int sensor)

  Returns the affine sensor transformation from global world coordinates to local sensor coordinates for the sensor having index `sensor` in `getSensors()`.

  Parameters:
    `sensor` - index of sensor in `getSensors()`
  Returns:
    inverse sensor transformation for `sensor`
  See Also:
    `getSensors()`

### getLight

    int getLight(Volume v)

  Returns the index in `getLights()` of the light which is associated with volume `v`, or `-1` if no such light exists.

  Parameters:
    `v` - a volume
  Returns:
    index of corresponding light in `getLights()`

### getLights

    Light[] getLights()

  Returns an array of all lights in the scene. The returned array must not be modified. The corresponding coordinate transformations are obtained by `getLightTransformation(int)`.

  Returns:
    array of all lights

### getLightTransformation

    Matrix4d getLightTransformation(int light)

  Returns the affine light transformation from local light coordinates to global world coordinates for the light having index `light` in `getLights()`.

  Parameters:
    `light` - index of light in `getLights()`
  Returns:
    light transformation for `light`
  See Also:
    `getLights()`

### getOctree

    OctreeUnion getOctree()

### getSensor

    int getSensor(Volume v)

  Returns the index in `getSensors()` of the sensor which is associated with volume `v`, or `-1` if no such sensor exists.

  Parameters:
    `v` - a volume
  Returns:
    index of corresponding sensor in `getSensors()`

### getSensors

    Sensor[] getSensors()

  Returns an array of all sensors in the scene. The returned array must not be modified. The corresponding coordinate transformations are obtained by `getSensorTransformation(int)`.

  Returns:
    array of all sensors

### getSensorTransformation

    Matrix4d getSensorTransformation(int sensor)

  Returns the affine sensor transformation from local sensor coordinates to global world coordinates for the sensor having index `sensor` in `getSensors()`.

  Parameters:
    `sensor` - index of sensor in `getSensors()`
  Returns:
    sensor transformation for `sensor`
  See Also:
    `getSensors()`

### getShader

    Shader getShader(Volume v)

  Returns the shader which is associated with volume `v`.

  Parameters:
    `v` - a volume
  Returns:
    corresponding shader

### getStamp

    int getStamp()

  Returns a modification stamp for the underlying scene graph. Each modification increments the value, so that the test whether some modification occured can be simply performed on values of the stamp.

  Returns:
    a stamp for the whole graph

### getUniqueName

    java.lang.String getUniqueName()

  Returns a unique name for the current scene, so that the test whether two scenes are identical can be performed.

### transform

    void transform(Volume v,
                   Tuple3d global,
                   Tuple3d localOut)

  Transforms a point in global world coordinates to local object coordinates of the volume `v`.

  Parameters:
    `v` - volume which defines the local object coordinates
    `global` - input point in global world coordinates
    `localOut` - output point in local object coordinates

Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD