public void LoadData(IMouseFrame frame, IWhiskerVelocityFrame previousFrame, IFrameRateSettings frameRateSettings, IUnitSettings unitSettings)
        {
            TargetFrame = frame;

            int numberOfWhiskers = TargetFrame.Whiskers.Length;

            int previousFrameCounter         = 0;
            ISingleWhiskerVelocity nosePoint = null;

            for (int i = 0; i < numberOfWhiskers; i++)
            {
                IWhisker whisker = TargetFrame.Whiskers[i];

                ISingleWhiskerVelocity singleWhiskerVelocity = ModelResolver.Resolve <ISingleWhiskerVelocity>();
                singleWhiskerVelocity.Whisker           = whisker;
                singleWhiskerVelocity.FrameRateSettings = frameRateSettings;
                singleWhiskerVelocity.UnitSettings      = unitSettings;
                singleWhiskerVelocity.NosePoint         = nosePoint;

                if (whisker.WhiskerId == -1)
                {
                    nosePoint = singleWhiskerVelocity;
                }

                if (previousFrame != null)
                {
                    singleWhiskerVelocity.PreviousFrame = previousFrame.Targets[previousFrameCounter];
                }

                Targets.Add(singleWhiskerVelocity);
                previousFrameCounter++;
            }
        }
        public void LoadData(IMouseFrame frame)
        {
            TargetFrame = frame;

            IAngleTypeBase angleType;
            IWhisker       noseWhisker        = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == -1);
            IWhisker       orientationWhisker = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == 0);

            if (noseWhisker == null || orientationWhisker == null)
            {
                //can't generate centerline, use vertical
                angleType = ModelResolver.Resolve <IVertical>();
            }
            else
            {
                ICenterLine centerLine = ModelResolver.Resolve <ICenterLine>();
                centerLine.NosePoint        = noseWhisker.WhiskerPoints[0];
                centerLine.OrientationPoint = orientationWhisker.WhiskerPoints[0];
                angleType = centerLine;
            }


            foreach (IWhisker whisker in TargetFrame.Whiskers)
            {
                if (whisker.IsGenericPoint)
                {
                    continue;
                }

                ISingleWhiskerAngle singleWhiskerCurve = ModelResolver.Resolve <ISingleWhiskerAngle>();
                singleWhiskerCurve.Whisker   = whisker;
                singleWhiskerCurve.AngleType = angleType;
                Targets.Add(singleWhiskerCurve);
            }
        }
Exemple #3
0
 public MouseFrameViewModel(IMouseFrame model)
 {
     Model = model;
     if (Model.Whiskers != null)
     {
         Whiskers = model.Whiskers.Select(x => new WhiskerViewModel(x)).ToArray();
     }
 }
 public MouseFrameViewModel(IMouseFrame model)
 {
     Model = model;
     if (Model.Whiskers != null)
     {
         Whiskers = model.Whiskers.Select(x => new WhiskerViewModel(x)).ToArray();
     }
 }
Exemple #5
0
        public override void LoadData(IMouseFrame frame)
        {
            IWhisker nose        = frame.Whiskers.FirstOrDefault(x => x.WhiskerId == -1);
            IWhisker orientation = frame.Whiskers.FirstOrDefault(x => x.WhiskerId == 0);

            if (nose == null || orientation == null)
            {
                return;
            }

            NosePoint        = nose.WhiskerPoints[0];
            OrientationPoint = orientation.WhiskerPoints[0];
        }
