public JointsResult(JointsResult other)
            {
                MoveId = other.MoveId;

                Joints = new double[other.Joints.Length];
                Array.Copy(other.Joints, Joints, other.Joints.Length);

                Speeds = new double[other.Speeds.Length];
                Array.Copy(other.Speeds, Speeds, other.Speeds.Length);

                Accelerations = new double[other.Accelerations.Length];
                Array.Copy(other.Accelerations, Accelerations, other.Accelerations.Length);

                Error      = other.Error;
                TimeStep   = other.TimeStep;
                LinearStep = other.LinearStep;
                JointStep  = other.JointStep;
            }
            public JointsResult(JointsResult other)
            {
                MoveId = other.MoveId;

                Joints = new double[other.Joints.Length];
                Array.Copy(other.Joints, Joints, other.Joints.Length);

                Speeds = new double[other.Speeds.Length];
                Array.Copy(other.Speeds, Speeds, other.Speeds.Length);

                Accelerations = new double[other.Accelerations.Length];
                Array.Copy(other.Accelerations, Accelerations, other.Accelerations.Length);

                SimulationErrorFlags    = other.SimulationErrorFlags;
                PathSimulationErrorCode = other.PathSimulationErrorCode;
                TimeStep   = other.TimeStep;
                LinearStep = other.LinearStep;
                JointStep  = other.JointStep;
            }