VTK  9.4.20251007
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
34
35#ifndef vtkPropAssembly_h
36#define vtkPropAssembly_h
37
38#include "vtkProp.h"
39#include "vtkRenderingCoreModule.h" // For export macro
40
41VTK_ABI_NAMESPACE_BEGIN
42class VTKRENDERINGCORE_EXPORT vtkPropAssembly : public vtkProp
43{
44public:
45 vtkTypeMacro(vtkPropAssembly, vtkProp);
46 void PrintSelf(ostream& os, vtkIndent indent) override;
47
52
57
62
67
69
77 int RenderOverlay(vtkViewport* ren) override;
79
84
91
96 double* GetBounds() VTK_SIZEHINT(6) override;
97
101 void ShallowCopy(vtkProp* Prop) override;
102
108
110
120 void InitPathTraversal() override;
122 int GetNumberOfPaths() override;
124
130 void BuildPaths(vtkAssemblyPaths* paths, vtkAssemblyPath* path) override;
131
132protected:
134 ~vtkPropAssembly() override;
135
137 double Bounds[6];
138
139 // Support the BuildPaths() method,
141 void UpdatePaths(); // apply transformations and properties recursively
142private:
143 vtkPropAssembly(const vtkPropAssembly&) = delete;
144 void operator=(const vtkPropAssembly&) = delete;
145};
146
147VTK_ABI_NAMESPACE_END
148#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:29
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:46
window superclass for vtkRenderWindow
Definition vtkWindow.h:29
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270
#define VTK_SIZEHINT(...)