cz.cuni.jagrlib.piece
Class OrderSFC

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.piece.OrderSFC
All Implemented Interfaces:
Breakable, Order2D, Property, Template

public class OrderSFC
extends Piece
implements Order2D

Rectangle image ordering using various Space-Filling-Curves (SFC).

See Also:
OrderSFC.java

Nested Class Summary
protected  class OrderSFC.Hilbert
          Producer thread for the Peano-Hilbert order.
protected  class OrderSFC.Morton
          Producer thread for the Morton order (Z-order).
protected  class OrderSFC.MPeano
          Producer thread for the Meandering Peano order.
protected static class OrderSFC.OrderType
          Implemented order types.
protected  class OrderSFC.Peano
          Producer thread for the Peano order.
protected static class OrderSFC.QItem
          FIFO item (holding coordinates of one sample.).
 
Field Summary
protected static java.lang.String CATEGORY
          Object category.
protected  java.util.concurrent.ArrayBlockingQueue<OrderSFC.QItem> fifo
          Producer <-> consumer communication buffer.
protected  int height
          Actual bitmap height in pixels.
protected  boolean produce
          Continue-flag for producer thread.
protected  java.lang.Thread producer
          Actual SFC producer thread.
static RegPiece reg
          Static registration instance for this class.
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
protected  int toDeliver
          Number of samples yet to deliver.
protected  OrderSFC.OrderType type
          Actual order type.
protected  int width
          Actual bitmap width in pixels.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.Order2D
ORDER_TYPE
 
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
OrderSFC()
           
 
Method Summary
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 void init()
          Re-initializes the pass algorithm.
 boolean isNext()
          Anything to pass?
 int[] next(int[] coords)
          Returns the next 2D point.
 void pass()
          Executes the whole rectangle pass.
 void set(java.lang.String key, java.lang.Object value)
          Sets the given property.
 void setSize(int _m, int _n)
          Sets the source rectangle size.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
protected  void stopProducer()
          Stops producer thread.
 
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

type

protected OrderSFC.OrderType type
Actual order type.


width

protected int width
Actual bitmap width in pixels.


height

protected int height
Actual bitmap height in pixels.


toDeliver

protected int toDeliver
Number of samples yet to deliver.


fifo

protected java.util.concurrent.ArrayBlockingQueue<OrderSFC.QItem> fifo
Producer <-> consumer communication buffer.


produce

protected volatile boolean produce
Continue-flag for producer thread.


producer

protected java.lang.Thread producer
Actual SFC producer thread.


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

OrderSFC

public OrderSFC()
Method Detail

stopProducer

protected void stopProducer()
Stops producer thread.


setSize

public void setSize(int _m,
                    int _n)
Sets the source rectangle size. Initializes the pass algorithm. For both Active and Passive modes.

Specified by:
setSize in interface Order2D
Parameters:
_m - Horizontal rectangle size (width).
_n - Vertical rectangle size (height).
See Also:
init()

init

public void init()
Re-initializes the pass algorithm. For Passive pass mode.

Specified by:
init in interface Order2D
See Also:
setSize(int, int)

next

public int[] next(int[] coords)
Returns the next 2D point. For Passive pass mode.

Specified by:
next in interface Order2D
Parameters:
coords - Pre-allocated array of size 2 (for [X,Y] coordinates). Can be null.
Returns:
The next point's coordinates ([X,Y]).
See Also:
init()

isNext

public boolean isNext()
Anything to pass? For Passive pass mode.

Specified by:
isNext in interface Order2D
Returns:
true if there is at least one pixel to pass.
See Also:
init(), next(int[])

pass

public void pass()
Executes the whole rectangle pass. For Active (="modal") pass mode.

Specified by:
pass in interface Order2D
See Also:
setSize(int, int)

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.