private void DrawMainArea(ref Rect bounds, VertexHelper vh)
    {
        if (mainCache.shouldRegenIndices(ref bounds))
        {
            CacheMainIndices(ref bounds);
        }
        if (mainCache.shouldRegenVertices(ref bounds, edgeWidth, decoHeight))
        {
            CacheMainVertices(ref bounds);
        }

        for (int i = 0; i < mainCache.vertices.Length; ++i)
        {
            vh.AddVert(mainCache.vertices[i]);
        }
        for (int i = 0; i < mainCache.indices.Length; i += 3)
        {
            vh.AddTriangle(mainCache.indices[i], mainCache.indices[i + 1], mainCache.indices[i + 2]);
        }
    }
    private void DrawDecoArea(ref Rect bounds, VertexHelper vh)
    {
        if (decoCache.shouldRegenIndices(ref bounds))
        {
            CacheDecoIndices(ref bounds);
        }
        if (decoCache.shouldRegenVertices(ref bounds, edgeWidth, decoHeight))
        {
            CacheDecoVertices(ref bounds);
        }

        int cur_index = vh.currentVertCount;

        for (int i = 0; i < decoCache.vertices.Length; ++i)
        {
            vh.AddVert(decoCache.vertices[i]);
        }
        for (int i = 0; i < decoCache.indices.Length; i += 3)
        {
            vh.AddTriangle(cur_index + decoCache.indices[i], cur_index + decoCache.indices[i + 1], cur_index + decoCache.indices[i + 2]);
        }
    }