using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Emgu.CV;
using Emgu.CV.Structure;
using EpsonC3Com;

namespace RoboticManipulatorTracking
{
    interface TrackerInterface
    {
        double cameraAngleX { get; set; }
        double cameraAngleY { get; set; }
        double objectDistToKeep { get; set; }
        double sphereRadius { get; set; }
        bool initialized { get; set; }

        bool initialize(Image<Bgr, byte> img);
        void SetEfectorCameraMatrix(float roll_E_C, float pitch_E_C, float yaw_E_C, float x_E_C, float y_E_C, float z_E_C);
        bool GetNewEfectorCoordiantes(Image<Bgr, byte> img, double objectDist, float roll_B_E, float pitch_B_E, float yaw_B_E, float x_B_E, float y_B_E, float z_B_E, out RobCoord.XYZ newSysCoor, double cameraAngleX = 60.7974554 * Math.PI / 180, double cameraAngleY = 47.498989 * Math.PI / 180, double objectDistToKeep = 0, double sphereRadius = 600);
        bool GetNewEfectorCoordiantes(Image<Bgr, byte> img, double objectDist, float roll_B_E, float pitch_B_E, float yaw_B_E, float x_B_E, float y_B_E, float z_B_E, out RobCoord.XYZ newSysCoor);
    }
}
