vtkActor is used to represent an entity in a rendering scene. It inherits functions related to the actors position, and orientation from vtkProp3D. The actor also has scaling and maintains a reference to the defining geometry (i.e., the mapper), rendering properties, and possibly a texture map. vtkActor combines these instance variables into one 4x4 transformation matrix as follows: [x y z 1] = [x y z 1] Translate(-origin) Scale(scale) Rot(y) Rot(x) Rot (z) Trans(origin) Trans(position)
Method used to decorate a given object (publicAPI+model) with vtkActor 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
IActorInitialValues
No
(default: {})
getActors
For some exporters and other other operations we must be able to collect all the actors or volumes. These methods are used in that process.
getBackfaceProperty
Get the property object that controls this actors backface surface properties.
getBounds
Get the bounds for this mapper as [xmin, xmax, ymin, ymax,zmin, zmax].
getForceOpaque
Check whether the opaque is forced or not.
getForceTranslucent
Check whether the translucency is forced or not.
getIsOpaque
Check if the actor is opaque or not
getMapper
Get the Mapper that this actor is getting its data from.
getProperty
Get the property object that controls this actors surface properties. This should be an instance of a vtkProperty object. Every actor must have a property associated with it. If one isn’t specified, then one will be generated automatically. Multiple actors can share one property object.
getSupportsSelection
Check whether if the actor supports selection
hasTranslucentPolygonalGeometry
Return if the prop have some translucent polygonal geometry
makeProperty
Create a new property suitable for use with this type of Actor.
Argument
Type
Required
Description
initialValues
IPropertyInitialValues
No
(default: {})
newInstance
Method used to create a new instance of vtkActor with the following defaults:
origin = [0, 0, 0]
position = [0, 0, 0]
scale = [1, 1, 1]
visibility = 1
pickable = 1
dragable = 1
orientation = [0, 0, 0]
No user defined matrix and no texture map.
Argument
Type
Required
Description
initialValues
IActorInitialValues
No
for pre-setting some of its content
setBackfaceProperty
Set the property object that controls this actors backface surface properties.
Argument
Type
Required
Description
backfaceProperty
vtkProperty
Yes
The backfaceProperty instance.
setForceOpaque
Force the actor to be treated as opaque or translucent.
Argument
Type
Required
Description
forceOpaque
Boolean
Yes
setForceTranslucent
Force the actor to be treated as opaque or translucent.
Argument
Type
Required
Description
forceTranslucent
Boolean
Yes
setMapper
This is the method that is used to connect an actor to the end of a visualization pipeline, i.e. the mapper.
Argument
Type
Required
Description
mapper
vtkMapper
Yes
The vtkMapper instance.
setProperty
Set the property object that controls this actors surface properties.
export interface vtkActor extends vtkProp3D { /** * Return if the prop have some translucent polygonal geometry */ hasTranslucentPolygonalGeometry(): boolean;
/** * For some exporters and other other operations we must be * able to collect all the actors or volumes. These methods * are used in that process. * @return {vtkActor[]} list of actors */ getActors(): vtkActor[];
/** * Get the property object that controls this actors backface surface * properties. * @return {vtkProperty} the backface property. */ getBackfaceProperty(): vtkProperty;
/** * Get the bounds for this mapper as [xmin, xmax, ymin, ymax,zmin, zmax]. * @return {Bounds} The bounds for the mapper. */ getBounds(): Bounds;
/** * Check whether the opaque is forced or not. */ getForceOpaque(): boolean;
/** * Check whether the translucency is forced or not. */ getForceTranslucent(): boolean;
/** * Check if the actor is opaque or not * @return true if the actor is opaque */ getIsOpaque(): boolean;
/** * Get the Mapper that this actor is getting its data from. */ getMapper(): Nullable<vtkMapper>;
/** * Get the property object that controls this actors surface * properties. This should be an instance of a vtkProperty object. Every * actor must have a property associated with it. If one isn’t specified, * then one will be generated automatically. Multiple actors can share one * property object. * @return {vtkProperty} The property object */ getProperty(): vtkProperty;
/** * Check whether if the actor supports selection * @return {Boolean} true if the actor support selection. */ getSupportsSelection(): boolean;
/** * Create a new property suitable for use with this type of Actor. * @param {IPropertyInitialValues} [initialValues] (default: {}) */ makeProperty(initialValues?: IPropertyInitialValues): vtkProperty;
/** * Set the property object that controls this actors backface surface * properties. * @param {vtkProperty} backfaceProperty The backfaceProperty instance. */ setBackfaceProperty(backfaceProperty: vtkProperty): boolean;
/** * Force the actor to be treated as opaque or translucent. * @param {Boolean} forceOpaque */ setForceOpaque(forceOpaque: boolean): boolean;
/** * Force the actor to be treated as opaque or translucent. * @param {Boolean} forceTranslucent */ setForceTranslucent(forceTranslucent: boolean): boolean;
/** * This is the method that is used to connect an actor to the end of a * visualization pipeline, i.e. the mapper. * @param {vtkMapper} mapper The vtkMapper instance. */ setMapper(mapper: vtkMapper): boolean;
/** * Set the property object that controls this actors surface properties. * @param {vtkProperty} property The vtkProperty instance. */ setProperty(property: vtkProperty): boolean; }
/** * Method used to decorate a given object (publicAPI+model) with vtkActor characteristics. * * @param publicAPI object on which methods will be bounds (public) * @param model object on which data structure will be bounds (protected) * @param {IActorInitialValues} [initialValues] (default: {}) */ exportfunctionextend( publicAPI: object, model: object, initialValues?: IActorInitialValues ): void;
/** * Method used to create a new instance of vtkActor with the following defaults: * * * origin = [0, 0, 0] * * position = [0, 0, 0] * * scale = [1, 1, 1] * * visibility = 1 * * pickable = 1 * * dragable = 1 * * orientation = [0, 0, 0] * * No user defined matrix and no texture map. * @param {IActorInitialValues} [initialValues] for pre-setting some of its content */ exportfunctionnewInstance(initialValues?: IActorInitialValues): vtkActor;
/** * vtkActor is used to represent an entity in a rendering scene. It inherits * functions related to the actors position, and orientation from * vtkProp3D. The actor also has scaling and maintains a reference to the * defining geometry (i.e., the mapper), rendering properties, and possibly a * texture map. vtkActor combines these instance variables into one 4x4 * transformation matrix as follows: [x y z 1] = [x y z 1] Translate(-origin) * Scale(scale) Rot(y) Rot(x) Rot (z) Trans(origin) Trans(position) * @see [vtkMapper](./Rendering_Core_Mapper.html) * @see [vtkProperty](./Rendering_Core_Property.html) */ export declare constvtkActor: { newInstance: typeof newInstance; extend: typeof extend; }; exportdefault vtkActor;
functionvtkActor(publicAPI, model) { // Set our className model.classHierarchy.push('vtkActor');
// Capture 'parentClass' api for internal use const superClass = { ...publicAPI };
publicAPI.getActors = () => [publicAPI];
publicAPI.getIsOpaque = () => { if (model.forceOpaque) { returntrue; } if (model.forceTranslucent) { returnfalse; } // make sure we have a property if (!model.property) { // force creation of a property publicAPI.getProperty(); }
let isOpaque = model.property.getOpacity() >= 1.0;
// are we using an opaque texture, if any? isOpaque = isOpaque && (!model.texture || !model.texture.isTranslucent());
// are we using an opaque scalar array, if any? isOpaque = isOpaque && (!model.mapper || model.mapper.getIsOpaque());
return isOpaque; };
publicAPI.hasTranslucentPolygonalGeometry = () => { if (model.mapper === null) { returnfalse; } // make sure we have a property if (model.property === null) { // force creation of a property publicAPI.setProperty(publicAPI.makeProperty()); }
// is this actor opaque ? return !publicAPI.getIsOpaque(); };
// Check for the special case when the mapper's bounds are unknown const bds = model.mapper.getBounds(); if (!bds || bds.length !== 6) { return bds; }
// Check for the special case when the actor is empty. if (bds[0] > bds[1]) { model.mapperBounds = bds.concat(); // copy the mapper's bounds model.bounds = [1, -1, 1, -1, 1, -1]; model.boundsMTime.modified(); return bds; }
// Check if we have cached values for these bounds - we cache the // values returned by model.mapper.getBounds() and we store the time // of caching. If the values returned this time are different, or // the modified time of this class is newer than the cached time, // then we need to rebuild. if ( !model.mapperBounds || bds[0] !== model.mapperBounds[0] || bds[1] !== model.mapperBounds[1] || bds[2] !== model.mapperBounds[2] || bds[3] !== model.mapperBounds[3] || bds[4] !== model.mapperBounds[4] || bds[5] !== model.mapperBounds[5] || publicAPI.getMTime() > model.boundsMTime.getMTime() ) { vtkDebugMacro('Recomputing bounds...'); model.mapperBounds = bds.concat(); // copy the mapper's bounds const bbox = []; vtkBoundingBox.getCorners(bds, bbox);