VTK  9.3.20240419
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 
142 VTK_ABI_NAMESPACE_BEGIN
143 class vtkRenderer;
144 class vtkPropCollection;
145 class vtkActorCollection;
146 class vtkTexture;
147 class vtkMapper;
148 class vtkProperty;
149 
150 class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkActor : public vtkProp3D
151 {
152 public:
153  vtkTypeMacro(vtkActor, vtkProp3D);
154  void PrintSelf(ostream& os, vtkIndent indent) override;
155 
161  static vtkActor* New();
162 
168  void GetActors(vtkPropCollection*) override;
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 
281  vtkMTimeType GetMTime() override;
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 
324 protected:
326  ~vtkActor() override;
327 
328  // is this actor opaque
329  int GetIsOpaque();
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 
344 private:
345  vtkActor(const vtkActor&) = delete;
346  void operator=(const vtkActor&) = delete;
347 };
348 
349 VTK_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.
virtual vtkProperty * MakeProperty()
Create a new property suitable for use with this type of Actor.
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.
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
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
double * GetBounds() override
Return a reference to the Prop3D's composite transform.
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...
static vtkActor * New()
Creates an actor with the following defaults: origin(0,0,0) position=(0,0,0) scale=(1,...
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
virtual double * GetBounds()
Get the bounds for this Prop as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
Definition: vtkProp.h:144
represent surface properties of a geometric object
Definition: vtkProperty.h:167
abstract specification for renderers
Definition: vtkRenderer.h:172
handles properties associated with a texture map
Definition: vtkTexture.h:167
record modification and/or execution time
Definition: vtkTimeStamp.h:44
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