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=========================================================================*/
43
44#ifndef vtkPropAssembly_h
45#define vtkPropAssembly_h
46
47#include "vtkProp.h"
48#include "vtkRenderingCoreModule.h" // For export macro
49
50class VTKRENDERINGCORE_EXPORT vtkPropAssembly : public vtkProp
51{
52public:
53 vtkTypeMacro(vtkPropAssembly, vtkProp);
54 void PrintSelf(ostream& os, vtkIndent indent) override;
55
60
65
70
75
77
85 int RenderOverlay(vtkViewport* ren) override;
87
92
99
104 double* GetBounds() VTK_SIZEHINT(6) override;
105
109 void ShallowCopy(vtkProp* Prop) override;
110
116
118
128 void InitPathTraversal() override;
130 int GetNumberOfPaths() override;
132
138 void BuildPaths(vtkAssemblyPaths* paths, vtkAssemblyPath* path) override;
139
140protected:
142 ~vtkPropAssembly() override;
143
145 double Bounds[6];
146
147 // Support the BuildPaths() method,
149 void UpdatePaths(); // apply transformations and properties recursively
150private:
151 vtkPropAssembly(const vtkPropAssembly&) = delete;
152 void operator=(const vtkPropAssembly&) = delete;
153};
154
155#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:34
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:50
window superclass for vtkRenderWindow
Definition vtkWindow.h:39
int vtkTypeBool
Definition vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_SIZEHINT(...)