cz.cuni.jagrlib
Class DefaultSolid

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultSolid
All Implemented Interfaces:
Breakable, Property, Solid, IntersectionAttributes, Template
Direct Known Subclasses:
BrepSolid, Cone, Cube, Cylinder, Plane, Revolution, SolidSpecimen, Sphere

public abstract class DefaultSolid
extends Piece
implements Solid

Default implementation of Solid. Defines non-mandatory members for convenience.

See Also:
DefaultSolid.java

Field Summary
protected static java.lang.String CATEGORY
          Object category.
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, reg, 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
DefaultSolid()
           
 
Method Summary
 int assertAttributes(MicroFacet mf, java.lang.Object tmp, int attributes)
          Asserts validity of the given intersection-attributes.
 int createPolyhedr(Brep b, double smoothness)
          Creates polyhedral representation of the solid (non-mandatory method).
 BoundingVolume getBoundingVolume(TrMatrix toWorld)
          Returns bounding volume of the solid (non-mandatory method).
 boolean isInside(double[] point)
          Point vs. solid test ("inside-test").
 
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, setTemplate, 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.Solid
intersection
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit, get, set
 

Field Detail

TEMPLATE_NAME

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

See Also:
Constant Field Values

CATEGORY

protected static final java.lang.String CATEGORY
Object category.

See Also:
Constant Field Values
Constructor Detail

DefaultSolid

public DefaultSolid()
Method Detail

createPolyhedr

public int createPolyhedr(Brep b,
                          double smoothness)
Creates polyhedral representation of the solid (non-mandatory method).

Specified by:
createPolyhedr in interface Solid
Parameters:
b - Global B-rep data structure.
smoothness - Quality-factor of an approximation (0.0 for default approximation).
Returns:
Handle of the created solid (or Brep.NULL if the method is not implemented).
See Also:
Brep.NULL

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
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.

getBoundingVolume

public BoundingVolume getBoundingVolume(TrMatrix toWorld)
Returns bounding volume of the solid (non-mandatory method).

Specified by:
getBoundingVolume in interface Solid
Parameters:
toWorld - Transform from local (solid) coordinates to world coordinates (where bounding volume will live).
Returns:
Bounding volume of the solid or null if method is not implemented.
See Also:
Solid.intersection(double[], double[])

isInside

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

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