Exemple #6
0
        public IWhisker GetWhisker(IMouseFrame parentFrame)
        {
            Whisker whisker = new Whisker();

            whisker.Parent         = parentFrame;
            whisker.WhiskerId      = WhiskerId;
            whisker.WhiskerName    = WhiskerName;
            whisker.IsGenericPoint = IsGenericPoint;
            whisker.WhiskerPoints  = WhiskerPoints.Select(x => x.CreateWhiskerPoint(whisker)).ToArray();
            whisker.DataLoadComplete();

            return(whisker);
        }
        public void LoadData(IMouseFrame frame)
        {
            TargetFrame = frame;
            foreach (IWhisker whisker in TargetFrame.Whiskers)
            {
                if (whisker.IsGenericPoint)
                {
                    continue;
                }

                ISingleWhiskerCurve singleWhiskerCurve = ModelResolver.Resolve <ISingleWhiskerCurve>();
                singleWhiskerCurve.Whisker = whisker;
                Targets.Add(singleWhiskerCurve);
            }
        }
        public void LoadData(IMouseFrame frame, IWhiskerAngularVelocityFrame previousFrame, IFrameRateSettings frameRateSettings)
        {
            TargetFrame = frame;

            IAngleTypeBase angleType;
            IWhisker       noseWhisker        = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == -1);
            IWhisker       orientationWhisker = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == 0);

            if (noseWhisker == null || orientationWhisker == null)
            {
                //can't generate centerline, use vertical
                angleType = ModelResolver.Resolve <IVertical>();
            }
            else
            {
                ICenterLine centerLine = ModelResolver.Resolve <ICenterLine>();
                centerLine.NosePoint        = noseWhisker.WhiskerPoints[0];
                centerLine.OrientationPoint = orientationWhisker.WhiskerPoints[0];
                angleType = centerLine;
            }

            int numberOfWhiskers = TargetFrame.Whiskers.Length;

            int previousFrameCounter = 0;

            for (int i = 0; i < numberOfWhiskers; i++)
            {
                IWhisker whisker = TargetFrame.Whiskers[i];

                if (whisker.IsGenericPoint)
                {
                    continue;
                }

                ISingleWhiskerAngularVelocity singleWhiskerAngularVelocity = ModelResolver.Resolve <ISingleWhiskerAngularVelocity>();
                singleWhiskerAngularVelocity.Whisker   = whisker;
                singleWhiskerAngularVelocity.AngleType = angleType;
                singleWhiskerAngularVelocity.FrameRate = frameRateSettings.OriginalFrameRate;

                if (previousFrame != null)
                {
                    singleWhiskerAngularVelocity.PreviousFrame = previousFrame.Targets[previousFrameCounter];
                }

                Targets.Add(singleWhiskerAngularVelocity);
                previousFrameCounter++;
            }
        }
Exemple #9
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            IMouseFrame mouseFrame = obj as IMouseFrame;

            if (mouseFrame == null)
            {
                return(false);
            }

            return(Equals(mouseFrame));
        }
        public void LoadData(IMouseFrame frame)
        {
            TargetFrame = frame;

            int numberOfWhiskers = TargetFrame.Whiskers.Length;

            for (int i = 0; i < numberOfWhiskers; i++)
            {
                IWhisker whisker = TargetFrame.Whiskers[i];

                ISingleWhiskerFrequency singleWhiskerFrequency = ModelResolver.Resolve <ISingleWhiskerFrequency>();
                singleWhiskerFrequency.Whisker = whisker;

                Targets.Add(singleWhiskerFrequency);
            }
        }
Exemple #11
0
        public void LoadData(IMouseFrame frame)
        {
            TargetFrame = frame;
            IWhisker noseWhisker        = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == -1);
            IWhisker orientationWhisker = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == 0);

            if (noseWhisker == null || orientationWhisker == null)
            {
                return;
            }

            ISingleHeadOrientation singleHeadOrientation = ModelResolver.Resolve <ISingleHeadOrientation>();

            singleHeadOrientation.NoseWhisker        = noseWhisker;
            singleHeadOrientation.OrientationWhisker = orientationWhisker;

            Targets.Add(singleHeadOrientation);
        }
        public IWhisker CreateWhisker(IMouseFrame mouseFrame)
        {
            IWhisker whisker = ModelResolver.Resolve <IWhisker>();

            whisker.Parent    = mouseFrame;
            whisker.WhiskerId = WhiskerId;

            IWhiskerPoint[] whiskerPoints = new IWhiskerPoint[NumberOfPoints];
            whisker.WhiskerPoints = new IWhiskerPoint[NumberOfPoints];
            for (int i = 0; i < NumberOfPoints; i++)
            {
                IWhiskerPoint whiskerPoint = ModelResolver.Resolve <IWhiskerPoint>();
                whiskerPoint.Parent  = whisker;
                whiskerPoint.PointId = i + 1;
                whiskerPoints[i]     = whiskerPoint;
            }

            whisker.WhiskerPoints  = whiskerPoints;
            whisker.IsGenericPoint = IsGenericPoint;
            whisker.WhiskerName    = WhiskerName;

            return(whisker);
        }
Exemple #13
0
        public void LoadData(IMouseFrame[] frames)
        {
            //Load Whisker Angle Data
            WhiskerAngle.LoadData(frames);

            List<ISingleWhiskerMeanOffset> whiskers = new List<ISingleWhiskerMeanOffset>();
            foreach (IWhisker whisker in frames[0].Whiskers)
            {
                if (whisker.IsGenericPoint)
                {
                    continue;
                }

                ISingleWhiskerMeanOffset singleWhisker = ModelResolver.Resolve<ISingleWhiskerMeanOffset>();
                singleWhisker.Whisker = whisker;
                whiskers.Add(singleWhisker);
            }

            Whiskers = whiskers.ToArray();

            UpdateTValue();
        }
Exemple #14
0
        public override void LoadData(IMouseFrame frame)
        {
            IWhisker nose = frame.Whiskers.FirstOrDefault(x => x.WhiskerId == -1);
            IWhisker orientation = frame.Whiskers.FirstOrDefault(x => x.WhiskerId == 0);

            if (nose == null || orientation == null)
            {
                return;
            }

            NosePoint = nose.WhiskerPoints[0];
            OrientationPoint = orientation.WhiskerPoints[0];
        }
        public void LoadData(IMouseFrame[] frames)
        {
            //Load Whisker Angle Data
            WhiskerAngle.LoadData(frames);
            WhiskerAngle.UpdateTValue(0);
            //WhiskerAngularVelocity.LoadData(frames);

            List<ISingleWhiskerProtractionRetraction> whiskers = new List<ISingleWhiskerProtractionRetraction>();
            foreach (IWhisker whisker in frames[0].Whiskers)
            {
                if (whisker.IsGenericPoint)
                {
                    continue;
                }

                ISingleWhiskerProtractionRetraction singleWhisker = ModelResolver.Resolve<ISingleWhiskerProtractionRetraction>();
                singleWhisker.Whisker = whisker;

                double[] signal = new double[frames.Length];
                for (int i = 0; i < frames.Length; i++)
                {
                    signal[i] = WhiskerAngle.Frames[i].Targets.Single(x => x.Whisker.WhiskerId == whisker.WhiskerId).Angle;
                }

                singleWhisker.AngleSignal = signal;

                whiskers.Add(singleWhisker);
            }

            Whiskers = whiskers.ToArray();

            UpdateTValue();
        }
Exemple #16
0
 public bool Equals(IMouseFrame mouseFrame)
 {
     return FrameNumber == mouseFrame.FrameNumber;
 }
Exemple #17
0
 public MouseFrameXml(IMouseFrame mouseFrame)
 {
     FrameNumber = mouseFrame.FrameNumber;
     IndexNumber = mouseFrame.IndexNumber;
     Whiskers = mouseFrame.Whiskers.Select(x => new WhiskerXml(x)).ToArray();
 }
Exemple #18
0
 public virtual void LoadData(IMouseFrame frame)
 {
 }
Exemple #19
0
        public IWhisker GetWhisker(IMouseFrame parentFrame)
        {
            Whisker whisker = new Whisker();
            whisker.Parent = parentFrame;
            whisker.WhiskerId = WhiskerId;
            whisker.WhiskerName = WhiskerName;
            whisker.IsGenericPoint = IsGenericPoint;
            whisker.WhiskerPoints = WhiskerPoints.Select(x => x.CreateWhiskerPoint(whisker)).ToArray();
            whisker.DataLoadComplete();

            return whisker;
        }
