cz.cuni.jagrlib.testing
Class DepthSort

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

public class DepthSort
extends Piece
implements BrepIterator

Depth-sorting example - incorrect behavior for general scenes with large faces.

See Also:
DepthSort.java

Nested Class Summary
protected  class DepthSort.Face
          Sorted-set item (Brep face).
 
Field Summary
protected  int[] arr
          Pre-computed face ordering.
protected  int attrCoords
          Accelerator: projected coordinates.
protected static java.lang.String CATEGORY
          Object category.
protected  java.lang.String coordsName
          Brep-attribute name holding projected coordinates.
protected  int ctx
          Actual Brep context to sort.
protected  Brep data
          Accelerator: Brep database.
protected  int n
          Index to arr - item to be returned next.
static RegPiece reg
          Static registration instance for this class.
protected  int sortOrder
          Actual sort order.
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
protected  double[] vc
          Tmp: vertex coordinate.
protected  BrepIterator vit
          Tmp: vertices-in-face iterator.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.BrepIterator
CONTEXT, PROJ_COORDS, SORT_ASCENDING, SORT_DESCENDING, SORT_ORDER
 
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
DepthSort()
           
 
Method Summary
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 int left()
          How many items remain in the set?
 int next()
          Returns id of the next object.
 void reset()
          Reset the iterator.
 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.
protected  boolean sort()
          Precomputes the ordering, returns true if failed.
 int[] toArray(int[] pre)
          Fills the provided array by all items (pre-allocated array could be null or too small - in these cases new one will be created).
 
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

sortOrder

protected int sortOrder
Actual sort order.


ctx

protected int ctx
Actual Brep context to sort.


coordsName

protected java.lang.String coordsName
Brep-attribute name holding projected coordinates.


attrCoords

protected int attrCoords
Accelerator: projected coordinates.


data

protected Brep data
Accelerator: Brep database.


vc

protected double[] vc
Tmp: vertex coordinate.


vit

protected BrepIterator vit
Tmp: vertices-in-face iterator.


arr

protected int[] arr
Pre-computed face ordering.


n

protected int n
Index to arr - item to be returned next.


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

reg

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

Constructor Detail

DepthSort

public DepthSort()
Method Detail

sort

protected boolean sort()
Precomputes the ordering, returns true if failed.


reset

public void reset()
Reset the iterator.

Specified by:
reset in interface BrepIterator

next

public int next()
Returns id of the next object.

Specified by:
next in interface BrepIterator
Returns:
Brep.NULL if there is no next object available.

toArray

public int[] toArray(int[] pre)
Fills the provided array by all items (pre-allocated array could be null or too small - in these cases new one will be created). End of the data is marked using Brep.NULL.

Specified by:
toArray in interface BrepIterator

left

public int left()
How many items remain in the set? Non-mandatory - must return Brep.NULL if not implemented.

Specified by:
left in interface BrepIterator

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.