コード例 #1
0
 public QuadraticBezierSelection(IServiceProvider?serviceProvider, LayerContainerViewModel layer, QuadraticBezierShapeViewModel shape, ShapeStyleViewModel style)
 {
     _serviceProvider = serviceProvider;
     _layer           = layer;
     _quadraticBezier = shape;
     _styleViewModel  = style;
 }
コード例 #2
0
        public static AM.Geometry ToGeometry(QuadraticBezierShapeViewModel quadraticBezier)
        {
            var sg = new AM.StreamGeometry();

            using var sgc = sg.Open();
            sgc.BeginFigure(
                new A.Point(quadraticBezier.Point1.X, quadraticBezier.Point1.Y),
                quadraticBezier.IsFilled);
            sgc.QuadraticBezierTo(
                new A.Point(quadraticBezier.Point2.X, quadraticBezier.Point2.Y),
                new A.Point(quadraticBezier.Point3.X, quadraticBezier.Point3.Y));
            sgc.EndFigure(false);
            return(sg);
        }
コード例 #3
0
    public override object Copy(IDictionary <object, object>?shared)
    {
        var copy = new QuadraticBezierShapeViewModel(ServiceProvider)
        {
            Name       = Name,
            State      = State,
            Style      = _style?.CopyShared(shared),
            IsStroked  = IsStroked,
            IsFilled   = IsFilled,
            Properties = _properties.CopyShared(shared).ToImmutable(),
            Record     = _record,
            Point1     = _point1?.CopyShared(shared),
            Point2     = _point2?.CopyShared(shared),
            Point3     = _point3?.CopyShared(shared)
        };

        return(copy);
    }
コード例 #4
0
        public void BeginDown(InputArgs args)
        {
            var factory = _serviceProvider.GetService <IFactory>();
            var editor  = _serviceProvider.GetService <ProjectEditorViewModel>();

            (decimal sx, decimal sy) = editor.TryToSnap(args);
            switch (_currentState)
            {
            case State.Point1:
            {
                editor.IsToolIdle = false;
                var style = editor.Project.CurrentStyleLibrary?.Selected is { } ?
                editor.Project.CurrentStyleLibrary.Selected :
                editor.Factory.CreateShapeStyle(ProjectEditorConfiguration.DefaulStyleName);
                _quadraticBezier = factory.CreateQuadraticBezierShape(
                    (double)sx, (double)sy,
                    (ShapeStyleViewModel)style.Copy(null),
                    editor.Project.Options.DefaultIsStroked,
                    editor.Project.Options.DefaultIsFilled);

                editor.SetShapeName(_quadraticBezier);

                var result = editor.TryToGetConnectionPoint((double)sx, (double)sy);
                if (result is { })
コード例 #5
0
ファイル: DataFlow.cs プロジェクト: ystallonne/Core2D
 public void Bind(QuadraticBezierShapeViewModel quadraticBezier, object db, object r)
 {
 }
コード例 #6
0
 public QuadraticBezierDrawNode(QuadraticBezierShapeViewModel quadraticBezier, ShapeStyleViewModel style)
 {
     Style           = style;
     QuadraticBezier = quadraticBezier;
     UpdateGeometry();
 }
コード例 #7
0
 public IQuadraticBezierDrawNode CreateQuadraticBezierDrawNode(QuadraticBezierShapeViewModel quadraticBezier, ShapeStyleViewModel style)
 {
     return(new QuadraticBezierDrawNode(quadraticBezier, style));
 }
コード例 #8
0
 public QuadraticBezierPathToolViewModel(IServiceProvider serviceProvider) : base(serviceProvider)
 {
     _currentState    = State.Point1;
     _quadraticBezier = new QuadraticBezierShapeViewModel(serviceProvider);
 }