public class RenderingAttributes extends NodeComponent
setDepthTestFunction
method. By default, LESS_OR_EQUAL is the function used. The depth test
function is one of the following:
setAlphaTestFunction
method. The alpha test
function is one of the following:
setAlphaTestValue
method. The default alpha test value is 0.0.
setRasterOp
method. The raster operation
is enabled or disabled with the setRasterOpEnable
method. The raster operation is one of the following:
setIgnoreVertexColors
method. If
ignoreVertexColors is false, per-vertex colors are used, when
present in the associated geometry objects, taking
precedence over the ColoringAttributes color and the
specified Material color(s). If ignoreVertexColors is true, per-vertex
colors are ignored. In this case, if lighting is enabled, the
Material diffuse color will be used as the object color.
if lighting is disabled, the ColoringAttributes color is
used. The default value is false.
setVisible
method. By default, the visibility flag is true.
setDepthBufferEnable
method enables
or disabled the depth buffer. The
setDepthBufferWriteEnable
method enables or disables
writing the depth buffer for this object. During the transparent
rendering pass, this attribute can be overridden by the
depthBufferFreezeTransparent attribute in the View
object. Transparent objects include BLENDED transparent and
antialiased lines and points. Transparent objects do not
include opaque objects or primitives rendered with
SCREEN_DOOR transparency. By default, the depth buffer
is enabled and the depth buffer write is enabled.
setStencilEnable
method. If the
stencil buffer is disabled, the stencil operation and function are ignored.
If a scene graph is rendered on a Canvas3D that does not have a stencil
buffer, the stencil buffer will be implicitly disabled for that
canvas.
~0
(all ones).
setStencilOp
method. The stencil operation is one of the following:
refValue
, as specified by setStencilFunction
.
setStencilFunction
method. The stencil comparison mask is
bitwise-ANDed with both the stencil reference value and the stored stencil
value prior to doing the comparison. The default value for the reference value
is 0. The default value for the comparison mask is ~0
(all ones).
The stencil test function is one of the following:
Note: the alpha test, depth test, and stencil functions all use the same enums.
Appearance
Modifier and Type | Field and Description |
---|---|
static int |
ALLOW_ALPHA_TEST_FUNCTION_READ
Specifies that this RenderingAttributes object
allows reading its alpha test function component information.
|
static int |
ALLOW_ALPHA_TEST_FUNCTION_WRITE
Specifies that this RenderingAttributes object
allows writing its alpha test function component information.
|
static int |
ALLOW_ALPHA_TEST_VALUE_READ
Specifies that this RenderingAttributes object
allows reading its alpha test value component information.
|
static int |
ALLOW_ALPHA_TEST_VALUE_WRITE
Specifies that this RenderingAttributes object
allows writing its alpha test value component information.
|
static int |
ALLOW_DEPTH_ENABLE_READ
Specifies that this RenderingAttributes object
allows reading its depth buffer enable and depth buffer write enable
component information.
|
static int |
ALLOW_DEPTH_ENABLE_WRITE
Specifies that this RenderingAttributes object
allows writing its depth buffer enable and depth buffer write enable
component information.
|
static int |
ALLOW_DEPTH_TEST_FUNCTION_READ
Specifies that this RenderingAttributes object
allows reading its depth test function component information.
|
static int |
ALLOW_DEPTH_TEST_FUNCTION_WRITE
Specifies that this RenderingAttributes object
allows writing its depth test function component information.
|
static int |
ALLOW_IGNORE_VERTEX_COLORS_READ
Specifies that this RenderingAttributes object
allows reading its ignore vertex colors information.
|
static int |
ALLOW_IGNORE_VERTEX_COLORS_WRITE
Specifies that this RenderingAttributes object
allows writing its ignore vertex colors information.
|
static int |
ALLOW_RASTER_OP_READ
Specifies that this RenderingAttributes object
allows reading its raster operation information.
|
static int |
ALLOW_RASTER_OP_WRITE
Specifies that this RenderingAttributes object
allows writing its raster operation information.
|
static int |
ALLOW_STENCIL_ATTRIBUTES_READ
Specifies that this RenderingAttributes object allows reading
its stencil enable, stencil op, stencil function, and
stencil write mask information.
|
static int |
ALLOW_STENCIL_ATTRIBUTES_WRITE
Specifies that this RenderingAttributes object allows writing
its stencil enable, stencil op, stencil function, and
stencil write mask information.
|
static int |
ALLOW_VISIBLE_READ
Specifies that this RenderingAttributes object
allows reading its visibility information.
|
static int |
ALLOW_VISIBLE_WRITE
Specifies that this RenderingAttributes object
allows writing its visibility information.
|
static int |
ALWAYS
Specifies that pixels are always drawn irrespective of the
values being tested.
|
static int |
EQUAL
Specifies that pixels are drawn if the two values being tested are equal.
|
static int |
GREATER
Specifies that pixels are drawn if the source/reference value is greater
than the destination/test value.
|
static int |
GREATER_OR_EQUAL
Specifies that pixels are drawn if the source/reference value is greater
than or equal to the destination/test value.
|
static int |
LESS
Specifies that pixels are drawn if the source/reference value is less
than the destination/test value.
|
static int |
LESS_OR_EQUAL
Specifies that pixels are drawn if the source/reference value is less
than or equal to the destination/test value.
|
static int |
NEVER
Specifies that pixels are never drawn irrespective of the
values being tested.
|
static int |
NOT_EQUAL
Specifies that pixels are drawn if the two values being tested are not equal.
|
static int |
ROP_AND
Raster operation:
DST = SRC & DST . |
static int |
ROP_AND_INVERTED
Raster operation:
DST = ~SRC & DST . |
static int |
ROP_AND_REVERSE
Raster operation:
DST = SRC & ~DST . |
static int |
ROP_CLEAR
Raster operation:
DST = 0 . |
static int |
ROP_COPY
Raster operation:
DST = SRC . |
static int |
ROP_COPY_INVERTED
Raster operation:
DST = ~SRC . |
static int |
ROP_EQUIV
Raster operation:
DST = ~( DST ^ SRC ) . |
static int |
ROP_INVERT
Raster operation:
DST = ~DST . |
static int |
ROP_NAND
Raster operation:
DST = ~(SRC & DST) . |
static int |
ROP_NOOP
Raster operation:
DST = DST . |
static int |
ROP_NOR
Raster operation:
DST = ~( DST | SRC ) . |
static int |
ROP_OR
Raster operation:
DST = DST | SRC . |
static int |
ROP_OR_INVERTED
Raster operation:
DST = ~SRC | DST . |
static int |
ROP_OR_REVERSE
Raster operation:
DST = src | ~DST . |
static int |
ROP_SET
Raster operation:
DST = 1 . |
static int |
ROP_XOR
Raster operation:
DST = SRC ^ DST . |
static int |
STENCIL_DECR
Stencil operation:
DST = DST - 1 |
static int |
STENCIL_INCR
Stencil operation:
DST = DST + 1 |
static int |
STENCIL_INVERT
Stencil operation:
DST = ~DST |
static int |
STENCIL_KEEP
Stencil operation:
DST = DST |
static int |
STENCIL_REPLACE
Stencil operation:
DST = REF |
static int |
STENCIL_ZERO
Stencil operation:
DST = 0 |
Constructor and Description |
---|
RenderingAttributes()
Constructs a RenderingAttributes object with default parameters.
|
RenderingAttributes(boolean depthBufferEnable,
boolean depthBufferWriteEnable,
float alphaTestValue,
int alphaTestFunction)
Constructs a RenderingAttributes object with specified values.
|
RenderingAttributes(boolean depthBufferEnable,
boolean depthBufferWriteEnable,
float alphaTestValue,
int alphaTestFunction,
boolean visible,
boolean ignoreVertexColors,
boolean rasterOpEnable,
int rasterOp)
Constructs a RenderingAttributes object with specified values
|
Modifier and Type | Method and Description |
---|---|
NodeComponent |
cloneNodeComponent()
Deprecated.
replaced with cloneNodeComponent(boolean forceDuplicate)
|
int |
getAlphaTestFunction()
Retrieves current alpha test function.
|
float |
getAlphaTestValue()
Retrieves the alpha test value.
|
boolean |
getDepthBufferEnable()
Retrieves the state of zBuffer Enable flag
|
boolean |
getDepthBufferWriteEnable()
Retrieves the state of Depth Buffer Write Enable flag.
|
int |
getDepthTestFunction()
Retrieves current depth test function.
|
boolean |
getIgnoreVertexColors()
Retrieves the ignoreVertexColors flag for this
RenderingAttributes object.
|
int |
getRasterOp()
Retrieves the current raster operation for this RenderingAttributes
object.
|
boolean |
getRasterOpEnable()
Retrieves the rasterOp enable flag for this RenderingAttributes
object.
|
boolean |
getStencilEnable()
Retrieves the stencil buffer enable flag for this RenderingAttributes
object.
|
void |
getStencilFunction(int[] params)
Retrieves the stencil function, reference value, and comparison mask,
and copies them into the specified array.
|
void |
getStencilOp(int[] stencilOps)
Retrieves the current set of stencil operations, and copies them
into the specified array.
|
int |
getStencilWriteMask()
Retrieves the current stencil write mask for this RenderingAttributes
object.
|
boolean |
getVisible()
Retrieves the visibility flag for this RenderingAttributes object.
|
void |
setAlphaTestFunction(int function)
Set alpha test function.
|
void |
setAlphaTestValue(float value)
Set alpha test value used by alpha test function.
|
void |
setDepthBufferEnable(boolean state)
Enables or disables depth buffer mode for this RenderingAttributes
component object.
|
void |
setDepthBufferWriteEnable(boolean state)
Enables or disables writing the depth buffer for this object.
|
void |
setDepthTestFunction(int function)
Set depth test function.
|
void |
setIgnoreVertexColors(boolean ignoreVertexColors)
Sets a flag that indicates whether vertex colors are ignored
for this RenderingAttributes object.
|
void |
setRasterOp(int rasterOp)
Sets the raster operation function for this RenderingAttributes
component object.
|
void |
setRasterOpEnable(boolean rasterOpEnable)
Sets the rasterOp enable flag for this RenderingAttributes
component object.
|
void |
setStencilEnable(boolean state)
Enables or disables the stencil buffer for this RenderingAttributes
component object.
|
void |
setStencilFunction(int[] params)
Sets the stencil function, reference value, and comparison mask
for this RenderingAttributes object to the specified parameters.
|
void |
setStencilFunction(int function,
int refValue,
int compareMask)
Sets the stencil function, reference value, and comparison mask
for this RenderingAttributes object to the specified parameters.
|
void |
setStencilOp(int[] stencilOps)
Sets the stencil operations for this RenderingAttributes object to the
specified parameters.
|
void |
setStencilOp(int failOp,
int zFailOp,
int zPassOp)
Sets the stencil operations for this RenderingAttributes object to the
specified parameters.
|
void |
setStencilWriteMask(int mask)
Sets the stencil write mask for this RenderingAttributes
object.
|
void |
setVisible(boolean visible)
Sets the visibility flag for this RenderingAttributes
component object.
|
cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences
public static final int ALLOW_ALPHA_TEST_VALUE_READ
public static final int ALLOW_ALPHA_TEST_VALUE_WRITE
public static final int ALLOW_ALPHA_TEST_FUNCTION_READ
public static final int ALLOW_ALPHA_TEST_FUNCTION_WRITE
public static final int ALLOW_DEPTH_TEST_FUNCTION_READ
public static final int ALLOW_DEPTH_TEST_FUNCTION_WRITE
public static final int ALLOW_DEPTH_ENABLE_READ
public static final int ALLOW_DEPTH_ENABLE_WRITE
public static final int ALLOW_VISIBLE_READ
public static final int ALLOW_VISIBLE_WRITE
public static final int ALLOW_IGNORE_VERTEX_COLORS_READ
public static final int ALLOW_IGNORE_VERTEX_COLORS_WRITE
public static final int ALLOW_RASTER_OP_READ
public static final int ALLOW_RASTER_OP_WRITE
public static final int ALLOW_STENCIL_ATTRIBUTES_READ
public static final int ALLOW_STENCIL_ATTRIBUTES_WRITE
public static final int ALWAYS
public static final int NEVER
public static final int EQUAL
public static final int NOT_EQUAL
public static final int LESS
public static final int LESS_OR_EQUAL
public static final int GREATER
public static final int GREATER_OR_EQUAL
public static final int ROP_CLEAR
DST = 0
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_AND
DST = SRC & DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_AND_REVERSE
DST = SRC & ~DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_COPY
DST = SRC
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_AND_INVERTED
DST = ~SRC & DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_NOOP
DST = DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_XOR
DST = SRC ^ DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_OR
DST = DST | SRC
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_NOR
DST = ~( DST | SRC )
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_EQUIV
DST = ~( DST ^ SRC )
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_INVERT
DST = ~DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_OR_REVERSE
DST = src | ~DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_COPY_INVERTED
DST = ~SRC
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_OR_INVERTED
DST = ~SRC | DST
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_NAND
DST = ~(SRC & DST)
.setRasterOp(int)
,
Constant Field Valuespublic static final int ROP_SET
DST = 1
.setRasterOp(int)
,
Constant Field Valuespublic static final int STENCIL_KEEP
DST = DST
setStencilOp(int,int,int)
,
Constant Field Valuespublic static final int STENCIL_ZERO
DST = 0
setStencilOp(int,int,int)
,
Constant Field Valuespublic static final int STENCIL_REPLACE
DST = REF
setStencilOp(int,int,int)
,
Constant Field Valuespublic static final int STENCIL_INCR
DST = DST + 1
setStencilOp(int,int,int)
,
Constant Field Valuespublic static final int STENCIL_DECR
DST = DST - 1
setStencilOp(int,int,int)
,
Constant Field Valuespublic static final int STENCIL_INVERT
DST = ~DST
setStencilOp(int,int,int)
,
Constant Field Valuespublic RenderingAttributes()
public RenderingAttributes(boolean depthBufferEnable, boolean depthBufferWriteEnable, float alphaTestValue, int alphaTestFunction)
depthBufferEnable
- a flag to turn depth buffer on/offdepthBufferWriteEnable
- a flag to to make depth buffer
read/write or read onlyalphaTestValue
- the alpha test reference valuealphaTestFunction
- the function for comparing alpha valuespublic RenderingAttributes(boolean depthBufferEnable, boolean depthBufferWriteEnable, float alphaTestValue, int alphaTestFunction, boolean visible, boolean ignoreVertexColors, boolean rasterOpEnable, int rasterOp)
depthBufferEnable
- a flag to turn depth buffer on/offdepthBufferWriteEnable
- a flag to make depth buffer
read/write or read onlyalphaTestValue
- the alpha test reference valuealphaTestFunction
- the function for comparing alpha valuesvisible
- a flag that specifies whether the object is visibleignoreVertexColors
- a flag to enable or disable
the ignoring of per-vertex colorsrasterOpEnable
- a flag that specifies whether logical
raster operations are enabled for this RenderingAttributes object.
This disables all alpha blending operations.rasterOp
- the logical raster operation, one of:
ROP_CLEAR, ROP_AND, ROP_AND_REVERSE, ROP_COPY, ROP_AND_INVERTED,
ROP_NOOP, ROP_XOR, ROP_OR, ROP_NOR, ROP_EQUIV, ROP_INVERT,
ROP_OR_REVERSE, ROP_COPY_INVERTED, ROP_OR_INVERTED, ROP_NAND or ROP_SETpublic void setDepthBufferEnable(boolean state)
state
- true or false to enable or disable depth buffer modeCapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphGraphicsConfigTemplate3D.setDepthSize(int)
public boolean getDepthBufferEnable()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setDepthBufferWriteEnable(boolean state)
state
- true or false to enable or disable depth buffer Write modeCapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphView.setDepthBufferFreezeTransparent(boolean)
public boolean getDepthBufferWriteEnable()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setAlphaTestValue(float value)
value
- the alpha test valueCapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic float getAlphaTestValue()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setAlphaTestFunction(int function)
function
- the new alpha test function. One of
ALWAYS, NEVER, EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, GREATER,
GREATER_OR_EQUALCapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic int getAlphaTestFunction()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setVisible(boolean visible)
visible
- true or false to enable or disable visibilityCapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphView.setVisibilityPolicy(int)
public boolean getVisible()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setIgnoreVertexColors(boolean ignoreVertexColors)
ignoreVertexColors
is false, per-vertex
colors are used, when present in the associated Geometry
objects, taking precedence over the ColoringAttributes color
and the specified Material color(s). If ignoreVertexColors
is true, per-vertex colors are ignored. In this case, if
lighting is enabled, the Material diffuse color will be
used as the object color. If lighting is disabled, the
ColoringAttributes color will be used. The default value is false.ignoreVertexColors
- true or false to enable or disable
the ignoring of per-vertex colorsCapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphColoringAttributes
,
Material
public boolean getIgnoreVertexColors()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setRasterOpEnable(boolean rasterOpEnable)
rasterOpEnable
- true or false to enable or disable
raster operationsCapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphsetRasterOp(int)
public boolean getRasterOpEnable()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setRasterOp(int rasterOp)
rasterOp
- the logical raster operation, one of:
ROP_CLEAR, ROP_AND, ROP_AND_REVERSE, ROP_COPY, ROP_AND_INVERTED,
ROP_NOOP, ROP_XOR, ROP_OR, ROP_NOR, ROP_EQUIV, ROP_INVERT,
ROP_OR_REVERSE, ROP_COPY_INVERTED, ROP_OR_INVERTED, ROP_NAND or ROP_SET.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic int getRasterOp()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic NodeComponent cloneNodeComponent()
cloneNodeComponent
in class NodeComponent
public void setDepthTestFunction(int function)
function
- the new depth test function. One of
ALWAYS, NEVER, EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, GREATER,
or GREATER_OR_EQUAL.
The default value is LESS_OR_EQUAL.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic int getDepthTestFunction()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setStencilEnable(boolean state)
state
- true or false to enable or disable stencil buffer
operations.
If this is set to false, the stencilOp and stencilFunction parameters
are not used.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphGraphicsConfigTemplate3D.setStencilSize(int)
public boolean getStencilEnable()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setStencilOp(int failOp, int zFailOp, int zPassOp)
failOp
- operation performed when the stencil test fails, one of:
STENCIL_KEEP, STENCIL_ZERO, STENCIL_REPLACE, STENCIL_INCR, STENCIL_DECR,
or STENCIL_INVERT.zFailOp
- operation performed when the stencil test passes and the
depth test fails, one of:
STENCIL_KEEP, STENCIL_ZERO, STENCIL_REPLACE, STENCIL_INCR, STENCIL_DECR,
or STENCIL_INVERT.zPassOp
- operation performed when both the stencil test and the
depth test pass, one of:
STENCIL_KEEP, STENCIL_ZERO, STENCIL_REPLACE, STENCIL_INCR, STENCIL_DECR,
or STENCIL_INVERT.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setStencilOp(int[] stencilOps)
stencilOps
- an array of three integers that specifies the new
set of stencil operations. Element 0 of the array specifies the
failOp
parameter, element 1 specifies the
zFailOp
parameter, and element 2 specifies the
zPassOp
parameter.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphsetStencilOp(int,int,int)
public void getStencilOp(int[] stencilOps)
stencilOps
- array that will receive the current set of
three stencil operations. The failOp
parameter is copied
into element 0 of the array, the zFailOp
parameter is copied
into element 1, and the zPassOp
parameter is copied
into element 2.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setStencilFunction(int function, int refValue, int compareMask)
function
- the stencil test function, used to compare the
stencil reference value with the stored per-pixel
stencil value in the frame buffer. If the test
passes, the pixel is written, otherwise the pixel is not
written. The stencil function is one of:
ALWAYS, NEVER, EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, GREATER,
or GREATER_OR_EQUAL.refValue
- the stencil reference value that is tested against
the stored per-pixel stencil valuecompareMask
- a mask that limits which bits are compared; it is
bitwise-ANDed with both the stencil reference value and the stored
per-pixel stencil value before doing the comparison.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setStencilFunction(int[] params)
params
- an array of three integers that specifies the new
stencil function, reference value, and comparison mask.
Element 0 of the array specifies the
stencil function, element 1 specifies the
reference value, and element 2 specifies the
comparison mask.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphsetStencilFunction(int,int,int)
public void getStencilFunction(int[] params)
params
- array that will receive the current stencil function,
reference value, and comparison mask. The stencil function is copied
into element 0 of the array, the reference value is copied
into element 1, and the comparison mask is copied
into element 2.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic void setStencilWriteMask(int mask)
~0
(all ones).mask
- the new stencil write mask.CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphpublic int getStencilWriteMask()
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graphCopyright © 2016–2022 SciJava. All rights reserved.