Esempio n. 1
0
        internal Matrix3D method_16()
        {
            Matrix3D toWcsTransform3D = DxfUtil.GetToWCSTransform3D(this.vector3D_0);

            toWcsTransform3D.Transpose();
            Matrix3D matrix3D1 = Transformation3D.RotateZ(this.double_6) * toWcsTransform3D;
            Matrix3D matrix3D2;

            if (this.PerspectiveMode)
            {
                Class484.smethod_0(this.size2D_0, this.double_1, this.double_4);
                double num = System.Math.Sqrt(this.size2D_0.X * this.size2D_0.X + this.size2D_0.Y * this.size2D_0.Y) / 42.0;
                matrix3D2 = Transformation3D.Scaling(num, num, num);
            }
            else
            {
                double num = this.size2D_0.Y / this.double_4;
                matrix3D2 = Transformation3D.Scaling(num, num, num);
            }
            return(matrix3D2 * matrix3D1);
        }
Esempio n. 2
0
        public void SetWipeoutPolygon(IList <WW.Math.Point2D> polygon)
        {
            Bounds2D bounds2D = new Bounds2D();

            bounds2D.Update(polygon);
            this.InsertionPoint = (WW.Math.Point3D)bounds2D.Min;
            this.XAxis          = new Vector3D(bounds2D.Delta.X, 0.0, 0.0);
            this.YAxis          = new Vector3D(0.0, bounds2D.Delta.Y, 0.0);
            Matrix3D matrix3D = Transformation3D.Scaling(1.0 / this.XAxis.X, -1.0 / this.YAxis.Y, 1.0) * Transformation3D.Translation(WW.Math.Point2D.Zero - bounds2D.Center);

            this.BoundaryVertices.Clear();
            foreach (WW.Math.Point2D point in (IEnumerable <WW.Math.Point2D>)polygon)
            {
                this.BoundaryVertices.Add(matrix3D.Transform(point));
            }
            if (this.BoundaryVertices.Count <= 2 || !(this.BoundaryVertices[0] != this.BoundaryVertices[this.BoundaryVertices.Count - 1]))
            {
                return;
            }
            this.BoundaryVertices.Add(this.BoundaryVertices[0]);
        }
Esempio n. 3
0
        private WoutWareGlyph method_4(Stream stream, byte[] buffer)
        {
            char           letter         = WoutWareFont.smethod_5(stream, buffer);
            Vector2D       advance        = WoutWareFont.smethod_7(stream, buffer);
            GeneralShape2D generalShape2D = new GeneralShape2D();
            int            num;

            while (true)
            {
                num = stream.ReadByte();
                if (num >= 0)
                {
                    WoutWareFont.Enum12 enum12 = (WoutWareFont.Enum12)num;
                    if ((uint)enum12 <= 100U)
                    {
                        switch (enum12)
                        {
                        case WoutWareFont.Enum12.const_5:
                            goto label_11;

                        case WoutWareFont.Enum12.const_4:
                            double m00_1 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m01   = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m02_1 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m10   = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m11_1 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m12_1 = (double)WoutWareFont.smethod_3(stream, buffer);
                            generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, new Matrix3D(m00_1, m01, m02_1, m10, m11_1, m12_1, 0.0, 0.0, 1.0));
                            continue;

                        case WoutWareFont.Enum12.const_0:
                            generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false);
                            continue;

                        default:
                            goto label_12;
                        }
                    }
                    else
                    {
                        switch (enum12)
                        {
                        case WoutWareFont.Enum12.const_3:
                            double m00_2 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m02_2 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m11_2 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double m12_2 = (double)WoutWareFont.smethod_3(stream, buffer);
                            generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, new Matrix3D(m00_2, 0.0, m02_2, 0.0, m11_2, m12_2, 0.0, 0.0, 1.0));
                            continue;

                        case WoutWareFont.Enum12.const_2:
                            double x1 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double y1 = (double)WoutWareFont.smethod_3(stream, buffer);
                            generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, Transformation3D.Scaling(x1, y1));
                            continue;

                        case WoutWareFont.Enum12.const_1:
                            double x2 = (double)WoutWareFont.smethod_3(stream, buffer);
                            double y2 = (double)WoutWareFont.smethod_3(stream, buffer);
                            generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, Transformation3D.Translation(x2, y2));
                            continue;

                        default:
                            goto label_12;
                        }
                    }
                }
                else
                {
                    break;
                }
            }
            throw new IOException("Unexpected end of input!");
label_11:
            IShape2D outline = !generalShape2D.HasSegments ? (IShape2D)NullShape2D.Instance : (IShape2D) new CachedBoundsShape2D((IShape2D)generalShape2D);

            return(new WoutWareGlyph(letter, outline, advance));

label_12:
            throw new IOException("Invalid reference operator " + (object)num);
        }