cz.cuni.jagrlib.testing
Class StaticSphericalLightSource

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultLightSource
              extended by cz.cuni.jagrlib.testing.StaticSphericalLightSource
All Implemented Interfaces:
Breakable, LightSource, Property, Template

public class StaticSphericalLightSource
extends DefaultLightSource

Spherical light shining all around. Every point on the sphere shining through the hemisphere.

Since:
0.12
See Also:
StaticSphericalLightSource.java

Field Summary
protected  double[] center
          Center of the sphere.
static java.lang.String CENTER
          JGL script key: center of sphere.
static java.lang.String COLOR
          JGL script key: color.
protected  double[] dim
          Dimming polynom coefficients: light is dimmed by the factor of dim[0] + dim[1] * D + dim[2] * D * D.
protected  double[] lightColor
          Color of the source: 1D for monochrome source, 3D for RGB color space, or more for complex spectrum sampled spaces.
protected  int[] photons
          Number of shooted photons (for methods based on photon tracing).
static java.lang.String PHOTONS
          JGL script key: position of up right vertex.
static java.lang.String POWER
          JGL script key: position of up right vertex.
protected  double[] radius
          Radius of the sphere.
static java.lang.String RADIUS
          JGL script key: radius of sphere.
static RegPiece reg
          Static registration instance for this class.
 
Fields inherited from class cz.cuni.jagrlib.DefaultLightSource
CATEGORY, inter, KEY_LIGHT, PARAMS, plugInter, scriptName, TEMPLATE_NAME
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Fields inherited from interface cz.cuni.jagrlib.Template
ALL_PLUGS, C_1D, C_2D, C_3D, C_ALPHA, C_BINARY, C_BREP, C_CAMERA, C_CIRCLE, C_CLIP, C_COMPRESSION, C_CURVE, C_DATA, C_DRAW, C_EDITOR, C_ELLIPSE, C_FILL, C_FILTER, C_FLOAT, C_FUNCTION, C_IMAGE, C_INTEGER, C_IO, C_LIGHT, C_LINE, C_METRIC, C_POLYGON, C_PROJECTION, C_RADIOSITY, C_RASTER, C_RENDER, C_SAMPLE, C_SCENE, C_SET, C_SOLID, C_TEXT, C_TRANSFORM, C_VECTOR, C_VIEWER, C_WORKER, CAT_EMPTY, EMPTY, IFACE, JAGRLIB, JAGRLIB2, MANIPULATOR_COMBO, MANIPULATOR_CUSTOM, MANIPULATOR_DEFAULT, MANIPULATOR_MULTILINE, PL_ALPHAMASK, PL_BITMASK, PL_CAUSTIC, PL_CODEC, PL_COLORMAP, PL_COMPARE, PL_DATA, PL_DIRECT, PL_EDITOR, PL_FILTER, PL_FUNCTION, PL_IMAGE, PL_IMPORT, PL_INPUT, PL_INTERSECTION, PL_LIGHTSOURCE, PL_ORDER, PL_OUTPUT, PL_PALETTE, PL_PHOTON, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_SHADOW, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_VOLUME, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Constructor Summary
StaticSphericalLightSource()
           
 
Method Summary
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 boolean getDirection(MicroFacet mf, double[] dir)
          Returns light direction between the source and the given MicroFacet.
 boolean getIntensity(MicroFacet mf, double[] color)
          Returns light intensity coming from the source to the given MicroFacet.
 boolean lights(MicroFacet mf)
          Lighting test from the source to the given MicroFacet.
protected  void readScript()
          Read data from JGL script.
 void set(java.lang.String key, java.lang.Object value)
          Sets the given property.
 boolean setParams(int photons, float[] power, double[] center, double[] radius, double[] color)
          Set light source parameters.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 java.lang.String toString()
          For debugging purposes only.
 
Methods inherited from class cz.cuni.jagrlib.DefaultLightSource
assertInter, getDirection, getIntensity, isDeltaLight, lights, pdf, sample, sample, setIntersectable
 
Methods inherited from class cz.cuni.jagrlib.Piece
className, connect, findPlug, findPlug, getInfo, getInterface, getInterface, getPlug, getReg, init, isCompatible, isCompatible, isConnected, logError, logWarning, myInterface, newInputPlug, newOptOutputPlug, newOutputPlug, newPlug, noTemplates, propBegin, propBounds, propDefault, propEnd, propEnum, propManipulator, propManipulator, setProgressListener, setRegStrings, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, stringProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit
 

