Beispiel #1
0
        public void Reset()
        {
            ResetSettings();

            AssignMeshesFromPairs();

            GameObject obj = GameObject.Find("onion");

            if (obj)
            {
                targetObject.SetActive(false);
            }

            else
            {
                obj = GameObject.Find("Meat");
                if (obj)
                {
                    targetObject.SetActive(false);
                }
            }

            targetObject = barabarianRef;
            preserveFace.interactable         = true;
            preservationStrength.interactable = preserveFace.isOn;


            targetObject.SetActive(true);
            objectMeshPairs     = PolyfewRuntime.GetObjectMeshPairs(targetObject, true);
            trianglesCount.text = PolyfewRuntime.CountTriangles(true, targetObject) + "";

            exportButton.interactable         = false;
            importFromWeb.interactable        = true;
            importFromFileSystem.interactable = true;
        }
Beispiel #2
0
        public void ImportOBJFromNetwork()
        {
            // This function downloads and imports an obj file named onion.obj from the url below
            // This also loads the associated textures and materials given by the absolute URLs

            GameObject importedObject;

            isImportingFromNetwork = true;


            PolyfewRuntime.OBJImportOptions importOptions = new PolyfewRuntime.OBJImportOptions();
            importOptions.zUp           = false;
            importOptions.localPosition = new Vector3(0.87815f, 1.4417f, -4.4708f);
            importOptions.localScale    = new Vector3(0.0042f, 0.0042f, 0.0042f);


            string objURL         = "https://dl.dropbox.com/s/v09bh0hiivja10e/onion.obj?dl=1";
            string objName        = "onion";
            string diffuseTexURL  = "https://dl.dropbox.com/s/0u4ij6sddi7a3gc/onion.jpg?dl=1";
            string bumpTexURL     = "";
            string specularTexURL = "";
            string opacityTexURL  = "";
            string materialURL    = "https://dl.dropbox.com/s/fuzryqigs4gxwvv/onion.mtl?dl=1";


            progressSlider.value = 0;
            uninteractivePanel.SetActive(true);
            downloadProgress = new PolyfewRuntime.ReferencedNumeric <float>(0);

            StartCoroutine(UpdateProgress());

            PolyfewRuntime.ImportOBJFromNetwork(objURL, objName, diffuseTexURL, bumpTexURL, specularTexURL, opacityTexURL, materialURL, downloadProgress, (GameObject imp) =>
            {
                AssignMeshesFromPairs();
                isImportingFromNetwork = false;
                importedObject         = imp;
                barabarianRef.SetActive(false);
                targetObject = importedObject;
                ResetSettings();
                objectMeshPairs           = PolyfewRuntime.GetObjectMeshPairs(targetObject, true);
                trianglesCount.text       = PolyfewRuntime.CountTriangles(true, targetObject) + "";
                exportButton.interactable = true;
                uninteractivePanel.SetActive(false);
                importFromWeb.interactable        = false;
                importFromFileSystem.interactable = false;
                preserveFace.interactable         = false;
                preservationStrength.interactable = false;
                disableTemporary = true;
                preservationSphere.gameObject.SetActive(false);
                disableTemporary = false;
            },
                                                (Exception ex) =>
            {
                uninteractivePanel.SetActive(false);
                isImportingFromNetwork = false;
                Debug.LogError("Failed to download and import OBJ file.   " + ex.Message);
            }, importOptions);
        }
Beispiel #3
0
        // Start is called before the first frame update
        void Start()
        {
            if (Application.platform == RuntimePlatform.WebGLPlayer)
            {
                isWebGL = true;
            }

            uninteractivePanel.SetActive(false);
            exportButton.interactable = false;
            barabarianRef             = targetObject;
            objectMeshPairs           = PolyfewRuntime.GetObjectMeshPairs(targetObject, true);
            trianglesCount.text       = PolyfewRuntime.CountTriangles(true, targetObject) + "";
        }
Beispiel #4
0
        public void ImportOBJ()
        {
            // This function loads an abj file named Meat.obj from the project's asset directory
            // This also loads the associated textures and materials

            GameObject importedObject;

            PolyfewRuntime.OBJImportOptions importOptions = new PolyfewRuntime.OBJImportOptions();
            importOptions.zUp           = false;
            importOptions.localPosition = new Vector3(-2.199f, -1, -1.7349f);
            importOptions.localScale    = new Vector3(0.045f, 0.045f, 0.045f);

            string objPath             = Application.dataPath + "/PolyFew/demo/TestModels/Meat.obj";
            string texturesFolderPath  = Application.dataPath + "/PolyFew/demo/TestModels/textures";
            string materialsFolderPath = Application.dataPath + "/PolyFew/demo/TestModels/materials";


            PolyfewRuntime.ImportOBJFromFileSystem(objPath, texturesFolderPath, materialsFolderPath, (GameObject imp) =>
            {
                importedObject = imp;
                Debug.Log("Successfully imported GameObject:   " + importedObject.name);
                barabarianRef.SetActive(false);
                targetObject = importedObject;
                ResetSettings();
                objectMeshPairs                   = PolyfewRuntime.GetObjectMeshPairs(targetObject, true);
                trianglesCount.text               = PolyfewRuntime.CountTriangles(true, targetObject) + "";
                exportButton.interactable         = true;
                importFromWeb.interactable        = false;
                importFromFileSystem.interactable = false;
                preserveFace.interactable         = false;
                preservationStrength.interactable = false;
                disableTemporary                  = true;
                preservationSphere.gameObject.SetActive(false);
                disableTemporary = false;
            },
                                                   (Exception ex) =>
            {
                Debug.LogError("Failed to load OBJ file.   " + ex.ToString());
            }, importOptions);
        }