Esempio n. 1
0
        public static IPolygon Clip(ClipOperation operation, IPolygon subject_polygon, IPolygon clip_polygon)
        {
            Clip_polygon Clip_polygon         = new Clip_polygon();
            Clip_polygon Clip_subject_polygon = ClipWrapper.PolygonTo_Clip_polygon(subject_polygon);
            Clip_polygon Clip_clip_polygon    = ClipWrapper.PolygonTo_Clip_polygon(clip_polygon);

            try
            {
                ClipPolygon(ref Clip_subject_polygon, ref Clip_clip_polygon, operation, ref Clip_polygon);
                IPolygon polygon = ClipWrapper.Clip_polygon_ToPolygon(Clip_polygon);

                return(polygon);
            }
            finally
            {
                ClipWrapper.Free_Clip_polygon(Clip_subject_polygon);
                ClipWrapper.Free_Clip_polygon(Clip_clip_polygon);
                ClipWrapper.FreePolygon(ref Clip_polygon);
            }
        }
Esempio n. 2
0
        public static GeomTristrip ClipToTristrip(ClipOperation operation, GeomPolygon subject_polygon, GeomPolygon clip_polygon)
        {
            Clip_tristrip Clip_strip           = new Clip_tristrip();
            Clip_polygon  Clip_subject_polygon = ClipWrapper.GeomPolygonTo_Clip_polygon(subject_polygon);
            Clip_polygon  Clip_clip_polygon    = ClipWrapper.GeomPolygonTo_Clip_polygon(clip_polygon);

            try
            {
                ClipTristrip(ref Clip_subject_polygon, ref Clip_clip_polygon, operation, ref Clip_strip);
                GeomTristrip tristrip = ClipWrapper.Clip_strip_ToTristrip(Clip_strip);

                return(tristrip);
            }
            finally
            {
                ClipWrapper.Free_Clip_polygon(Clip_subject_polygon);
                ClipWrapper.Free_Clip_polygon(Clip_clip_polygon);
                ClipWrapper.FreeTristrip(ref Clip_strip);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Gets the short operation string.
        /// </summary>
        private string GetShortOperationString(ClipOperation operation)
        {
            switch (operation)
            {
            case ClipOperation.Difference:
                return("diff");

            case ClipOperation.Intersection:
                return("intersect");

            case ClipOperation.SymDifference:
                return("sym dif.");

            case ClipOperation.Union:
                return("union");

            case ClipOperation.Clip:
                return("clip");

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 4
0
 public IGeometry Clip(IGeometry g, ClipOperation operation)
 {
     return(new Geometry(_shape.Clip(g.GetInternal(), (tkClipOperation)operation)));
 }
Esempio n. 5
0
 public static SKClipOperation ToSkia(this ClipOperation operation) => operation switch
 {
Esempio n. 6
0
 public void ClipRect(Rectangle rect, ClipOperation operation, bool antialias)
 => _canvas.ClipRect(rect.ToSkia(), operation.ToSkia(), antialias);
 public ClipPathCanvasCommand(ClipPath clipPath, ClipOperation operation, bool antialias)
 {
     ClipPath  = clipPath;
     Operation = operation;
     Antialias = antialias;
 }
Esempio n. 8
0
 public ClipRectCanvasCommand(Rect rect, ClipOperation operation, bool antialias)
 {
     Rect      = rect;
     Operation = operation;
     Antialias = antialias;
 }
Esempio n. 9
0
 private static extern void ClipTristrip([In]     ref Clip_polygon subject_polygon,
                                         [In]     ref Clip_polygon clip_polygon,
                                         [In]     ClipOperation set_operation,
                                         [In, Out] ref Clip_tristrip result_tristrip);
Esempio n. 10
0
 private static extern void ClipPolygon([In]     ref Clip_polygon subject_polygon,
                                        [In]     ref Clip_polygon clip_polygon,
                                        [In]     ClipOperation set_operation,
                                        [In, Out] ref Clip_polygon result_polygon);
Esempio n. 11
0
 public GeomPolygon Clip(ClipOperation operation, GeomPolygon polygon)
 {
     return(ClipWrapper.Clip(operation, this, polygon));
 }
Esempio n. 12
0
 public void ClipRect(Rect rect, ClipOperation operation = ClipOperation.Intersect, bool antialias = false)
 {
     Commands?.Add(new ClipRectCanvasCommand(rect, operation, antialias));
 }
Esempio n. 13
0
 public void ClipPath(ClipPath clipPath, ClipOperation operation = ClipOperation.Intersect, bool antialias = false)
 {
     Commands?.Add(new ClipPathCanvasCommand(clipPath, operation, antialias));
 }