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}"); } }
public void ExportOBJButton_OnClick() { string path = FileManager.OpenExportDialog(FileManager.ExportFormat.OBJ); if (!String.IsNullOrEmpty(path)) { OBJExporter.Export(path, EditManager.Instance.CurrentLayer.GetBlockGroup()); } }
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; } }
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; } }
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"); }
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(); }
// 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); } }
// 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); } } } } }
public CachedIslandGenerator(IIslandGenerator decorated, OBJExporter objExporter) { this.decorated = decorated; this.objExporter = objExporter; }