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.light
Class DefaultLightProcessor

    java.lang.Object
      de.grogra.ray2.tracing.ProcessorBase
          de.grogra.ray2.light.DefaultLightProcessor

All Implemented Interfaces:
  LightProcessor, java.lang.Cloneable

    public class DefaultLightProcessor

extends ProcessorBase
implements LightProcessor

This class implements a standard `LightProcessor`. For lights which are not shadowless, it shoots a shadow ray in order to check if the light source is visible at a specific point. If this ray hits any object, the point is considered to be in the shadow of the light.

Author:
  Michael Tauer, Ole Kniemeyer

Constructor Summary
`DefaultLightProcessor()`

Method Summary
`protected void` | `appendStatisticsImpl(java.lang.StringBuffer stats)`
`LightProcessor` | `dup(Scene scene)` Returns a clone of this `LightProcessor`.
`void` | `getLightRays(boolean frontFace, Intersection desc, RayList rays, java.util.ArrayList cache, java.util.Random rnd)` Adds all light rays that directly illuminate the specified intersection point `is` to the list `rays`.
`void` | `initialize(Scene scene, int raytracerType, java.util.Random rnd)` Initializes the light processor for use with the given `scene`.
`protected void` | `initLocals()`
`protected void` | `mergeStatistics(ProcessorBase src)`
`void` | `useGeometryTerm(boolean use)`
`void` | `useOneSamplePerLight(boolean one)`

Methods inherited from class de.grogra.ray2.tracing.ProcessorBase
`appendStatistics, clone`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface de.grogra.ray2.light.LightProcessor
`appendStatistics`

Constructor Detail

### DefaultLightProcessor

    public DefaultLightProcessor()

Method Detail

### appendStatisticsImpl

    protected void appendStatisticsImpl(java.lang.StringBuffer stats)

  Specified by:
    `appendStatisticsImpl` in class `ProcessorBase`

### dup

    public LightProcessor dup(Scene scene)

  Description copied from interface: `LightProcessor`
  Returns a clone of this `LightProcessor`. All constant variables are copied shallowly, state variables are newly created and copied where necessary.

  Specified by:
    `dup` in interface `LightProcessor`
  Parameters:
    `scene` - duplicate of scene
  Returns:
    clone of this light processor

### getLightRays

    public void getLightRays(boolean frontFace,
                             Intersection desc,
                             RayList rays,
                             java.util.ArrayList cache,
                             java.util.Random rnd)

  Description copied from interface: `LightProcessor`
  Adds all light rays that directly illuminate the specified intersection point `is` to the list `rays`. `frontFace` indicates whether the front face (the side where the normal vector points to) or the back face of the surface at the intersection point is to be illuminated.

  The `cache` may be used freely by implementations of this method in order to store some caching information. Invokers of this method should provide the same cache for similar situations. E.g., a raytracer should provide an own cache for every node of the recursive raytracing tree.

  Specified by:
    `getLightRays` in interface `LightProcessor`
  Parameters:
    `frontFace` - illuminate front face or back face?
    `desc` - the intersection point
    `rays` - all determined rays are added to this list
    `cache` - the cache may be used freely by implementations
    `rnd` - pseudorandom generator

### initialize

    public void initialize(Scene scene,
                           int raytracerType,
                           java.util.Random rnd)

  Description copied from interface: `LightProcessor`
  Initializes the light processor for use with the given `scene`.

  Specified by:
    `initialize` in interface `LightProcessor`
  Parameters:
    `scene` - the scene in which light rays are to be computed
    `raytracerType` - type of raytracer
    `rnd` - pseudorandom generator (`Environment.STANDARD_RAY_TRACER` or `Environment.PATH_TRACER`)

### initLocals

    protected void initLocals()

  Overrides:
    `initLocals` in class `ProcessorBase`

### mergeStatistics

    protected void mergeStatistics(ProcessorBase src)

  Overrides:
    `mergeStatistics` in class `ProcessorBase`

### useGeometryTerm

    public void useGeometryTerm(boolean use)

### useOneSamplePerLight

    public void useOneSamplePerLight(boolean one)

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