Field Detail

photons

protected int[] photons
Number of shooted photons (for methods based on photon tracing).


center

protected double[] center
Center of the sphere.


radius

protected double[] radius
Radius of the sphere.


lightColor

protected double[] lightColor
Color of the source: 1D for monochrome source, 3D for RGB color space, or more for complex spectrum sampled spaces.


dim

protected double[] dim
Dimming polynom coefficients: light is dimmed by the factor of dim[0] + dim[1] * D + dim[2] * D * D. Can be null for no dimming..


PHOTONS

public static final java.lang.String PHOTONS
JGL script key: position of up right vertex.

See Also:
Constant Field Values

POWER

public static final java.lang.String POWER
JGL script key: position of up right vertex.

See Also:
Constant Field Values

CENTER

public static final java.lang.String CENTER
JGL script key: center of sphere.

See Also:
Constant Field Values

RADIUS

public static final java.lang.String RADIUS
JGL script key: radius of sphere.

See Also:
Constant Field Values

COLOR

public static final java.lang.String COLOR
JGL script key: color.

See Also:
Constant Field Values

reg

public static final RegPiece reg
Static registration instance for this class. Automatically initialized in class-loading time.

Constructor Detail

StaticSphericalLightSource

public StaticSphericalLightSource()
Method Detail

setParams

public boolean setParams(int photons,
                         float[] power,
                         double[] center,
                         double[] radius,
                         double[] color)
Set light source parameters.

Parameters:
photons - Number of photons to shoot.
power - Power of light.
urVertex - Up right vertex of square.
ulVertex - Up left vertex of square.
llVertex - Low left vertex of square.
lrVertex - Low right vertex of square.
color - Source color/intensity (can be either 1D /for monochrome computing/, 3D /for RGB color system/ or greater /for more complex spectral color sampling/).

readScript

protected void readScript()
Read data from JGL script.


toString

public java.lang.String toString()
For debugging purposes only.

Overrides:
toString in class java.lang.Object

lights

public boolean lights(MicroFacet mf)
Lighting test from the source to the given MicroFacet.

Specified by:
lights in interface LightSource
Overrides:
lights in class DefaultLightSource
Parameters:
mf - The checked MicroFacet (point on surface of some solid).
Returns:
true if the light source lights on the given point.
See Also:
getIntensity(cz.cuni.jagrlib.MicroFacet, double[]), getDirection(cz.cuni.jagrlib.MicroFacet, double[])

getIntensity

public boolean getIntensity(MicroFacet mf,
                            double[] color)
Returns light intensity coming from the source to the given MicroFacet.

Specified by:
getIntensity in interface LightSource
Overrides:
getIntensity in class DefaultLightSource
Parameters:
mf - The MicroFacet (point on surface of some solid).
color - Pre-allocated double[C] array to hold result - light intensity coming from the source to the given point (C can be either 1 /for monochrome computing/, 3 /for RGB color system/ or greater /for more complex spectral color sampling/).
Returns:
true if the light source can light on the given point (cannot replace the lights(cz.cuni.jagrlib.MicroFacet) call!).
See Also:
lights(cz.cuni.jagrlib.MicroFacet), getDirection(cz.cuni.jagrlib.MicroFacet, double[])

getDirection

public boolean getDirection(MicroFacet mf,
                            double[] dir)
Returns light direction between the source and the given MicroFacet.

Specified by:
getDirection in interface LightSource
Overrides:
getDirection in class DefaultLightSource
Parameters:
mf - The MicroFacet (point on surface of some solid).
dir - Pre-allocated array to hold the result - normalised direction vector from the MicroFacet to the light source.
Returns:
false if the light source is not directional (thus dir is irrelevant).
See Also:
lights(cz.cuni.jagrlib.MicroFacet), getIntensity(cz.cuni.jagrlib.MicroFacet, double[])

set

public void set(java.lang.String key,
                java.lang.Object value)
Sets the given property.

Specified by:
set in interface Property
Overrides:
set in class DefaultProperty
Parameters:
key - Key string.
value - The new value.
See Also:
Property.commit()

get

public java.lang.Object get(java.lang.String key)
Gets the given property.

Specified by:
get in interface Property
Overrides:
get in class DefaultProperty
Parameters:
key - Key string.
Returns:
The actual value or null.

setTemplate

public static int setTemplate(Template t,
                              int ord)
General-purpose registration routine. Sets all plugs, strings, etc. to the given Template.