cz.cuni.jagrlib.testing
Class SolidSpecimen

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultSolid
              extended by cz.cuni.jagrlib.testing.SolidSpecimen
All Implemented Interfaces:
Breakable, Property, Solid, IntersectionAttributes, Template

public class SolidSpecimen
extends DefaultSolid

Solid specimen - elementary 3D solid.

Since:
0.24
See Also:
SolidSpecimen.java

Nested Class Summary
protected static class SolidSpecimen.TmpData
          Temporary object to hold intersection data for SolidSpecimen.
 
Field Summary
static RegPiece reg
          Static registration instance for this class.
 
Fields inherited from class cz.cuni.jagrlib.DefaultSolid
CATEGORY, 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
SolidSpecimen()
           
 
Method Summary
 int assertAttributes(MicroFacet mf, java.lang.Object tmp, int attributes)
          Asserts validity of the given intersection-attributes.
 java.util.List<MicroFacet> intersection(double[] P0, double[] P1)
          Computes intersection of the solid with the given ray.
 boolean isInside(double[] point)
          Point vs. solid test ("inside-test").
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 
Methods inherited from class cz.cuni.jagrlib.DefaultSolid
createPolyhedr, getBoundingVolume
 
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, get, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, 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, get, set
 

Field Detail

reg

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

Constructor Detail

SolidSpecimen

public SolidSpecimen()
Method Detail

intersection

public java.util.List<MicroFacet> intersection(double[] P0,
                                               double[] P1)
Computes intersection of the solid with the given ray.

Parameters:
P0 - Ray origin (double[3] or double[4]).
P1 - Direction vector of the ray (double[3] or double[4]).
Returns:
List of intersection points (MicroFacets) sorted by t (parametric distance from P0). null is returned in case of bad arguments or if no intersection exists..
See Also:
MicroFacet, BoundingVolume

assertAttributes

public int assertAttributes(MicroFacet mf,
                            java.lang.Object tmp,
                            int attributes)
Asserts validity of the given intersection-attributes. Resolves: MicroFacet.VALID_TANGENT, MicroFacet.VALID_TEX_COORD.

Specified by:
assertAttributes in interface IntersectionAttributes
Overrides:
assertAttributes in class DefaultSolid
Parameters:
mf - The checked intersection.
tmp - Non-mandatory object holding state-information for deferred computations.
attributes - Attribute mask (required attributes - see MicroFacet.VALID_*).
Returns:
Attributes which were not computed.

isInside

public boolean isInside(double[] point)
Point vs. solid test ("inside-test").

Specified by:
isInside in interface Solid
Overrides:
isInside in class DefaultSolid
Parameters:
point - Coordinates of the 3D point (double[3] or double[4]).
Returns:
true if the given point lies inside the solid.

setTemplate

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