public override void RecalculateProperties() { ShapeParameters parameters = CalculateShapeParams(); if (parameters.deltaX < parameters.deltaY) { if (Y == parameters.minY) { X = parameters.minX; Y = parameters.minY; } else { X = parameters.minX; Y = parameters.maxY - parameters.minSide; } } else { if (X == parameters.minX) { X = parameters.minX; Y = parameters.minY; } else { X = parameters.maxX - parameters.minSide; Y = parameters.minY; } } SetWidthHeightAndCoords(parameters.minSide); }
//public override void DrawQuad(QuadParameters parms) //{ // using (DeviceContextHandler dch = GetDeviceContextHandler()) // using (GraphicsPath path = new GraphicsPath()) // { // PointF[] points = new PointF[] // { // new PointF(parms.X1, parms.Y1), // new PointF(parms.X2, parms.Y2), // new PointF(parms.X3, parms.Y3), // new PointF(parms.X4, parms.Y4) // }; // path.AddPolygon(points); // if (!Style.FillParameters.Disabled) // { // dch.DrawingSurface.FillPath(Style.FillParameters.ToBrush(), path); // } // if (!Style.StrokeParameters.Disabled) // { // dch.DrawingSurface.DrawPath(Style.StrokeParameters.ToPen(), path); // } // } //} //public override void DrawRectangle(RectangleParameters parms) //{ // using (DeviceContextHandler dch = GetDeviceContextHandler()) // { // RectangleF rect = Style.GetAdjustedRectangle(parms); // if (!Style.FillParameters.Disabled) // { // dch.DrawingSurface.FillRectangle(Style.FillParameters.ToBrush(), rect.X, rect.Y, rect.Width, rect.Height); // } // if (!Style.StrokeParameters.Disabled) // { // dch.DrawingSurface.DrawRectangle(Style.StrokeParameters.ToPen(), rect.X, rect.Y, rect.Width, rect.Height); // } // } //} public override void DrawShape(ShapeParameters parms) { using (DeviceContextHandler dch = GetDeviceContextHandler()) using (GraphicsPath path = GetShapePath(parms.Shape)) { PushMatrix(); Translate(parms.X, parms.Y); if (!Style.FillParameters.Disabled) { dch.DrawingSurface.FillPath(Style.FillParameters.ToBrush(), path); } if (!Style.StrokeParameters.Disabled) { dch.DrawingSurface.DrawPath(Style.StrokeParameters.ToPen(), path); } if (parms.Shape.Texture != null) { PointF tl = new PointF(path.PathPoints[0].X, path.PathPoints[0].Y); PointF tr = new PointF(path.PathPoints[1].X, path.PathPoints[1].Y); PointF bl = new PointF(path.PathPoints[3].X, path.PathPoints[3].Y); PointF br = new PointF(path.PathPoints[2].X, path.PathPoints[2].Y); using (Image texture = ((Image)parms.Shape.Texture).ToTrapezoid(tl, tr, bl, br)) { dch.DrawingSurface.DrawImage(texture.Bitmap, new PointF()); } } PopMatrix(); } }
public override void Draw(Graphics g, Pen pen) { ShapeParameters parameters = CalculateShapeParams(); if (parameters.deltaX < parameters.deltaY) { if (Y == parameters.minY) { g.DrawEllipse(pen, parameters.minX, parameters.minY, parameters.minSide, parameters.minSide); } else { g.DrawEllipse(pen, parameters.minX, parameters.maxY - parameters.minSide, parameters.minSide, parameters.minSide); } } else { if (X == parameters.minX) { g.DrawEllipse(pen, parameters.minX, parameters.minY, parameters.minSide, parameters.minSide); } else { g.DrawEllipse(pen, parameters.maxX - parameters.minSide, parameters.minY, parameters.minSide, parameters.minSide); } } }
public override void RecalculateProperties() { ShapeParameters parameters = CalculateShapeParams(); X = parameters.minX; EndX = parameters.maxX; Y = parameters.minY; EndY = parameters.maxY; Width = parameters.deltaX; Height = parameters.deltaY; }
//public override void DrawLine(LineParameters parms) //{ // SetStroke(); // _openGL.Begin(BeginMode.Lines); // _openGL.Vertex(parms.X1, parms.Y1); // _openGL.Vertex(parms.X2, parms.Y2); // _openGL.End(); //} //public override void DrawRectangle(RectangleParameters parms) //{ // RectangleF rect = Canvas.Style.GetAdjustedRectangle(parms); // if (!Canvas.FillParameters.Disabled) // { // SetFill(); // _openGL.Begin(BeginMode.Polygon); // _openGL.Vertex(rect.X, rect.Y); // _openGL.Vertex(rect.Right, rect.Y); // _openGL.Vertex(rect.Right, rect.Bottom); // _openGL.Vertex(rect.X, rect.Bottom); // _openGL.End(); // } // if (!Canvas.StrokeParameters.Disabled) // { // SetStroke(); // _openGL.Begin(BeginMode.LineLoop); // _openGL.Vertex(rect.X, rect.Y); // _openGL.Vertex(rect.Right, rect.Y); // _openGL.Vertex(rect.Right, rect.Bottom); // _openGL.Vertex(rect.X, rect.Bottom); // _openGL.End(); // } //} public override void DrawShape(ShapeParameters parms) { if (!Style.FillParameters.Disabled && parms.Shape.EndMode == EndShapeMode.Close) { SetFill(); AddShapeVertices(parms.Shape, true); } if (!Style.StrokeParameters.Disabled) { SetStroke(); AddShapeVertices(parms.Shape, false); } }
public override void DrawShape(ShapeParameters parms) { PushMatrix(); Translate(parms.X, parms.Y); if (!Style.FillParameters.Disabled && parms.Shape.EndMode == EndShapeMode.Close) { SetFill(); AddShapeVertices(parms.Shape, true); } if (!Style.StrokeParameters.Disabled) { SetStroke(); AddShapeVertices(parms.Shape, false); } PopMatrix(); }
//public override void DrawQuad(QuadParameters parms) //{ // using (DeviceContextHandler dch = GetDeviceContextHandler()) // using (GraphicsPath path = new GraphicsPath()) // { // PointF[] points = new PointF[] // { // new PointF(parms.X1, parms.Y1), // new PointF(parms.X2, parms.Y2), // new PointF(parms.X3, parms.Y3), // new PointF(parms.X4, parms.Y4) // }; // path.AddPolygon(points); // if (!Style.FillParameters.Disabled) // { // dch.DrawingSurface.FillPath(Style.FillParameters.ToBrush(), path); // } // if (!Style.StrokeParameters.Disabled) // { // dch.DrawingSurface.DrawPath(Style.StrokeParameters.ToPen(), path); // } // } //} //public override void DrawRectangle(RectangleParameters parms) //{ // using (DeviceContextHandler dch = GetDeviceContextHandler()) // { // RectangleF rect = Style.GetAdjustedRectangle(parms); // if (!Style.FillParameters.Disabled) // { // dch.DrawingSurface.FillRectangle(Style.FillParameters.ToBrush(), rect.X, rect.Y, rect.Width, rect.Height); // } // if (!Style.StrokeParameters.Disabled) // { // dch.DrawingSurface.DrawRectangle(Style.StrokeParameters.ToPen(), rect.X, rect.Y, rect.Width, rect.Height); // } // } //} public override void DrawShape(ShapeParameters parms) { using (DeviceContextHandler dch = GetDeviceContextHandler()) using (GraphicsPath path = GetShapePath(parms.Shape)) { PushMatrix(); Translate(parms.X, parms.Y); if (!Style.FillParameters.Disabled) { RectangleF bounds = path.GetBounds(); Brush b = Style.FillParameters.ToBrush(bounds); dch.DrawingSurface.FillPath(b, path); //dch.DrawingSurface.FillPath(Style.FillParameters.ToBrush(path.GetBounds().Size), path); } if (!Style.StrokeParameters.Disabled) { dch.DrawingSurface.DrawPath(Style.StrokeParameters.ToPen(), path); } PopMatrix(); } }