ALBA
vtkALBAAssembly.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: ALBA (Agile Library for Biomedical Applications)
4 Module: vtkALBAAssembly
5 Authors: Sivano Imboden
6
7 Copyright (c) BIC
8 All rights reserved. See Copyright.txt or
9
10
11 This software is distributed WITHOUT ANY WARRANTY; without even
12 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 PURPOSE. See the above copyright notice for more information.
14
15=========================================================================*/
16
17#ifndef __vtkALBAAssembly_h
18#define __vtkALBAAssembly_h
19
20#include "vtkProp3D.h"
21
22//----------------------------------------------------------------------------
23// forward declarations
24//----------------------------------------------------------------------------
25class vtkAssemblyPaths;
26class vtkProp3DCollection;
27class vtkMapper;
28class vtkActor;
29class albaVME;
30
36class ALBA_EXPORT vtkALBAAssembly : public vtkProp3D
37{
38public:
40
42 void PrintSelf(ostream& os, vtkIndent indent);
43
46 albaVME * GetVme(){return m_Vme;};
47
50 void SetVme(albaVME *vme){m_Vme=vme;};
51
54 void AddPart(vtkProp3D *);
55
58 void RemovePart(vtkProp3D *);
59
62 vtkProp3DCollection *GetParts();
63
68 void GetActors(vtkPropCollection *);
69 void GetVolumes(vtkPropCollection *);
70
78 int RenderOpaqueGeometry(vtkViewport *ren);
79 int RenderTranslucentGeometry(vtkViewport *ren);
80
85 void ReleaseGraphicsResources(vtkWindow *);
86
99 vtkAssemblyPath *GetNextPath();
101
104 void GetBounds(double bounds[6]) {this->vtkProp3D::GetBounds( bounds );};
105 virtual double *GetBounds();
106
110 unsigned long int GetMTime();
111
114 void ShallowCopy(vtkProp *prop);
115
116//BTX
122 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
123//ETX
124
125protected:
128
129 // pointer to the VME that is represented by this Assembly
131
132 // Keep a list of direct descendants of the assembly hierarchy
133 vtkProp3DCollection *m_Parts;
134
135 // Support the BuildPaths() method. Caches last paths built for
136 // performance.
137 vtkTimeStamp PathTime;
138 virtual void UpdatePaths(); //apply transformations and properties recursively
139
140private:
141 vtkALBAAssembly(const vtkALBAAssembly&); // Not implemented.
142 void operator=(const vtkALBAAssembly&); // Not implemented.
143};
144
147inline vtkProp3DCollection *vtkALBAAssembly::GetParts() {return this->m_Parts;}
148
149#endif
150
151
152
153
albaVME -
Definition: albaVME.h:150
create hierarchies of vtkProp3Ds (transformable props) vtkALBAAssembly same as vtkAssembly,...
void ShallowCopy(vtkProp *prop)
Shallow copy of an assembly.
int RenderOpaqueGeometry(vtkViewport *ren)
Render this assembly and all its parts.
int RenderTranslucentGeometry(vtkViewport *ren)
albaVME * GetVme()
Get the VME associated to this Assembly.
int GetNumberOfPaths()
void AddPart(vtkProp3D *)
Add a part to the list of parts.
void InitPathTraversal()
Methods to traverse the parts of an assembly.
void GetActors(vtkPropCollection *)
For some exporters and other other operations we must be able to collect all the actors or volumes.
unsigned long int GetMTime()
Override default GetMTime method to also consider all of the assembly's parts.
static vtkALBAAssembly * New()
vtkProp3DCollection * m_Parts
vtkTypeRevisionMacro(vtkALBAAssembly, vtkProp3D)
void GetBounds(double bounds[6])
Get the bounds for the assembly as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
void SetVme(albaVME *vme)
Set the VME associated to this Assembly.
virtual void UpdatePaths()
virtual double * GetBounds()
void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this actor.
vtkAssemblyPath * GetNextPath()
void GetVolumes(vtkPropCollection *)
vtkProp3DCollection * GetParts()
Return the parts (direct descendants) of this assembly.
void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkTimeStamp PathTime
void PrintSelf(ostream &os, vtkIndent indent)
void RemovePart(vtkProp3D *)
Remove a part from the list of parts,.