VTK  9.1.20220525
vtkActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkActor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
147 #ifndef vtkActor_h
148 #define vtkActor_h
149 
150 #include "vtkProp3D.h"
151 #include "vtkRenderingCoreModule.h" // For export macro
152 
153 class vtkRenderer;
154 class vtkPropCollection;
155 class vtkActorCollection;
156 class vtkTexture;
157 class vtkMapper;
158 class vtkProperty;
159 
160 class VTKRENDERINGCORE_EXPORT vtkActor : public vtkProp3D
161 {
162 public:
163  vtkTypeMacro(vtkActor, vtkProp3D);
164  void PrintSelf(ostream& os, vtkIndent indent) override;
165 
171  static vtkActor* New();
172 
178  void GetActors(vtkPropCollection*) override;
179 
181 
184  int RenderOpaqueGeometry(vtkViewport* viewport) override;
187 
189 
195 
202  virtual void Render(vtkRenderer*, vtkMapper*) {}
203 
207  void ShallowCopy(vtkProp* prop) override;
208 
215 
217 
227 
234 
236 
243  vtkGetObjectMacro(BackfaceProperty, vtkProperty);
245 
247 
252  virtual void SetTexture(vtkTexture*);
253  vtkGetObjectMacro(Texture, vtkTexture);
255 
262  virtual void SetMapper(vtkMapper*);
263 
265 
268  vtkGetObjectMacro(Mapper, vtkMapper);
270 
275  using Superclass::GetBounds;
276  double* GetBounds() VTK_SIZEHINT(6) override;
277 
286  virtual void ApplyProperties() {}
287 
291  vtkMTimeType GetMTime() override;
292 
300 
302 
305  vtkGetMacro(ForceOpaque, bool);
306  vtkSetMacro(ForceOpaque, bool);
307  vtkBooleanMacro(ForceOpaque, bool);
308  vtkGetMacro(ForceTranslucent, bool);
309  vtkSetMacro(ForceTranslucent, bool);
310  vtkBooleanMacro(ForceTranslucent, bool);
312 
319  bool GetSupportsSelection() override;
320 
326  vtkHardwareSelector* sel, std::vector<unsigned int>& pixeloffsets) override;
327 
329  // Get if we are in the translucent polygonal geometry pass
330  bool IsRenderingTranslucentPolygonalGeometry() override { return this->InTranslucentPass; }
331  void SetIsRenderingTranslucentPolygonalGeometry(bool val) { this->InTranslucentPass = val; }
333 
334 protected:
336  ~vtkActor() override;
337 
338  // is this actor opaque
339  int GetIsOpaque();
343 
348 
349  // Bounds are cached in an actor - the MapperBounds are also cache to
350  // help know when the Bounds need to be recomputed.
351  double MapperBounds[6];
353 
354 private:
355  vtkActor(const vtkActor&) = delete;
356  void operator=(const vtkActor&) = delete;
357 };
358 
359 #endif
an ordered list of actors
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:161
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:202
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:342
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:345
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:352
bool ForceOpaque
Definition: vtkActor.h:340
bool IsRenderingTranslucentPolygonalGeometry() override
Definition: vtkActor.h:330
vtkTexture * Texture
Definition: vtkActor.h:346
vtkProperty * Property
Definition: vtkActor.h:344
int GetIsOpaque()
vtkMapper * Mapper
Definition: vtkActor.h:347
bool ForceTranslucent
Definition: vtkActor.h:341
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:331
a simple class to control print indentation
Definition: vtkIndent.h:119
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:177
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:99
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:76
virtual double * GetBounds()
Get the bounds for this Prop as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
Definition: vtkProp.h:154
represent surface properties of a geometric object
Definition: vtkProperty.h:177
abstract specification for renderers
Definition: vtkRenderer.h:182
handles properties associated with a texture map
Definition: vtkTexture.h:178
record modification and/or execution time
Definition: vtkTimeStamp.h:55
abstract specification for Viewports
Definition: vtkViewport.h:56
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
#define VTK_SIZEHINT(...)