//seems like those calls are not required
        //mesh.RecalculateBounds();
        //mesh.RecalculateNormals(); //expensive call - uncomment only if needed

        public void updateMesh()
        {
            if (vertexCount_ == 0)
            {
                return;
            }

            mesh_.Clear(true);

            mesh_.SetVertices(vertices_);
            mesh_.SetColors(colors_);
            mesh_.SetUVs(0, uv_);

            mesh_.subMeshCount = renderCallsCount_;

            for (uint renderCallIndex = 0; renderCallIndex < renderCallsCount_; ++renderCallIndex)
            {
                RenderCall rc = renderCalls_[renderCallIndex];

                this.indices_.Clear();
                int endIndex = rc.startIndex_ + rc.numIndices_;
                for (int i = rc.startIndex_; i < endIndex; ++i)
                {
                    this.indices_.Add(this.allIndices_[i]);
                }

                mesh_.SetTriangles(this.indices_, (int)renderCallIndex);
            }


#if UNITY_EDITOR
            if (mesh_.bounds.center != Vector3.zero)
            {
                bounds_.SetMinMax(mesh_.bounds.min, mesh_.bounds.max);
                bounds_.center = Vector3.zero;
                mesh_.bounds   = bounds_;
            }
#endif
        }
 public void pushRenderCall(ref RenderCall rc)
 {
     renderCalls_[renderCallsCount_++] = rc;
 }