private void DoChangeSourceCSV(int index, string fileFullPath)
        {
            if (index >= 0 && index < m_SourcePath.Length)
            {
                m_SourcePath[index] = fileFullPath;

                DoCheckCSVError();

                if (index == 0)
                {
                    m_VertexAttrList.Clear();
                    if (!string.IsNullOrEmpty(m_SourcePath[index]))
                    {
                        List <string> headerList    = new List <string>();
                        List <int>    compCountList = new List <int>();
                        RenderDocCSV.GetMeshCSVVertexAttrList(m_SourcePath[index], headerList, compCountList);
                        for (int i = 0; i < headerList.Count; ++i)
                        {
                            var attr = new VertexAttrSetting();
                            attr.CSVName   = headerList[i];
                            attr.CompCount = compCountList[i];
                            RenderDocCSV.SpeculateVertextAttr(headerList[i], out attr.Attr);
                            m_VertexAttrList.Add(attr);
                        }
                    }
                }
            }
        }
 private void DoCheckCSVError()
 {
     m_ErrorMessage = string.Empty;
     if (!RenderDocCSV.CheckAllMeshCSVHeader(m_SourcePath))
     {
         m_ErrorMessage = "CSV Head not all the same!";
     }
 }