cz.cuni.jagrlib.testing
Class TriMeshDeformation

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

public class TriMeshDeformation
extends DefaultFunctionR2ToR2

Triangle-mesh warping: sample R^2 -> R^2 mapping using triangle mesh stored in Brep.

Since:
0.24
See Also:
TriMeshDeformation.java

Field Summary
protected  double[] a
           
protected  double[] b
           
protected  double[] c
           
protected static java.lang.String CATEGORY
          Object category.
protected static java.lang.String CONTEXT2
           
protected  int ctx2
          Id of the 2nd context (containing target mesh coordinates).
protected  Brep data
           
protected  int lastFace
           
protected  boolean lastForward
           
protected  double[] p
           
static RegPiece reg
          Static registration instance for this class.
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
protected  double[] uv
           
protected  int[] vertices
           
 
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
TriMeshDeformation()
           
 
Method Summary
protected  boolean computeBounds(int ctx, double[] b)
          Compute domain/range bounds of triangle mesh.
 void f(double x, double y, double[] res)
          Compute the mapping: f(x,y).
 boolean fInv(double u, double v, double[] res)
          Compute the inverse mapping: f-1(u,v).
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 boolean getDomain(double[] dom)
          Returns domain of the mapping.
 boolean getRange(double[] rng)
          Returns range of the mapping.
protected  void map(boolean forward, double x, double y, double[] res)
          Find triangle in which the given point [ x, y ] lies.
 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 testLastFace(int ctxFrom, int ctxTo, double[] res)
           
 
Methods inherited from class cz.cuni.jagrlib.DefaultFunctionR2ToR2
df, dfInv
 
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

ctx2

protected int ctx2
Id of the 2nd context (containing target mesh coordinates).


vertices

protected final int[] vertices

p

protected final double[] p

a

protected final double[] a

b

protected final double[] b

c

protected final double[] c

uv

protected final double[] uv

lastFace

protected int lastFace

lastForward

protected boolean lastForward

data

protected Brep data

CONTEXT2

protected static final java.lang.String CONTEXT2
See Also:
Constant Field Values

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

TriMeshDeformation

public TriMeshDeformation()
Method Detail

computeBounds

protected boolean computeBounds(int ctx,
                                double[] b)
Compute domain/range bounds of triangle mesh.

Parameters:
ctx - Context id of space to be used (source/target space).
b - Bounds to be filled (xMin, xMax, yMin, yMax).
Returns:
True if bounds were computed.

testLastFace

protected boolean testLastFace(int ctxFrom,
                               int ctxTo,
                               double[] res)

map

protected void map(boolean forward,
                   double x,
                   double y,
                   double[] res)
Find triangle in which the given point [ x, y ] lies.


f

public void f(double x,
              double y,
              double[] res)
Compute the mapping: f(x,y).

Specified by:
f in interface FunctionR2ToR2
Overrides:
f in class DefaultFunctionR2ToR2
Parameters:
x - X coordinate (1st argument).
y - Y coordinate (2nd argument).
res - Result array (res[0] = U coordinate, res[1] = V coordinate).

fInv

public boolean fInv(double u,
                    double v,
                    double[] res)
Compute the inverse mapping: f-1(u,v).

Specified by:
fInv in interface FunctionR2ToR2
Overrides:
fInv in class DefaultFunctionR2ToR2
Parameters:
u - U coordinate (1st argument).
v - V coordinate (2nd argument).
res - Result array (res[0] = X coordinate, res[1] = Y coordinate).
Returns:
true if this service is implemented.

getDomain

public boolean getDomain(double[] dom)
Returns domain of the mapping.

Specified by:
getDomain in interface FunctionR2ToR2
Overrides:
getDomain in class DefaultFunctionR2ToR2
Parameters:
dom - Domain array (dom[0] = Xmin, dom[1] = Xmax, dom[2] = Ymin, dom[3] = Ymax).
Returns:
true if this service is implemented.

getRange

public boolean getRange(double[] rng)
Returns range of the mapping.

Specified by:
getRange in interface FunctionR2ToR2
Overrides:
getRange in class DefaultFunctionR2ToR2
Parameters:
rng - Range array (rng[0] = Umin, rng[1] = Umax, rng[2] = Vmin, rng[3] = Vmax).
Returns:
true if this service is implemented.

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.