150 #ifndef vtkRenderer_h
151 #define vtkRenderer_h
153 #include "vtkRenderingCoreModule.h"
382 vtkSetVector3Macro(Ambient,
double);
383 vtkGetVectorMacro(Ambient,
double, 3);
391 vtkSetMacro(AllocatedRenderTime,
double);
471 virtual
void ResetCameraClippingRange();
477 virtual
void ResetCameraClippingRange(const
double bounds[6]);
478 virtual
void ResetCameraClippingRange(
479 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
488 vtkSetClampMacro(NearClippingPlaneTolerance,
double, 0, 0.99);
489 vtkGetMacro(NearClippingPlaneTolerance,
double);
498 vtkSetClampMacro(ClippingRangeExpansion,
double, 0, 0.99);
499 vtkGetMacro(ClippingRangeExpansion,
double);
508 virtual
void ResetCamera();
519 virtual
void ResetCamera(const
double bounds[6]);
524 virtual
void ResetCamera(
525 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
531 virtual
void ResetCameraScreenSpace();
538 virtual
void ResetCameraScreenSpace(const
double bounds[6]);
552 void ZoomToBoxUsingViewAngle(const
vtkRecti& box, const
double offsetRatio = 1.0);
557 virtual
void ResetCameraScreenSpace(
558 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
607 vtkGetMacro(Layer,
int);
666 void ViewToPose(
double& wx,
double& wy,
double& wz)
override;
667 void PoseToView(
double& wx,
double& wy,
double& wz)
override;
685 vtkGetMacro(LastRenderTimeInSeconds,
double);
695 vtkGetMacro(NumberOfPropsRendered,
int);
708 return this->
PickProp(selectionX, selectionY, selectionX, selectionY);
711 double selectionX1,
double selectionY1,
double selectionX2,
double selectionY2)
override;
728 selectionX, selectionY, selectionX, selectionY, fieldAssociation, selection);
777 vtkSetMacro(UseDepthPeelingForVolumes,
bool);
778 vtkGetMacro(UseDepthPeelingForVolumes,
bool);
779 vtkBooleanMacro(UseDepthPeelingForVolumes,
bool);
791 vtkSetClampMacro(OcclusionRatio,
double, 0.0, 0.5);
792 vtkGetMacro(OcclusionRatio,
double);
801 vtkSetMacro(MaximumNumberOfPeels,
int);
802 vtkGetMacro(MaximumNumberOfPeels,
int);
819 vtkSetMacro(UseSSAO,
bool);
820 vtkGetMacro(UseSSAO,
bool);
821 vtkBooleanMacro(UseSSAO,
bool);
829 vtkSetMacro(SSAORadius,
double);
830 vtkGetMacro(SSAORadius,
double);
838 vtkSetMacro(SSAOBias,
double);
839 vtkGetMacro(SSAOBias,
double);
847 vtkSetMacro(SSAOKernelSize,
unsigned int);
848 vtkGetMacro(SSAOKernelSize,
unsigned int);
857 vtkSetMacro(SSAOBlur,
bool);
858 vtkGetMacro(SSAOBlur,
bool);
859 vtkBooleanMacro(SSAOBlur,
bool);
908 vtkSetMacro(TexturedBackground,
bool);
909 vtkGetMacro(TexturedBackground,
bool);
910 vtkBooleanMacro(TexturedBackground,
bool);
920 vtkSetMacro(UseFXAA,
bool);
921 vtkGetMacro(UseFXAA,
bool);
922 vtkBooleanMacro(UseFXAA,
bool);
973 vtkSetMacro(UseImageBasedLighting,
bool);
974 vtkGetMacro(UseImageBasedLighting,
bool);
975 vtkBooleanMacro(UseImageBasedLighting,
bool);
998 vtkGetVector3Macro(EnvironmentUp,
double);
999 vtkSetVector3Macro(EnvironmentUp,
double);
1006 vtkGetVector3Macro(EnvironmentRight,
double);
1007 vtkSetVector3Macro(EnvironmentRight,
double);
1036 int BackingStoreSize[2];
1067 double ComputedVisiblePropBounds[6];
1226 bool UseSSAO =
false;
1227 double SSAORadius = 0.5;
1228 double SSAOBias = 0.01;
1229 unsigned int SSAOKernelSize = 32;
1230 bool SSAOBlur =
false;
1247 this->Selector = selector;
1271 double EnvironmentUp[3];
1272 double EnvironmentRight[3];
1278 std::array<double, 16> CompositeProjectionTransformationMatrix;
1283 double LastCompositeProjectionTransformationMatrixTiledAspectRatio;
1288 vtkMTimeType LastCompositeProjectionTransformationMatrixCameraModified;
1293 std::array<double, 16> ProjectionTransformationMatrix;
1298 double LastProjectionTransformationMatrixTiledAspectRatio;
1303 vtkMTimeType LastProjectionTransformationMatrixCameraModified;
1308 std::array<double, 16> ViewTransformMatrix;
a actor that draws 2D data
an ordered list of actors
represents an object (geometry & properties) in a rendered scene
a list of nodes that form an assembly path
a virtual camera for 3D rendering
an ordered list of Cullers
a superclass for prop cullers
Configuration for FXAA implementations.
abstract interface to OpenGL FBOs
a simple class to control print indentation
an ordered list of lights
a virtual light for 3D rendering
represent and manipulate 4x4 transformation matrices
virtual void Modified()
Update the modification time for this object.
abstract superclass for all actors, volumes and annotations
Perform part of the rendering of a vtkRenderer.
create a window for renderers to draw into
Render the props of a vtkRenderer.
abstract specification for renderers
void RemoveVolume(vtkProp *p)
virtual void SetLayer(int layer)
Set/Get the layer that this renderer belongs to.
void ViewToWorld(double &wx, double &wy, double &wz) override
These methods map from one coordinate system to another.
virtual void SetFXAAOptions(vtkFXAAOptions *)
const std::array< double, 16 > & GetViewTransformMatrix()
Gets the ActiveCamera ViewTransformMatrix, only computing it if necessary.
virtual void ClearLights(void)
Internal method temporarily removes lights before reloading them into graphics pipeline.
void AddCuller(vtkCuller *)
Add an culler to the list of cullers.
void SetPass(vtkRenderPass *p)
vtkTypeBool PreserveDepthBuffer
vtkTypeBool UseShadows
If this flag is on and the rendering engine supports it render shadows Initial value is off.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkRenderer * New()
Create a vtkRenderer with a black background, a white ambient light, two-sided lighting turned on,...
double LastRenderTimeInSeconds
double GetTiledAspectRatio()
Compute the aspect ratio of this renderer for the current tile.
vtkCamera * GetActiveCameraAndResetIfCreated()
Get the current camera and reset it only if it gets created automatically (see GetActiveCamera).
void AddLight(vtkLight *)
Add a light to the list of lights.
vtkCullerCollection * GetCullers()
Return the collection of cullers.
virtual vtkLight * MakeLight()
Create a new Light sutible for use with this type of Renderer.
virtual void SetRightBackgroundTexture(vtkTexture *)
Set/Get the texture to be used for the right eye background.
virtual void SetInformation(vtkInformation *)
vtkAssemblyPath * PickProp(double selectionX, double selectionY, int fieldAssociation, vtkSmartPointer< vtkSelection > selection) override
Return the prop (via a vtkAssemblyPath) that has the highest z value at the given x,...
virtual int UpdateLights(void)
Ask all lights to load themselves into rendering pipeline.
virtual vtkTypeBool UpdateLightsGeometryToFollowCamera(void)
Ask the lights in the scene that are not in world space (for instance, Headlights or CameraLights tha...
virtual int UpdateGeometry(vtkFrameBufferObjectBase *fbo=nullptr)
Ask all props to update and draw any opaque and translucent geometry.
vtkWindow * GetVTKWindow() override
Return the vtkWindow that owns this vtkViewport.
vtkActorCollection * GetActors()
Return any actors in this renderer.
int Transparent()
Returns a boolean indicating if this renderer is transparent.
virtual int UpdateCamera(void)
Ask the active camera to do whatever it needs to do prior to rendering.
bool UseImageBasedLighting
int VisibleActorCount()
Returns the number of visible actors.
vtkTexture * EnvironmentTexture
void RemoveLight(vtkLight *)
Remove a light from the list of lights.
bool UseDepthPeelingForVolumes
This flag is on and the GPU supports it, depth-peel volumes along with the translucent geometry.
void RemoveActor(vtkProp *p)
virtual void SetLeftBackgroundTexture(vtkTexture *)
Set/Get the texture to be used for the monocular or stereo left eye background.
void SetSelector(vtkHardwareSelector *selector)
Called by vtkHardwareSelector when it begins rendering for selection.
vtkMTimeType GetMTime() override
Return the MTime of the renderer also considering its ivars.
int MaximumNumberOfPeels
In case of depth peeling, define the maximum number of peeling layers.
vtkTypeBool LastRenderingUsedDepthPeeling
Tells if the last call to DeviceRenderTranslucentPolygonalGeometry() actually used depth peeling.
vtkRenderWindow * RenderWindow
int VisibleVolumeCount()
Returns the number of visible volumes.
double * ComputeVisiblePropBounds()
Wrapper-friendly version of ComputeVisiblePropBounds.
vtkTypeBool AutomaticLightCreation
int NumberOfPropsRendered
virtual void StereoMidpoint()
Do anything necessary between rendering the left and right viewpoints in a stereo render.
virtual vtkTypeBool UpdateLightGeometry(void)
Update the geometry of the lights in the scene that are not in world space (for instance,...
virtual int UpdateOpaquePolygonalGeometry()
Ask all props to update and draw any opaque polygonal geometry.
vtkAssemblyPath * PickProp(double selectionX1, double selectionY1, double selectionX2, double selectionY2, int fieldAssociation, vtkSmartPointer< vtkSelection > selection) override
Return the Prop that has the highest z value at the given x1, y1 and x2,y2 positions in the viewport.
vtkVolumeCollection * Volumes
virtual void ExpandBounds(double bounds[6], vtkMatrix4x4 *matrix)
void RemoveCuller(vtkCuller *)
Remove an actor from the list of cullers.
double OcclusionRatio
In case of use of depth peeling technique for rendering translucent material, define the threshold un...
vtkAssemblyPath * PickProp(double selectionX, double selectionY) override
Return the prop (via a vtkAssemblyPath) that has the highest z value at the given x,...
void PoseToView(double &wx, double &wy, double &wz) override
These methods map from one coordinate system to another.
vtkTypeBool Erase
When this flag is off, the renderer will not erase the background or the Zbuffer.
vtkPropCollection * GL2PSSpecialPropCollection
Temporary collection used by vtkRenderWindow::CaptureGL2PSSpecialProps.
bool UseFXAA
If this flag is on and the rendering engine supports it, FXAA will be used to antialias the scene.
double ClippingRangeExpansion
Specify enlargement of bounds when resetting the camera clipping range.
int CaptureGL2PSSpecialProp(vtkProp *)
This function is called to capture an instance of vtkProp that requires special handling during vtkRe...
vtkTypeBool IsActiveCameraCreated()
This method returns 1 if the ActiveCamera has already been set or automatically created by the render...
unsigned char * BackingImage
vtkRendererDelegate * Delegate
void SetLightCollection(vtkLightCollection *lights)
Set the collection of lights.
virtual void ReleaseGraphicsResources(vtkWindow *)
void PoseToWorld(double &wx, double &wy, double &wz) override
These methods map from one coordinate system to another.
void RemoveAllLights()
Remove all lights from the list of lights.
vtkTexture * BackgroundTexture
virtual vtkCamera * MakeCamera()
Create a new Camera sutible for use with this type of Renderer.
double GetZ(int x, int y)
Given a pixel location, return the Z value.
vtkCullerCollection * Cullers
vtkCamera * GetActiveCamera()
Get the current camera.
void AddActor(vtkProp *p)
Add/Remove different types of props to the renderer.
virtual double GetTimeFactor()
Get the ratio between allocated time and actual render time.
double AllocatedRenderTime
const std::array< double, 16 > & GetProjectionTransformationMatrix()
Gets the ActiveCamera ProjectionTransformationMatrix, only computing it if necessary.
double NearClippingPlaneTolerance
Specifies the minimum distance of the near clipping plane as a percentage of the far clipping plane d...
vtkTypeBool Draw
When this flag is off, render commands are ignored.
vtkHardwareSelector * Selector
virtual void DeviceRender()
Create an image.
vtkTypeBool TwoSidedLighting
vtkTexture * RightBackgroundTexture
vtkTypeBool UseDepthPeeling
If this flag is on and the GPU supports it, depth peeling is used for rendering translucent materials...
vtkTypeBool UseHiddenLineRemoval
When this flag is on and the rendering engine supports it, wireframe polydata will be rendered using ...
void WorldToPose(double &wx, double &wy, double &wz) override
Convert to from pose coordinates.
vtkLightCollection * Lights
void CreateLight(void)
Create and add a light to renderer.
vtkTexture * GetLeftBackgroundTexture()
void ViewToWorld() override
Convert view point coordinates to world coordinates.
vtkVolumeCollection * GetVolumes()
Return the collection of volumes.
void SetActiveCamera(vtkCamera *)
Specify the camera to use for this renderer.
virtual void SetEnvironmentTexture(vtkTexture *texture, bool isSRGB=false)
virtual void Render()
CALLED BY vtkRenderWindow ONLY.
virtual int UpdateTranslucentPolygonalGeometry()
Ask all props to update and draw any translucent polygonal geometry.
vtkLightCollection * GetLights()
Return the collection of lights.
vtkTypeBool LightFollowCamera
vtkFXAAOptions * FXAAOptions
Holds the FXAA configuration.
void ViewToPose(double &wx, double &wy, double &wz) override
These methods map from one coordinate system to another.
void WorldToView() override
Convert world point coordinates to view coordinates.
virtual void DeviceRenderOpaqueGeometry(vtkFrameBufferObjectBase *fbo=nullptr)
Render opaque polygonal geometry.
vtkAssemblyPath * PickProp(double selectionX1, double selectionY1, double selectionX2, double selectionY2) override
Return the Prop that has the highest z value at the given x1, y1 and x2,y2 positions in the viewport.
virtual void SetBackgroundTexture(vtkTexture *)
void AddVolume(vtkProp *p)
void WorldToView(double &wx, double &wy, double &wz) override
Convert world point coordinates to view coordinates.
virtual double GetAllocatedRenderTime()
virtual void Clear()
Clear the image to the background color.
void ComputeVisiblePropBounds(double bounds[6])
Compute the bounding box of all the visible props Used in ResetCamera() and ResetCameraClippingRange(...
virtual void DeviceRenderTranslucentPolygonalGeometry(vtkFrameBufferObjectBase *fbo=nullptr)
Render translucent polygonal geometry.
vtkTypeBool PreserveColorBuffer
void SetGL2PSSpecialPropCollection(vtkPropCollection *)
Set the prop collection object used during vtkRenderWindow::CaptureGL2PSSpecialProps().
vtkActorCollection * Actors
void SetDelegate(vtkRendererDelegate *d)
Set/Get a custom Render call.
vtkInformation * Information
const std::array< double, 16 > & GetCompositeProjectionTransformationMatrix()
Gets the ActiveCamera CompositeProjectionTransformationMatrix, only computing it if necessary.
handles properties associated with a texture map
record modification and/or execution time
abstract specification for Viewports
virtual vtkAssemblyPath * PickProp(double selectionX, double selectionY)=0
Return the Prop that has the highest z value at the given x, y position in the viewport.
an ordered list of volumes
represents a volume (data & properties) in a rendered scene
window superclass for vtkRenderWindow
vtkTypeUInt32 vtkMTimeType
#define VTK_SIZEHINT(...)