code: def getDeviceToAbsoluteTrackingPose(self, eOrigin, fPredictedSecondsToPhotonsFromNow, unTrackedDevicePoseArrayCount, pTrackedDevicePoseArray=None):
          
  
          fn = self.function_table.getDeviceToAbsoluteTrackingPose
          if pTrackedDevicePoseArray is None:
              pTrackedDevicePoseArray = (TrackedDevicePose_t * unTrackedDevicePoseArrayCount)()
          pTrackedDevicePoseArray = cast(pTrackedDevicePoseArray, POINTER(TrackedDevicePose_t))
          fn(eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount)
          return pTrackedDevicePoseArray
docs: The pose that the tracker thinks that the HMD will be in at the specified number of seconds into the 
          future. Pass 0 to get the state at the instant the method is called. Most of the time the application should
          calculate the time until the photons will be emitted from the display and pass that time into the method.
          * This is roughly analogous to the inverse of the view matrix in most applications, though 
          many games will need to do some additional rotation or translation on top of the rotation
          and translation provided by the head pose.
          * For devices where bPoseIsValid is true the application can use the pose to position the device
          in question. The provided array can be any size up to k_unMaxTrackedDeviceCount. 
          * Seated experiences should call this method with TrackingUniverseSeated and receive poses relative
          to the seated zero pose. Standing experiences should call this method with TrackingUniverseStanding 
          and receive poses relative to the Chaperone Play Area. TrackingUniverseRawAndUncalibrated should 
          probably not be used unless the application is the Chaperone calibration tool itself, but will provide
          poses relative to the hardware-specific coordinate system in the driver.