VTK  9.1.0
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 =========================================================================*/
141 #ifndef vtkActor_h
142 #define vtkActor_h
143 
144 #include "vtkProp3D.h"
145 #include "vtkRenderingCoreModule.h" // For export macro
146 
147 class vtkRenderer;
148 class vtkPropCollection;
149 class vtkActorCollection;
150 class vtkTexture;
151 class vtkMapper;
152 class vtkProperty;
153 
154 class VTKRENDERINGCORE_EXPORT vtkActor : public vtkProp3D
155 {
156 public:
157  vtkTypeMacro(vtkActor, vtkProp3D);
158  void PrintSelf(ostream& os, vtkIndent indent) override;
159 
165  static vtkActor* New();
166 
172  void GetActors(vtkPropCollection*) override;
173 
175 
178  int RenderOpaqueGeometry(vtkViewport* viewport) override;
181 
183 
189 
196  virtual void Render(vtkRenderer*, vtkMapper*) {}
197 
201  void ShallowCopy(vtkProp* prop) override;
202 
209 
211 
221 
228 
230 
237  vtkGetObjectMacro(BackfaceProperty, vtkProperty);
239 
241 
246  virtual void SetTexture(vtkTexture*);
247  vtkGetObjectMacro(Texture, vtkTexture);
249 
256  virtual void SetMapper(vtkMapper*);
257 
259 
262  vtkGetObjectMacro(Mapper, vtkMapper);
264 
269  using Superclass::GetBounds;
270  double* GetBounds() VTK_SIZEHINT(6) override;
271 
280  virtual void ApplyProperties() {}
281 
285  vtkMTimeType GetMTime() override;
286 
294 
296 
299  vtkGetMacro(ForceOpaque, bool);
300  vtkSetMacro(ForceOpaque, bool);
301  vtkBooleanMacro(ForceOpaque, bool);
302  vtkGetMacro(ForceTranslucent, bool);
303  vtkSetMacro(ForceTranslucent, bool);
304  vtkBooleanMacro(ForceTranslucent, bool);
306 
313  bool GetSupportsSelection() override;
314 
320  vtkHardwareSelector* sel, std::vector<unsigned int>& pixeloffsets) override;
321 
323  // Get if we are in the translucent polygonal geometry pass
324  bool IsRenderingTranslucentPolygonalGeometry() override { return this->InTranslucentPass; }
325  void SetIsRenderingTranslucentPolygonalGeometry(bool val) { this->InTranslucentPass = val; }
327 
328 protected:
330  ~vtkActor() override;
331 
332  // is this actor opaque
333  int GetIsOpaque();
337 
342 
343  // Bounds are cached in an actor - the MapperBounds are also cache to
344  // help know when the Bounds need to be recomputed.
345  double MapperBounds[6];
347 
348 private:
349  vtkActor(const vtkActor&) = delete;
350  void operator=(const vtkActor&) = delete;
351 };
352 
353 #endif
an ordered list of actors
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
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:196
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:336
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:339
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:346
bool ForceOpaque
Definition: vtkActor.h:334
bool IsRenderingTranslucentPolygonalGeometry() override
Definition: vtkActor.h:324
vtkTexture * Texture
Definition: vtkActor.h:340
vtkProperty * Property
Definition: vtkActor.h:338
int GetIsOpaque()
vtkMapper * Mapper
Definition: vtkActor.h:341
bool ForceTranslucent
Definition: vtkActor.h:335
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:325
a simple class to control print indentation
Definition: vtkIndent.h:113
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:171
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:93
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:67
virtual double * GetBounds()
Get the bounds for this Prop as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
Definition: vtkProp.h:145
represent surface properties of a geometric object
Definition: vtkProperty.h:171
abstract specification for renderers
Definition: vtkRenderer.h:173
handles properties associated with a texture map
Definition: vtkTexture.h:175
record modification and/or execution time
Definition: vtkTimeStamp.h:52
abstract specification for Viewports
Definition: vtkViewport.h:47
window superclass for vtkRenderWindow
Definition: vtkWindow.h:36
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
#define VTK_SIZEHINT(...)