VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkAssembly Class Reference

create hierarchies of vtkProp3Ds (transformable props) More...

#include <vtkAssembly.h>

Inheritance diagram for vtkAssembly:
[legend]
Collaboration diagram for vtkAssembly:
[legend]

Public Types

typedef vtkProp3D Superclass
 
- Public Types inherited from vtkProp3D
typedef vtkProp Superclass
 
- Public Types inherited from vtkProp
typedef vtkObject Superclass
 
- Public Types inherited from vtkObject
typedef vtkObjectBase Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkAssemblyNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
void AddPart (vtkProp3D *)
 
void RemovePart (vtkProp3D *)
 
virtual int HasTranslucentPolygonalGeometry ()
 
void ReleaseGraphicsResources (vtkWindow *)
 
unsigned long int GetMTime ()
 
void ShallowCopy (vtkProp *prop)
 
vtkProp3DCollectionGetParts ()
 
void GetActors (vtkPropCollection *)
 
void GetVolumes (vtkPropCollection *)
 
int RenderOpaqueGeometry (vtkViewport *ren)
 
virtual int RenderTranslucentPolygonalGeometry (vtkViewport *ren)
 
virtual int RenderVolumetricGeometry (vtkViewport *ren)
 
void InitPathTraversal ()
 
vtkAssemblyPathGetNextPath ()
 
int GetNumberOfPaths ()
 
void GetBounds (double bounds[6])
 
doubleGetBounds ()
 
void BuildPaths (vtkAssemblyPaths *paths, vtkAssemblyPath *path)
 
- Public Member Functions inherited from vtkProp3D
vtkProp3DNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
void ShallowCopy (vtkProp *prop)
 
virtual void SetPosition (double pos[3])
 
virtual doubleGetPosition ()
 
virtual void GetPosition (double data[3])
 
void AddPosition (double deltaPosition[3])
 
void AddPosition (double deltaX, double deltaY, double deltaZ)
 
doubleGetCenter ()
 
doubleGetXRange ()
 
doubleGetYRange ()
 
doubleGetZRange ()
 
double GetLength ()
 
void RotateX (double)
 
void RotateY (double)
 
void RotateZ (double)
 
void RotateWXYZ (double w, double x, double y, double z)
 
void SetOrientation (double x, double y, double z)
 
void SetOrientation (double orientation[3])
 
doubleGetOrientationWXYZ ()
 
void AddOrientation (double x, double y, double z)
 
void AddOrientation (double orentation[3])
 
void PokeMatrix (vtkMatrix4x4 *matrix)
 
void InitPathTraversal ()
 
unsigned long int GetMTime ()
 
unsigned long int GetUserTransformMatrixMTime ()
 
virtual void ComputeMatrix ()
 
virtual void SetPosition (double x, double y, double z)
 
virtual void SetOrigin (double x, double y, double z)
 
virtual void SetOrigin (const double pos[3])
 
virtual doubleGetOrigin ()
 
virtual void GetOrigin (double data[3])
 
virtual void SetScale (double x, double y, double z)
 
virtual void SetScale (double scale[3])
 
virtual doubleGetScale ()
 
virtual void GetScale (double data[3])
 
void SetScale (double s)
 
void SetUserTransform (vtkLinearTransform *transform)
 
virtual vtkLinearTransformGetUserTransform ()
 
void SetUserMatrix (vtkMatrix4x4 *matrix)
 
vtkMatrix4x4GetUserMatrix ()
 
virtual void GetMatrix (vtkMatrix4x4 *m)
 
virtual void GetMatrix (double m[16])
 
void GetBounds (double bounds[6])
 
doubleGetOrientation ()
 
void GetOrientation (double orentation[3])
 
vtkMatrix4x4GetMatrix ()
 
virtual int GetIsIdentity ()
 
- Public Member Functions inherited from vtkProp
vtkPropNewInstance () const
 
virtual void Pick ()
 
virtual bool HasKeys (vtkInformation *requiredKeys)
 
virtual void GetActors2D (vtkPropCollection *)
 
virtual void SetVisibility (int)
 
virtual int GetVisibility ()
 
virtual void VisibilityOn ()
 
virtual void VisibilityOff ()
 
virtual void SetPickable (int)
 
virtual int GetPickable ()
 
virtual void PickableOn ()
 
virtual void PickableOff ()
 
virtual void SetDragable (int)
 
virtual int GetDragable ()
 
virtual void DragableOn ()
 
virtual void DragableOff ()
 
