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 WhiskerAngularVelocityFrameViewModel(IWhiskerAngularVelocityFrame model, WhiskerAngularVelocityViewModel parent) { Parent = parent; Model = model; CreateData(); }