32 #include "vtkRenderingCoreModule.h"
42 VTK_ABI_NAMESPACE_BEGIN
102 void RemoveLight(vtkLight*);
108 void RemoveAllLights();
133 virtual vtkLight* MakeLight();
143 vtkSetMacro(TwoSidedLighting, vtkTypeBool);
144 vtkBooleanMacro(TwoSidedLighting, vtkTypeBool);
161 vtkSetMacro(LightFollowCamera, vtkTypeBool);
162 vtkGetMacro(LightFollowCamera, vtkTypeBool);
163 vtkBooleanMacro(LightFollowCamera, vtkTypeBool);
175 vtkGetMacro(AutomaticLightCreation, vtkTypeBool);
176 vtkSetMacro(AutomaticLightCreation, vtkTypeBool);
177 vtkBooleanMacro(AutomaticLightCreation, vtkTypeBool);
185 virtual vtkTypeBool UpdateLightsGeometryToFollowCamera();
209 vtkCamera* GetActiveCamera();
216 virtual vtkCamera* MakeCamera();
225 vtkSetMacro(Erase, vtkTypeBool);
226 vtkGetMacro(Erase, vtkTypeBool);
227 vtkBooleanMacro(Erase, vtkTypeBool);
236 vtkSetMacro(Draw, vtkTypeBool);
237 vtkGetMacro(Draw, vtkTypeBool);
238 vtkBooleanMacro(Draw, vtkTypeBool);
245 int CaptureGL2PSSpecialProp(
vtkProp*);
264 void RemoveCuller(vtkCuller*);
275 vtkSetVector3Macro(Ambient,
double);
276 vtkGetVectorMacro(Ambient,
double, 3);
284 vtkSetMacro(AllocatedRenderTime,
double);
285 virtual
double GetAllocatedRenderTime();
294 virtual
double GetTimeFactor();
302 virtual
void Render();
307 virtual
void DeviceRender() {}
342 int VisibleActorCount();
347 int VisibleVolumeCount();
353 void ComputeVisiblePropBounds(
double bounds[6]);
364 virtual
void ResetCameraClippingRange();
370 virtual
void ResetCameraClippingRange(const
double bounds[6]);
371 virtual
void ResetCameraClippingRange(
372 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
381 vtkSetClampMacro(NearClippingPlaneTolerance,
double, 0, 0.99);
382 vtkGetMacro(NearClippingPlaneTolerance,
double);
391 vtkSetClampMacro(ClippingRangeExpansion,
double, 0, 0.99);
392 vtkGetMacro(ClippingRangeExpansion,
double);
402 virtual
bool ResetCamera();
413 virtual
void ResetCamera(const
double bounds[6]);
418 virtual
void ResetCamera(
419 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
429 virtual
bool ResetCameraScreenSpace(
double offsetRatio = 0.9);
439 virtual
void ResetCameraScreenSpace(const
double bounds[6],
double offsetRatio = 0.9);
453 void ZoomToBoxUsingViewAngle(const
vtkRecti& box,
double offsetRatio = 1.0);
461 virtual
void ResetCameraScreenSpace(
double xmin,
double xmax,
double ymin,
double ymax,
462 double zmin,
double zmax,
double offsetRatio = 0.9);
471 vtkRenderWindow* GetRenderWindow() {
return this->RenderWindow; }
510 virtual void SetLayer(
int layer);
511 vtkGetMacro(Layer,
int);
556 void ViewToWorld(
double& wx,
double& wy,
double& wz)
override;
562 void WorldToView(
double& wx,
double& wy,
double& wz)
override;
568 void WorldToPose(
double& wx,
double& wy,
double& wz)
override;
569 void PoseToWorld(
double& wx,
double& wy,
double& wz)
override;
570 void ViewToPose(
double& wx,
double& wy,
double& wz)
override;
571 void PoseToView(
double& wx,
double& wy,
double& wz)
override;
586 double GetZ(
int x,
int y);
596 vtkSetMacro(SafeGetZ,
bool);
597 vtkGetMacro(SafeGetZ,
bool);
598 vtkBooleanMacro(SafeGetZ,
bool);
610 vtkGetMacro(LastRenderTimeInSeconds,
double);
620 vtkGetMacro(NumberOfPropsRendered,
int);
633 return this->
PickProp(selectionX, selectionY, selectionX, selectionY);
636 double selectionX1,
double selectionY1,
double selectionX2,
double selectionY2)
override;
654 selectionX, selectionY, selectionX, selectionY, fieldAssociation, selection);
673 double GetTiledAspectRatio();
703 vtkSetMacro(UseDepthPeelingForVolumes,
bool);
704 vtkGetMacro(UseDepthPeelingForVolumes,
bool);
705 vtkBooleanMacro(UseDepthPeelingForVolumes,
bool);
717 vtkSetClampMacro(OcclusionRatio,
double, 0.0, 0.5);
718 vtkGetMacro(OcclusionRatio,
double);
727 vtkSetMacro(MaximumNumberOfPeels,
int);
728 vtkGetMacro(MaximumNumberOfPeels,
int);
737 vtkGetMacro(LastRenderingUsedDepthPeeling,
vtkTypeBool);
745 vtkSetMacro(UseSSAO,
bool);
746 vtkGetMacro(UseSSAO,
bool);
747 vtkBooleanMacro(UseSSAO,
bool);
755 vtkSetMacro(SSAORadius,
double);
756 vtkGetMacro(SSAORadius,
double);
764 vtkSetMacro(SSAOBias,
double);
765 vtkGetMacro(SSAOBias,
double);
773 vtkSetMacro(SSAOKernelSize,
unsigned int);
774 vtkGetMacro(SSAOKernelSize,
unsigned int);
783 vtkSetMacro(SSAOBlur,
bool);
784 vtkGetMacro(SSAOBlur,
bool);
785 vtkBooleanMacro(SSAOBlur,
bool);
814 virtual void SetLeftBackgroundTexture(
vtkTexture*);
816 virtual void SetBackgroundTexture(
vtkTexture*);
817 vtkGetObjectMacro(BackgroundTexture,
vtkTexture);
825 virtual void SetRightBackgroundTexture(
vtkTexture*);
826 vtkGetObjectMacro(RightBackgroundTexture,
vtkTexture);
834 vtkSetMacro(TexturedBackground,
bool);
835 vtkGetMacro(TexturedBackground,
bool);
836 vtkBooleanMacro(TexturedBackground,
bool);
840 virtual void ReleaseGraphicsResources(
vtkWindow*);
846 vtkSetMacro(UseFXAA,
bool);
847 vtkGetMacro(UseFXAA,
bool);
848 vtkBooleanMacro(UseFXAA,
bool);
876 vtkBooleanMacro(UseHiddenLineRemoval,
vtkTypeBool);
899 vtkSetMacro(UseImageBasedLighting,
bool);
900 vtkGetMacro(UseImageBasedLighting,
bool);
901 vtkBooleanMacro(UseImageBasedLighting,
bool);
911 vtkGetObjectMacro(EnvironmentTexture,
vtkTexture);
913 void SetEnvironmentTextureProperty(vtkTexture* texture) { this->SetEnvironmentTexture(texture); }
914 virtual void SetEnvironmentTexture(
vtkTexture* texture,
bool isSRGB =
false);
925 virtual double* GetEnvironmentUp();
926 virtual void GetEnvironmentUp(
double& vectorUpX,
double& vectorUpY,
double& vectorUpZ);
927 virtual void GetEnvironmentUp(
double vectorUp[3]);
928 virtual void SetEnvironmentUp(
double vectorUpX,
double vectorUpY,
double vectorUpZ);
929 virtual void SetEnvironmentUp(
double vectorUp[3]);
940 virtual double* GetEnvironmentRight();
941 virtual void GetEnvironmentRight(
942 double& vectorRightX,
double& vectorRightY,
double& vectorRightZ);
943 virtual void GetEnvironmentRight(
double vectorRight[3]);
944 virtual void SetEnvironmentRight(
double vectorRightX,
double vectorRightY,
double vectorRightZ);
945 virtual void SetEnvironmentRight(
double vectorRight[3]);
954 vtkGetSmartPointerMacro(EnvironmentRotationMatrix,
vtkMatrix3x3);
955 void SetEnvironmentRotationMatrix(
vtkMatrix3x3* matrix);
962 vtkSetMacro(SkyboxBlurEnabled,
bool);
963 vtkGetMacro(SkyboxBlurEnabled,
bool);
964 vtkBooleanMacro(SkyboxBlurEnabled,
bool);
972 vtkSetMacro(SkyboxBlurRadius,
float);
973 vtkGetMacro(SkyboxBlurRadius,
float);
988 vtkSetMacro(UseOIT,
bool);
989 vtkGetMacro(UseOIT,
bool);
990 vtkBooleanMacro(UseOIT,
bool);
1000 virtual void ExpandBounds(
double bounds[6],
vtkMatrix4x4* matrix);
1019 int BackingStoreSize[2];
1027 void AllocateTime();
1050 double ComputedVisiblePropBounds[6];
1091 const std::array<double, 16>& GetCompositeProjectionTransformationMatrix();
1097 const std::array<double, 16>& GetProjectionTransformationMatrix();
1103 const std::array<double, 16>& GetViewTransformMatrix();
1119 virtual int UpdateTranslucentPolygonalGeometry();
1126 virtual int UpdateOpaquePolygonalGeometry();
1132 virtual int UpdateCamera();
1152 vtkCamera* GetActiveCameraAndResetIfCreated();
1209 bool UseSSAO =
false;
1210 double SSAORadius = 0.5;
1211 double SSAOBias = 0.01;
1212 unsigned int SSAOKernelSize = 32;
1213 bool SSAOBlur =
false;
1243 this->Selector = selector;
1271 void ComputeRotationMatrixForwardVector();
1276 std::array<double, 16> CompositeProjectionTransformationMatrix;
1281 double LastCompositeProjectionTransformationMatrixTiledAspectRatio;
1286 vtkMTimeType LastCompositeProjectionTransformationMatrixCameraModified;
1291 std::array<double, 16> ProjectionTransformationMatrix;
1296 double LastProjectionTransformationMatrixTiledAspectRatio;
1301 vtkMTimeType LastProjectionTransformationMatrixCameraModified;
1306 std::array<double, 16> ViewTransformMatrix;
1316 bool SafeGetZ =
false;
1327 bool SkyboxBlurEnabled =
false;
1328 float SkyboxBlurRadius = 20.0f;
1335 double EnvironmentUp[3] = { 0.0, 1.0, 0.0 };
1336 double EnvironmentRight[3] = { 1.0, 0.0, 0.0 };
1355 VTK_ABI_NAMESPACE_END
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...
abstract superclass for all actors, volumes and annotations
vtkInformation * Information
double ClippingRangeExpansion
Specify enlargement of bounds when resetting the camera clipping range.
vtkTypeBool UseShadows
If this flag is on and the rendering engine supports it render shadows Initial value is off...
represents a volume (data & properties) in a rendered scene
virtual void WorldToPose(double &, double &, double &)
These methods map from one coordinate system to another.
represents an object (geometry & properties) in a rendered scene
vtkAssemblyPath * PickProp(double selectionX, double selectionY) override
Return the prop (via a vtkAssemblyPath) that has the highest z value at the given x...
represent and manipulate 4x4 transformation matrices
vtkTypeUInt32 vtkMTimeType
abstract specification for Viewports
std::vector< vtkProp * > PropArray
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkRenderWindow * RenderWindow
double OcclusionRatio
In case of use of depth peeling technique for rendering translucent material, define the threshold un...
a actor that draws 2D data
record modification and/or execution time
vtkTexture * EnvironmentTexture
bool UseDepthPeelingForVolumes
This flag is on and the GPU supports it, depth-peel volumes along with the translucent geometry...
vtkTypeBool PreserveDepthBuffer
vtkTypeBool IsActiveCameraCreated()
This method returns 1 if the ActiveCamera has already been set or automatically created by the render...
abstract specification for renderers
double AllocatedRenderTime
an ordered list of lights
vtkRendererDelegate * Delegate
vtkTypeBool LightFollowCamera
vtkTypeBool TwoSidedLighting
double LastRenderTimeInSeconds
window superclass for vtkRenderWindow
vtkVolumeCollection * Volumes
vtkTypeBool Draw
When this flag is off, render commands are ignored.
vtkCullerCollection * Cullers
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.
abstract interface to OpenGL FBOs
void SetSelector(vtkHardwareSelector *selector)
Called by vtkHardwareSelector when it begins rendering for selection.
a list of nodes that form an assembly path
vtkTypeBool PreserveColorBuffer
unsigned char * BackingImage
a superclass for prop cullers
a simple class to control print indentation
virtual void StereoMidpoint()
Do anything necessary between rendering the left and right viewpoints in a stereo render...
a virtual camera for 3D rendering
#define VTK_MARSHALGETTER(property)
vtkTypeBool AutomaticLightCreation
a virtual light for 3D rendering
bool UseFXAA
If this flag is on and the rendering engine supports it, FXAA will be used to antialias the scene...
virtual vtkMTimeType GetMTime()
Return this object's modified time.
vtkTypeBool UseDepthPeeling
If this flag is on and the GPU supports it, depth peeling is used for rendering translucent materials...
vtkLightCollection * GetLights()
Return the collection of lights.
virtual void PoseToWorld(double &, double &, double &)
These methods map from one coordinate system to another.
vtkPropCollection * GL2PSSpecialPropCollection
Temporary collection used by vtkRenderWindow::CaptureGL2PSSpecialProps.
an ordered list of volumes
virtual int UpdateLights()
Ask all lights to load themselves into rendering pipeline.
vtkFXAAOptions * FXAAOptions
Holds the FXAA configuration.
handles properties associated with a texture map
virtual void Modified()
Update the modification time for this object.
vtkLightCollection * Lights
virtual void ViewToPose(double &, double &, double &)
These methods map from one coordinate system to another.
#define VTK_SIZEHINT(...)
vtkActorCollection * Actors
#define VTK_MARSHALEXCLUDE(reason)
an ordered list of actors
vtkHardwareSelector * Selector
virtual void PoseToView(double &, double &, double &)
These methods map from one coordinate system to another.
double NearClippingPlaneTolerance
Specifies the minimum distance of the near clipping plane as a percentage of the far clipping plane d...
an ordered list of Cullers
virtual void ClearLights()
Internal method temporarily removes lights before reloading them into graphics pipeline.
create a window for renderers to draw into
vtkTypeBool UseHiddenLineRemoval
When this flag is on and the rendering engine supports it, wireframe polydata will be rendered using ...
virtual void ViewToWorld()
Convert view point coordinates to world coordinates.
Render the props of a vtkRenderer.
bool UseImageBasedLighting
vtkTexture * BackgroundTexture
vtkTypeBool LastRenderingUsedDepthPeeling
Tells if the last call to DeviceRenderTranslucentPolygonalGeometry() actually used depth peeling...
vtkCullerCollection * GetCullers()
Return the collection of cullers.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Perform part of the rendering of a vtkRenderer.
represent and manipulate 3x3 transformation matrices
virtual vtkWindow * GetVTKWindow()=0
Return the vtkWindow that owns this vtkViewport.
int NumberOfPropsRendered
virtual void WorldToView()
Convert world point coordinates to view coordinates.
virtual void Clear()
Clear the image to the background color.
vtkTexture * RightBackgroundTexture
Configuration for FXAA implementations.
int MaximumNumberOfPeels
In case of depth peeling, define the maximum number of peeling layers.
vtkTypeBool Erase
When this flag is off, the renderer will not erase the background or the Zbuffer. ...
#define VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL
#define VTK_MARSHALSETTER(property)