Esempio n. 1
0
        public virtual void RenderImage(ImageRenderInfo renderInfo)
        {
            Matrix      imageCtm = renderInfo.GetImageCTM();
            Vector      a        = (new Vector(0, 0, 1)).Cross(imageCtm);
            Vector      b        = (new Vector(1, 0, 1)).Cross(imageCtm);
            Vector      c        = (new Vector(0, 1, 1)).Cross(imageCtm);
            Vector      d        = (new Vector(1, 1, 1)).Cross(imageCtm);
            LineSegment bottom   = new LineSegment(a, b);
            LineSegment top      = new LineSegment(c, d);

            if (textRectangle == null)
            {
                textRectangle = bottom.GetBoundingRectange();
            }
            else
            {
                textRectangle.Add(bottom.GetBoundingRectange());
            }
            textRectangle.Add(top.GetBoundingRectange());
        }
Esempio n. 2
0
        public void ModifyPath(PathConstructionRenderInfo renderInfo)
        {
            IList <Vector> points = new List <Vector>();

            if (renderInfo.Operation == PathConstructionRenderInfo.RECT)
            {
                float x = renderInfo.SegmentData[0];
                float y = renderInfo.SegmentData[1];
                float w = renderInfo.SegmentData[2];
                float h = renderInfo.SegmentData[3];
                points.Add(new Vector(x, y, 1));
                points.Add(new Vector(x + w, y, 1));
                points.Add(new Vector(x, y + h, 1));
                points.Add(new Vector(x + w, y + h, 1));
            }
            else if (renderInfo.SegmentData != null)
            {
                for (int i = 0; i < renderInfo.SegmentData.Count - 1; i += 2)
                {
                    points.Add(new Vector(renderInfo.SegmentData[i], renderInfo.SegmentData[i + 1], 1));
                }
            }
            foreach (Vector point in points)
            {
                Vector      point1         = point.Cross(renderInfo.Ctm);
                Rectangle2D pointRectangle = new Rectangle2D(point1[Vector.I1], point1[Vector.I2], 0, 0);
                if (currentPathRectangle == null)
                {
                    currentPathRectangle = pointRectangle;
                }
                else
                {
                    currentPathRectangle.Add(pointRectangle);
                }
            }
        }