using System; using MathNet.Numerics.LinearAlgebra.Single; namespace bbiwarg { public enum FingerStatus { Inactive, Detected, Tracked } public enum HandSide { Unknown, Left, Right } /* * Interface get data from a camera or a video file. * Completely independent of iisu. */ interface IVideoDataSource { /* * Initializes the data source. */ void init(); /* * Starts the recording of data. */ void start(); /* * Stops the recording of data. */ void stop(); /* * Updates the data for the current frame. * Needs to be called before any method to read data. */ void updateFrame(); /* * Lets the data source process the next frame. */ void releaseFrame(); /* * Returns true iff new data is generated. * (e.g camera is running or video hasn't ended) */ bool isActive(); int getFrameRate(); DepthImage getDepthImage(); /* * all handIndices have to be 1 or 2 */ bool isHandOpen(uint handIndex); Vector getPalmPosition3D(uint handIndex); Vector getTipPosition3D(uint handIndex); Vector getForearmPosition3D(uint handIndex); Vector getPalmNormal3D(uint handIndex); FingerStatus[] getFingerStatus(uint handIndex); Vector[] getFingerTipPositions3D(uint handIndex); HandSide getHandSide(uint handIndex); } }