Beispiel #1
0
 /// <summary>
 /// 开始读取文件 事件广播
 /// </summary>
 /// <param name="structure_LoadFile"></param>
 public void BroadcastStartReadFile(Structure_LoadFile structure_LoadFile)
 {
     if (StartReadFile != null)
     {
         StartReadFile(structure_LoadFile);
     }
     Debug.Log(structure_LoadFile.name);
     Debug.Log(structure_LoadFile.name + "      " + structure_LoadFile.FileDir);
     Debug.Log(structure_LoadFile.name + "      " + structure_LoadFile.fileType);
 }
Beispiel #2
0
 private void Instance_StartReadFile(Structure_LoadFile args)
 {
     VTKGetFileList(args);
 }
Beispiel #3
0
    /// <summary>
    /// 获取文件列表
    /// </summary>
    public void VTKGetFileList(Structure_LoadFile structure_loadFile)
    {
        if (structure_loadFile.FileDir == null)
        {
            return;
        }

        List <Others.MaxAndMin> listm = new List <Others.MaxAndMin>();

        if (structure_loadFile.dataType == Enums.DataType.Default)
        {
            StreamReader sr;
            string       file_name = structure_loadFile.FileDir + @"\Arr.mm";
            sr = File.OpenText(file_name);
            string strAboutAttMaxMin = sr.ReadLine();
            sr.Close();
            sr.Dispose();

            string[]         strTempArray = strAboutAttMaxMin.Trim().Split(' ');
            Others.MaxAndMin mn;
            for (int i = 0; i < strTempArray.Length;)
            {
                mn            = new Others.MaxAndMin();
                mn.Attname    = strTempArray[i++];
                mn.Dimension  = Convert.ToInt32(strTempArray[i++]);
                mn.isPointAtt = strTempArray[i++].Contains("point");
                mn.Min        = Convert.ToSingle(strTempArray[i++]);
                mn.Max        = Convert.ToSingle(strTempArray[i++]);
                listm.Add(mn);
            }
        }
        structure_loadFile.name = GetSameName(structure_loadFile.FileDir);

        string extensionName = "*.qf";

        //switch (structure_loadFile.fileType)
        //{
        //    case Enums.FileType.Tecplot:
        //        extensionName = "*.dat";
        //        break;
        //    case Enums.FileType.VTK:
        //        extensionName = "*.vtk";
        //        break;
        //    default:
        //        break;
        //}

        //创建所有帧对象
        VTK_AllFrame AllFrame = new VTK_AllFrame();

        AllFrame.point_MaxAndMin = listm;

        AllFrame.modelState = new Others.ModelState();
        int pointAttIndex = 0;
        int cellAttIndex  = 0;

        for (int i = 0; i < listm.Count; i++)
        {
            if (listm[i].Dimension == 1)
            {
                AllFrame.modelState.isUsecolor = true;
                AllFrame.modelState.isPointAtt = listm[i].isPointAtt;
                if (listm[i].isPointAtt)
                {
                    AllFrame.modelState.attIndex = pointAttIndex;
                }
                else
                {
                    AllFrame.modelState.attIndex = cellAttIndex;
                }
                AllFrame.modelState.maxminIndex = i;
                break;
            }
            else
            {
                if (listm[i].isPointAtt)
                {
                    pointAttIndex++;
                }
                else
                {
                    cellAttIndex++;
                }
            }
        }

        AllFrame.listFrame = new List <VTK_Frame>();

        AllFrame.name = structure_loadFile.name;

        //创建 场景中的 数据模型载体
        GameObject newNodel = new GameObject();

        newNodel.name             = structure_loadFile.name;
        newNodel.transform.parent = transform;
        //挂上 功能脚本
        modelGameObject modelgo = newNodel.AddComponent <modelGameObject>();

        modelgo.vtkAllFrame = AllFrame;
        AllFrame.loadFile   = structure_loadFile;


        DirectoryInfo folder = new DirectoryInfo(structure_loadFile.FileDir);

        FileInfo[] fileinfoArray = folder.GetFiles(extensionName);
        Array.Sort(fileinfoArray, new FileNameSort());

        AllFrame.FileCount = fileinfoArray.Length;

        GlobalVariableBackground.Instance.FrameALLCount = fileinfoArray.Length;

        //加载指定缓存数量的模型数据
        for (int i = 0; i < GlobalVariableBackground.Instance.modelCacheCount; i++)
        {
            GameObject goModelFrame;
            //生成 线程数据包
            goModelFrame = GameObject.Instantiate(GlobalVariableBackground.Instance.modelPerfab);

            goModelFrame.transform.parent = newNodel.transform;

            modelFrameManager modelManager = goModelFrame.AddComponent <modelFrameManager>();
            goModelFrame.AddComponent <ClickGameObjectEvent>();
            modelManager.modelState = AllFrame.modelState;

            Others.ThreadLoadFilePack pack = new Others.ThreadLoadFilePack();

            //pack.strAboutArrMAxMin = strAboutAttMaxMin;

            //创建 单帧
            VTK_Frame frame = new VTK_Frame();
            frame.point_MaxAndMin = AllFrame.point_MaxAndMin;
            modelManager.vtkframe = frame;
            frame.go = goModelFrame;
            modelManager.isCollider = structure_loadFile.dataType == Enums.DataType.Default;
            pack.vtkAllFrame        = AllFrame;
            //填充 线程数据包-》单帧
            pack.vtkFrame = frame;
            //填充 线程数据包-》单一文件
            pack.fileAddres = fileinfoArray[i];
            int fileIndex = i;

            AllFrame.listFrame.Add(frame);

            goModelFrame.name    = AllFrame.name + "#" + fileIndex;
            frame.selfFrameIndex = fileIndex;

            VTKCManager m = new VTKCManager();
            frame.timeStartLession = DateTime.Now;
            m.DisposeData(pack);

            //Thread t = new Thread(m.DisposeData);
            //t.IsBackground = true;
            //t.Start(pack);

            //ThreadPool.QueueUserWorkItem(new WaitCallback(m.DisposeData), pack as object);
        }
        folder        = null;
        fileinfoArray = null;
    }
Beispiel #4
0
    private void Start()
    {
        //Structure_LoadFile file = new Structure_LoadFile();
        //file.name = "boat";
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\13";
        //file.fileType = Enums.FileType.Tecplot;
        //file.dataType = Enums.DataType.Default;
        //GetFileList(file);

        //file = new Structure_LoadFile();
        //file.name = "water";
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\14";
        //file.fileType = Enums.FileType.Tecplot;
        //file.dataType = Enums.DataType.Default;
        //GetFileList(file);

        //Structure_LoadFile file = new Structure_LoadFile();
        //file.name = "boat";
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK01";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Default;
        //GetFileList(file);

        //file = new Structure_LoadFile();
        //file.name = "water";
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK02";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Water;
        //GetFileList(file);


        // CLoadTest.test("tr");

        //Structure_LoadFile file = new Structure_LoadFile();

        //file.name = "boat";
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKBoat\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Default;

        //GetFileList(file);


        //file = new Structure_LoadFile();
        //file.name = "water";
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKWater\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Water;
        //GetFileList(file);



        //using (FileStream stream = File.OpenRead(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKBoat\ship_2.qf"))
        //{
        //    byte[] content = new byte[stream.Length];

        //    for (int i = 0; i < content.Length; i++)
        //    {
        //        content[i] = (byte)stream.ReadByte();
        //    }
        //    string str = System.Text.Encoding.UTF8.GetString(content);
        //    //Console.WriteLine();
        //    GlobalVariableBackground.Instance.conManager.WriteLog(str);
        //}

        //CLoadTest.Array_Out arr = new CLoadTest.Array_Out();
        //arr.nameLength = 10;
        //arr.name = "234567890";
        //arr.arraytype = 3;

        //arr.arrayData = new float[3];
        //arr.arrayData[0] = 0.1f;
        //arr.arrayData[1] = 0.2f;
        //arr.arrayData[2] = 0.3f;



        //CLoadTest.Array_Out arr2 = new CLoadTest.Array_Out();
        //arr2.nameLength = 10;

        //arr2.name = "334567890";
        //arr2.arraytype = 3;
        //arr2.arrayData = new float[3];
        //arr2.arrayData[0] = 1.1f;
        //arr2.arrayData[1] = 1.2f;
        //arr2.arrayData[2] = 1.3f;

        ////CLoadTest.test2(arr2, @"G:\FBX\sss2222.txt");

        //CLoadTest.Array_Out arr3 = new CLoadTest.Array_Out();
        //arr3.nameLength = 10;

        //arr3.name = "434567890";
        //arr3.arraytype = 3;
        //arr3.arrayData = new float[3];
        //arr3.arrayData[0] = 2.1f;
        //arr3.arrayData[1] = 2.2f;
        //arr3.arrayData[2] = 2.3f;

        //CLoadTest.Array_Out arr4 = new CLoadTest.Array_Out();
        //arr4.nameLength = 10;

        //arr4.name = "534567890";
        //arr4.arraytype = 3;
        //arr4.arrayData = new float[3];
        //arr4.arrayData[0] = 3.1f;
        //arr4.arrayData[1] = 3.2f;
        //arr4.arrayData[2] = 3.3f;

        //CLoadTest.Point_Out po = new CLoadTest.Point_Out();
        //po.x = 1f;
        //po.y = 2f;
        //po.z = 3f;
        //po.color = 4f;

        //po.testint = 1;

        //po.testA = new CLoadTest.Array_Out[1];
        //po.testA[0] = arr3;
        ////po.testA[1] = arr4;

        //po.array1 = arr;
        //po.array2 = arr2;

        //po.normal = new float[3];
        //po.normal[0] = 5f;
        //po.normal[1] = 6f;
        //po.normal[2] = 7f;

        //po.number = 8;

        //CLoadTest.test2(po.testA[0], @"G:\FBX\sss2222.txt");

        //CLoadTest.test(po, @"G:\FBX\sss.txt");


        //CLoadTest.Temp_1 te = new CLoadTest.Temp_1();
        //te.length = 20;
        //te.temp = new float[te.length];

        //for (int i = 0; i < te.length; i++)
        //{
        //    te.temp[i] = i + 0.3f;
        //}



        //CLoadTest.TriangleObject tobj = new CLoadTest.TriangleObject();

        //tobj = CLoadTest.loadQF(@"G:\FBX\ship_2.qf");

        //for (int i = 0; i < tobj.meshCount; i++)
        //{
        //    int length = tobj.mesh[i].pointArray.Length;
        //}

        //CLoadTest.pretreatmentData_Dat(@"G:\FBX\Data\boat\", @"G:\FBX\Data\boat\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //CLoadTest.pretreatmentData_Dat(@"G:\FBX\Data\water\", @"G:\FBX\Data\water\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //CLoadTest.pretreatmentData_Vtk(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKBoat\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKBoat\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //CLoadTest.pretreatmentData_Vtk(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKWater\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKWater\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //CLoadTest.pretreatmentData_Vtk(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK04Water\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK04Water\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //List<VTK_Frame> list = new List<VTK_Frame>();
        //DateTime dstart = DateTime.Now;
        ////for (int i = 2; i < 11; i++)
        ////{
        //VTK_Frame frame = new VTK_Frame();
        ////list.Add(frame);
        ////loadQFFile(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKQFTest\ship_" + i + ".qf", frame);
        ////loadQFFile(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKQFWater\water_100.qf", frame);
        ////}
        //DateTime dend = DateTime.Now;
        //GlobalVariableBackground.Instance.conManager.WriteLog((dend - dstart).TotalMilliseconds);

        //CLoadTest.pretreatmentData_Dat(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\14\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\14\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //GlobalVariableBackground.Instance.isUseVtk = true;
        //CLoadTest.pretreatmentData_Dat(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\20\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\20\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");
        //CLoadTest.pretreatmentData_Dat(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\21\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\21\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");
        //CLoadTest.pretreatmentData_Vtk(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK03Boat\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK03Boat\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");
        //CLoadTest.pretreatmentData_Vtk(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK01\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK01\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //CLoadTest.pretreatmentData_Vtk(@"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK02\", @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK02\", 65000);
        //GlobalVariableBackground.Instance.conManager.WriteLog("生成完毕");

        //Structure_LoadFile file = new Structure_LoadFile();

        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK01\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Default;
        //VTKGetFileList(file);

        //file = new Structure_LoadFile();

        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK02\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Water;
        //VTKGetFileList(file);

        Structure_LoadFile file = new Structure_LoadFile();

        //file.FileDir = @"G:\FBX\Data\boat\";
        //file.fileType = Enums.FileType.Tecplot;
        //file.dataType = Enums.DataType.Default;
        //VTKGetFileList(file);

        //file = new Structure_LoadFile();
        //file.FileDir = @"G:\FBX\Data\water\";
        //file.fileType = Enums.FileType.Tecplot;
        //file.dataType = Enums.DataType.Water;
        //VTKGetFileList(file);

        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK03Boat\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Default;
        //VTKGetFileList(file);

        // file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKBoat\";
        // file.fileType = Enums.FileType.VTK;
        // file.dataType = Enums.DataType.Default;
        // VTKGetFileList(file);

        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\20\";
        //file.fileType = Enums.FileType.Tecplot;
        //file.dataType = Enums.DataType.Default;
        //VTKGetFileList(file);

        file.FileDir  = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\13\";
        file.fileType = Enums.FileType.Tecplot;
        file.dataType = Enums.DataType.Default;
        VTKGetFileList(file);

        file          = new Structure_LoadFile();
        file.FileDir  = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\14\";
        file.fileType = Enums.FileType.Tecplot;
        file.dataType = Enums.DataType.Water;
        VTKGetFileList(file);

        //file = new Structure_LoadFile();
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\21\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Water;
        //VTKGetFileList(file);

        //file = new Structure_LoadFile();
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTKWater\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Water;
        //VTKGetFileList(file);

        //file = new Structure_LoadFile();
        //file.FileDir = @"D:\Documents\MyUnity\QianFan\VR_Visualization\Assets\streamingAssets\VTK04Water\";
        //file.fileType = Enums.FileType.VTK;
        //file.dataType = Enums.DataType.Water;
        //VTKGetFileList(file);

        OverallEvent_Manger.Instance.StartReadFile += Instance_StartReadFile;
    }