virtual unsigned long GetRedrawMTime ()
 
virtual void SetUseBounds (bool)
 
virtual bool GetUseBounds ()
 
virtual void UseBoundsOn ()
 
virtual void UseBoundsOff ()
 
virtual void PokeMatrix (vtkMatrix4x4 *vtkNotUsed(matrix))
 
virtual vtkInformationGetPropertyKeys ()
 
virtual void SetPropertyKeys (vtkInformation *keys)
 
virtual int RenderOverlay (vtkViewport *)
 
virtual bool RenderFilteredOpaqueGeometry (vtkViewport *v, vtkInformation *requiredKeys)
 
virtual bool RenderFilteredTranslucentPolygonalGeometry (vtkViewport *v, vtkInformation *requiredKeys)
 
virtual bool RenderFilteredVolumetricGeometry (vtkViewport *v, vtkInformation *requiredKeys)
 
virtual bool RenderFilteredOverlay (vtkViewport *v, vtkInformation *requiredKeys)
 
virtual double GetEstimatedRenderTime (vtkViewport *)
 
virtual double GetEstimatedRenderTime ()
 
virtual void SetEstimatedRenderTime (double t)
 
virtual void RestoreEstimatedRenderTime ()
 
virtual void AddEstimatedRenderTime (double t, vtkViewport *vtkNotUsed(vp))
 
virtual void SetAllocatedRenderTime (double t, vtkViewport *vtkNotUsed(v))
 
virtual double GetAllocatedRenderTime ()
 
void SetRenderTimeMultiplier (double t)
 
virtual double GetRenderTimeMultiplier ()
 
virtual bool GetSupportsSelection ()
 
virtual int GetNumberOfConsumers ()
 
void AddConsumer (vtkObject *c)
 
void RemoveConsumer (vtkObject *c)
 
vtkObjectGetConsumer (int i)
 
int IsConsumer (vtkObject *c)
 
- Public Member Functions inherited from vtkObject
vtkObjectNewInstance () const
 
virtual void DebugOn ()
 
virtual void DebugOff ()
 
bool GetDebug ()
 
void SetDebug (bool debugFlag)
 
virtual void Modified ()
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 
vtkCommandGetCommand (unsigned long tag)
 
void RemoveObserver (vtkCommand *)
 
void RemoveObservers (unsigned long event, vtkCommand *)
 
void RemoveObservers (const char *event, vtkCommand *)
 
int HasObserver (unsigned long event, vtkCommand *)
 
int HasObserver (const char *event, vtkCommand *)
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
int HasObserver (unsigned long event)
 
int HasObserver (const char *event)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 
int InvokeEvent (unsigned long event, void *callData)
 
int InvokeEvent (const char *event, void *callData)
 
int InvokeEvent (unsigned long event)
 
int InvokeEvent (const char *event)
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 
virtual void Delete ()
 
virtual void FastDelete ()
 
void Print (ostream &os)
 
virtual void Register (vtkObjectBase *o)
 
virtual void UnRegister (vtkObjectBase *o)
 
void SetReferenceCount (int)
 
void PrintRevisions (ostream &)
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 
int GetReferenceCount ()
 

Static Public Member Functions

static vtkAssemblyNew ()
 
static int IsTypeOf (const char *type)
 
static vtkAssemblySafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkProp3D
static int IsTypeOf (const char *type)
 
static vtkProp3DSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkProp
static int IsTypeOf (const char *type)
 
static vtkPropSafeDownCast (vtkObjectBase *o)
 
static vtkInformationIntegerKeyGeneralTextureUnit ()
 
static vtkInformationDoubleVectorKeyGeneralTextureTransform ()
 
- Static Public Member Functions inherited from vtkObject
static int IsTypeOf (const char *type)
 
static vtkObjectSafeDownCast (vtkObjectBase *o)
 
static vtkObjectNew ()
 
static void BreakOnError ()
 
static void SetGlobalWarningDisplay (int val)
 
static void GlobalWarningDisplayOn ()
 
static void GlobalWarningDisplayOff ()
 
static int GetGlobalWarningDisplay ()
 
- Static Public Member Functions inherited from vtkObjectBase
static int IsTypeOf (const char *name)
 
static vtkObjectBaseNew ()
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkAssembly ()
 
 ~vtkAssembly ()
 
virtual void UpdatePaths ()
 
- Protected Member Functions inherited from vtkProp3D
 vtkProp3D ()
 
 ~vtkProp3D ()
 
