public void AddLine(D2D1Point2F point)
 {
     this.geometrySink.AddLine(point);
 }
        public void ComputePointAtLength(float length, D2D1Matrix3X2F worldTransform, float flatteningTolerance, out D2D1Point2F point, out D2D1Point2F unitTangentVector)
        {
            GCHandle worldTransformHandle = GCHandle.Alloc(worldTransform, GCHandleType.Pinned);

            try
            {
                this.GetHandle<ID2D1Geometry>().ComputePointAtLength(length, worldTransformHandle.AddrOfPinnedObject(), flatteningTolerance, out point, out unitTangentVector);
            }
            finally
            {
                worldTransformHandle.Free();
            }
        }
 public void ComputePointAtLength(float length, out D2D1Point2F point, out D2D1Point2F unitTangentVector)
 {
     this.GetHandle<ID2D1Geometry>().ComputePointAtLength(length, IntPtr.Zero, D2D1Constants.DefaultFlatteningTolerance, out point, out unitTangentVector);
 }
 public bool FillContainPoint(D2D1Point2F point)
 {
     bool contains;
     this.GetHandle<ID2D1Geometry>().FillContainsPoint(point, IntPtr.Zero, D2D1Constants.DefaultFlatteningTolerance, out contains);
     return contains;
 }
        public bool FillContainPoint(D2D1Point2F point, D2D1Matrix3X2F worldTransform)
        {
            bool contains;

            GCHandle worldTransformHandle = GCHandle.Alloc(worldTransform, GCHandleType.Pinned);

            try
            {
                this.GetHandle<ID2D1Geometry>().FillContainsPoint(point, worldTransformHandle.AddrOfPinnedObject(), D2D1Constants.DefaultFlatteningTolerance, out contains);
            }
            finally
            {
                worldTransformHandle.Free();
            }

            return contains;
        }
        public bool StrokeContainsPoint(D2D1Point2F point, float strokeWidth, D2D1StrokeStyle strokeStyle, D2D1Matrix3X2F worldTransform)
        {
            bool contains;

            GCHandle worldTransformHandle = GCHandle.Alloc(worldTransform, GCHandleType.Pinned);

            try
            {
                this.GetHandle<ID2D1Geometry>().StrokeContainsPoint(point, strokeWidth, strokeStyle == null ? null : strokeStyle.GetHandle<ID2D1StrokeStyle>(), worldTransformHandle.AddrOfPinnedObject(), D2D1Constants.DefaultFlatteningTolerance, out contains);
            }
            finally
            {
                worldTransformHandle.Free();
            }

            return contains;
        }
 public bool FillContainPoint(D2D1Point2F point, float flatteningTolerance)
 {
     bool contains;
     this.GetHandle<ID2D1Geometry>().FillContainsPoint(point, IntPtr.Zero, flatteningTolerance, out contains);
     return contains;
 }
 public bool StrokeContainsPoint(D2D1Point2F point, float strokeWidth, D2D1StrokeStyle strokeStyle)
 {
     bool contains;
     this.GetHandle<ID2D1Geometry>().StrokeContainsPoint(point, strokeWidth, strokeStyle == null ? null : strokeStyle.GetHandle<ID2D1StrokeStyle>(), IntPtr.Zero, D2D1Constants.DefaultFlatteningTolerance, out contains);
     return contains;
 }
        public void DrawLine(D2D1Point2F point0, D2D1Point2F point1, D2D1Brush brush, float strokeWidth, D2D1StrokeStyle strokeStyle)
        {
            if (brush == null)
            {
                throw new ArgumentNullException("brush");
            }

            this.GetHandle<ID2D1RenderTarget>().DrawLine(point0, point1, brush.GetHandle<ID2D1Brush>(), strokeWidth, strokeStyle == null ? null : strokeStyle.GetHandle<ID2D1StrokeStyle>());
        }
        public void DrawLine(D2D1Point2F point0, D2D1Point2F point1, D2D1Brush brush)
        {
            if (brush == null)
            {
                throw new ArgumentNullException("brush");
            }

            this.GetHandle<ID2D1RenderTarget>().DrawLine(point0, point1, brush.GetHandle<ID2D1Brush>(), 1.0f, null);
        }
        public void DrawGlyphRun(D2D1Point2F baselineOrigin, DWriteGlyphRun glyphRun, D2D1Brush foregroundBrush, DWriteMeasuringMode measuringMode)
        {
            if (foregroundBrush == null)
            {
                throw new ArgumentNullException("foregroundBrush");
            }

            this.GetHandle<ID2D1RenderTarget>().DrawGlyphRun(baselineOrigin, ref glyphRun, foregroundBrush.GetHandle<ID2D1Brush>(), measuringMode);
        }
        public void DrawTextLayout(D2D1Point2F origin, DWriteTextLayout textLayout, D2D1Brush defaultForegroundBrush, D2D1DrawTextOptions options)
        {
            if (textLayout == null)
            {
                throw new ArgumentNullException("textLayout");
            }

            if (defaultForegroundBrush == null)
            {
                throw new ArgumentNullException("defaultForegroundBrush");
            }

            this.GetHandle<ID2D1RenderTarget>().DrawTextLayout(origin, (IDWriteTextLayout)textLayout.Handle, defaultForegroundBrush.GetHandle<ID2D1Brush>(), options);
        }