示例#1
0
        public void DumpButtonCallback()
        {
            try
            {
                // Obtain the currently selected clothes.
                DAZClothingItem clothes = GameObject
                                          .FindObjectsOfType <DAZClothingItem>()
                                          .Where(dci => dci.containingAtom == containingAtom)
                                          .Where(dci => dci.name == clothingItems.val)
                                          .DefaultIfEmpty((DAZClothingItem)null)
                                          .FirstOrDefault();

                // Bug out if it doesn't exist.
                if (clothes == null)
                {
                    SuperController.LogError($"Could not finding clothing item '{clothingItems.val}'");
                    return;
                }

                // Get the first skinwrap mesh.
                DAZMesh mesh = clothes
                               .GetComponentsInChildren <DAZMesh>()
                               .FirstOrDefault();

                // Export
                OBJExporter exporter = new OBJExporter();
                exporter.Export(clothes.name + ".obj", mesh.uvMappedMesh, mesh.uvMappedMesh.vertices, mesh.uvMappedMesh.normals, mesh.materials);
            }
            catch (Exception ex)
            {
                SuperController.LogMessage($"Could not export OBJ file for this clothing item: {ex}");
            }
        }
示例#2
0
    public void ExportOBJButton_OnClick()
    {
        string path = FileManager.OpenExportDialog(FileManager.ExportFormat.OBJ);

        if (!String.IsNullOrEmpty(path))
        {
            OBJExporter.Export(path, EditManager.Instance.CurrentLayer.GetBlockGroup());
        }
    }
示例#3
0
    private static void Export(string filename, string folder, TrackBuildR data, Mesh exportMesh, ExportMaterial[] exportTextures)
    {
        switch (data.fileType)
        {
        case TrackBuildR.fileTypes.Obj:
            OBJExporter.Export(folder, filename, exportMesh, exportTextures, data.copyTexturesIntoExportFolder);
            break;

        case TrackBuildR.fileTypes.Fbx:
            FBXExporter.Export(folder, filename, exportMesh, exportTextures, data.copyTexturesIntoExportFolder);
            break;
        }
    }
示例#4
0
    private static void Export(string filename, string folder, BuildrData data, Mesh exportMesh, ExportMaterial[] exportTextures)
    {
        switch (data.filetype)
        {
        case BuildrData.filetypes.obj:
            OBJExporter.Export(folder, filename, exportMesh, exportTextures, data.copyTexturesIntoExportFolder);
            break;

        case BuildrData.filetypes.fbx:
            FBXExporter.Export(folder, filename, exportMesh, exportTextures, data.copyTexturesIntoExportFolder);
            break;
        }
    }
示例#5
0
        public void TestExport()
        {
            var tex = new RAMTexture();

            tex.GetCoreData().DiskFilePath = "trolo.png";

            var mesh = UtilityMeshes.CreateBoxWithTexture(tex, new Vector3(10, 10, 10));


            var exporter = new OBJExporter();

            var objMesh = exporter.ConvertFromTWMesh(mesh);

            exporter.SaveToFile(objMesh, TWDir.GameData.CreateSubdirectory("Scattered\\Tests").FullName + "\\OBJExporterTrolo.obj");
        }
示例#6
0
        public void TestExportComplex()
        {
            var tex = new RAMTexture();

            tex.GetCoreData().DiskFilePath = "trolo.png";


            var meshFact = new EngineMeshFactory(new RAMTextureFactory());
            var mesh     = meshFact.loadMeshFromFile(TWDir.GameData.FullName + "\\Core\\MerchantsHouse.obj",
                                                     TWDir.GameData.FullName + "\\Core\\MerchantsHouse.mtl",
                                                     "MerchantsHouse.mtl");
            var exporter = new OBJExporter();

            var objMesh = exporter.ConvertFromTWMesh(mesh);


            exporter.SaveToFile(objMesh, TWDir.GameData.CreateSubdirectory("Scattered\\Tests").FullName + "\\OBJExporterHouse.obj");
        }
    IEnumerator changeDiameter()
    {
        yield return(new WaitForSeconds(5));

        strokeSketchObject.DeleteControlPoints(deletePoint.transform.position, deleteRadius, out List <StrokeSketchObject> newLines);
        OBJExporter exporter   = new OBJExporter();
        string      exportPath = OBJExporter.GetDefaultExportPath();

        //exporter.ExportGameObject(lineSketchObject.gameObject, exportPath);
        //Debug.Log(JsonUtility.ToJson(lineSketchObject));
        //XMLSerializeTest();
        //XMLSerializeTest2();
        //exporter.ExportGameObject(controlPointParent, exportPath);
        strokeSketchObject.SetInterpolationSteps(4);
        strokeSketchObject.RefineMesh();
        strokeSketchObject2.RefineMesh();

        //Debug.Log(exportPath);
        //lineSketchObject.setLineDiameter(.1f);
        //yield return new WaitForSeconds(2);
        //lineSketchObject.deleteControlPoint();
        //lineSketchObject.deleteControlPoint();
    }
示例#8
0
文件: Toolbox.cs 项目: Waqee/FYP
    // Update is called once per frame
    void Update()
    {
        if (SixenseInput.Controllers[1].GetButtonDown(SixenseButtons.ONE))
        {
            PhotonNetwork.Instantiate("SplitableCube", transform.position, Quaternion.identity, 0);
        }
        if (SixenseInput.Controllers[1].GetButtonDown(SixenseButtons.TWO))
        {
            PhotonNetwork.Instantiate("SplitableSphere", transform.position, Quaternion.identity, 0);
        }
        if (SixenseInput.Controllers[1].GetButtonDown(SixenseButtons.THREE))
        {
            List <int> idsList = new List <int>();

            int objectID = PhotonNetwork.AllocateViewID();
            idsList.Add(objectID);
            GameObject imported = ImportObject(transform.position, objectID);


            foreach (Transform child in imported.transform)
            {
                //Generate ID and add to list.
                int partID = PhotonNetwork.AllocateViewID();
                idsList.Add(partID);
                // Set up child
                SetUpChild(child, partID);
            }

            PhotonView photonView = this.GetComponent <PhotonView>();
            photonView.RPC("SpawnOnNetwork", PhotonTargets.OthersBuffered, transform.position, idsList.ToArray());

            //GameObject imported = OBJLoader.LoadOBJFile("Models/F-14A_Tomcat/F-14A_Tomcat.obj");

            //imported.transform.position = transform.position;
            //imported.transform.localScale = Vector3.one * 0.1f;

            //imported.AddComponent<MeshFilter>();
            //MeshFilter[] meshFilters = imported.GetComponentsInChildren<MeshFilter>();
            //CombineInstance[] combine = new CombineInstance[meshFilters.Length];

            //for (int i=0; i < meshFilters.Length; i++)
            //{
            //    if (meshFilters[i].sharedMesh == null)
            //        continue;
            //    combine[i].mesh = meshFilters[i].sharedMesh;
            //    combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
            //}
            //imported.transform.GetComponent<MeshFilter>().mesh = new Mesh();
            //imported.transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine);
            //imported.AddComponent<MeshCollider>();
        }
        // Object Copy (don't delete this code)
        //if (SixenseInput.Controllers[1].GetButtonDown(SixenseButtons.ONE) && (Object)Grabber.current != null)
        //PhotonNetwork.Instantiate(Grabber.current.name, Grabber.current.transform.position, Grabber.current.transform.rotation, 0);
        if (SixenseInput.Controllers[1].GetButtonDown(SixenseButtons.FOUR) && Grabber.current != null)
        {
            if (Grabber.current.tag == "imported")
            {
                PhotonView photonView = this.GetComponent <PhotonView>();
                photonView.RPC("Delete", PhotonTargets.AllBuffered, Grabber.current.name);
            }
            else
            {
                PhotonNetwork.Destroy(Grabber.current);
            }
        }
        if (SixenseInput.Controllers[0].GetButtonDown(SixenseButtons.START))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }

        if (SixenseInput.Controllers[0].GetButtonDown(SixenseButtons.FOUR))
        {
            floor.SetActive(false);
            left.SetActive(false);
            right.SetActive(false);

            OBJExporter exporter = new OBJExporter();
            exporter.Export("New Models/Model.obj");

            floor.SetActive(true);
            left.SetActive(true);
            right.SetActive(true);
        }
    }
示例#9
0
    // Update is called once per frame
    void Update()
    {
        if (readyToBuild == false)
        {
            return;
        }

        if (individually)
        {
            if (cells.Count > 0 && building == false)
            {
                //start cell build -- look fro traditional
                TraditionalSkyscraper tss = cells[0].GetComponent <TraditionalSkyscraper>();
                tss.enabled = true;

                //keep track from here
                building = true;
            }
            else if (building)
            {
                //check if cell has finsihed
                TraditionalSkyscraper tss = cells[0].GetComponent <TraditionalSkyscraper>();
                if (tss.finishedBuilding)
                {
                    //StartCoroutine("BuildCo");

                    if (export)
                    {
                        for (int i = 0; i < cells[0].transform.childCount; i++)
                        {
                            string exportPath = "C:/Users/Derrick Wells/Documents/Exports/" + builtSoFar.ToString() + " " + i.ToString() + ".obj";
                            OBJExporter.StartExport(exportPath, cells[0].transform.GetChild(i).gameObject);
                            GameObject cell = cells[0].transform.GetChild(i).gameObject;
                            cell.name = i.ToString();
                        }
                    }

                    cells.RemoveAt(0);

                    building = false;

                    builtSoFar++;
                }
            }
        }
        else if (simultaneously)
        {
            foreach (GameObject cell in cells)
            {
                cell.GetComponent <TraditionalSkyscraper>().enabled = true;
            }

            bool allDone = true;
            foreach (GameObject cell in cells)
            {
                if (!cell.GetComponent <TraditionalSkyscraper>().finishedBuilding)
                {
                    allDone = false;
                }
            }

            if (allDone)
            {
                GameObject.Find("Spawner").GetComponent <Spawner>().reset = true;
            }
        }
        else if (soloBuildings)
        {
            //shows one cell at a time, deletes and moves on

            if (!cellsSetInactive)
            {
                for (int i = 0; i < cells.Count; i++)
                {
                    cells[i].SetActive(false);
                    cells[i].GetComponent <ExtrudeCell>().extrudedCell.SetActive(false);

                    cells[i].transform.position = Vector3.zero;
                    cells[i].GetComponent <ExtrudeCell>().extrudedCell.transform.position = Vector3.zero;
                }

                cellsSetInactive = true;
            }

            //all inactive, now activate first cell
            if (cells.Count > 0 && !building)
            {
                cells[0].SetActive(true);
                cells[0].GetComponent <ExtrudeCell>().extrudedCell.SetActive(true);
                //start cell build -- look fro traditional
                TraditionalSkyscraper tss = cells[0].GetComponent <TraditionalSkyscraper>();
                tss.enabled = true;

                //keep track from here
                building = true;

                //when building is finsihed, the buildign script will reset the flag on this script
            }
            else if (building)
            {
                TraditionalSkyscraper tss = cells[0].GetComponent <TraditionalSkyscraper>();
                if (tss.finishedBuilding)
                {
                    //  cells[0].SetActive(false);
                    //cells[0].GetComponent<ExtrudeCell>().extrudedCell.SetActive(false);

                    //remove from working list
                    //cells.RemoveAt(0);
                    if (!waitingForReset)
                    {
                        waitingForReset = true;
                        Invoke("ResetFlags", secondsToWaitTilNext);
                    }
                }
            }
        }
    }
示例#10
0
 public CachedIslandGenerator(IIslandGenerator decorated, OBJExporter objExporter)
 {
     this.decorated   = decorated;
     this.objExporter = objExporter;
 }