32 #ifndef vtkZSpaceSDKManager_h
33 #define vtkZSpaceSDKManager_h
37 #include "vtkRenderingZSpaceModule.h"
41 VTK_ABI_NAMESPACE_BEGIN
47 class vtkPVZSpaceView;
94 const double bounds[6],
double position[3],
double viewUp[3]) = 0;
123 vtkGetMacro(WindowX,
int);
129 vtkGetMacro(WindowY,
int);
134 vtkGetMacro(WindowWidth,
int);
139 vtkGetMacro(WindowHeight,
int);
144 vtkGetMacro(StylusTargets,
int);
149 vtkGetMacro(HeadTargets,
int);
154 vtkGetMacro(SecondaryTargets,
int);
160 vtkGetMacro(InterPupillaryDistance,
float);
161 vtkSetClampMacro(InterPupillaryDistance,
float, 0.f, 1.f);
172 vtkGetMacro(ViewerScale,
float);
177 vtkGetMacro(NearPlane,
float);
182 vtkGetMacro(FarPlane,
float);
249 vtkGetMacro(LeftButtonState,
int);
257 vtkGetMacro(MiddleButtonState,
int);
265 vtkGetMacro(RightButtonState,
int);
292 int WindowHeight = 0;
297 int StylusTargets = 0;
301 int SecondaryTargets = 0;
304 float InterPupillaryDistance = 0.056f;
305 float ViewerScale = 1.f;
307 float NearPlane = 0.0001f;
309 float FarPlane = 1000.f;
316 ButtonState* ButtonsState[NumberOfButtons] = { &MiddleButtonState, &RightButtonState,
324 VTK_ABI_NAMESPACE_END
a virtual camera for 3D rendering
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
abstract base class for most VTK objects
create a window for renderers to draw into
Abstract zSpace SDK manager class.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkNew< vtkMatrix4x4 > LeftEyeProjectionMatrix
virtual void EndFrame()=0
Notify the zSpace SDK for the begining/end of a frame (vtkZSpaceCoreCompatibility only)
virtual void SetRenderWindow(vtkRenderWindow *renderWindow)
Set the render windwow the manager makes viewport computations from.
vtkNew< vtkMatrix4x4 > RightEyeProjectionMatrix
static vtkZSpaceSDKManager * GetInstance()
Return the singleton instance (with no reference counting) of a vtkZSpaceCoreSDKManager or vtkZSpaceC...
virtual void InitializeZSpace()=0
Initialize the zSpace SDK and check for zSpace devices : the display, the stylus and the head tracker...
vtkSetEnumMacro(RightButtonState, ButtonState)
Get/Set the state of the right button of the stylus.
void Update()
Update the viewport, the trackers and the camera matrix by calling the zSpace SDK.
vtkMatrix4x4 * GetStereoViewMatrix(bool leftEye)
Get the zSpace view matrix for the right or left eye in row major format (VTK format)
~vtkZSpaceSDKManager() override
vtkNew< vtkMatrix4x4 > CenterEyeProjectionMatrix
vtkNew< vtkMatrix4x4 > StylusMatrixRowMajor
vtkNew< vtkMatrix4x4 > StylusMatrixColMajor
vtkNew< vtkMatrix4x4 > LeftEyeViewMatrix
virtual void UpdateButtonState()=0
Update the stylus buttons state.
virtual void UpdateTrackers()=0
Update the position of the stylus and head trakers.
vtkSetEnumMacro(LeftButtonState, ButtonState)
Get/Set the state of the left button of the stylus.
virtual void UpdateViewport()=0
Update the zSpace viewport position and size based on the position and size of the application window...
vtkMatrix4x4 * GetStereoProjectionMatrix(bool leftEye)
Get the zSpace projection matrix for the right or left eye in row major format (VTK format)
void SetClippingRange(const float nearPlane, const float farPlane)
Set the near and far plane.
virtual void BeginFrame()=0
Notify the zSpace SDK for the begining/end of a frame (vtkZSpaceCoreCompatibility only)
virtual void CalculateFrustumFit(const double bounds[6], double position[3], double viewUp[3])=0
Let zSpace compute the viewer scale, camera position and camera view up from the input bounds.
vtkNew< vtkMatrix4x4 > RightEyeViewMatrix
vtkSetEnumMacro(MiddleButtonState, ButtonState)
Get/Set the state of the middle button of the stylus.
vtkNew< vtkTransform > StylusTransformRowMajor
std::vector< std::string > Displays
virtual void UpdateViewAndProjectionMatrix()=0
Update the zSpace view and projection matrix for each eye.
vtkNew< vtkMatrix4x4 > CenterEyeViewMatrix