public CHnMMClassificationSystem(CHnMMParameter parameter) { ParameterSet = parameter; //apply parameters StrokeMap.minimumRadius = parameter.minRadiusArea; StrokeMap.toleranceFactor = parameter.toleranceFactorArea; StrokeMap.useAdaptiveTolerance = parameter.useAdaptiveTolerance; StrokeMap.hitProbability = parameter.hitProbability; StrokeMap.useEllipsoid = parameter.useEllipsoid; StrokeMap.translationInvariant = parameter.isTranslationInvariant; FixedAreaNumberStrokeMap.nAreas = parameter.nAreaForStrokeMap; FixedAreaNumberStrokeMap.useContinuousAreas = parameter.useContinuousAreas; StrokeMap.useSmallestCircle = parameter.useSmallestCircle; DynamicAreaNumberStrokeMap.AreaPointDistance = parameter.areaPointDistance; DynamicAreaNumberStrokeMap.useSmallestCircle = parameter.useSmallestCircle; var transitionSetup = new TransitionCreator(parameter.hitProbability, parameter.distEstName); if (parameter.useFixAreaNumber) { //HiddenModelCreator = new FixedAreaNumberModelCreator(transitionSetup); HiddenModelCreator = new FixedAreaNumberModelCreator(transitionSetup); } else { HiddenModelCreator = new DynamicAreaNumberModelCreator(transitionSetup); } }
private void Element_MouseMove(object sender, MouseEventArgs e) { if (!IsEnabled) { return; } var position = new Lazy <Point>(() => GetMousePosition(e)); if (_state == BehaviorState.MouseDown) { //Check to see if we're out of the dragging min //http://stackoverflow.com/questions/2068106/wpf-drag-distance-threshold var distanceMoved = _startingPosition - position.Value; if (Math.Abs(distanceMoved.X) >= SystemParameters.MinimumHorizontalDragDistance && Math.Abs(distanceMoved.Y) >= SystemParameters.MinimumVerticalDragDistance) { //Focus AssociatedObject.Focus(); e.Handled = true; var sourceState = AssociatedObject.DataContext as StateViewModel; if (sourceState != null) { TransitionCreator?.StartCreatingTransition(sourceState); _state = BehaviorState.Dragging; } else { Reset(); } } } else if (_state == BehaviorState.Dragging) { //Drag TransitionCreator?.ContinueCreatingTransition(position.Value); e.Handled = true; } }
private void ElementOnMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (!IsEnabled) { return; } var position = new Lazy <Point>(() => _startingPosition = GetMousePosition(e)); switch (_state) { case BehaviorState.Dragging: TransitionCreator?.FinishCreatingTransition(position.Value); break; } e.Handled = true; Reset(); }