Example #1
0
        private ShapeRenderData CreateRenderDataImpl(ShapeRenderParameters renderParams, Func <ShapeRenderParameters, ShapeRenderData> onCreate)
        {
            Validate.IsNotNull <ShapeRenderParameters>(renderParams, "renderParams");
            VerifyRenderSettingValues(this.RenderSettingPaths, renderParams.SettingValues);
            if (((!renderParams.StartPoint.IsFinite || !renderParams.EndPoint.IsFinite) || ((this.options.Elide == ShapeElideOption.ZeroWidthOrZeroHeight) && !RectDouble.FromCorners(renderParams.StartPoint, renderParams.EndPoint).HasPositiveArea)) || ((this.options.Elide == ShapeElideOption.ZeroWidthAndZeroHeight) && (renderParams.StartPoint == renderParams.EndPoint)))
            {
                return(new ShapeRenderData(Geometry.Empty));
            }
            ShapeRenderData renderData         = onCreate(renderParams);
            RectDouble      bounds             = RectDouble.FromCorners(renderParams.StartPoint, renderParams.EndPoint);
            Matrix3x2Double alignmentTransform = GetAlignmentTransform(renderData.Guide.Bounds, bounds);

            return(ShapeRenderData.Transform(renderData, alignmentTransform));
        }