void OnWizardCreate()
    {
        string imgPath = null;

        if (image != null)
        {
            Object obj = image;
            imgPath = AssetDatabase.GetAssetPath(obj.GetInstanceID());
        }
        VuforiaTools uploadRequest = new VuforiaTools();

        string metaDataUpload = null;

        if (metaData != null)
        {
            if (metaData == "")
            {
                metaData = null;
            }
            else
            {
                var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(metaData);
                metaDataUpload = System.Convert.ToBase64String(plainTextBytes);
            }
        }

        if (targetName != null)
        {
            if (targetName == "")
            {
                targetName = null;
            }
        }
        string returnString = "false";

        if (targetName != null && imgPath != null)
        {
            returnString = uploadRequest.UploadImageTarget(targetName, width, imgPath, active, metaDataUpload);
        }
        //string returnString = uploadRequest.UpdateImageTarget(titleContent.text, "Happy", width, null, active, "metadad");
        //string returnString = "Testing for now";
        if (returnString == "true")
        {
            Debug.Log("Vuforia SUCCESS! Target image uploaded.");
        }
        else
        {
            //Debug.Log(titleContent.text);
            //Debug.Log(targetName);
            //Debug.Log(width);
            //Debug.Log(active);
            //Debug.Log(metaData);
            Debug.Log("Vuforia Upload Failed, try again.");
            Debug.Log("Error: " + returnString);
            return;
        }
    }
    private void Start()
    {
        _showBoundingBox = false;

        _isBeingTrackedWindTarget        = VuforiaTools.IsBeingTracked("Wind Target");
        _isBeingTrackedSceneTarget       = VuforiaTools.IsBeingTracked("Scene Target");
        _isBeingTrackedTemperatureTarget = VuforiaTools.IsBeingTracked("Temperature Target");

        _terrain         = GameObject.Find("Terrain");
        _windKnob        = GameObject.Find("Wind Knob");
        _temperatureKnob = GameObject.Find("Temperature Knob");

        var button = HelpButton.GetComponent <Button>();

        button.onClick.AddListener(HelpButtonClicked);
    }
    private void Awake()
    {
        selectedIndexes = new List <int>();
        duplicatesList  = new DuplicatesList();

        vtc          = AssetDatabase.LoadAssetAtPath("Assets/Resources/VuforiaToolsConfiguration.asset", typeof(VuforiaToolsConfiguration)) as VuforiaToolsConfiguration;
        vuforiaTools = new VuforiaTools();
        UpdateAccountSummary();
        if (vtc.accountSummary.result_code == "Success")
        {
            accountConnected = true;
        }
        else
        {
            accountConnected = false;
        }
    }
    private void UpdateWindForce()
    {
        bool isBeingTracked = VuforiaTools.IsBeingTracked("Wind Target");

        if (isBeingTracked)
        {
            var targetAngle = _windTargetTransform.localRotation.eulerAngles.y;

            var mappedAngle = Map(targetAngle, 0, 280, 0, 50);

            if (_lastWindForceFromTarget != mappedAngle && targetAngle <= 280)
            {
                WindForce = mappedAngle;

                _lastWindForceFromTarget = WindForce;

                _windTextManager.UpdatePanelText(WindForce);
                _windTextManager.UpdateTargetText(WindForce);
            }
        }
    }
