VTK  9.7.20261002
vtkPropAssembly.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
83
84#ifndef vtkPropAssembly_h
85#define vtkPropAssembly_h
86
87#include "vtkProp.h"
88#include "vtkRenderingCoreModule.h" // For export macro
89#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
90
91VTK_ABI_NAMESPACE_BEGIN
92class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkPropAssembly : public vtkProp
93{
94public:
95 vtkTypeMacro(vtkPropAssembly, vtkProp);
96 void PrintSelf(ostream& os, vtkIndent indent) override;
97
102
107
112
117
119
127 int RenderOverlay(vtkViewport* ren) override;
129
134
141
146 double* GetBounds() VTK_SIZEHINT(6) override;
147
151 void ShallowCopy(vtkProp* Prop) override;
152
158
160
170 void InitPathTraversal() override;
172 int GetNumberOfPaths() override;
174
180 void BuildPaths(vtkAssemblyPaths* paths, vtkAssemblyPath* path) override;
181
182protected:
184 ~vtkPropAssembly() override;
185
187 double Bounds[6];
188
189 // Support the BuildPaths() method,
191 void UpdatePaths(); // apply transformations and properties recursively
192private:
193 vtkPropAssembly(const vtkPropAssembly&) = delete;
194 void operator=(const vtkPropAssembly&) = delete;
195};
196
197VTK_ABI_NAMESPACE_END
198#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:108
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:66
window superclass for vtkRenderWindow
Definition vtkWindow.h:62
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:318
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO