示例#1
0
        private void FileOpen(string[] Files, bool MergeMode)
        {
            if (!MergeMode)
            {
                Renderer.DeleteAll();

                Renderer.Lights.Add(new Light()
                {
                    Ambient         = new Color4(0.1f, 0.1f, 0.1f, 1.0f),
                    Diffuse         = new Color4(0.9f, 0.9f, 0.9f, 1.0f),
                    Specular0       = new Color4(0.8f, 0.8f, 0.8f, 1.0f),
                    Specular1       = new Color4(0.4f, 0.4f, 0.4f, 1.0f),
                    TwoSidedDiffuse = true,
                    Enabled         = true
                });

                ResetTransforms();

                Scene = FileIO.Merge(Files, Renderer);

                TextureManager.Textures = Scene.Textures;

                ModelsList.Bind(Scene.Models);
                TexturesList.Bind(Scene.Textures);
                CamerasList.Bind(Scene.Cameras);
                LightsList.Bind(Scene.Lights);
                SklAnimsList.Bind(Scene.SkeletalAnimations);
                MatAnimsList.Bind(Scene.MaterialAnimations);
                VisAnimsList.Bind(Scene.VisibilityAnimations);
                CamAnimsList.Bind(Scene.CameraAnimations);

                Animator.Enabled     = false;
                LblAnimSpeed.Text    = string.Empty;
                LblAnimLoopMode.Text = string.Empty;
                AnimSeekBar.Value    = 0;
                AnimSeekBar.Maximum  = 0;
                AnimGrp.Frame        = 0;
                AnimGrp.FramesCount  = 0;

                if (Scene.Models.Count > 0)
                {
                    ModelsList.Select(0);
                }
                else
                {
                    UpdateTransforms();
                }
            }
            else
            {
                Scene = FileIO.Merge(Files, Renderer, Scene);
            }
        }
示例#2
0
    // Start is called before the first frame update
    void Start()
    {
        modelsLoader = Resources.Load <ModelsList>("ScriptableObjects/Lists/Models");
        if (modelsLoader == null)
        {
            Debug.LogError("ScriptableObjects/Lists/Models File not found");
        }

        GenerateSlots();
        slots = transform.GetComponentsInChildren <InventorySlot>();

        inventory = Inventory.Instance;
        inventory.OnItemChangedCallback += UpdateUI;
    }
示例#3
0
    void Delay()
    {
        _list = Resources.Load <ModelsList>("ScriptableObjects/Lists/Models");
        if (_list == null)
        {
            Debug.LogError("ScriptableObjects/Lists/Models File not found");
            return;
        }

        for (int i = 0; i < _list.models.Count; i++)
        {
            AdaptModel(_list.models[i].furniture);
            Inventory.Instance.Add(_list.models[i]);
        }
    }
示例#4
0
    public void ValidateFields()
    {
        bool interactable = true;

        if (string.IsNullOrEmpty(NameInput.text))
        {
            interactable = false;
        }
        if (interactable)
        {
            string modelType = (string)ModelsList.GetValue();
            switch (modelType)
            {
            case "Box":
                if (string.IsNullOrEmpty(BoxX.text) ||
                    string.IsNullOrEmpty(BoxY.text) ||
                    string.IsNullOrEmpty(BoxZ.text))
                {
                    interactable = false;
                }
                break;

            case "Sphere":
                if (string.IsNullOrEmpty(SphereRadius.text))
                {
                    interactable = false;
                }
                break;

            case "Cylinder":
                if (string.IsNullOrEmpty(CylinderHeight.text) ||
                    string.IsNullOrEmpty(CylinderRadius.text))
                {
                    interactable = false;
                }
                break;

            case "Mesh":
                if (string.IsNullOrEmpty(MeshId.text))
                {
                    interactable = false;
                }
                break;
            }
        }

        CreateNewObjectBtn.interactable = interactable;
    }
示例#5
0
    public void UpdateModelsMenu()
    {
        ValidateFields();
        ModelsList.gameObject.SetActive(true);
        string modelType = (string)ModelsList.GetValue();

        if (!HasSelectedParentPose())
        {
            ShowModelMenu(null);
            ModelsList.gameObject.SetActive(false);
        }
        else if (ModelMenus.TryGetValue(modelType, out GameObject menu))
        {
            ShowModelMenu(menu);
        }
    }
        private void GetUserModels()
        {
            RestClient client = new RestClient("https://api.bimsync.com");

            //List all models in the project
            RestRequest modelsRequest = new RestRequest("v2/projects/" + _projectId + "/models", Method.GET);

            modelsRequest.AddHeader("Authorization", "Bearer " + _access_token);

            IRestResponse <List <Model> > modelsResponse = client.Execute <List <Model> >(modelsRequest);

            ModelsList.Clear();
            foreach (Model model in modelsResponse.Data)
            {
                ModelsList.Add(model);
            }


            //Is there is an existing project id ?
            Model selectedModel = null;

            if (GetValueOrDefault("model_id") != "")
            {
                _modelId      = GetValueOrDefault("model_id");
                selectedModel = modelsResponse.Data.Where(x => x.id == _modelId).FirstOrDefault();
                if (selectedModel != null)
                {
                    comboBoxModels.SelectedItem = selectedModel;
                }
            }

            if (selectedModel == null)
            {
                selectedModel = ModelsList.FirstOrDefault();
                comboBoxModels.SelectedItem = selectedModel;
            }
        }
示例#7
0
 public MainProcessor()
 {
     ModelsList = new ModelsList();
 }
示例#8
0
    public async void CreateNewObjectType()
    {
        Debug.Assert(ModelsList.Dropdown.dropdownItems.Count > 0, "No models");
        Debug.Assert(ParentsList.Dropdown.dropdownItems.Count > 0, "No parent objects");
        string objectId = NameInput.text;

        IO.Swagger.Model.ObjectModel objectModel = new IO.Swagger.Model.ObjectModel();
        string modelTypeString = (string)ModelsList.GetValue();

        IO.Swagger.Model.ObjectTypeMeta objectTypeMeta;
        if (ModelMenus.TryGetValue(modelTypeString, out GameObject type) && type != null)
        {
            IO.Swagger.Model.ObjectModel.TypeEnum modelType = new IO.Swagger.Model.ObjectModel.TypeEnum();
            switch (modelTypeString)
            {
            case "Box":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Box;
                decimal sizeX = decimal.Parse(BoxX.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                decimal sizeY = decimal.Parse(BoxY.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                decimal sizeZ = decimal.Parse(BoxZ.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                // no need to transform from Unity to ROS, because we are setting those scales in ROS already
                //(sizeX, sizeY, sizeZ) = TransformConvertor.UnityToROSScale(sizeX, sizeY, sizeZ);
                IO.Swagger.Model.Box box = new IO.Swagger.Model.Box(objectId, sizeX, sizeY, sizeZ);
                objectModel.Box = box;
                break;

            case "Sphere":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Sphere;
                decimal radius = decimal.Parse(SphereRadius.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                IO.Swagger.Model.Sphere sphere = new IO.Swagger.Model.Sphere(objectId, radius);
                objectModel.Sphere = sphere;
                break;

            case "Cylinder":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder;
                decimal cylinderRadius             = decimal.Parse(CylinderRadius.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                decimal cylinderHeight             = decimal.Parse(CylinderHeight.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                IO.Swagger.Model.Cylinder cylinder = new IO.Swagger.Model.Cylinder(objectId, cylinderHeight, cylinderRadius);
                objectModel.Cylinder = cylinder;
                break;

            case "Mesh":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Mesh;
                string meshId = MeshId.text;
                IO.Swagger.Model.Mesh mesh = new IO.Swagger.Model.Mesh(id: meshId, focusPoints: new List <IO.Swagger.Model.Pose>(), uri: "");
                objectModel.Mesh = mesh;
                break;

            default:
                Debug.LogError("Model not defined!");
                return;
            }
            objectModel.Type = modelType;
            objectTypeMeta   = new IO.Swagger.Model.ObjectTypeMeta(builtIn: false, description: "", type: objectId, objectModel: objectModel,
                                                                   _base: (string)ParentsList.GetValue(), needsServices: new List <string>());
        }
        else
        {
            objectTypeMeta = new IO.Swagger.Model.ObjectTypeMeta(builtIn: false, description: "", type: objectId,
                                                                 _base: (string)ParentsList.GetValue(), needsServices: new List <string>());
        }



        bool success = await Base.GameManager.Instance.CreateNewObjectType(objectTypeMeta);

        if (success)
        {
            MenuManager.Instance.NewObjectTypeMenu.Close();
        }
    }
示例#9
0
    public async void ValidateFields()
    {
        bool interactable = true;

        if (string.IsNullOrEmpty(NameInput.text))
        {
            buttonTooltip.description = "Name is required parameter";
            interactable = false;
        }
        if (interactable)
        {
            string modelType = (string)ModelsList.GetValue();
            switch (modelType)
            {
            case "Box":
                if (string.IsNullOrEmpty(BoxX.text) ||
                    string.IsNullOrEmpty(BoxY.text) ||
                    string.IsNullOrEmpty(BoxZ.text))
                {
                    interactable = false;
                }
                break;

            case "Sphere":
                if (string.IsNullOrEmpty(SphereRadius.text))
                {
                    interactable = false;
                }
                break;

            case "Cylinder":
                if (string.IsNullOrEmpty(CylinderHeight.text) ||
                    string.IsNullOrEmpty(CylinderRadius.text))
                {
                    interactable = false;
                }
                break;

            case "Mesh":
                if (string.IsNullOrEmpty(MeshId.text))
                {
                    interactable = false;
                }
                break;
            }
            if (!interactable)
            {
                buttonTooltip.description = "Some parameters has invalid value";
            }
        }
        if (interactable)
        {
            try {
                await Base.WebsocketManager.Instance.CreateNewObjectType(CreateObjectTypeMeta(), true);
            } catch (Base.RequestFailedException ex) {
                buttonTooltip.description = ex.Message;
                interactable = false;
            }
        }

        buttonTooltip.enabled = !interactable;

        CreateNewObjectBtn.interactable = interactable;
    }
        private void GoToModelsList(object sender, RoutedEventArgs e)
        {
            var modelsList = new ModelsList();

            NavigationService.Navigate(modelsList);
        }
示例#11
0
    public IO.Swagger.Model.ObjectTypeMeta CreateObjectTypeMeta()
    {
        string objectId = NameInput.text;

        IO.Swagger.Model.ObjectModel objectModel = new IO.Swagger.Model.ObjectModel();
        string modelTypeString = (string)ModelsList.GetValue();

        IO.Swagger.Model.ObjectTypeMeta objectTypeMeta;
        if (HasSelectedParentPose() && ModelMenus.TryGetValue(modelTypeString, out GameObject type) && type != null)
        {
            IO.Swagger.Model.ObjectModel.TypeEnum modelType = new IO.Swagger.Model.ObjectModel.TypeEnum();
            switch (modelTypeString)
            {
            case "Box":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Box;
                decimal sizeX = decimal.Parse(BoxX.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                decimal sizeY = decimal.Parse(BoxY.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                decimal sizeZ = decimal.Parse(BoxZ.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                // no need to transform from Unity to ROS, because we are setting those scales in ROS already
                //(sizeX, sizeY, sizeZ) = TransformConvertor.UnityToROSScale(sizeX, sizeY, sizeZ);
                IO.Swagger.Model.Box box = new IO.Swagger.Model.Box(objectId, sizeX, sizeY, sizeZ);
                objectModel.Box = box;
                break;

            case "Sphere":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Sphere;
                decimal radius = decimal.Parse(SphereRadius.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                IO.Swagger.Model.Sphere sphere = new IO.Swagger.Model.Sphere(objectId, radius);
                objectModel.Sphere = sphere;
                break;

            case "Cylinder":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder;
                decimal cylinderRadius             = decimal.Parse(CylinderRadius.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                decimal cylinderHeight             = decimal.Parse(CylinderHeight.text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
                IO.Swagger.Model.Cylinder cylinder = new IO.Swagger.Model.Cylinder(objectId, cylinderHeight, cylinderRadius);
                objectModel.Cylinder = cylinder;
                break;

            case "Mesh":
                modelType = IO.Swagger.Model.ObjectModel.TypeEnum.Mesh;
                string meshId = MeshId.text;
                IO.Swagger.Model.Mesh mesh = new IO.Swagger.Model.Mesh(id: meshId, focusPoints: new List <IO.Swagger.Model.Pose>(), uri: "");
                objectModel.Mesh = mesh;
                break;

            default:
                Debug.LogError("Model not defined!");
                return(null);
            }
            objectModel.Type = modelType;
            objectTypeMeta   = new IO.Swagger.Model.ObjectTypeMeta(builtIn: false, description: "", type: objectId, objectModel: objectModel,
                                                                   _base: (string)ParentsList.GetValue(), hasPose: true);
        }
        else
        {
            objectTypeMeta = new IO.Swagger.Model.ObjectTypeMeta(builtIn: false, description: "", type: objectId,
                                                                 _base: (string)ParentsList.GetValue(), hasPose: false);
        }

        return(objectTypeMeta);
    }
        public ActionResult Index(ModelsList request)
        {
            ScriptEngine engine      = Python.CreateEngine();
            ScriptScope  scope       = engine.CreateScope();
            var          searchPaths = engine.GetSearchPaths();

            searchPaths.Add(@"D:\STUDIA\FoodRecognizingApp\packages\DynamicLanguageRuntime.1.1.2");
            //searchPaths.Add(@"D:\STUDIA\FoodRecognizingApp\packages\IronPython.2.7.9\lib");
            //searchPaths.Add(@"C:\Users\Aleksandra\Anaconda2\Lib");
            //searchPaths.Add(@"C:\Python27");
            //searchPaths.Add(@"C:\Python27\Lib");
            searchPaths.Add(@"C:\Users\Aleksandra\AppData\Local\Programs\Python\Python37-32\Lib");
            searchPaths.Add(@"C:\Users\Aleksandra\AppData\Local\Programs\Python\Python37-32\lib\site-packages");
            //searchPaths.Add(@"C:\Users\Aleksandra\AppData\Local\Programs\Python\Python37-32");
            searchPaths.Add(@"D:\STUDIA\FoodRecognizingApp");
            //searchPaths.Add(@"D:\STUDIA\inzynierka\projektInzynierski\src\networks");
            engine.SetSearchPaths(searchPaths);

            String     result       = "";
            bool       isAllChecked = false;
            ModelsList modelsList   = new ModelsList();
            Model      model        = new Model("NASNet -Mobile", "D:\\STUDIA\\inzynierka\\models\\NasNetMobile\\NasNetMobile.hdf5");

            modelsList.models.Add(model);

            request.photo = Request.Files["photo"];
            string filePath = Path.Combine("~/App_Data/", Path.GetFileName(request.photo.FileName));

            request.photo.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", Path.GetFileName(request.photo.FileName))));

            if (request.selected == "all")
            {
                isAllChecked = true;
            }
            else
            {
                isAllChecked = false;
                foreach (Model m in modelsList.models)
                {
                    if (m.name == Session["model"].ToString())
                    {
                        modelsList.checkedModel = m;
                    }
                }
            }

            if (isAllChecked)
            {
                foreach (Model m in modelsList.models)
                {
                    scope.SetVariable("photo", filePath);
                    scope.SetVariable("model", m.path);

                    // result = engine.Execute<string>(scope);
                    //modelsList.results.Add(result);

                    engine.ExecuteFile("D:\\STUDIA\\inzynierka\\projektInzynierski\\src\\networks\\predict.py", scope);
                    result = scope.GetVariable("result");

                    //var psi = new ProcessStartInfo();
                    //psi.FileName = @"C:\Python27\python.exe";

                    //var script = @"D:\STUDIA\inzynierka\projektInzynierski\src\networks\predict.py";
                    //var photo = @"C:\Users\Aleksandra\Desktop\testowe.jpg";
                    //var modelPath = m.path;
                    //psi.Arguments = $"\"{script}\" \"{photo}\" \"{modelPath}\"";
                    //psi.UseShellExecute = false;
                    //psi.CreateNoWindow = true;
                    //psi.RedirectStandardOutput = true;
                    //psi.RedirectStandardError = true;

                    //var error = "";
                    //var results = "";

                    //using(var process = Process.Start(psi))
                    //{
                    //    error = process.StandardError.ReadToEnd();
                    //    results = process.StandardOutput.ReadToEnd();
                    //}

                    // modelsList.results.Add(result);
                }
            }
            else
            {
                scope.SetVariable("photo", filePath);
                scope.SetVariable("model", request.checkedModel.path);
                engine.ExecuteFile("D:\\STUDIA\\inzynierka\\projektInzynierski\\src\\networks\\predict.py", scope);
                result = scope.GetVariable("result");
                modelsList.results.Add(result);
            }

            return(View(modelsList));
        }