Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# vtkPropAssembly Class Reference

`#include <vtkPropAssembly.h>`

Inheritance diagram for vtkPropAssembly:

[legend]
Collaboration diagram for vtkPropAssembly:

[legend]
List of all members.

## Detailed Description

create hierarchies of props

Date:
  2002/01/22 15:26:09

Revision:
  1.20

vtkPropAssembly is an object that groups props and other prop assemblies into a tree-like hierarchy. The props can then be treated as a group (e.g., turning visibility on and off).

A vtkPropAssembly object can be used in place of an vtkProp since it is a subclass of vtkProp. The difference is that vtkPropAssembly maintains a list of other prop and prop assembly instances (its "parts") that form the assembly. Note that this process is recursive: you can create groups consisting of prop assemblies to arbitrary depth.

vtkPropAssembly's and vtkProp's that compose a prop assembly need not be added to a renderer's list of props, as long as the parent assembly is in the prop list. This is because they are automatically renderered during the hierarchical traversal process.

Warning:
  vtkPropAssemblies 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.

See also:
  vtkProp3D vtkActor vtkAssembly vtkActor2D vtkVolume

Created by:
  - Schroeder, Will

CVS contributions (if > 5%):
  - Schroeder, Will (89%)
  - Avila, Lisa (5%)

CVS logs (CVSweb):
  - .`cxx` (`/Common/vtkPropAssembly.cxx)`
  - .`h` (`/Common/vtkPropAssembly.h)`

Tests:
  vtkPropAssembly (Tests)

Definition at line 66 of file vtkPropAssembly.h.

## Public Types

typedef vtkProp | Superclass

## Public Methods

virtual const char * | GetClassName ()
virtual int | IsA (const char *type)
void | PrintSelf (ostream &os, vtkIndent indent)
void | AddPart (vtkProp *)
void | RemovePart (vtkProp *)
vtkPropCollection * | GetParts ()
void | ReleaseGraphicsResources (vtkWindow *)
float * | GetBounds ()
void | ShallowCopy (vtkProp *Prop)
unsigned long int | GetMTime ()
void | BuildPaths (vtkAssemblyPaths *paths, vtkAssemblyPath *path)
int | RenderOpaqueGeometry (vtkViewport *ren)
int | RenderTranslucentGeometry (vtkViewport *ren)
int | RenderOverlay (vtkViewport *)
void | InitPathTraversal ()
vtkAssemblyPath * | GetNextPath ()
int | GetNumberOfPaths ()

## Static Public Methods

int | IsTypeOf (const char *type)
vtkPropAssembly * | SafeDownCast (vtkObject *o)
vtkPropAssembly * | New ()

## Protected Methods

| vtkPropAssembly ()
| ~vtkPropAssembly ()
void | UpdatePaths ()

## Protected Attributes

vtkPropCollection * | Parts
float | Bounds [6]
vtkTimeStamp | PathTime

## Member Typedef Documentation

typedef vtkProp vtkPropAssembly::Superclass

| Reimplemented from vtkProp. Definition at line 69 of file vtkPropAssembly.h.

## Constructor & Destructor Documentation

vtkPropAssembly::vtkPropAssembly | ( |  | ) | `[protected]`

vtkPropAssembly::~vtkPropAssembly | ( |  | ) | `[protected]`

## Member Function Documentation

virtual const char* vtkPropAssembly::GetClassName | ( |  | ) | `[virtual]`

| Reimplemented from vtkProp.

int vtkPropAssembly::IsTypeOf | ( | const char * | type | ) | `[static]`

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

virtual int vtkPropAssembly::IsA | ( | const char * | type | ) | `[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 vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkProp.

vtkPropAssembly* vtkPropAssembly::SafeDownCast | ( | vtkObject * | o | ) | `[static]`

| Reimplemented from vtkProp.

void vtkPropAssembly::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 vtkProp.

vtkPropAssembly* vtkPropAssembly::New | ( |  | ) | `[static]`

| Create with an empty parts list. Reimplemented from vtkObject.

void vtkPropAssembly::AddPart | ( | vtkProp * |  | ) |

| Add a part to the list of parts.

void vtkPropAssembly::RemovePart | ( | vtkProp * |  | ) |

| Remove a part from the list of parts,

vtkPropCollection* vtkPropAssembly::GetParts | ( |  | ) |

| Return the list of parts.

int vtkPropAssembly::RenderOpaqueGeometry | ( | vtkViewport * | ren | ) | `[virtual]`

| Render this assembly and all its parts. The rendering process is recursive. The parts of each assembly are rendered only if the visibility for the prop is turned on. Reimplemented from vtkProp.

int vtkPropAssembly::RenderTranslucentGeometry | ( | vtkViewport * | ren | ) | `[virtual]`

| Render this assembly and all its parts. The rendering process is recursive. The parts of each assembly are rendered only if the visibility for the prop is turned on. Reimplemented from vtkProp.

int vtkPropAssembly::RenderOverlay | ( | vtkViewport * |  | ) | `[virtual]`

| Render this assembly and all its parts. The rendering process is recursive. The parts of each assembly are rendered only if the visibility for the prop is turned on. Reimplemented from vtkProp.

void vtkPropAssembly::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.

float* vtkPropAssembly::GetBounds | ( |  | ) | `[virtual]`

| Get the bounds for this prop assembly as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax). May return NULL in some cases (meaning the bounds is undefined). Reimplemented from vtkProp.

void vtkPropAssembly::ShallowCopy | ( | vtkProp * | Prop | ) | `[virtual]`

| Shallow copy of this vtkPropAssembly. Reimplemented from vtkProp.

unsigned long int vtkPropAssembly::GetMTime | ( |  | ) | `[virtual]`

| Override default GetMTime method to also consider all of the prop assembly's parts. Reimplemented from vtkObject.

void vtkPropAssembly::InitPathTraversal | ( |  | ) | `[virtual]`

Methods to traverse the paths (i.e., leaf nodes) of a prop assembly. 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 the leaf nodes of the assembly. To use the methods below - first invoke InitPathTraversal() followed by repeated calls to GetNextPath(). GetNextPath() returns a NULL pointer when the list is exhausted. (See the superclass vtkProp for more information about paths.)

Reimplemented from vtkProp.

vtkAssemblyPath* vtkPropAssembly::GetNextPath | ( |  | ) | `[virtual]`

Methods to traverse the paths (i.e., leaf nodes) of a prop assembly. 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 the leaf nodes of the assembly. To use the methods below - first invoke InitPathTraversal() followed by repeated calls to GetNextPath(). GetNextPath() returns a NULL pointer when the list is exhausted. (See the superclass vtkProp for more information about paths.)

Reimplemented from vtkProp.

int vtkPropAssembly::GetNumberOfPaths | ( |  | ) | `[virtual]`

Methods to traverse the paths (i.e., leaf nodes) of a prop assembly. 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 the leaf nodes of the assembly. To use the methods below - first invoke InitPathTraversal() followed by repeated calls to GetNextPath(). GetNextPath() returns a NULL pointer when the list is exhausted. (See the superclass vtkProp for more information about paths.)

Reimplemented from vtkProp.

void vtkPropAssembly::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. Reimplemented from vtkProp.

void vtkPropAssembly::UpdatePaths | ( |  | ) | `[protected]`

## Member Data Documentation

vtkPropCollection* vtkPropAssembly::Parts`[protected]`

| Definition at line 135 of file vtkPropAssembly.h.

float vtkPropAssembly::Bounds[6]`[protected]`

| Definition at line 136 of file vtkPropAssembly.h.

vtkTimeStamp vtkPropAssembly::PathTime`[protected]`

| Definition at line 139 of file vtkPropAssembly.h.

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

- Common/vtkPropAssembly.h