cz.cuni.jagrlib.testing
Class BrepSolid

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.BrepSolid
All Implemented Interfaces:
Breakable, Property, Solid, IntersectionAttributes, Template

public class BrepSolid
extends DefaultSolid

3D rendering example - wire-frame rendering of Brep database.

See Also:
BrepSolid.java

Nested Class Summary
protected static class BrepSolid.TmpData
          Temporary object to hold intersection data for BrepSolid.
 
Field Summary
protected  Brep brep
          Explicit B-rep database object.
protected  boolean first
          Should the assertBrep() check the data?
protected  int normalId
          Accelerator: VERTEX attribute - normal vector.
static RegPiece reg
          Static registration instance for this class.
protected  boolean shell
          Shell-mode - all intersections are doubled (=two-sided faces).
static java.lang.String SHELL
           
protected  boolean smooth
          Smooth normal-vector interpolation?
static java.lang.String SMOOTH
           
protected  java.util.BitSet solids
          Set of solid ids, can be null, in that case the whole B-rep database is used.
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
protected  int textureId
          Accelerator: VERTEX attribute - texture coordinate.
protected  int worldId
          Accelerator: VERTEX attribute - B-rep coordinates.
 
Fields inherited from class cz.cuni.jagrlib.DefaultSolid
CATEGORY
 
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
BrepSolid()
          Implicit (plug) B-rep database.
BrepSolid(Brep data, java.util.BitSet set)
          Explicit B-rep database, arbitrary solid set.
BrepSolid(Brep data, int solid)
          Explicit B-rep database, one (or all) solids.
 
Method Summary
 void addSolid(int solid)
          Inserts another solid id.
 int assertAttributes(MicroFacet mf, java.lang.Object tmp, int attributes)
          Asserts validity of the given intersection-attributes.
protected  boolean assertBrep()
          Asserts the scene object, returns true if failed.
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 java.util.List<MicroFacet> intersection(double[] P0, double[] P1)
          Computes intersection of the solid with the given ray.
 void set(java.lang.String key, java.lang.Object value)
          Sets the given property.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 
Methods inherited from class cz.cuni.jagrlib.DefaultSolid
createPolyhedr, getBoundingVolume, isInside
 
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

brep

protected Brep brep
Explicit B-rep database object.


first

protected boolean first
Should the assertBrep() check the data?


solids

protected java.util.BitSet solids
Set of solid ids, can be null, in that case the whole B-rep database is used.


smooth

protected boolean smooth
Smooth normal-vector interpolation?


worldId

protected int worldId
Accelerator: VERTEX attribute - B-rep coordinates.


normalId

protected int normalId
Accelerator: VERTEX attribute - normal vector.


textureId

protected int textureId
Accelerator: VERTEX attribute - texture coordinate.


shell

protected boolean shell
Shell-mode - all intersections are doubled (=two-sided faces).


SMOOTH

public static final java.lang.String SMOOTH
See Also:
Constant Field Values

SHELL

public static final java.lang.String SHELL
See Also:
Constant Field Values

TEMPLATE_NAME

protected static final java.lang.String TEMPLATE_NAME
Object template identifier.

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

BrepSolid

public BrepSolid()
Implicit (plug) B-rep database.


BrepSolid

public BrepSolid(Brep data,
                 int solid)
Explicit B-rep database, one (or all) solids.

Parameters:
data - Explicitly defined B-rep database.
solid - Either one solid id or Brep.NULL for the whole database.

BrepSolid

public BrepSolid(Brep data,
                 java.util.BitSet set)
Explicit B-rep database, arbitrary solid set.

Parameters:
data - Explicitly defined B-rep database.
set - Arbitrary solid-set (can be null).
Method Detail

addSolid

public void addSolid(int solid)
Inserts another solid id.


assertBrep

protected boolean assertBrep()
Asserts the scene object, returns true if failed.


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: VALID_TANGENT, 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.

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.