VTK  9.3.20240423
vtkActor.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
135#ifndef vtkActor_h
136#define vtkActor_h
137
138#include "vtkProp3D.h"
139#include "vtkRenderingCoreModule.h" // For export macro
140#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
141
142VTK_ABI_NAMESPACE_BEGIN
143class vtkRenderer;
146class vtkTexture;
147class vtkMapper;
148class vtkProperty;
149
150class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkActor : public vtkProp3D
151{
152public:
153 vtkTypeMacro(vtkActor, vtkProp3D);
154 void PrintSelf(ostream& os, vtkIndent indent) override;
155
161 static vtkActor* New();
162
169
171
174 int RenderOpaqueGeometry(vtkViewport* viewport) override;
177
179
185
192 virtual void Render(vtkRenderer*, vtkMapper*) {}
193
197 void ShallowCopy(vtkProp* prop) override;
198
205
207
217
224
226
233 vtkGetObjectMacro(BackfaceProperty, vtkProperty);
235
237
242 virtual void SetTexture(vtkTexture*);
243 vtkGetObjectMacro(Texture, vtkTexture);
245
252 virtual void SetMapper(vtkMapper*);
253
255
258 vtkGetObjectMacro(Mapper, vtkMapper);
260
265 using Superclass::GetBounds;
266 double* GetBounds() VTK_SIZEHINT(6) override;
267
276 virtual void ApplyProperties() {}
277
282
290
292
295 vtkGetMacro(ForceOpaque, bool);
296 vtkSetMacro(ForceOpaque, bool);
297 vtkBooleanMacro(ForceOpaque, bool);
298 vtkGetMacro(ForceTranslucent, bool);
299 vtkSetMacro(ForceTranslucent, bool);
300 vtkBooleanMacro(ForceTranslucent, bool);
302
309 bool GetSupportsSelection() override;
310
316 vtkHardwareSelector* sel, std::vector<unsigned int>& pixeloffsets) override;
317
319 // Get if we are in the translucent polygonal geometry pass
320 bool IsRenderingTranslucentPolygonalGeometry() override { return this->InTranslucentPass; }
321 void SetIsRenderingTranslucentPolygonalGeometry(bool val) { this->InTranslucentPass = val; }
323
324protected:
326 ~vtkActor() override;
327
328 // is this actor opaque
333
338
339 // Bounds are cached in an actor - the MapperBounds are also cache to
340 // help know when the Bounds need to be recomputed.
341 double MapperBounds[6];
343
344private:
345 vtkActor(const vtkActor&) = delete;
346 void operator=(const vtkActor&) = delete;
347};
348
349VTK_ABI_NAMESPACE_END
350#endif
an ordered list of actors
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:151
void SetProperty(vtkProperty *lut)
Set/Get the property object that controls this actors surface properties.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
void GetActors(vtkPropCollection *) override
For some exporters and other other operations we must be able to collect all the actors or volumes.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMTimeType GetRedrawMTime() override
Return the mtime of anything that would cause the rendered image to appear differently.
virtual void Render(vtkRenderer *, vtkMapper *)
This causes the actor to be rendered.
Definition vtkActor.h:192
void ProcessSelectorPixelBuffers(vtkHardwareSelector *sel, std::vector< unsigned int > &pixeloffsets) override
allows a prop to update a selections color buffers Default just forwards to the Mapper
virtual void SetMapper(vtkMapper *)
This is the method that is used to connect an actor to the end of a visualization pipeline,...
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some opaque/translucent polygonal geometry?
vtkMTimeType GetMTime() override
Get the actors mtime plus consider its properties and texture if set.
bool InTranslucentPass
Definition vtkActor.h:332
vtkProperty * GetProperty()
Set/Get the property object that controls this actors surface properties.
virtual vtkProperty * MakeProperty()
Create a new property suitable for use with this type of Actor.
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
vtkProperty * BackfaceProperty
Definition vtkActor.h:335
void SetBackfaceProperty(vtkProperty *lut)
Set/Get the property object that controls this actors backface surface properties.
vtkTypeBool HasOpaqueGeometry() override
Does this prop have some opaque/translucent polygonal geometry?
~vtkActor() override
vtkTimeStamp BoundsMTime
Definition vtkActor.h:342
bool ForceOpaque
Definition vtkActor.h:330
bool IsRenderingTranslucentPolygonalGeometry() override
Definition vtkActor.h:320
double * GetBounds() override
Return a reference to the Prop3D's composite transform.
vtkTexture * Texture
Definition vtkActor.h:336
vtkProperty * Property
Definition vtkActor.h:334
int GetIsOpaque()
vtkMapper * Mapper
Definition vtkActor.h:337
bool ForceTranslucent
Definition vtkActor.h:331
static vtkActor * New()
Creates an actor with the following defaults: origin(0,0,0) position=(0,0,0) scale=(1,...
void ShallowCopy(vtkProp *prop) override
Shallow copy of an actor.
virtual void SetTexture(vtkTexture *)
Set/Get the texture object to control rendering texture maps.
bool GetSupportsSelection() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Support the standard render methods.
void SetIsRenderingTranslucentPolygonalGeometry(bool val)
Definition vtkActor.h:321
a simple class to control print indentation
Definition vtkIndent.h:108
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:137
represents an 3D object for placement in a rendered scene
Definition vtkProp3D.h:89
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:66
represent surface properties of a geometric object
abstract specification for renderers
handles properties associated with a texture map
Definition vtkTexture.h:167
record modification and/or execution time
abstract specification for Viewports
Definition vtkViewport.h:65
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO