Beispiel #1
0
 override protected void Reset()
 {
     base.Reset();
     Color = Color.black;
     Type  = OutlineType.Outer;
     Size  = 1;
 }
Beispiel #2
0
        /************************
         * public static methods
         */


        /// <summary>Return a new OTFont by reading a single font from an
        /// OTFile starting at a given file position.
        /// <p/>
        /// The type of the font is set by determining whether there is
        /// a 'glyf' table or a 'CFF ' table.
        /// </summary>
        public static OTFont ReadFont(OTFile file, uint FontFileNumber, uint filepos)
        {
            OTFont f = null;

            OffsetTable ot = ReadOffsetTable(file, filepos);

            if (ot != null)
            {
                if (ot.numTables == ot.DirectoryEntries.Count)
                {
                    OutlineType olt = OutlineType.OUTLINE_INVALID;
                    for (int i = 0; i < ot.DirectoryEntries.Count; i++)
                    {
                        DirectoryEntry temp   = (DirectoryEntry)ot.DirectoryEntries[i];
                        string         sTable = (string)temp.tag;
                        if (sTable == "CFF ")
                        {
                            olt = OutlineType.OUTLINE_POSTSCRIPT;
                            break;
                        }
                        else if (sTable == "glyf")
                        {
                            olt = OutlineType.OUTLINE_TRUETYPE;
                            break;
                        }
                    }

                    f = new OTFont(file, FontFileNumber, ot, olt);
                }
            }
            return(f);
        }
    private void func(string s, bool b)
    {
        OutlineType oc = this.getEntry(s);

        if (oc != null)
        {
            oc.visible = b;
        }
    }
Beispiel #4
0
    public static OutlineEffect FadeInOutline(Transform transform, OutlineType type, Color color)
    {
        OutlineEffect outline = instance.pools.Get(type).Get();

        outline.transform.SetParent(transform, false);
        outline.UpdateUI();
        outline.FadeIn(color);
        return(outline);
    }
Beispiel #5
0
 public OTFont(OTFile f, uint FontFileNumber, OffsetTable ot, OutlineType outlineType)
 {
     m_File                         = f;
     m_FontFileNumber               = FontFileNumber;
     m_OffsetTable                  = ot;
     m_OutlineType                  = outlineType;
     m_maxpNumGlyphs                = 0;
     m_arrUnicodeToGlyph_3_0        = null;
     m_arrUnicodeToGlyph_3_1        = null;
     m_arrUnicodeToGlyph_3_10       = null;
     m_bContainsMsSymbolEncodedCmap = false;
 }
 public OTFont(OTFile f, uint FontFileNumber, OffsetTable ot, OutlineType outlineType)
 {
     m_File = f;
     m_FontFileNumber = FontFileNumber;
     m_OffsetTable = ot;
     m_OutlineType = outlineType;
     m_maxpNumGlyphs = 0;
     m_arrUnicodeToGlyph_3_0 = null;
     m_arrUnicodeToGlyph_3_1 = null;
     m_arrUnicodeToGlyph_3_10 = null;
     m_bContainsMsSymbolEncodedCmap = false;
 }
    /// <summary>
    /// Returns true if an outline with the passed name is visible.
    /// If no outline exists with the passed name, false is returned.
    /// </summary>
    public bool isVisible(string name)
    {
        OutlineType oc = this.getEntry(name);

        if (oc != null)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
        public static string FormatHeader(string input, int headerWidth, OutlineType outlineType, int leftMargin = 0)
        {
            if (leftMargin < 0)
            {
                throw new ArgumentException("Left margin cannot be less than zero.");
            }
            if (input.Length > headerWidth)
            {
                throw new ArgumentException("Header cannot be wider than the line.");
            }

            StringBuilder sb = new StringBuilder();

            sb.Append(' ', leftMargin);
            var length = headerWidth / 2 - input.Length / 2 - 1;

            var c = (outlineType == OutlineType.Line)? '-' : (outlineType == OutlineType.Equals) ? '=' : ' ';

            for (int i = 0; i < length; i++)
            {
                sb.Append(c);
            }
            sb.Append(' ');
            sb.Append(input);
            sb.Append(' ');
            for (int i = 0; i < length; i++)
            {
                sb.Append(c);
            }

            if (outlineType == OutlineType.Underline)
            {
                sb.Append('\n');
                sb.Append(' ', leftMargin);
                for (int i = 0; i < length + 1; i++)
                {
                    sb.Append(' ');
                }
                for (int i = 0; i < input.Length; i++)
                {
                    sb.Append('-');
                }
            }

            return(sb.ToString());
        }
Beispiel #9
0
        public Geometry QueryDrawingOutline(long oid, OutlineType outlineType)
        {
            DrawingOutlineType drawingOutlineType;

            switch (outlineType)
            {
            case OutlineType.Exact:
                drawingOutlineType = DrawingOutlineType.Exact;
                break;

            case OutlineType.BoundingBox:
                drawingOutlineType = DrawingOutlineType.BoundingEnvelope;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(outlineType), outlineType, null);
            }

            return(_layer.QueryDrawingOutline(oid, _mapView, drawingOutlineType));
        }
Beispiel #10
0
        public Geometry QueryDrawingOutline(long oid, OutlineType outlineType)
        {
#if PRO27
            DrawingOutlineType drawingOutlineType;
            switch (outlineType)
            {
            case OutlineType.Exact:
                drawingOutlineType = DrawingOutlineType.Exact;
                break;

            case OutlineType.BoundingBox:
                drawingOutlineType = DrawingOutlineType.BoundingEnvelope;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(outlineType), outlineType, null);
            }

            return(_layer.QueryDrawingOutline(oid, _mapView, drawingOutlineType));
#else
            throw new NotImplementedException("Requires ArcGIS Pro 2.7 or newer");
#endif
        }
Beispiel #11
0
 public Geometry QueryDrawingOutline(long oid, OutlineType outlineType)
 {
     throw new NotImplementedException();
 }
 public OTFontVal(OTFile f, uint FontFileNumber, OffsetTable ot, OutlineType outlineType) : base(f, FontFileNumber, ot, outlineType)
 {
 }
Beispiel #13
0
        public static void AddEllipseOutline(List <UIVertex> verts, Rect rect, Color color, int size, OutlineType outlineType, int offset, int length)
        {
            if (IsEmpty(rect) || outlineType == OutlineType.None || length == 0)
            {
                return;
            }

            int     count       = length / 6;
            float   degrees     = offset;
            int     increment   = length / count;
            Vector2 innerRadius = Vector2.zero;
            Vector2 outerRadius = Vector2.zero;

            switch (outlineType)
            {
            case OutlineType.Inner:
                innerRadius = rect.size * 0.5f - Vector2.one * size;
                outerRadius = rect.size * 0.5f;
                break;

            case OutlineType.Outer:
                innerRadius = rect.size * 0.5f;
                outerRadius = rect.size * 0.5f + Vector2.one * size;
                break;
            }

            UIVertex[] triangles = new UIVertex[6];
            for (int index = 0; index < triangles.Length; index++)
            {
                triangles[index]       = UIVertex.simpleVert;
                triangles[index].color = color;
            }

            for (int index = 0; index <= count; index++, degrees += increment)
            {
                float cos = Mathf.Cos(degrees * Mathf.Deg2Rad);
                float sin = Mathf.Sin(degrees * Mathf.Deg2Rad);

                triangles[0].position = triangles[4].position;
                triangles[1].position = triangles[3].position;
                triangles[5].position = triangles[4].position;

                triangles[2].position = rect.center + (Vector2.right * cos * outerRadius.x) + (Vector2.up * sin * outerRadius.y);
                triangles[3].position = triangles[2].position;
                triangles[4].position = rect.center + (Vector2.right * cos * innerRadius.x) + (Vector2.up * sin * innerRadius.y);

                if (index > 0)
                {
                    verts.AddRange(triangles);
                }
            }
        }
Beispiel #14
0
        public static void AddRectOutline(List <UIVertex> verts, Rect rect, Color color, int size, OutlineType outlineType, EdgeType edgeType)
        {
            if (IsEmpty(rect) || outlineType == OutlineType.None)
            {
                return;
            }

            UIVertex[] triangles = new UIVertex[6];
            for (int index = 0; index < triangles.Length; index++)
            {
                triangles[index]       = UIVertex.simpleVert;
                triangles[index].color = color;
            }

            float innerRadius = 0;
            float outerRadius = 0;

            switch (outlineType)
            {
            case OutlineType.Inner:
                innerRadius = -size;
                outerRadius = 0;
                break;

            case OutlineType.Outer:
                innerRadius = 0;
                outerRadius = size;
                break;
            }

            switch (edgeType)
            {
            case EdgeType.Top:                     // top
                triangles[0].position = new Vector2(rect.xMin, rect.yMax + innerRadius);
                triangles[1].position = new Vector2(rect.xMin, rect.yMax + outerRadius);
                triangles[2].position = new Vector2(rect.xMax, rect.yMax + outerRadius);
                triangles[3].position = triangles[2].position;
                triangles[4].position = new Vector2(rect.xMax, rect.yMax + innerRadius);
                triangles[5].position = triangles[0].position;
                break;

            case EdgeType.Left:                     // left
                triangles[0].position = new Vector2(rect.xMin - outerRadius, rect.yMin);
                triangles[1].position = new Vector2(rect.xMin - outerRadius, rect.yMax);
                triangles[2].position = new Vector2(rect.xMin - innerRadius, rect.yMax);
                triangles[3].position = triangles[2].position;
                triangles[4].position = new Vector2(rect.xMin - innerRadius, rect.yMin);
                triangles[5].position = triangles[0].position;
                break;

            case EdgeType.Bottom:                     // bottom
                triangles[0].position = new Vector2(rect.xMin, rect.yMin - innerRadius);
                triangles[1].position = new Vector2(rect.xMin, rect.yMin - outerRadius);
                triangles[2].position = new Vector2(rect.xMax, rect.yMin - outerRadius);
                triangles[3].position = triangles[2].position;
                triangles[4].position = new Vector2(rect.xMax, rect.yMin - innerRadius);
                triangles[5].position = triangles[0].position;
                break;

            case EdgeType.Right:                     // right
                triangles[0].position = new Vector2(rect.xMax + outerRadius, rect.yMin);
                triangles[1].position = new Vector2(rect.xMax + outerRadius, rect.yMax);
                triangles[2].position = new Vector2(rect.xMax + innerRadius, rect.yMax);
                triangles[3].position = triangles[2].position;
                triangles[4].position = new Vector2(rect.xMax + innerRadius, rect.yMin);
                triangles[5].position = triangles[0].position;
                break;
            }

            verts.AddRange(triangles);
        }
Beispiel #15
0
 public OTFontVal(OTFile f, uint FontFileNumber, OffsetTable ot, OutlineType outlineType)
     : base(f, FontFileNumber, ot, outlineType)
 {
 }
Beispiel #16
0
 private OutlineEffect InstantiateOutline(OutlineType type)
 {
     return(Instantiate(prefabs.Get(type)));
 }