예제 #1
0
        public IVertexSource GetGlyphForCharacter(char character)
        {
            // scale it to the correct size.
            IVertexSource sourceGlyph = typeFace.GetGlyphForCharacter(character);

            if (sourceGlyph != null)
            {
                if (DoUnderline)
                {
                    sourceGlyph = new GlyphWithUnderline(sourceGlyph, typeFace.GetAdvanceForCharacter(character), typeFace.Underline_position, typeFace.Underline_thickness);
                }
                Affine glyphTransform = Affine.NewIdentity();
                glyphTransform *= Affine.NewScaling(currentEmScalling);
                IVertexSource characterGlyph = new VertexSourceApplyTransform(sourceGlyph, glyphTransform);

                if (FlatenCurves)
                {
                    characterGlyph = new FlattenCurves(characterGlyph);
                }

                return(characterGlyph);
            }

            return(null);
        }
예제 #2
0
 public double GetAdvanceForCharacter(char character)
 {
     return(TypeFace.GetAdvanceForCharacter(character) * currentEmScaling);
 }
예제 #3
0
 public double GetAdvanceForCharacter(char character, char nextCharacterToKernWith)
 {
     return(TypeFace.GetAdvanceForCharacter(character, nextCharacterToKernWith) * currentEmScaling);
 }