32#ifndef vtkZSpaceSDKManager_h 
   33#define vtkZSpaceSDKManager_h 
   37#include "vtkRenderingZSpaceModule.h"  
   41VTK_ABI_NAMESPACE_BEGIN
 
   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,
 
a virtual camera for 3D rendering
 
a simple class to control print indentation
 
represent and manipulate 4x4 transformation matrices
 
Allocate and hold a VTK object.
 
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
 
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.
 
vtkMatrix4x4 * GetStereoViewMatrix(bool leftEye)
Get the zSpace view matrix for the right or left eye in row major format (VTK format)
 
void Update()
Update the viewport, the trackers and the camera matrix by calling the zSpace SDK.
 
~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...
 
void SetClippingRange(const float nearPlane, const float farPlane)
Set the near and far plane.
 
vtkMatrix4x4 * GetStereoProjectionMatrix(bool leftEye)
Get the zSpace projection matrix for the right or left eye in row major format (VTK format)
 
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
 
static vtkZSpaceSDKManager * GetInstance()
Return the singleton instance (with no reference counting) of a vtkZSpaceCoreSDKManager or vtkZSpaceC...
 
virtual void UpdateViewAndProjectionMatrix()=0
Update the zSpace view and projection matrix for each eye.
 
vtkNew< vtkMatrix4x4 > CenterEyeViewMatrix