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 RenderVolumetricGeometry(vtkViewport* ren);
81
86 void ReleaseGraphicsResources(vtkWindow *);
87
100 vtkAssemblyPath *GetNextPath();
102
105 void GetBounds(double bounds[6]) {this->vtkProp3D::GetBounds( bounds );};
106 virtual double *GetBounds();
107
111 vtkMTimeType GetMTime();
112
115 void ShallowCopy(vtkProp *prop);
116
117//BTX
123 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
124//ETX
125
130
131protected:
134
135 // pointer to the VME that is represented by this Assembly
137
138 // Keep a list of direct descendants of the assembly hierarchy
139 vtkProp3DCollection *m_Parts;
140
141 // Support the BuildPaths() method. Caches last paths built for
142 // performance.
143 vtkTimeStamp PathTime;
144 virtual void UpdatePaths(); //apply transformations and properties recursively
145
146private:
147 vtkALBAAssembly(const vtkALBAAssembly&); // Not implemented.
148 void operator=(const vtkALBAAssembly&); // Not implemented.
149};
150
153inline vtkProp3DCollection *vtkALBAAssembly::GetParts() {return this->m_Parts;}
154
155#endif
156
157
158
159
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.
albaVME * GetVme()
Get the VME associated to this Assembly.
int RenderVolumetricGeometry(vtkViewport *ren)
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.
static vtkALBAAssembly * New()
vtkProp3DCollection * m_Parts
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
vtkMTimeType GetMTime()
Override default GetMTime method to also consider all of the assembly's parts.
void PrintSelf(ostream &os, vtkIndent indent)
vtkTypeMacro(vtkALBAAssembly, vtkProp3D)
void RemovePart(vtkProp3D *)
Remove a part from the list of parts,.
int RenderTranslucentPolygonalGeometry(vtkViewport *ren)
virtual int HasTranslucentPolygonalGeometry()
Does this prop have some translucent polygonal geometry? This method is called during the rendering p...