- Protected Member Functions inherited from vtkProp
 vtkProp ()
 
 ~vtkProp ()
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
virtual ~vtkObject ()
 
virtual void RegisterInternal (vtkObjectBase *, int check)
 
virtual void UnRegisterInternal (vtkObjectBase *, int check)
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)
 
void InternalReleaseFocus ()
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

vtkProp3DCollectionParts
 
vtkTimeStamp PathTime
 
- Protected Attributes inherited from vtkProp3D
vtkLinearTransformUserTransform
 
vtkMatrix4x4UserMatrix
 
vtkMatrix4x4Matrix
 
vtkTimeStamp MatrixMTime
 
double Origin [3]
 
double Position [3]
 
double Orientation [3]
 
double Scale [3]
 
double Center [3]
 
vtkTransformTransform
 
double Bounds [6]
 
vtkProp3DCachedProp3D
 
int IsIdentity
 
- Protected Attributes inherited from vtkProp
int Visibility
 
int Pickable
 
int Dragable
 
bool UseBounds
 
double AllocatedRenderTime
 
double EstimatedRenderTime
 
double SavedEstimatedRenderTime
 
double RenderTimeMultiplier
 
int NumberOfConsumers
 
vtkObject ** Consumers
 
vtkAssemblyPathsPaths
 
vtkInformationPropertyKeys
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

create hierarchies of vtkProp3Ds (transformable props)

vtkAssembly is an object that groups vtkProp3Ds, its subclasses, and other assemblies into a tree-like hierarchy. The vtkProp3Ds and assemblies can then be transformed together by transforming just the root assembly of the hierarchy.

A vtkAssembly object can be used in place of an vtkProp3D since it is a subclass of vtkProp3D. The difference is that vtkAssembly maintains a list of vtkProp3D instances (its "parts") that form the assembly. Then, any operation that transforms (i.e., scales, rotates, translates) the parent assembly will transform all its parts. Note that this process is recursive: you can create groups consisting of assemblies and/or vtkProp3Ds to arbitrary depth.

To add an assembly to the renderer's list of props, you only need to add the root of the assembly. During rendering, the parts of the assembly are rendered during a hierarchical traversal process.

Warning
Collections of assemblies are slower to render than an equivalent list of actors. This is because to support arbitrary nesting of assemblies, the state of the assemblies (i.e., transformation matrices) must be propagated through the assembly hierarchy.
Assemblies can consist of hierarchies of assemblies, where one actor or assembly used in one hierarchy is also used in other hierarchies. However, make that there are no cycles (e.g., parent->child->parent), this will cause program failure.
If you wish to create assemblies without any transformation (using the assembly strictly as a grouping mechanism), then you may wish to consider using vtkPropAssembly.
See also
vtkActor vtkTransform vtkMapper vtkPolyDataMapper vtkPropAssembly
Examples:
vtkAssembly (Examples)
Tests:
vtkAssembly (Tests)

Definition at line 74 of file vtkAssembly.h.

Member Typedef Documentation

Definition at line 79 of file vtkAssembly.h.

Constructor & Destructor Documentation

vtkAssembly::vtkAssembly ( )
protected
vtkAssembly::~vtkAssembly ( )
protected

Member Function Documentation

static vtkAssembly* vtkAssembly::New ( )
static
static int vtkAssembly::IsTypeOf ( const char *  type)
static
virtual int vtkAssembly::IsA ( const char *  name)
virtual

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkProp3D.

static vtkAssembly* vtkAssembly::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkAssembly::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented from vtkProp3D.

vtkAssembly* vtkAssembly::NewInstance ( ) const
void vtkAssembly::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

void vtkAssembly::AddPart ( vtkProp3D )

Add a part to the list of parts.

void vtkAssembly::RemovePart ( vtkProp3D )

Remove a part from the list of parts,

vtkProp3DCollection* vtkAssembly::GetParts ( )
inline

Return the parts (direct descendants) of this assembly.

Definition at line 90 of file vtkAssembly.h.

void vtkAssembly::GetActors ( vtkPropCollection )
virtual

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.

Reimplemented from vtkProp.

void vtkAssembly::GetVolumes ( vtkPropCollection )
virtual

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.

Reimplemented from vtkProp.

int vtkAssembly::RenderOpaqueGeometry ( vtkViewport ren)
virtual

Render this assembly and all its parts. The rendering process is recursive. Note that a mapper need not be defined. If not defined, then no geometry will be drawn for this assembly. This allows you to create "logical" assemblies; that is, assemblies that only serve to group and transform its parts.

