|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcz.cuni.jagrlib.DefaultProperty
cz.cuni.jagrlib.Piece
cz.cuni.jagrlib.DefaultLightSource
cz.cuni.jagrlib.obscure.RectangleLightSource
public class RectangleLightSource
Static area light source (rectangle).
Field Summary | |
---|---|
protected int |
actOrder
Order number of the actual sample actPoint . |
protected double[] |
actPoint
The actual sample. |
protected int |
actTotal
Total number of samples for the actual sample actPoint . |
protected double[] |
dim
Dimming polynom coefficients: light is dimmed by the factor of dim[0] + dim[1] * D + dim[2] * D * D . |
protected int[][] |
freq
Sampling statistics. |
protected double[] |
height
"Vertical" edge of the rectangle. |
static String |
KEY_DIM
JGL script key: dim. |
static String |
KEY_HEIGHT
JGL script key: height vector. |
static String |
KEY_POSITION
JGL script key: upper left corner. |
static String |
KEY_WIDTH
JGL script key: width vector. |
protected double[] |
lightColor
Color of the source: 1D for monochrome source, 3D for RGB
color space, or more for complex spectrum sampled spaces. |
protected RasterGraphics |
log
Log-image for sampling statistics. |
protected int |
logId
Handle of log-image. |
protected int |
maxFreq
Maximum sampling frequency ( maxi,j(freq[i][j]) ). |
protected double[] |
position
Light source coordinates (upper left corner). |
static RegPiece |
reg
Static registration instance for this class. |
protected static RandomJames |
rnd
Global random generator shared by all light source instances. |
protected static RandomJames |
rndu
Global random generator used for u-coordinate. |
protected static int |
STAT_SIZE
Size of sampling statistics in pixels. |
protected double |
u
Coordinates of the last sample point. |
protected double |
v
Coordinates of the last sample point. |
protected double[] |
width
"Horizontal" edge of the rectangle. |
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.LightSource |
---|
COLOR |
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_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_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING |
Constructor Summary | |
---|---|
RectangleLightSource()
|
Method Summary | |
---|---|
protected void |
assertSample(int order,
int total)
Computes the given sample point into the actPoint member. |
Object |
get(String key)
Gets the given property. |
boolean |
getDirection(MicroFacet mf,
int order,
int total,
double[] dir)
Returns light direction between the source and the given MicroFacet . |
boolean |
getIntensity(MicroFacet mf,
int order,
int total,
double[] color)
Returns light intensity coming from the source to the given MicroFacet . |
boolean |
lights(MicroFacet mf,
int order,
int total)
Lighting test from the source to the given MicroFacet . |
protected void |
readScript()
Read data from JGL script. |
void |
set(String key,
Object value)
Sets the given property. |
boolean |
setParams(double[] pos,
double[] wid,
double[] hei,
double[] color,
double[] dimming)
Set light source parameters. |
static int |
setTemplate(Template t,
int ord)
General-purpose registration routine. |
Methods inherited from class cz.cuni.jagrlib.DefaultLightSource |
---|
assertInter, getDirection, getIntensity, lights, 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, toString, wait, wait, wait |
Methods inherited from interface cz.cuni.jagrlib.iface.Property |
---|
commit |
Field Detail |
---|
public static final String KEY_POSITION
public static final String KEY_WIDTH
public static final String KEY_HEIGHT
public static final String KEY_DIM
protected double[] position
protected double[] width
protected double[] height
protected double[] lightColor
1D
for monochrome source, 3D
for RGB
color space, or more for complex spectrum sampled spaces.
protected double[] dim
dim[0] + dim[1] * D + dim[2] * D * D
.
Can be null
for no dimming..
protected static RandomJames rnd
protected static RandomJames rndu
protected int actOrder
actPoint
.
protected int actTotal
actPoint
.
protected double[] actPoint
protected double u
protected double v
protected static final int STAT_SIZE
protected int logId
protected RasterGraphics log
protected int[][] freq
protected int maxFreq
public static final RegPiece reg
Constructor Detail |
---|
public RectangleLightSource()
Method Detail |
---|
public boolean setParams(double[] pos, double[] wid, double[] hei, double[] color, double[] dimming)
pos
- Source position (upper left corner).wid
- "Horizontal" edge of the rectangle.hei
- "Vertical" edge of the rectangle.color
- Source color/intensity (can be either 1D /for monochrome computing/,
3D /for RGB color system/ or greater /for more complex spectral color
sampling/).dimming
- 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..
true
if parameters were successfully set.protected void readScript()
protected void assertSample(int order, int total)
actPoint
member.
public boolean lights(MicroFacet mf, int order, int total)
MicroFacet
.
Super-sampling variant.
lights
in interface LightSource
lights
in class DefaultLightSource
mf
- The checked MicroFacet
(point on surface of some solid).order
- Order of this sample inside the actual pixel.total
- Total number of samples in the actual pixel.
true
if the light source lights on the given point.getIntensity(cz.cuni.jagrlib.MicroFacet, int, int, double[])
,
getDirection(cz.cuni.jagrlib.MicroFacet, int, int, double[])
public boolean getIntensity(MicroFacet mf, int order, int total, double[] color)
MicroFacet
.
Super-sampling variant.
getIntensity
in interface LightSource
getIntensity
in class DefaultLightSource
mf
- The MicroFacet
(point on surface of some solid).order
- Order of this sample inside the actual pixel.total
- Total number of samples in the actual pixel.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/).
true
if the light source can light on the given point (cannot
replace the lights()
call!).lights(cz.cuni.jagrlib.MicroFacet, int, int)
,
getDirection(cz.cuni.jagrlib.MicroFacet, int, int, double[])
public boolean getDirection(MicroFacet mf, int order, int total, double[] dir)
MicroFacet
.
Super-sampling variant.
getDirection
in interface LightSource
getDirection
in class DefaultLightSource
mf
- The MicroFacet
(point on surface of some solid).order
- Order of this sample inside the actual pixel.total
- Total number of samples in the actual pixel.dir
- Pre-allocated array to hold the result - normalised direction vector
from the MicroFacet
to the light source.
false
if the light source is not directional (thus dir
is irrelevant).lights(cz.cuni.jagrlib.MicroFacet, int, int)
,
getIntensity(cz.cuni.jagrlib.MicroFacet, int, int, double[])
public void set(String key, Object value)
set
in interface Property
set
in class DefaultProperty
key
- Key string.value
- The new value.Property.commit()
public Object get(String key)
get
in interface Property
get
in class DefaultProperty
key
- Key string.
null
.public static int setTemplate(Template t, int ord)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |