using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MathNet.Numerics.LinearAlgebra.Single; namespace bbiwarg.InputProviders { public enum DetectionStatus { Inactive, Detected, Tracked } public enum HandSide { Unknown, Left, Right } interface IInputProvider { void init(); void start(); void stop(); void updateFrame(); void releaseFrame(); float getFrameRate(); float getHFOV(); float getVFOV(); bool isActive(); InputFrame getInputFrame(); /* * all handIndices have to be 1 or 2 */ bool isHandOpen(uint handIndex); Vector getPalmPosition3D(uint handIndex); Vector getPalmPosition2D(uint handIndex); Vector getTipPosition3D(uint handIndex); Vector getForearmPosition3D(uint handIndex); Vector getPalmNormal3D(uint handIndex); DetectionStatus[] getFingerStatus(uint handIndex); DetectionStatus getHandStatus(uint handIndex); Vector[] getFingerTipPositions3D(uint handIndex); Vector[] getFingerTipPositions2D(uint handIndex); HandSide getHandSide(uint handIndex); } }