示例#5
0
    private void UpdateTemperature()
    {
        bool isBeingTracked = VuforiaTools.IsBeingTracked("Temperature Target");

        if (isBeingTracked)
        {
            var targetAngle = _temperatureTargetTransform.localRotation.eulerAngles.y;

            var mappedAngle = Map(targetAngle, 0, 280, 0, 50);

            if (_lastTempFromTarget != mappedAngle && targetAngle < 280)
            {
                Temperature = mappedAngle;

                TargetTemperature = Temperature;

                _lastTempFromTarget = Temperature;

                _temperatureTextManager.UpdateTargetText(TargetTemperature);
                _temperatureTextManager.UpdatePanelText(Temperature);
            }
        }
    }
    void DisplayAccount()
    {
        //Listens for up&down arrows as well as the escape key, calls Listen() method
        if (Event.current.isKey && Listen() && selectedIndex >= 0)
        {
            Event.current.Use();
            Repaint();
        }
        //sets default color.. this is mostly to set the color back to normal after making the red delete button
        Color color_default = GUI.backgroundColor;

        GUILayout.BeginHorizontal();
        GUILayout.Label("Account Settings", EditorStyles.boldLabel);
        GUILayout.Space(10);
        if (GUILayout.Button("Refresh", GUILayout.Width(65)))
        {
            UpdateAccountSummary();
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.Label("Database Name: " + vtc.accountSummary.name, EditorStyles.label);
        GUILayout.Label("Active_Images: " + vtc.accountSummary.active_images, EditorStyles.label);
        GUILayout.Label("Inactive_Images: " + vtc.accountSummary.inactive_images, EditorStyles.label);
        GUILayout.Label("Failed_Images: " + vtc.accountSummary.failed_images, EditorStyles.label);

        GUILayout.Space(10);
        GUILayout.BeginHorizontal();
        GUILayout.Label("Target List", EditorStyles.boldLabel);
        GUILayout.Space(10);
        if (GUILayout.Button("Refresh", GUILayout.Width(65)))
        {
            Debug.Log("The Refresh Button was pressed.");
            vuforiaTools = new VuforiaTools();
            RefreshList();
        }
        if (vtc.targetSummaryList.Count > 0)
        {
            if (GUILayout.Button("Add New Target", GUILayout.Width(100)))
            {
                ScriptableWizard.DisplayWizard <AddVuforiaTarget>("Add Vuforia Target", "Finish", "Select Meta Data File");
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.Space(10);

        GUILayout.Label("Searach Field", EditorStyles.label);
        GUILayout.BeginHorizontal();
        searchField = GUILayout.TextField(searchField, GUILayout.Width(200));
        if (GUILayout.Button("Clear", GUILayout.Width(60)))
        {
            searchField = "";
        }
        GUILayout.EndHorizontal();

        GUILayout.Space(10);
        //WideMode
        if (vtc.wideMode)
        {
            GUILayout.BeginHorizontal();
        }
        if (vtc.targetSummaryList.Count > 0)
        {
            scrollPos = GUILayout.BeginScrollView(scrollPos, GUILayout.Height(300), GUILayout.Width(300));
            //Changes the color of the button if the button is a selected item
            SelectItem();
            GUILayout.EndScrollView();
        }
        //For displaying the target settings if the image target is selected and it's the only one selected
        if (selectedIndex >= 0 && selectedIndexes.Count == 1)
        {
            GUILayout.Space(10);
            GUILayout.BeginVertical();
            GUILayout.Label("Target Settings", EditorStyles.boldLabel);
            GUILayout.Label("Name: " + vtc.targetSummaryList[selectedIndex].target_name, EditorStyles.label);
            GUILayout.Label("Target_ID: " + vtc.targetSummaryList[selectedIndex].target_id, EditorStyles.label);
            GUILayout.Label("Upload_Date: " + vtc.targetSummaryList[selectedIndex].upload_date, EditorStyles.label);
            if (vtc.targetSummaryList[selectedIndex].tracking_rating == -2)
            {
                GUILayout.Label("Tracking_Rating: Failed, Delete and Retry", EditorStyles.label);
            }
            else if (vtc.targetSummaryList[selectedIndex].tracking_rating == -1)
            {
                GUILayout.Label("Tracking_Rating: Processing, Refresh in a bit", EditorStyles.label);
            }
            else
            {
                GUILayout.Label("Tracking_Rating: " + vtc.targetSummaryList[selectedIndex].tracking_rating, EditorStyles.label);
            }
            GUILayout.Label("Active_Flag: " + vtc.targetSummaryList[selectedIndex].active_flag, EditorStyles.label);
            GUILayout.Label("Current_Month_Recos: " + vtc.targetSummaryList[selectedIndex].current_month_recos, EditorStyles.label);
            GUILayout.Label("Previous_Month_Recos: " + vtc.targetSummaryList[selectedIndex].previous_month_recos, EditorStyles.label);
            GUILayout.Label("Total_Recos: " + vtc.targetSummaryList[selectedIndex].total_recos, EditorStyles.label);
            GUILayout.Space(10);
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("Refresh", GUILayout.Width(65)))
            {
                vuforiaTools = new VuforiaTools();
                vuforiaTools.UpdateTargetInformation(vtc.targetSummaryList[selectedIndex].target_id);
                UpdateAccountSummary();
            }
            if (GUILayout.Button("Modify", GUILayout.Width(65)))
            {
                ScriptableWizard.DisplayWizard <ModifyVuforiaTarget>(vtc.targetSummaryList[selectedIndex].target_id, "Finish", "Select Meta Data File");
            }
            if (GUILayout.Button("Check Similar", GUILayout.Width(95)))
            {
                vuforiaTools = new VuforiaTools();
                string jsonString = vuforiaTools.CheckDuplicates(vtc.targetSummaryList[selectedIndex].target_id);
                duplicatesList = JsonUtility.FromJson <DuplicatesList>(jsonString);
            }
            GUI.backgroundColor = Color.red;
            if (GUILayout.Button("Delete", GUILayout.Width(65)))
            {
                bool delete = EditorUtility.DisplayDialog("Confirm Delete", "Are you sure you want to delete the " + vtc.targetSummaryList[selectedIndex].target_name + " image target from your cloud database?", "Ok", "Cancel");
                if (delete)
                {
                    vuforiaTools = new VuforiaTools();
                    string result = vuforiaTools.DeleteTarget(vtc.targetSummaryList[selectedIndex].target_id);
                    if (result != "fail")
                    {
                        if (selectedIndex == vtc.targetSummaryList.Count - 1)
                        {
                            selectedIndex--;
                            selectedIndexes.Remove(selectedIndex + 1);
                            UpdateAccountSummary();
                        }
                        else
                        {
                            selectedIndexes.Remove(selectedIndex);
                            UpdateAccountSummary();
                        }
                    }
                    delete = false;
                }
            }
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();

            if (selectedIndexes.Count == 1 && duplicatesList.similar_targets.Count > 0)
            {
                GUILayout.Space(10);
                GUILayout.BeginVertical();
                GUILayout.Label("Similar Image Targets", EditorStyles.boldLabel);
                scrollPos3 = GUILayout.BeginScrollView(scrollPos3, GUILayout.Height(200), GUILayout.Width(300));
                foreach (string duplicateID in duplicatesList.similar_targets)
                {
                    int index = vtc.targetSummaryList.FindIndex(item => item.target_id == duplicateID);
                    GUILayout.Label(vtc.targetSummaryList[index].target_name, EditorStyles.label);
                }
                GUILayout.EndScrollView();
                GUILayout.EndVertical();
                GUILayout.FlexibleSpace();
            }
        }
        //Displays a list of the currently selected images targets instead of the target summary if more than one image target is selected.
        else if (vtc.targetSummaryList.Count > 1 && selectedIndexes.Count > 1)
        {
            GUILayout.Space(10);
            GUILayout.BeginVertical();
            GUILayout.Label("Selected Targets List (Batch Edit): " + selectedIndexes.Count + "/" + vtc.targetSummaryList.Count, EditorStyles.boldLabel);
            scrollPos2 = GUILayout.BeginScrollView(scrollPos2, GUILayout.Height(selectedIndexes.Count < 16?18 * selectedIndexes.Count + 5:300), GUILayout.Width(300));
            foreach (int index in selectedIndexes)
            {
                GUILayout.Label(vtc.targetSummaryList[index].target_name + ", Curr: " + vtc.targetSummaryList[index].current_month_recos + ", Prev: " + vtc.targetSummaryList[index].previous_month_recos, EditorStyles.label);
            }
            GUILayout.EndScrollView();
            GUILayout.Space(10);
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("Batch Deactivate", GUILayout.Width(100)))
            {
                vuforiaTools = new VuforiaTools();
                foreach (int index in selectedIndexes)
                {
                    vuforiaTools.UpdateImageTarget(vtc.targetSummaryList[index].target_id, null, 1, null, false, null);
                }
                UpdateAccountSummary();
            }
            if (GUILayout.Button("Batch Activate", GUILayout.Width(100)))
            {
                vuforiaTools = new VuforiaTools();
                foreach (int index in selectedIndexes)
                {
                    vuforiaTools.UpdateImageTarget(vtc.targetSummaryList[index].target_id, null, 1, null, true, null);
                }
                UpdateAccountSummary();
            }

            GUI.backgroundColor = Color.red;
            if (GUILayout.Button("Batch Delete", GUILayout.Width(100)))
            {
                bool delete = EditorUtility.DisplayDialog("Confirm Delete", "Are you sure you want to delete the selected image targets from your cloud database?", "Ok", "Cancel");
                if (delete)
                {
                    vuforiaTools = new VuforiaTools();
                    List <VtTargetSummary> summariesToDelete = new List <VtTargetSummary>();
                    foreach (int index in selectedIndexes)
                    {
                        summariesToDelete.Add(vtc.targetSummaryList[index]);
                    }
                    foreach (VtTargetSummary summary in summariesToDelete)
                    {
                        vuforiaTools.DeleteTarget(summary.target_id);
                        vtc.targetSummaryList.Remove(summary);
                    }
                    selectedIndexes = new List <int>();
                    selectedIndex   = -1;
                    UpdateAccountSummary();
                }
            }
            GUI.backgroundColor = color_default;
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
        }
        if (vtc.wideMode)
        {
            GUILayout.EndHorizontal();
        }
        GUI.backgroundColor = color_default;
    }
 private void Update()
 {
     _isBeingTrackedWindTarget        = VuforiaTools.IsBeingTracked("Wind Target");
     _isBeingTrackedSceneTarget       = VuforiaTools.IsBeingTracked("Scene Target");
     _isBeingTrackedTemperatureTarget = VuforiaTools.IsBeingTracked("Temperature Target");
 }