vtkImageProperty provides 2D image display support for vtk. It can be associated with a vtkImageSlice prop and placed within a Renderer.
This class resolves coincident topology with the same methods as vtkMapper.
Methods
extend
Method use to decorate a given object (publicAPI+model) with vtkImageProperty characteristics.
Argument
Type
Required
Description
publicAPI
Yes
object on which methods will be bounds (public)
model
Yes
object on which data structure will be bounds (protected)
initialValues
IImagePropertyInitialValues
No
(default: {})
getAmbient
Get the lighting coefficient.
getColorLevel
Get the level value for window/level.
getColorWindow
Get the window value for window/level.
getComponentWeight
Argument
Type
Required
Description
index
Number
Yes
getDiffuse
Get the diffuse lighting coefficient.
getIndependentComponents
getInterpolationType
Get the interpolation type
getInterpolationTypeAsString
Get the interpolation type as a string
getLabelOutlineOpacity
Get the 0 to 1 opacity of the label outline.
getLabelOutlineThickness
gets the label outline thickness
getOpacity
Get the opacity of the object.
getPiecewiseFunction
Get the component weighting function.
Argument
Type
Required
Description
idx
Number
No
getRGBTransferFunction
Get the currently set RGB transfer function.
Argument
Type
Required
Description
idx
Number
No
getScalarOpacity
Alias to get the piecewise function (backwards compatibility)
Argument
Type
Required
Description
idx
Number
No
getUseLabelOutline
Check if label outline rendering.
newInstance
Method use to create a new instance of vtkImageProperty
Argument
Type
Required
Description
initialValues
IImagePropertyInitialValues
No
for pre-setting some of its content
setAmbient
Set the ambient lighting coefficient.
Argument
Type
Required
Description
ambient
Number
Yes
The ambient lighting coefficient.
setColorLevel
Set the level value for window/level.
Argument
Type
Required
Description
colorLevel
Number
Yes
The level value for window/level.
setColorWindow
Set the window value for window/level.
Argument
Type
Required
Description
colorWindow
Number
Yes
The window value for window/level.
setComponentWeight
Argument
Type
Required
Description
index
Number
Yes
value
Number
Yes
setDiffuse
Set the diffuse lighting coefficient.
Argument
Type
Required
Description
diffuse
Number
Yes
The diffuse lighting coefficient.
setIndependentComponents
Argument
Type
Required
Description
independentComponents
Boolean
Yes
setInterpolationType
Set the interpolation type.
Argument
Type
Required
Description
interpolationType
InterpolationType
Yes
The interpolation type.
setInterpolationTypeToLinear
Set interpolationType to InterpolationType.LINEAR.
setInterpolationTypeToNearest
Set interpolationType to InterpolationType.NEAREST.
setLabelOutlineOpacity
Set the 0 to 1 opacity of the label outline.
Argument
Type
Required
Description
opacity
Number
Yes
setLabelOutlineThickness
It will set the label outline thickness for the labelmaps. It can accept a single number or an array of numbers. If a single number is provided, it will be used for all the segments. If an array is provided, it indicates the thickness for each segment index. For instance if you have a labelmap with 3 segments (0: background 1: liver 2: tumor), you can set the thickness to [2,4] to have a thicker outline for the tumor (thickness 4). It should be noted that the thickness is in pixel and also the first array value will control the default thickness for all labels when 0 or not specified.
Argument
Type
Required
Description
labelOutlineThickness
Number or Array.
Yes
setOpacity
Set the opacity of the object
Argument
Type
Required
Description
opacity
Number
Yes
The opacity value.
setPiecewiseFunction
Set the piecewise function
Argument
Type
Required
Description
index
Number
Yes
func
vtkPiecewiseFunction
Yes
setRGBTransferFunction
Set the color of a volume to an RGB transfer function
Argument
Type
Required
Description
index
Number
Yes
func
vtkColorTransferFunction
Yes
setScalarOpacity
Alias to set the piecewise function
Argument
Type
Required
Description
index
Number
Yes
func
vtkPiecewiseFunction
Yes
setUseLabelOutline
Enable label outline rendering.
Argument
Type
Required
Description
useLabelOutline
Boolean
Yes
setUseLookupTableScalarRange
Use the range that is set on the lookup table, instead of setting the range from the ColorWindow/ColorLevel settings
/** * Get the interpolation type */ getInterpolationType(): InterpolationType;
/** * Get the interpolation type as a string */ getInterpolationTypeAsString(): string;
/** * Get the opacity of the object. * @default 1.0 */ getOpacity(): number;
/** * Get the component weighting function. * @param {Number} [idx] */ getPiecewiseFunction(idx?: number): Nullable<vtkPiecewiseFunction>;
/** * Get the currently set RGB transfer function. * @param {Number} [idx] */ getRGBTransferFunction(idx?: number): Nullable<vtkColorTransferFunction>;
/** * Alias to get the piecewise function (backwards compatibility) * @param {Number} [idx] */ getScalarOpacity(idx?: number): vtkPiecewiseFunction;
/** * Check if label outline rendering. */ getUseLabelOutline(): boolean;
/** * Set the 0 to 1 opacity of the label outline. * @param {Number} opacity */ setLabelOutlineOpacity(opacity: number): boolean;
/** * Get the 0 to 1 opacity of the label outline. */ getLabelOutlineOpacity(): number;
/** * gets the label outline thickness */ getLabelOutlineThickness(): number;
/** * It will set the label outline thickness for the labelmaps. It can accept * a single number or an array of numbers. If a single number is provided, * it will be used for all the segments. If an array is provided, it indicates * the thickness for each segment index. For instance if you have a labelmap * with 3 segments (0: background 1: liver 2: tumor), you can set the thickness * to [2,4] to have a thicker outline for the tumor (thickness 4). It should be * noted that the thickness is in pixel and also the first array value will * control the default thickness for all labels when 0 or not specified. * * @param {Number | Number[]} labelOutlineThickness */ setLabelOutlineThickness(labelOutlineThickness: number | number[]): boolean;
/** * Set the ambient lighting coefficient. * @param {Number} ambient The ambient lighting coefficient. */ setAmbient(ambient: number): boolean;
/** * Set the level value for window/level. * @param {Number} colorLevel The level value for window/level. */ setColorLevel(colorLevel: number): boolean;
/** * Set the window value for window/level. * @param {Number} colorWindow The window value for window/level. */ setColorWindow(colorWindow: number): boolean;
/** * * @param {Number} index * @param {Number} value */ setComponentWeight(index: number, value: number): boolean;
/** * Set the diffuse lighting coefficient. * @param {Number} diffuse The diffuse lighting coefficient. */ setDiffuse(diffuse: number): boolean;
/** * Set the interpolation type. * @param {InterpolationType} interpolationType The interpolation type. */ setInterpolationType(interpolationType: InterpolationType): boolean;
/** * Set `interpolationType` to `InterpolationType.LINEAR`. */ setInterpolationTypeToLinear(): boolean;
/** * Set `interpolationType` to `InterpolationType.NEAREST`. */ setInterpolationTypeToNearest(): boolean;
/** * Set the opacity of the object * @param {Number} opacity The opacity value. */ setOpacity(opacity: number): boolean;
/** * Set the piecewise function * @param {Number} index * @param {vtkPiecewiseFunction} func */ setPiecewiseFunction( index: number, func: Nullable<vtkPiecewiseFunction> ): boolean;
/** * Set the color of a volume to an RGB transfer function * @param {Number} index * @param {vtkColorTransferFunction} func */ setRGBTransferFunction( index: number, func: Nullable<vtkColorTransferFunction> ): boolean;
/** * Alias to set the piecewise function * @param {Number} index * @param {vtkPiecewiseFunction} func */ setScalarOpacity( index: number, func: Nullable<vtkPiecewiseFunction> ): boolean;
/** * Use the range that is set on the lookup table, instead of setting the range from the * ColorWindow/ColorLevel settings * @defaultfalse * @param {Boolean} useLookupTableScalarRange */ setUseLookupTableScalarRange(useLookupTableScalarRange: boolean): boolean; }
/** * Method use to decorate a given object (publicAPI+model) with vtkImageProperty characteristics. * * @param publicAPI object on which methods will be bounds (public) * @param model object on which data structure will be bounds (protected) * @param {IImagePropertyInitialValues} [initialValues] (default: {}) */ exportfunctionextend( publicAPI: object, model: object, initialValues?: IImagePropertyInitialValues ): void;
/** * Method use to create a new instance of vtkImageProperty * @param {IImagePropertyInitialValues} [initialValues] for pre-setting some of its content */ exportfunctionnewInstance( initialValues?: IImagePropertyInitialValues ): vtkImageProperty;
/** * vtkImageProperty provides 2D image display support for vtk. * It can be associated with a vtkImageSlice prop and placed within a Renderer. * * This class resolves coincident topology with the same methods as vtkMapper. */ export declare constvtkImageProperty: { newInstance: typeof newInstance; extend: typeof extend; }; exportdefault vtkImageProperty;
functionvtkImageProperty(publicAPI, model) { // Set our className model.classHierarchy.push('vtkImageProperty');
publicAPI.getMTime = () => { let mTime = model.mtime; let time;
for (let index = 0; index < VTK_MAX_VRCOMP; index++) { // Color MTimes if (model.componentData[index].rGBTransferFunction) { // time that RGB transfer function was last modified time = model.componentData[index].rGBTransferFunction.getMTime(); mTime = mTime > time ? mTime : time; }
// Piecewise function MTimes if (model.componentData[index].piecewiseFunction) { // time that weighting function was last modified time = model.componentData[index].piecewiseFunction.getMTime(); mTime = mTime > time ? mTime : time; } }
return mTime; };
// Set the color of a volume to an RGB transfer function publicAPI.setRGBTransferFunction = (index = 0, func = null) => { // backwards compatible call without the component index let idx = index; let transferFunc = func; if (!Number.isInteger(index)) { transferFunc = index; idx = 0; } if (model.componentData[idx].rGBTransferFunction !== transferFunc) { model.componentData[idx].rGBTransferFunction = transferFunc; publicAPI.modified(); returntrue; } returnfalse; };
// Get the currently set RGB transfer function. publicAPI.getRGBTransferFunction = (idx = 0) => model.componentData[idx].rGBTransferFunction;
// Set the piecewise function publicAPI.setPiecewiseFunction = (index = 0, func = null) => { let idx = index; let transferFunc = func; if (!Number.isInteger(index)) { transferFunc = index; idx = 0; } if (model.componentData[idx].piecewiseFunction !== transferFunc) { model.componentData[idx].piecewiseFunction = transferFunc; publicAPI.modified(); returntrue; } returnfalse; };
// Get the component weighting function. publicAPI.getPiecewiseFunction = (idx = 0) => model.componentData[idx].piecewiseFunction;
// Alias to set the piecewise function publicAPI.setScalarOpacity = (index = 0, func = null) => { // backwards compatible call without the component index let idx = index; let transferFunc = func; if (!Number.isInteger(index)) { transferFunc = index; idx = 0; } return publicAPI.setPiecewiseFunction(idx, transferFunc); };
// Alias to get the piecewise function (backwards compatibility) publicAPI.getScalarOpacity = (idx = 0) => publicAPI.getPiecewiseFunction(idx);
publicAPI.setComponentWeight = (index = 0, value = 1) => { if (index < 0 || index >= VTK_MAX_VRCOMP) { vtkErrorMacro('Invalid index'); returnfalse; }
const val = Math.min(1, Math.max(0, value)); if (model.componentData[index].componentWeight !== val) { model.componentData[index].componentWeight = val; publicAPI.modified(); returntrue; } returnfalse; };
publicAPI.getComponentWeight = (index = 0) => { if (index < 0 || index >= VTK_MAX_VRCOMP) { vtkErrorMacro('Invalid index'); return0.0; }