VTK  9.7.20260727
vtkRenderWindow.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
146
147#ifndef vtkRenderWindow_h
148#define vtkRenderWindow_h
149
150#include "vtkEventData.h" // for enums
151#include "vtkNew.h" // For vtkNew
152#include "vtkRenderingCoreModule.h" // For export macro
153#include "vtkSmartPointer.h" // For vtkSmartPointer
154#include "vtkWindow.h"
155#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
156
157VTK_ABI_NAMESPACE_BEGIN
158class vtkCollection;
159class vtkFloatArray;
161class vtkMatrix4x4;
162class vtkProp;
165class vtkRenderer;
169
170// lets define the different types of stereo
171#define VTK_STEREO_CRYSTAL_EYES 1
172#define VTK_STEREO_RED_BLUE 2
173#define VTK_STEREO_INTERLACED 3
174#define VTK_STEREO_LEFT 4
175#define VTK_STEREO_RIGHT 5
176#define VTK_STEREO_DRESDEN 6
177#define VTK_STEREO_ANAGLYPH 7
178#define VTK_STEREO_CHECKERBOARD 8
179#define VTK_STEREO_SPLITVIEWPORT_HORIZONTAL 9
180#define VTK_STEREO_FAKE 10
181#define VTK_STEREO_EMULATE 11
182#define VTK_STEREO_ZSPACE_INSPIRE 12
183
184class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkRenderWindow : public vtkWindow
185{
186public:
188 void PrintSelf(ostream& os, vtkIndent indent) override;
189
196
200 virtual void AddRenderer(vtkRenderer*);
201
206
211
215 static const char* GetRenderLibrary();
216
220 virtual const char* GetRenderingBackend();
221
227
232
241
243
246 vtkGetMacro(CapturingGL2PSSpecialProps, int);
248
253 void Render() override;
254
259 virtual void Start() {}
260
264 virtual void End() {}
265
272 virtual void Initialize() {}
273
275
278 vtkGetMacro(Initialized, bool);
280
284 virtual void Finalize() {}
285
291 virtual void Frame() {}
292
298 virtual void WaitForCompletion() {}
299
304 virtual void CopyResultFrame();
305
312
314
317 virtual void SetFullScreen(vtkTypeBool) {}
318 vtkGetMacro(FullScreen, vtkTypeBool);
319 vtkBooleanMacro(FullScreen, vtkTypeBool);
321
323
327 vtkGetMacro(Coverable, vtkTypeBool);
328 vtkBooleanMacro(Coverable, vtkTypeBool);
329 virtual void SetCoverable(vtkTypeBool coverable);
331
333
339 virtual void SetStereoCapableWindow(vtkTypeBool capable);
341
343
364 vtkGetMacro(StereoType, int);
365 void SetStereoType(int);
381
383
387 static const char* GetStereoTypeAsString(int type);
389
391
396 vtkBooleanMacro(StereoRender, vtkTypeBool);
398
400
405 vtkBooleanMacro(AlphaBitPlanes, vtkTypeBool);
407
409
415 vtkBooleanMacro(PointSmoothing, vtkTypeBool);
417
419
425 vtkBooleanMacro(LineSmoothing, vtkTypeBool);
427
429
435 vtkBooleanMacro(PolygonSmoothing, vtkTypeBool);
437
442 virtual void StereoUpdate();
443
448 virtual void StereoMidpoint();
449
454 virtual void StereoRenderComplete();
455
457
464 vtkSetClampMacro(AnaglyphColorSaturation, float, 0.0f, 1.0f);
465 vtkGetMacro(AnaglyphColorSaturation, float);
467
469
483 vtkSetVector2Macro(AnaglyphColorMask, int);
484 vtkGetVectorMacro(AnaglyphColorMask, int, 2);
486
492 virtual void WindowRemap() {}
493
495
500 vtkBooleanMacro(SwapBuffers, vtkTypeBool);
502
504
516 virtual int SetPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, unsigned char* /*data*/,
517 int /*front*/, int /*right*/ = 0)
518 {
519 return 0;
520 }
521 virtual int SetPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/,
522 vtkUnsignedCharArray* /*data*/, int /*front*/, int /*right*/ = 0)
523 {
524 return 0;
525 }
526
527
529
536 virtual float* GetRGBAPixelData(
537 int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, int /*front*/, int /*right*/ = 0)
538 {
539 return nullptr;
540 }
542 virtual int GetRGBAPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, int /*front*/,
543 vtkFloatArray* /*data*/, int /*right*/ = 0)
544 {
545 return 0;
546 }
547 virtual int SetRGBAPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, float*, int /*front*/,
548 int /*blend*/ = 0, int /*right*/ = 0)
549 {
550 return 0;
551 }
552 virtual int SetRGBAPixelData(
553 int, int, int, int, vtkFloatArray*, int, int /*blend*/ = 0, int /*right*/ = 0)
554 {
555 return 0;
556 }
557 virtual void ReleaseRGBAPixelData(float* /*data*/) {}
558 virtual unsigned char* GetRGBACharPixelData(
559 int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, int /*front*/, int /*right*/ = 0)
560 {
561 return nullptr;
562 }
564 virtual int GetRGBACharPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, int /*front*/,
565 vtkUnsignedCharArray* /*data*/, int /*right*/ = 0)
566 {
567 return 0;
568 }
569 virtual int SetRGBACharPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/,
570 unsigned char* /*data*/, int /*front*/, int /*blend*/ = 0, int /*right*/ = 0)
571 {
572 return 0;
573 }
574 virtual int SetRGBACharPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/,
575 vtkUnsignedCharArray* /*data*/, int /*front*/, int /*blend*/ = 0, int /*right*/ = 0)
576 {
577 return 0;
578 }
579
580
582
587 virtual float* GetZbufferData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/) { return nullptr; }
588 virtual int GetZbufferData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, float* /*z*/)
589 {
590 return 0;
591 }
593 virtual int GetZbufferData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, vtkFloatArray* /*z*/)
594 {
595 return 0;
596 }
597 virtual int SetZbufferData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, float* /*z*/)
598 {
599 return 0;
600 }
601 virtual int SetZbufferData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, vtkFloatArray* /*z*/)
602 {
603 return 0;
604 }
605 float GetZbufferDataAtPoint(int x, int y)
606 {
607 float value = 1.0f;
608 this->GetZbufferData(x, y, x, y, &value);
609 return value;
610 }
611
612
614
617 vtkGetMacro(NeverRendered, int);
619
621
625 vtkGetMacro(AbortRender, int);
626 vtkSetMacro(AbortRender, int);
627 vtkGetMacro(InAbortCheck, int);
628 vtkSetMacro(InAbortCheck, int);
629 virtual int CheckAbortStatus();
631
638 virtual vtkTypeBool GetEventPending() { return 0; }
639
643 virtual int CheckInRenderStatus() { return this->InRender; }
644
648 virtual void ClearInRenderStatus() { this->InRender = 0; }
649
651
659 virtual void SetDesiredUpdateRate(double);
660 vtkGetMacro(DesiredUpdateRate, double);
662
664
670 vtkGetMacro(NumberOfLayers, int);
671 vtkSetClampMacro(NumberOfLayers, int, 1, VTK_INT_MAX);
673
675
680
685
690 void UnRegister(vtkObjectBase* o) override;
691
693
696 void SetDisplayId(void*) override {}
697 void SetWindowId(void*) override {}
698 virtual void SetNextWindowId(void*) {}
699 void SetParentId(void*) override {}
700 void* GetGenericDisplayId() override { return nullptr; }
701 void* GetGenericWindowId() override { return nullptr; }
702 void* GetGenericParentId() override { return nullptr; }
703 void* GetGenericContext() override { return nullptr; }
704 void* GetGenericDrawable() override { return nullptr; }
705 void SetWindowInfo(const char*) override {}
706 virtual void SetNextWindowInfo(const char*) {}
707 void SetParentInfo(const char*) override {}
709
714 virtual bool InitializeFromCurrentContext() { return false; }
715
717
726 virtual bool GetPlatformSupportsRenderWindowSharing() { return false; }
728
733 virtual bool IsCurrent() { return false; }
734
740 virtual void SetForceMakeCurrent() {}
741
745 virtual const char* ReportCapabilities() { return "Not Implemented"; }
746
750 virtual int SupportsOpenGL() { return 0; }
751
755 virtual vtkTypeBool IsDirect() { return 0; }
756
761 virtual int GetDepthBufferSize() { return 0; }
762
767 virtual int GetColorBufferSizes(int* /*rgba*/) { return 0; }
768
770
775 virtual void SetMultiSamples(int);
776 vtkGetMacro(MultiSamples, int);
778
780
785 vtkBooleanMacro(StencilCapable, vtkTypeBool);
787
789
795 vtkSetMacro(DeviceIndex, int);
796 vtkGetMacro(DeviceIndex, int);
798
802 virtual int GetNumberOfDevices() { return 0; }
803
805
809 vtkGetMacro(UseSRGBColorSpace, bool);
810 vtkSetMacro(UseSRGBColorSpace, bool);
811 vtkBooleanMacro(UseSRGBColorSpace, bool);
813
814 enum : vtkTypeUInt16
815 {
817 };
818
820
828 virtual void SetPhysicalViewDirection(double, double, double);
829 virtual void SetPhysicalViewDirection(double[3]);
830 vtkGetVector3Macro(PhysicalViewDirection, double);
832
834
842 virtual void SetPhysicalViewUp(double, double, double);
843 virtual void SetPhysicalViewUp(double[3]);
844 vtkGetVector3Macro(PhysicalViewUp, double);
846
848
856 virtual void SetPhysicalTranslation(double, double, double);
857 virtual void SetPhysicalTranslation(double[3]);
858 vtkGetVector3Macro(PhysicalTranslation, double);
860
862
871 virtual void SetPhysicalScale(double);
872 vtkGetMacro(PhysicalScale, double);
874
882
889
897 vtkEventDataDevice device, vtkMatrix4x4* deviceToWorldMatrix);
898
900
906 vtkGetMacro(EnableTranslucentSurface, bool);
907 vtkSetMacro(EnableTranslucentSurface, bool);
908 vtkBooleanMacro(EnableTranslucentSurface, bool);
910
912
919
920protected:
922 ~vtkRenderWindow() override;
923
924 virtual void DoStereoRender();
925
930 int OldScreen[5];
954
956
961
963
964 // -Z axis of the Physical to World matrix
965 double PhysicalViewDirection[3] = { 0.0, 0.0, -1.0 };
966 // Y axis of the Physical to World matrix
967 double PhysicalViewUp[3] = { 0.0, 1.0, 0.0 };
968 // Inverse of the translation component of the Physical to World matrix, in mm
969 double PhysicalTranslation[3] = { 0.0, 0.0, 0.0 };
970 // Scale of the Physical to World matrix
971 double PhysicalScale = 1.0;
972
974
975 bool Initialized = false;
976
978
979private:
980 vtkRenderWindow(const vtkRenderWindow&) = delete;
981 void operator=(const vtkRenderWindow&) = delete;
982
983 vtkNew<vtkStereoCompositor> StereoCompositor;
984};
985
986VTK_ABI_NAMESPACE_END
987#endif
create and manipulate ordered lists of objects
dynamic, self-adjusting array of float
create a window for renderers to draw into
a simple class to control print indentation
Definition vtkIndent.h:108
represent and manipulate 4x4 transformation matrices
Allocate and hold a VTK object.
Definition vtkNew.h:168
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:68
Asynchronously measures GPU execution times for a series of events.
platform-independent render window interaction including picking and frame rate control.
void * GetGenericDrawable() override
Dummy stubs for vtkWindow API.
void SetStereoTypeToDresden()
Set/Get what type of stereo rendering to use.
virtual void SetDesiredUpdateRate(double)
Set/Get the desired update rate.
virtual void ReleaseRGBAPixelData(float *)
Same as Get/SetPixelData except that the image also contains an alpha component.
virtual void SetPhysicalViewUp(double, double, double)
Set/get physical coordinate system in world coordinate system.
virtual int GetZbufferData(int, int, int, int, float *)
Set/Get the zbuffer data from the frame buffer.
void SetStereoType(int)
Set/Get what type of stereo rendering to use.
virtual void SetPhysicalTranslation(double, double, double)
Set/get physical coordinate system in world coordinate system.
virtual int SetRGBACharPixelData(int, int, int, int, unsigned char *, int, int=0, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
virtual int SetZbufferData(int, int, int, int, float *)
Set/Get the zbuffer data from the frame buffer.
void SetStereoTypeToRedBlue()
Set/Get what type of stereo rendering to use.
virtual VTK_MAYSUSPEND int GetRGBAPixelData(int, int, int, int, int, vtkFloatArray *, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
vtkNew< vtkRenderTimerLog > RenderTimer
void SetParentInfo(const char *) override
Dummy stubs for vtkWindow API.
virtual void Finalize()
Finalize the rendering process.
virtual VTK_MAYSUSPEND int GetRGBACharPixelData(int, int, int, int, int, vtkUnsignedCharArray *, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
void * GetGenericParentId() override
Dummy stubs for vtkWindow API.
virtual bool GetPlatformSupportsRenderWindowSharing()
Set/Get an already existing window that this window should share data with if possible.
virtual void SetHardwareWindow(vtkHardwareWindow *win)
Set/Get the platform hardware window associated with this window.
virtual const char * GetRenderingBackend()
What rendering backend has the user requested.
virtual vtkHardwareWindow * GetHardwareWindow()
Set/Get the platform hardware window associated with this window.
double AbortCheckTime
The universal time since the last abort check occurred.
virtual void SetPhysicalTranslation(double[3])
Set/get physical coordinate system in world coordinate system.
virtual int SetRGBAPixelData(int, int, int, int, float *, int, int=0, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
virtual int SetPixelData(int, int, int, int, unsigned char *, int, int=0)
Set/Get the pixel data of an image, transmitted as RGBRGBRGB.
virtual void AddRenderer(vtkRenderer *)
Add a renderer to the list of renderers.
virtual const char * ReportCapabilities()
Get report of capabilities for the render window.
virtual void GetPhysicalToWorldMatrix(vtkMatrix4x4 *matrix)
Get physical to world transform matrix.
vtkTypeBool LineSmoothing
virtual void SetCoverable(vtkTypeBool coverable)
Set/Get whether windows should be coverable (as opposed to always on top).
double PhysicalTranslation[3]
vtkRenderWindowInteractor * Interactor
void SetStereoTypeToFake()
Set/Get what type of stereo rendering to use.
virtual bool GetDeviceToWorldMatrixForDevice(vtkEventDataDevice device, vtkMatrix4x4 *deviceToWorldMatrix)
Store in deviceToWorldMatrix the matrix that goes from device coordinates to world coordinates.
static const char * GetStereoTypeAsString(int type)
Returns the stereo type as a string.
vtkTypeBool FullScreen
void SetStereoTypeToInterlaced()
Set/Get what type of stereo rendering to use.
static vtkRenderWindow * New()
Construct an instance of vtkRenderWindow with its screen size set to 300x300, borders turned on,...
void CaptureGL2PSSpecialProps(vtkCollection *specialProps)
The GL2PS exporter must handle certain props in a special way (e.g.
vtkTypeBool HasRenderer(vtkRenderer *)
Query if a renderer is in the list of renderers.
float GetZbufferDataAtPoint(int x, int y)
Set/Get the zbuffer data from the frame buffer.
virtual void StereoRenderComplete()
Handles work required once both views have been rendered when using stereo rendering.
virtual void SetStereoCapableWindow(vtkTypeBool capable)
Prescribe that the window be created in a stereo-capable mode.
virtual int SetPixelData(int, int, int, int, vtkUnsignedCharArray *, int, int=0)
Set/Get the pixel data of an image, transmitted as RGBRGBRGB.
vtkTypeBool PolygonSmoothing
virtual vtkRenderWindowInteractor * MakeRenderWindowInteractor()
Create an interactor to control renderers in this window.
virtual void SetPhysicalToWorldMatrix(vtkMatrix4x4 *matrix)
Set physical to world transform matrix.
virtual int GetDepthBufferSize()
This method should be defined by the subclass.
void SetStereoRender(vtkTypeBool stereo)
Turn on/off stereo rendering.
void SetStereoTypeToLeft()
Set/Get what type of stereo rendering to use.
virtual void SetFullScreen(vtkTypeBool)
Turn on/off rendering full screen window size.
virtual void SetNextWindowId(void *)
Dummy stubs for vtkWindow API.
virtual bool InitializeFromCurrentContext()
Initialize the render window from the information associated with the currently activated OpenGL cont...
void SetWindowInfo(const char *) override
Dummy stubs for vtkWindow API.
virtual void DoStereoRender()
virtual void SetPhysicalViewDirection(double, double, double)
Set/get physical coordinate system in world coordinate system.
virtual VTK_MAYSUSPEND void WaitForCompletion()
Block the thread until the actual rendering is finished().
virtual void SetNextWindowInfo(const char *)
Dummy stubs for vtkWindow API.
virtual VTK_MAYSUSPEND void Start()
Start the rendering process for a frame.
virtual VTK_MAYSUSPEND int GetZbufferData(int, int, int, int, vtkFloatArray *)
Set/Get the zbuffer data from the frame buffer.
virtual void ClearInRenderStatus()
Clear status (after an exception was thrown for example)
virtual float * GetZbufferData(int, int, int, int)
Set/Get the zbuffer data from the frame buffer.
vtkTypeBool Coverable
void Render() override
Ask each renderer owned by this RenderWindow to render its image and synchronize this process.
void * GetGenericContext() override
Dummy stubs for vtkWindow API.
vtkSmartPointer< vtkUnsignedCharArray > ResultFrame
void SetParentId(void *) override
Dummy stubs for vtkWindow API.
virtual void SetInteractor(vtkRenderWindowInteractor *)
Set the interactor to the render window.
virtual VTK_MAYSUSPEND void Initialize()
Initializes the rendering process.
virtual void End()
Update the system, if needed, at end of render process.
virtual void SetPhysicalViewDirection(double[3])
Set/get physical coordinate system in world coordinate system.
virtual int CheckAbortStatus()
This is a flag that can be set to interrupt a rendering that is in progress.
virtual void SetForceMakeCurrent()
If called, allow MakeCurrent() to skip cache-check when called.
void SetWindowId(void *) override
Dummy stubs for vtkWindow API.
virtual void SetPhysicalViewUp(double[3])
Set/get physical coordinate system in world coordinate system.
void SetStereoTypeToCheckerboard()
Set/Get what type of stereo rendering to use.
virtual VTK_MAYSUSPEND void Frame()
A termination method performed at the end of the rendering process to do things like swapping buffers...
double PhysicalViewDirection[3]
void UnRegister(vtkObjectBase *o) override
This Method detects loops of RenderWindow<->Interactor, so objects are freed properly.
virtual int SupportsOpenGL()
Does this render window support OpenGL?
vtkTypeBool AlphaBitPlanes
vtkRenderWindow * SharedRenderWindow
virtual void StereoUpdate()
Update the system, if needed, due to stereo rendering.
virtual void SetMultiSamples(int)
Set / Get the number of multisamples to use for hardware antialiasing.
void SetStereoTypeToAnaglyph()
Set/Get what type of stereo rendering to use.
virtual void CopyResultFrame()
Performed at the end of the rendering process to generate image.
virtual int SetRGBACharPixelData(int, int, int, int, vtkUnsignedCharArray *, int, int=0, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
vtkRendererCollection * Renderers
virtual unsigned char * GetRGBACharPixelData(int, int, int, int, int, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
virtual int SetRGBAPixelData(int, int, int, int, vtkFloatArray *, int, int=0, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
vtkTypeBool StencilCapable
static const char * GetRenderLibrary()
What rendering library has the user requested.
void * GetGenericWindowId() override
Dummy stubs for vtkWindow API.
virtual void WindowRemap()
Remap the rendering window.
void RemoveRenderer(vtkRenderer *)
Remove a renderer from the list of renderers.
virtual int SetZbufferData(int, int, int, int, vtkFloatArray *)
Set/Get the zbuffer data from the frame buffer.
vtkTypeBool StereoRender
virtual int GetColorBufferSizes(int *)
Get the size of the color buffer.
vtkGetNewMacro(RenderTimer, vtkRenderTimerLog)
Get the render timer log for this window.
virtual void SetSharedRenderWindow(vtkRenderWindow *)
Set/Get an already existing window that this window should share data with if possible.
vtkTypeBool PointSmoothing
vtkTypeBool StereoCapableWindow
virtual vtkTypeBool GetEventPending()
Check to see if a mouse button has been pressed.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void StereoMidpoint()
Intermediate method performs operations required between the rendering of the left and right eye.
void SetDisplayId(void *) override
Dummy stubs for vtkWindow API.
vtkSmartPointer< vtkHardwareWindow > HardwareWindow
void SetStereoTypeToEmulate()
Set/Get what type of stereo rendering to use.
void SetStereoTypeToSplitViewportHorizontal()
Set/Get what type of stereo rendering to use.
virtual int GetNumberOfDevices()
Returns the number of devices (graphics cards) on a system.
vtkSmartPointer< vtkUnsignedCharArray > StereoBuffer
virtual float * GetRGBAPixelData(int, int, int, int, int, int=0)
Same as Get/SetPixelData except that the image also contains an alpha component.
virtual vtkTypeBool IsDirect()
Is this render window using hardware acceleration?
vtkRendererCollection * GetRenderers()
Return the collection of renderers in the render window.
void SetStereoTypeToCrystalEyes()
Set/Get what type of stereo rendering to use.
vtkTypeBool SwapBuffers
double PhysicalViewUp[3]
virtual void SetPhysicalScale(double)
Set/get physical coordinate system in world coordinate system.
void SetStereoTypeToRight()
Set/Get what type of stereo rendering to use.
virtual int CheckInRenderStatus()
Are we rendering at the moment.
void * GetGenericDisplayId() override
Dummy stubs for vtkWindow API.
virtual bool IsCurrent()
Tells if this window is the current graphics context for the calling thread.
const char * GetStereoTypeAsString()
Returns the stereo type as a string.
an ordered list of renderers
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
helper class to generate composited stereo images.
dynamic, self-adjusting array of unsigned char
int vtkTypeBool
Definition vtkABI.h:64
vtkEventDataDevice
platform-independent event data structures
#define VTK_STEREO_ANAGLYPH
#define VTK_STEREO_SPLITVIEWPORT_HORIZONTAL
#define VTK_STEREO_DRESDEN
#define VTK_STEREO_CHECKERBOARD
#define VTK_STEREO_CRYSTAL_EYES
#define VTK_STEREO_RIGHT
#define VTK_STEREO_FAKE
#define VTK_STEREO_RED_BLUE
#define VTK_STEREO_INTERLACED
#define VTK_STEREO_EMULATE
#define VTK_STEREO_LEFT
#define VTK_INT_MAX
Definition vtkType.h:192
#define VTK_MAYSUSPEND
#define VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)