Reimplemented from vtkProp.

virtual int vtkAssembly::RenderTranslucentPolygonalGeometry ( vtkViewport ren)
virtual

Render this assembly and all its parts. The rendering process is recursive. Note that a mapper need not be defined. If not defined, then no geometry will be drawn for this assembly. This allows you to create "logical" assemblies; that is, assemblies that only serve to group and transform its parts.

Reimplemented from vtkProp.

virtual int vtkAssembly::RenderVolumetricGeometry ( vtkViewport ren)
virtual

Render this assembly and all its parts. The rendering process is recursive. Note that a mapper need not be defined. If not defined, then no geometry will be drawn for this assembly. This allows you to create "logical" assemblies; that is, assemblies that only serve to group and transform its parts.

Reimplemented from vtkProp.

virtual int vtkAssembly::HasTranslucentPolygonalGeometry ( )
virtual

Does this prop have some translucent polygonal geometry?

Reimplemented from vtkProp.

void vtkAssembly::ReleaseGraphicsResources ( vtkWindow )
virtual

Release any graphics resources that are being consumed by this actor. The parameter window could be used to determine which graphic resources to release.

Reimplemented from vtkProp.

void vtkAssembly::InitPathTraversal ( )
virtual

Methods to traverse the parts of an assembly. Each part (starting from the root) will appear properly transformed and with the correct properties (depending upon the ApplyProperty and ApplyTransform ivars). Note that the part appears as an instance of vtkProp. These methods should be contrasted to those that traverse the list of parts using GetParts(). GetParts() returns a list of children of this assembly, not necessarily with the correct transformation or properties. To use the methods below - first invoke InitPathTraversal() followed by repeated calls to GetNextPath(). GetNextPath() returns a NULL pointer when the list is exhausted.

Reimplemented from vtkProp.

vtkAssemblyPath* vtkAssembly::GetNextPath ( )
virtual

Methods to traverse the parts of an assembly. Each part (starting from the root) will appear properly transformed and with the correct properties (depending upon the ApplyProperty and ApplyTransform ivars). Note that the part appears as an instance of vtkProp. These methods should be contrasted to those that traverse the list of parts using GetParts(). GetParts() returns a list of children of this assembly, not necessarily with the correct transformation or properties. To use the methods below - first invoke InitPathTraversal() followed by repeated calls to GetNextPath(). GetNextPath() returns a NULL pointer when the list is exhausted.

Reimplemented from vtkProp.

int vtkAssembly::GetNumberOfPaths ( )
virtual

Methods to traverse the parts of an assembly. Each part (starting from the root) will appear properly transformed and with the correct properties (depending upon the ApplyProperty and ApplyTransform ivars). Note that the part appears as an instance of vtkProp. These methods should be contrasted to those that traverse the list of parts using GetParts(). GetParts() returns a list of children of this assembly, not necessarily with the correct transformation or properties. To use the methods below - first invoke InitPathTraversal() followed by repeated calls to GetNextPath(). GetNextPath() returns a NULL pointer when the list is exhausted.

Reimplemented from vtkProp.

void vtkAssembly::GetBounds ( double  bounds[6])
inline

Get the bounds for the assembly as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).

Definition at line 139 of file vtkAssembly.h.

double* vtkAssembly::GetBounds ( )
virtual

Get the bounds for the assembly as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).

Implements vtkProp3D.

unsigned long int vtkAssembly::GetMTime ( )
virtual

Override default GetMTime method to also consider all of the assembly's parts.

Reimplemented from vtkObject.

void vtkAssembly::ShallowCopy ( vtkProp prop)
virtual

Shallow copy of an assembly. Overloads the virtual vtkProp method.

Reimplemented from vtkProp.

void vtkAssembly::BuildPaths ( vtkAssemblyPaths paths,
vtkAssemblyPath path 
)
virtual

WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERING PROCESS Overload the superclass' vtkProp BuildPaths() method. Paths consist of an ordered sequence of actors, with transformations properly concatenated.

Reimplemented from vtkProp.

virtual void vtkAssembly::UpdatePaths ( )
protectedvirtual

Member Data Documentation

vtkProp3DCollection* vtkAssembly::Parts
protected

Definition at line 166 of file vtkAssembly.h.

vtkTimeStamp vtkAssembly::PathTime
protected

Definition at line 170 of file vtkAssembly.h.


The documentation for this class was generated from the following file: