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); } }
public MouseFrameViewModel(IMouseFrame model) { Model = model; if (Model.Whiskers != null) { Whiskers = model.Whiskers.Select(x => new WhiskerViewModel(x)).ToArray(); } }
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 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++; } }
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); } }
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); }
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(); }
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(); }
public bool Equals(IMouseFrame mouseFrame) { return FrameNumber == mouseFrame.FrameNumber; }
public MouseFrameXml(IMouseFrame mouseFrame) { FrameNumber = mouseFrame.FrameNumber; IndexNumber = mouseFrame.IndexNumber; Whiskers = mouseFrame.Whiskers.Select(x => new WhiskerXml(x)).ToArray(); }
public virtual void LoadData(IMouseFrame frame) { }
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 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(); }
public IWhisker[] CreateEmptyWhiskers(IMouseFrame mouseFrame) { return Whiskers.Select(x => x.CreateWhisker(mouseFrame)).ToArray(); }
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; }
public IWhisker[] CreateEmptyWhiskers(IMouseFrame mouseFrame) { return(Whiskers.Select(x => x.CreateWhisker(mouseFrame)).ToArray()); }