Exemple #20
0
 public bool Equals(IMouseFrame mouseFrame)
 {
     return(FrameNumber == mouseFrame.FrameNumber);
 }
        public void LoadData(IMouseFrame frame)
        {
            TargetFrame = frame;

            IAngleTypeBase angleType;
            IWhisker       noseWhisker        = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == -1);
            IWhisker       orientationWhisker = TargetFrame.Whiskers.FirstOrDefault(x => x.WhiskerId == 0);

            if (noseWhisker == null || orientationWhisker == null)
            {
                //can't generate centerline, don't let it work
                return;
            }

            ICenterLine centerLine = ModelResolver.Resolve <ICenterLine>();

            centerLine.NosePoint        = noseWhisker.WhiskerPoints[0];
            centerLine.OrientationPoint = orientationWhisker.WhiskerPoints[0];
            angleType = centerLine;

            List <ISingleWhiskerAngle> leftWhiskers  = new List <ISingleWhiskerAngle>();
            List <ISingleWhiskerAngle> rightWhiskers = new List <ISingleWhiskerAngle>();

            foreach (IWhisker whisker in TargetFrame.Whiskers)
            {
                if (whisker.IsGenericPoint)
                {
                    continue;
                }

                ISingleWhiskerAngle singleWhiskerAngle = ModelResolver.Resolve <ISingleWhiskerAngle>();
                singleWhiskerAngle.Whisker   = whisker;
                singleWhiskerAngle.AngleType = angleType;
                Targets.Add(singleWhiskerAngle);

                //Is whisker on left or right?
                double x1 = centerLine.NosePoint.XRatio;
                double y1 = centerLine.NosePoint.YRatio;
                double x2 = centerLine.OrientationPoint.XRatio;
                double y2 = centerLine.OrientationPoint.YRatio;

                double x = singleWhiskerAngle.Whisker.WhiskerPoints[0].XRatio;
                double y = singleWhiskerAngle.Whisker.WhiskerPoints[0].YRatio;

                double determinant = ((x - x1) * (y2 - y1)) - ((y - y1) * (x2 - x1));

                if (determinant < 0)
                {
                    //On left side
                    leftWhiskers.Add(singleWhiskerAngle);
                }
                else
                {
                    //On right side
                    rightWhiskers.Add(singleWhiskerAngle);
                }
            }

            LeftWhiskers  = leftWhiskers.ToArray();
            RightWhiskers = rightWhiskers.ToArray();
            CalculateData();
        }
Exemple #22
0
 public IWhisker[] CreateEmptyWhiskers(IMouseFrame mouseFrame)
 {
     return Whiskers.Select(x => x.CreateWhisker(mouseFrame)).ToArray();
 }
Exemple #23
0
        public void LoadData(IMouseFrame[] frames)
        {
            //Load Whisker Angle Data
            WhiskerAngle.LoadData(frames);

            //Get whiskers
            double frameRate = GlobalSettings.GlobalSettings.FrameRateSettings.OriginalFrameRate;
            double frameInterval = GlobalSettings.GlobalSettings.ClipSettings.FrameInterval;

            List<ISingleWhiskerFrequency> whiskers = new List<ISingleWhiskerFrequency>();
            foreach (IWhisker whisker in frames[0].Whiskers)
            {
                if (whisker.IsGenericPoint)
                {
                    continue;
                }

                ISingleWhiskerFrequency singleWhisker = ModelResolver.Resolve<ISingleWhiskerFrequency>();
                singleWhisker.Whisker = whisker;
                singleWhisker.FrameRate = frameRate;
                singleWhisker.FrameInterval = frameInterval;
                whiskers.Add(singleWhisker);
            }

            Whiskers = whiskers.ToArray();

            CreateWhiskers();
            UpdateTValue();
        }
        public IWhisker CreateWhisker(IMouseFrame mouseFrame)
        {
            IWhisker whisker = ModelResolver.Resolve<IWhisker>();

            whisker.Parent = mouseFrame;
            whisker.WhiskerId = WhiskerId;

            IWhiskerPoint[] whiskerPoints = new IWhiskerPoint[NumberOfPoints];
            whisker.WhiskerPoints = new IWhiskerPoint[NumberOfPoints];
            for (int i = 0; i < NumberOfPoints; i++)
            {
                IWhiskerPoint whiskerPoint = ModelResolver.Resolve<IWhiskerPoint>();
                whiskerPoint.Parent = whisker;
                whiskerPoint.PointId = i + 1;
                whiskerPoints[i] = whiskerPoint;
            }

            whisker.WhiskerPoints = whiskerPoints;
            whisker.IsGenericPoint = IsGenericPoint;
            whisker.WhiskerName = WhiskerName;

            return whisker;
        }
Exemple #25
0
 public MouseFrameXml(IMouseFrame mouseFrame)
 {
     FrameNumber = mouseFrame.FrameNumber;
     IndexNumber = mouseFrame.IndexNumber;
     Whiskers    = mouseFrame.Whiskers.Select(x => new WhiskerXml(x)).ToArray();
 }
Exemple #26
0
 public virtual void LoadData(IMouseFrame frame)
 {
 }
Exemple #27
0
 public IWhisker[] CreateEmptyWhiskers(IMouseFrame mouseFrame)
 {
     return(Whiskers.Select(x => x.CreateWhisker(mouseFrame)).ToArray());
 }