VTK  9.5.20251210
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
90VTK_ABI_NAMESPACE_BEGIN
91class VTKRENDERINGCORE_EXPORT vtkPropAssembly : public vtkProp
92{
93public:
94 vtkTypeMacro(vtkPropAssembly, vtkProp);
95 void PrintSelf(ostream& os, vtkIndent indent) override;
96
101
106
111
116
118
126 int RenderOverlay(vtkViewport* ren) override;
128
133
140
145 double* GetBounds() VTK_SIZEHINT(6) override;
146
150 void ShallowCopy(vtkProp* Prop) override;
151
157
159
169 void InitPathTraversal() override;
171 int GetNumberOfPaths() override;
173
179 void BuildPaths(vtkAssemblyPaths* paths, vtkAssemblyPath* path) override;
180
181protected:
183 ~vtkPropAssembly() override;
184
186 double Bounds[6];
187
188 // Support the BuildPaths() method,
190 void UpdatePaths(); // apply transformations and properties recursively
191private:
192 vtkPropAssembly(const vtkPropAssembly&) = delete;
193 void operator=(const vtkPropAssembly&) = delete;
194};
195
196VTK_ABI_NAMESPACE_END
197#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:48
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:322
#define VTK_SIZEHINT(...)