示例#1
0
 public void AddGlyph(WoutWareGlyph glyph)
 {
     if (glyph == null)
     {
         return;
     }
     this.idictionary_1.Add(glyph.Letter, glyph);
 }
示例#2
0
        private void method_2(
            WoutWareGlyph glyph,
            IList <Pair <WoutWareGlyph, IList <Pair <Matrix3D, int> > > > pendingGlyphs)
        {
            IShape2D path = glyph.Path;

            if (path.HasSegments)
            {
                List <Pair <Matrix3D, int> > pairList = new List <Pair <Matrix3D, int> >();
                foreach (IShape2D shape2D in ShapeTool.SplitIntoUnbroken(path))
                {
                    bool        flag    = false;
                    IList <int> intList = this.method_3(shape2D);
                    foreach (int second in (IEnumerable <int>)intList)
                    {
                        Matrix3D?transformation = ShapeTool.GetTransformation(this.ilist_0[second], shape2D, 0.01);
                        if (transformation.HasValue)
                        {
                            flag = true;
                            pairList.Add(new Pair <Matrix3D, int>(transformation.Value, second));
                            break;
                        }
                    }
                    if (!flag)
                    {
                        pairList.Add(new Pair <Matrix3D, int>(Matrix3D.Identity, this.ilist_0.Count));
                        intList.Add(this.ilist_0.Count);
                        this.ilist_0.Add(shape2D);
                    }
                }
                pendingGlyphs.Add(new Pair <WoutWareGlyph, IList <Pair <Matrix3D, int> > >(glyph, (IList <Pair <Matrix3D, int> >)pairList));
            }
            else
            {
                pendingGlyphs.Add(new Pair <WoutWareGlyph, IList <Pair <Matrix3D, int> > >(glyph, (IList <Pair <Matrix3D, int> >)null));
            }
        }
示例#3
0
        private static void smethod_13(
            Stream stream,
            WoutWareGlyph glyph,
            IEnumerable <Pair <Matrix3D, int> > shapeRefs)
        {
            WoutWareFont.smethod_4(stream, glyph.Letter);
            WoutWareFont.smethod_6(stream, glyph.Advance);
            if (shapeRefs != null)
            {
                foreach (Pair <Matrix3D, int> shapeRef in shapeRefs)
                {
                    Matrix3D            first = shapeRef.First;
                    WoutWareFont.Enum12 enum12_1;
                    if (WoutWareFont.smethod_12(first.M01))
                    {
                        if (WoutWareFont.smethod_12(first.M10))
                        {
                            WoutWareFont.Enum12 enum12_2;
                            if (WoutWareFont.smethod_12(first.M02) && WoutWareFont.smethod_12(first.M12))
                            {
                                if (WoutWareFont.smethod_12(first.M00) && WoutWareFont.smethod_12(first.M11))
                                {
                                    stream.WriteByte((byte)100);
                                    enum12_1 = WoutWareFont.Enum12.const_0;
                                    goto label_19;
                                }
                                else
                                {
                                    stream.WriteByte((byte)115);
                                    enum12_2 = WoutWareFont.Enum12.const_2;
                                }
                            }
                            else if (WoutWareFont.smethod_12(first.M00 - 1.0) && WoutWareFont.smethod_12(first.M11 - 1.0))
                            {
                                stream.WriteByte((byte)116);
                                enum12_2 = WoutWareFont.Enum12.const_1;
                            }
                            else
                            {
                                stream.WriteByte((byte)109);
                                enum12_2 = WoutWareFont.Enum12.const_3;
                            }
                            switch (enum12_2)
                            {
                            case WoutWareFont.Enum12.const_3:
                                WoutWareFont.smethod_2(stream, (float)first.M00);
                                WoutWareFont.smethod_2(stream, (float)first.M02);
                                WoutWareFont.smethod_2(stream, (float)first.M11);
                                WoutWareFont.smethod_2(stream, (float)first.M12);
                                goto label_19;

                            case WoutWareFont.Enum12.const_2:
                                WoutWareFont.smethod_2(stream, (float)first.M00);
                                WoutWareFont.smethod_2(stream, (float)first.M11);
                                goto label_19;

                            case WoutWareFont.Enum12.const_1:
                                WoutWareFont.smethod_2(stream, (float)first.M02);
                                WoutWareFont.smethod_2(stream, (float)first.M12);
                                goto label_19;

                            default:
                                goto label_19;
                            }
                        }
                        else
                        {
                            stream.WriteByte((byte)99);
                            enum12_1 = WoutWareFont.Enum12.const_4;
                        }
                    }
                    else
                    {
                        stream.WriteByte((byte)99);
                        enum12_1 = WoutWareFont.Enum12.const_4;
                    }
                    WoutWareFont.smethod_2(stream, (float)first.M00);
                    WoutWareFont.smethod_2(stream, (float)first.M01);
                    WoutWareFont.smethod_2(stream, (float)first.M02);
                    WoutWareFont.smethod_2(stream, (float)first.M10);
                    WoutWareFont.smethod_2(stream, (float)first.M11);
                    WoutWareFont.smethod_2(stream, (float)first.M12);
label_19:
                    WoutWareFont.smethod_0(stream, shapeRef.Second);
                }
            }
            stream.WriteByte((byte)33);
        }