VTK  9.2.6
vtkPropAssembly.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkPropAssembly.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
46
47#ifndef vtkPropAssembly_h
48#define vtkPropAssembly_h
49
50#include "vtkProp.h"
51#include "vtkRenderingCoreModule.h" // For export macro
52
53class VTKRENDERINGCORE_EXPORT vtkPropAssembly : public vtkProp
54{
55public:
56 vtkTypeMacro(vtkPropAssembly, vtkProp);
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
63
68
73
78
80
88 int RenderOverlay(vtkViewport* ren) override;
90
95
102
107 double* GetBounds() VTK_SIZEHINT(6) override;
108
112 void ShallowCopy(vtkProp* Prop) override;
113
119
121
131 void InitPathTraversal() override;
133 int GetNumberOfPaths() override;
135
141 void BuildPaths(vtkAssemblyPaths* paths, vtkAssemblyPath* path) override;
142
143protected:
145 ~vtkPropAssembly() override;
146
148 double Bounds[6];
149
150 // Support the BuildPaths() method,
152 void UpdatePaths(); // apply transformations and properties recursively
153private:
154 vtkPropAssembly(const vtkPropAssembly&) = delete;
155 void operator=(const vtkPropAssembly&) = delete;
156};
157
158#endif
a list of nodes that form an assembly path
a list of lists of props representing an assembly hierarchy
a simple class to control print indentation
Definition vtkIndent.h:40
vtkPropCollection * Parts
void RemovePart(vtkProp *)
Remove a part from the list of parts,.
int RenderOpaqueGeometry(vtkViewport *ren) override
Render this assembly and all its parts.
vtkPropCollection * GetParts()
Return the list of parts.
double * GetBounds() override
Get the bounds for this prop assembly as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkAssemblyPath * GetNextPath() override
Methods to traverse the paths (i.e., leaf nodes) of a prop assembly.
int GetNumberOfPaths() override
Methods to traverse the paths (i.e., leaf nodes) of a prop assembly.
int RenderVolumetricGeometry(vtkViewport *ren) override
Render this assembly and all its parts.
static vtkPropAssembly * New()
Create with an empty parts list.
int RenderOverlay(vtkViewport *ren) override
Render this assembly and all its parts.
vtkTimeStamp PathTime
void AddPart(vtkProp *)
Add a part to the list of parts.
void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkMTimeType GetMTime() override
Override default GetMTime method to also consider all of the prop assembly's parts.
void ShallowCopy(vtkProp *Prop) override
Shallow copy of this vtkPropAssembly.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void InitPathTraversal() override
Methods to traverse the paths (i.e., leaf nodes) of a prop assembly.
int RenderTranslucentPolygonalGeometry(vtkViewport *ren) override
Render this assembly and all its parts.
an ordered list of Props
record modification and/or execution time
abstract specification for Viewports
Definition vtkViewport.h:56
window superclass for vtkRenderWindow
Definition vtkWindow.h:39
int vtkTypeBool
Definition vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_SIZEHINT(...)