dwelling act 4 (live motion cap w/ kinect azure)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

168 lines
8.7 KiB

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace com.rfilkov.kinect
{
/// <summary>
/// DepthSensorInterface is the template for all sensor-interface implementations.
/// </summary>
public interface DepthSensorInterface
{
// returns the depth sensor platform
KinectInterop.DepthSensorPlatform GetSensorPlatform();
// returns the device-id of the currently opened sensor
string GetSensorDeviceId();
// returns the type of sensor interface settings
System.Type GetSensorSettingsType();
// returns sensor interface settings
DepthSensorBase.BaseSensorSettings GetSensorSettings(DepthSensorBase.BaseSensorSettings settings);
// sets sensor interface settings
void SetSensorSettings(DepthSensorBase.BaseSensorSettings settings);
// returns the list of available sensors, controlled by this sensor interface
List<KinectInterop.SensorDeviceInfo> GetAvailableSensors();
// opens the given sensor and inits needed resources. returns new sensor-data object
KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth);
// closes the sensor and frees used resources
void CloseSensor(KinectInterop.SensorData sensorData);
// enables or disables the pose stream
void EnablePoseStream(KinectInterop.SensorData sensorData, bool bEnable);
// enables or disables synchronization of frames between the master & sub sensors
bool EnableSensorSync(KinectInterop.SensorData sensorData, bool bEnable);
// returns true if the sensor is master, false if it's standalone or subordinate
bool IsSensorMaster();
// checks if the given sensor frame timestamp is synched with the master or not
bool IsSensorFrameSynched(ulong frameTime, ulong masterTime);
// set minimum & maximum infrared values, used in IR texture generation
void SetMinMaxInfraredValues(float minValue, float maxValue);
// initializes the secondary sensor data, after sensor initialization
void InitSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager);
// checks whether the sensor data is valid. can wait for valid data, as in case of the net-interface
bool IsSensorDataValid();
// returns the body tracker orientation angle (Z-angle), in degrees
float GetBodyTrackerOrientationAngle();
// polls data frames in the sensor-specific thread
void PollSensorFrames(KinectInterop.SensorData sensorData);
// polls coordinate transformation frames and data in the sensor-specific thread
void PollCoordTransformFrames(KinectInterop.SensorData sensorData);
// post-processes the sensor data after polling
void PollSensorFrameTimes(KinectInterop.SensorData sensorData);
// updates sensor data, if needed
// returns true if update is successful, false otherwise
bool UpdateSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager, bool isPlayMode);
// updates transformed frame textures, if needed
// returns true if update is successful, false otherwise
bool UpdateTransformedFrameTextures(KinectInterop.SensorData sensorData, KinectManager kinectManager);
// updates the selected sensor textures, if needed
// returns true if update is successful, false otherwise
bool UpdateSensorTextures(KinectInterop.SensorData sensorData, KinectManager kinectManager, ulong prevDepthFrameTime, ulong prevIrFrameTime);
// returns sensor transform. Please note transform updates depend on the getPoseFrames-KM setting.
Transform GetSensorTransform();
// returns depth-to-color-camera matrix
Matrix4x4 GetDepthToColorCameraMatrix();
// returns sensor-to-world matrix
Matrix4x4 GetSensorToWorldMatrix();
// sets sensor-to-world matrix
void SetSensorToWorldMatrix(Vector3 sensorWorldPosition, Quaternion sensorWorldRotation, bool isUpdateTransform);
// sets sensor-to-world matrix
void SetSensorToWorldMatrix(Matrix4x4 mSensor2World, bool isUpdateTransform);
// returns the depth camera space table
Vector3[] GetDepthCameraSpaceTable(KinectInterop.SensorData sensorData);
// returns the color camera space table
Vector3[] GetColorCameraSpaceTable(KinectInterop.SensorData sensorData);
// returns depth camera space coordinates for the given depth image point
Vector3 MapDepthPointToSpaceCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal);
// returns depth image coordinates for the given depth camera space point
Vector2 MapSpacePointToDepthCoords(KinectInterop.SensorData sensorData, Vector3 spacePos);
// returns color camera space coordinates for the given color image point
Vector3 MapColorPointToSpaceCoords(KinectInterop.SensorData sensorData, Vector2 colorPos, ushort depthVal);
// returns color image coordinates for the given color camera space point
Vector2 MapSpacePointToColorCoords(KinectInterop.SensorData sensorData, Vector3 spacePos);
// returns color image coordinates for the given depth image point
Vector2 MapDepthPointToColorCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal);
// returns depth image coordinates for the given color image point
Vector2 MapColorPointToDepthCoords(KinectInterop.SensorData sensorData, Vector2 colorPos, int minDist, int maxDist);
// returns the anchor position of the background raw image
Vector2 GetBackgroundImageAnchorPos(KinectInterop.SensorData sensorData);
// returns the resolution in pixels of the point-cloud textures
Vector2Int GetPointCloudTexResolution(KinectInterop.SensorData sensorData);
// returns the net-sensor-data for network exchange
KinectInterop.NetSensorData GetNetSensorData(KinectInterop.SensorData sensorData);
// sets the local sensor data from the network exchange data
void SetNetSensorData(KinectInterop.NetSensorData netSensorData, KinectInterop.SensorData sensorData, KinectManager kinectManager);
// returns the sensor pose data for network exchange
KinectInterop.NetPoseData GetSensorNetPoseData(KinectInterop.SensorData sensorData);
// sets the local sensor pose data from the network exchange data
void SetSensorNetPoseData(KinectInterop.NetPoseData netPoseData, KinectInterop.SensorData sensorData, KinectManager kinectManager);
// enables or disables depth camera color frame processing
void EnableDepthCameraColorFrame(KinectInterop.SensorData sensorData, bool isEnable);
// returns the latest depth camera color frame texture along with the last frame time
Texture GetDepthCameraColorFrameTexture(KinectInterop.SensorData sensorData, ref Texture2D copyToTex2D, ref ulong frameTime);
// enables or disables color camera depth frame processing
void EnableColorCameraDepthFrame(KinectInterop.SensorData sensorData, bool isEnable);
// returns the latest color camera depth frame along with the last frame time. the returned data is ushort array.
ushort[] GetColorCameraDepthFrame(KinectInterop.SensorData sensorData, ref ushort[] copyToFrame, ref ulong frameTime);
// returns the latest color camera depth frame along with the last frame time. the returned data frame is byte array.
byte[] GetColorCameraDepthFrameBytes(KinectInterop.SensorData sensorData, ref byte[] copyToFrame, ref ulong frameTime);
// enables or disables color camera infrared frame processing
void EnableColorCameraInfraredFrame(KinectInterop.SensorData sensorData, bool isEnableRawData, bool isEnableTexture);
// returns the latest color camera infrared frame along with the last frame time. the returned data is ushort array.
ushort[] GetColorCameraInfraredFrame(KinectInterop.SensorData sensorData, ref ushort[] copyToFrame, ref ulong frameTime);
// returns the latest color camera infrared frame texture along with the last frame time
Texture GetColorCameraInfraredFrameTexture(KinectInterop.SensorData sensorData, ref Texture2D copyToTex2D, ref ulong frameTime);
// enables or disables color camera body-index frame processing
void EnableColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, bool isEnable);
// returns the latest color camera body-index frame along with the last frame time
byte[] GetColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, ref byte[] copyToFrame, ref ulong frameTime);
}
}