Exemplo n.º 1
0
 int InfosNumberComparer(ObjFileInfo a, ObjFileInfo b)
 {
     if (a.ParsedNumber == b.ParsedNumber)
     {
         return(a.Hash - b.Hash);
     }
     else
     {
         return(a.ParsedNumber - b.ParsedNumber);
     }
 }
Exemplo n.º 2
0
        public MeshSequenceInfo(string pathToAnyObj, SortModeEnum sortMode)
        {
            SortMode      = sortMode;
            State         = StateEnum.Empty_path;
            SequenceName  = "";
            DirectoryPath = "";
            infos         = new ObjFileInfo[0];
            // Date = System.DateTime.Now.ToString();

            if (string.IsNullOrEmpty(pathToAnyObj))
            {
                return;
            }

            if (!File.Exists(pathToAnyObj))
            {
                State = StateEnum.File_not_found;
                return;
            }

            DirectoryInfo di = (new FileInfo(pathToAnyObj)).Directory;

            FileInfo[] fis = di.GetFiles("*.obj");
            DirectoryPath = di.FullName;
            infos         = new ObjFileInfo[fis.Length];

            for (int i = 0; i < infos.Length; i++)
            {
                infos[i]              = new ObjFileInfo();
                infos[i].fi           = fis[i];
                infos[i].FileName     = Path.GetFileNameWithoutExtension(fis[i].FullName);
                infos[i].ParsedNumber = GetNumberFromName(infos[i].FileName, ref infos[i].Hash);
            }

            if (SortMode == SortModeEnum.ByDate)
            {
                System.Array.Sort(infos, InfosDateComparer);
            }
            else
            {
                System.Array.Sort(infos, InfosNumberComparer);
            }
            SequenceName = string.Format("[{0}-{1}]", infos[0].FileName, infos[infos.Length - 1].FileName);

            State = StateEnum.Ready;
        }
Exemplo n.º 3
0
        int InfosDateComparer(ObjFileInfo a, ObjFileInfo b)
        {
            int result;

            if (a.fi.LastWriteTime == b.fi.LastWriteTime)
            {
                result = 0;
            }
            else if (a.fi.LastWriteTime < b.fi.LastWriteTime)
            {
                result = -1;
            }
            else
            {
                result = 1;
            }

            return(result);
        }