/// <summary> /// Implementation of the ITrackableEventHandler function called when the /// tracking state changes. /// </summary> public void OnTrackableStateChanged( TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { OnTrackingFound(); } else { OnTrackingLost(); } this.currentStatus = newStatus; }
void OnDevicePoseStatusChanged(TrackableBehaviour.Status status, TrackableBehaviour.StatusInfo statusInfo) { Debug.Log("GroundPlaneUI.OnDevicePoseStatusChanged(" + status + ", " + statusInfo + ")"); string statusMessage = ""; switch (statusInfo) { case TrackableBehaviour.StatusInfo.NORMAL: statusMessage = ""; break; case TrackableBehaviour.StatusInfo.UNKNOWN: statusMessage = "Limited Status"; break; case TrackableBehaviour.StatusInfo.INITIALIZING: statusMessage = "Point your device to the floor and move to scan"; break; case TrackableBehaviour.StatusInfo.EXCESSIVE_MOTION: statusMessage = "Move slower"; break; case TrackableBehaviour.StatusInfo.INSUFFICIENT_FEATURES: statusMessage = "Not enough visual features in the scene"; break; case TrackableBehaviour.StatusInfo.INSUFFICIENT_LIGHT: statusMessage = "Not enough light in the scene"; break; case TrackableBehaviour.StatusInfo.RELOCALIZING: // Display a relocalization message in the UI if: // * No AnchorBehaviours are being tracked // * None of the active/tracked AnchorBehaviours are in TRACKED status // Set the status message now and clear it none of conditions are met. statusMessage = "Point back to previously seen area and rescan to relocalize."; StateManager stateManager = TrackerManager.Instance.GetStateManager(); if (stateManager != null) { // Cycle through all of the active AnchorBehaviours first. foreach (TrackableBehaviour behaviour in stateManager.GetActiveTrackableBehaviours()) { if (behaviour is AnchorBehaviour) { if (behaviour.CurrentStatus == TrackableBehaviour.Status.TRACKED) { // If at least one of the AnchorBehaviours has Tracked status, // then don't display the relocalization message. statusMessage = ""; } } } } break; default: statusMessage = ""; break; } StatusMessage.Instance.Display(statusMessage); // Uncomment the following line to show Status and StatusInfo values //StatusMessage.Instance.Display(status.ToString() + " -- " + statusInfo.ToString()); }
public void OnTrackableStateChanged(GameObject gameObject, TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { //if (gameObject.name == player1.name) }
/// <summary> /// Erfassen und Verfolgen der Marker, sowie anpassen der Position und Rotation der 3D-Modelle /// </summary> void LateUpdate() { // resetten der Tracking Qualität float trackingQuality = 0f; // resetten der derzeit erfassten Marker und ihrer Tracking-Stati List <ImageTargetBehaviour> trackedObjects = new List <ImageTargetBehaviour>(); List <TrackableBehaviour.Status> statList = new List <TrackableBehaviour.Status>(); // Liste der erfassten Marker durchgehen for (int i = 0; i < targets.Count; i++) { // Falls die Referenz verloren geht, soll diese übersprungen werden if (targets[i] == null) { continue; } // Setzen des Marker Status TrackableBehaviour.Status targetStatus = targets[i].CurrentStatus; // Falls der Marker erfasst oder extrapoliert wird ... if (targetStatus == TrackableBehaviour.Status.TRACKED || targetStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { // Marker wird der derzeitigen Liste erfasster Marker hinzugefügt und auch deren Status gespeichert trackedObjects.Add(targets[i]); statList.Add(targetStatus); // Wenn die Position des Markers erfasst (und nicht extrapoliert) wurde, wird die Qualitäts-Counter hochgesetzt if (targetStatus == TrackableBehaviour.Status.TRACKED) { trackingQuality += 0.2f; // Sonderregel für die Erfassung der vollen Fassade, da diese als besonders guter Marker gewertet wird if (targets[i].gameObject.name.Contains("full")) { trackingQuality += 0.2f; } } // bei der Extrapolation wird die Qualität heruntergestuft else { trackingQuality -= 0.1f; } } } // Setzen des UI Symbols für die Tracking-Qualität FindObjectOfType <UIHandler>().SetTrackingQualityIcon(trackingQuality); // Flag ob mindestens ein Objekt erfasst wurde, oder ob nur extrapoliert wird bool isTracking = statList.Contains(TrackableBehaviour.Status.TRACKED); if (trackedObjects.Count == 0 && !trackerDevice.IsActive) { trackerDevice.Start(); timeTillLastTrack += Time.deltaTime; building.gameObject.SetActive(false); return; } // Falls kein Objekt getrackt wird, werden die 3D-Modelle deaktiviert, der Zeitcounter hochgesetzt und die Methode verlassen else if (trackedObjects.Count == 0) { timeTillLastTrack += Time.deltaTime; building.gameObject.SetActive(false); return; } // Falls nur extrapoliert wird, wird der Zeitcounter hochgesetzt und nach einem "maximumDelay" die Trackerinstanz resettet else if (!isTracking) { timeTillLastTrack += Time.deltaTime; if (timeTillLastTrack >= maximumDelay) { trackerDevice.Stop(); building.gameObject.SetActive(false); return; } } // Wenn etwas gefunden wurde, soll das UI kurz aufleuchten (highlighting) und das 3D Modell aktiviert werden else { if (timeTillLastTrack > 0f) { FindObjectOfType <UIHandler>().FoundTrackerHighlighting(); } timeTillLastTrack = 0f; building.gameObject.SetActive(true); } // resetten der Referenz der relativen Position und Rotation des 3D-Modells Vector3 renderPosition = new Vector3(0f, 0f, 0f); Quaternion renderRotation = Quaternion.identity; // Gewichtung der einzelnen Marker zur Bestimmung der Position und Rotation float weight = 1f / (float)trackedObjects.Count; // Positions- und Rotationsreferenz anhand der gewichteten relativen Werte anpassen (Aufsummieren) for (int i = 0; i < trackedObjects.Count; i++) { Vector3 pos = savedBuildings.GetRelativePosition(trackedObjects[i]); Vector3 rot = savedBuildings.GetRelativeRotation(trackedObjects[i]); renderPosition += (trackedObjects[i].transform.position + ((trackedObjects[i].transform.rotation * pos))); renderRotation *= Quaternion.Slerp(Quaternion.identity, (trackedObjects[i].transform.rotation * Quaternion.Euler(rot)), weight); } // Mitteln der Position des 3D-Modells renderPosition = renderPosition / trackedObjects.Count; // Um ein Springen des 3D-Modells entgegenzuwirken, wird dessen Position und Rotation zwischen vorheriger und neuer Position interpoliert building.transform.position = Vector3.Lerp(building.transform.position, renderPosition, Time.deltaTime * 5f); building.transform.rotation = Quaternion.Lerp(building.transform.rotation, renderRotation, Time.deltaTime * 5f); }
public void OnTrackableStateChanged(TrackableBehaviour.Status newStatus) { OnTrackableStateChanged(default(TrackableBehaviour.Status), newStatus); }
void ITrackableEventHandler.OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { if (SwBool == false) { OnTrackingFound(); manMou.ReceiveId(Mobleb); } } else if (previousStatus == TrackableBehaviour.Status.TRACKED && newStatus == TrackableBehaviour.Status.NOT_FOUND) { OnTrackingLost(); } else { OnTrackingLost(); } }
void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { Debug.Log("test"); }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { if (!m_CardInitialize) { StartCoroutine(AnimateCard()); } } }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { PlayerPrefs.SetString(mTrackableBehaviour.TrackableName, "Visited"); PlayerPrefs.SetString(mTrackableBehaviour.TrackableName + "_Italy", "Visitato"); PlayerPrefs.SetString(mTrackableBehaviour.TrackableName + "_France", "Visité"); //PlayerPrefs.SetString(mTrackableBehaviour.TrackableName,"Visited"); print("Prefs added - " + PlayerPrefs.GetString(mTrackableBehaviour.TrackableName)); Debug.Log("Setting Panel"); //Debug.Log("Y is - "+transform.eulerAngles.y); panel.SetActive(true); ScanPanel.SetActive(false); ShareButton.SetActive(true); if (PlayerPrefs.GetString("language") == "UnitedKingdom") { ShowMoreInfo.GetComponentInChildren <Text>().text = "Click here for more information"; } if (PlayerPrefs.GetString("language") == "Italy") { ShowMoreInfo.GetComponentInChildren <Text>().text = "Clicca qui per più informazioni"; } if (PlayerPrefs.GetString("language") == "France") { ShowMoreInfo.GetComponentInChildren <Text>().text = "Cliquez ici pour plus d'informations"; } //ShowMoreInfo.GetComponentInChildren<Text>().text = "Click here for more information"; if (mTrackableBehaviour.TrackableName == "ExhibitA") { Slider.SetActive(true); } if (mTrackableBehaviour.TrackableName == "ExhibitG") { audio = GetComponent <AudioSource>(); audio.PlayOneShot(cow, 1F); } LoadVisitedExhibits LVE = GetComponent <LoadVisitedExhibits>(); LVE.loadVisited(mTrackableBehaviour.TrackableName); if (Application.platform == RuntimePlatform.Android) { DBAndroid(); } if (Application.platform == RuntimePlatform.WindowsEditor) { DBWindows(); } } else { stopReading(); ExhibitID.text = null; ExhibitData.text = null; panel.SetActive(false); ScanPanel.SetActive(true); Slider.SetActive(false); ShareButton.SetActive(false); artist = null; year = null; name = null; description = null; url = null; similarItemsID = null; similarItemsName = null; ShowMoreInfo.GetComponentInChildren <Text>().text = ""; } }
/// <summary> /// Implementation of the ITrackableEventHandler function called when the /// tracking state changes. /// </summary> public void OnTrackableStateChanged( TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { m_PreviousStatus = previousStatus; m_NewStatus = newStatus; if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found"); OnTrackingFound(); if (mTrackableBehaviour.TrackableName == "elephant") { if (ConnectWS.opcion_mia_de_mi != 6) { ConnectWS.opcion_mia_de_mi = 6; ConnectWS.cambio = true; } Animalseleccionado.elefanteseleccionado = true; Debug.Log("elephant"); } if (mTrackableBehaviour.TrackableName == "Jobcard")//11 { if (ConnectWS.opcion_mia_de_mi != 11) { ConnectWS.opcion_mia_de_mi = 11; ConnectWS.cambio = true; } Animalseleccionado.humanseleccionado = true; Debug.Log("humano"); } if (mTrackableBehaviour.TrackableName == "rhino")//7 { if (ConnectWS.opcion_mia_de_mi != 5) { ConnectWS.opcion_mia_de_mi = 5; ConnectWS.cambio = true; } Debug.Log("rhino"); } if (mTrackableBehaviour.TrackableName == "whale") { if (ConnectWS.opcion_mia_de_mi != 5) { ConnectWS.opcion_mia_de_mi = 5; ConnectWS.cambio = true; } Animalseleccionado.whaleseleccionado = true; Debug.Log("whale"); } if (mTrackableBehaviour.TrackableName == "tiger") { if (ConnectWS.opcion_mia_de_mi != 1) { ConnectWS.opcion_mia_de_mi = 1; ConnectWS.cambio = true; } Animalseleccionado.tigreseleccionado = true; Debug.Log("tigre"); } if (mTrackableBehaviour.TrackableName == "gorilla")//8 { if (ConnectWS.opcion_mia_de_mi != 8) { ConnectWS.opcion_mia_de_mi = 8; ConnectWS.cambio = true; } Animalseleccionado.gorilaseleccionado = true; Debug.Log("gorila"); } if (mTrackableBehaviour.TrackableName == "deer") { if (ConnectWS.opcion_mia_de_mi != 3) { ConnectWS.opcion_mia_de_mi = 3; ConnectWS.cambio = true; } Animalseleccionado.deerseleccionado = true; Debug.Log("deer"); } if (mTrackableBehaviour.TrackableName == "bear") { if (ConnectWS.opcion_mia_de_mi != 2) { ConnectWS.opcion_mia_de_mi = 2; ConnectWS.cambio = true; } Animalseleccionado.ososeleccionado = true; Debug.Log("oso"); } if (mTrackableBehaviour.TrackableName == "shark")//9 { if (ConnectWS.opcion_mia_de_mi != 9) { ConnectWS.opcion_mia_de_mi = 9; ConnectWS.cambio = true; } Animalseleccionado.sharkseleccionado = true; Debug.Log("shark"); } if (mTrackableBehaviour.TrackableName == "octopus") { if (ConnectWS.opcion_mia_de_mi != 4) { ConnectWS.opcion_mia_de_mi = 4; ConnectWS.cambio = true; } Animalseleccionado.pulposeleccionado = true; Debug.Log("pulpo"); } if (mTrackableBehaviour.TrackableName == "owl")//10 { if (ConnectWS.opcion_mia_de_mi != 10) { ConnectWS.opcion_mia_de_mi = 10; ConnectWS.cambio = true; } Animalseleccionado.owlseleccionado = true; Debug.Log("owl"); } } else if (previousStatus == TrackableBehaviour.Status.TRACKED && newStatus == TrackableBehaviour.Status.NO_POSE) { Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost"); OnTrackingLost(); if (mTrackableBehaviour.TrackableName == "elephant") { Animalseleccionado.elefanteseleccionado = false; Debug.Log("elephant"); } if (mTrackableBehaviour.TrackableName == "Jobcard") { Animalseleccionado.humanseleccionado = false; Debug.Log("humano"); } if (mTrackableBehaviour.TrackableName == "rhino") { Animalseleccionado.rhinoseleccionado = false; Debug.Log("rhino"); } if (mTrackableBehaviour.TrackableName == "whale") { Animalseleccionado.whaleseleccionado = false; Debug.Log("whale"); } if (mTrackableBehaviour.TrackableName == "tiger") { Animalseleccionado.tigreseleccionado = false; Debug.Log("tigre"); } if (mTrackableBehaviour.TrackableName == "gorilla") { Animalseleccionado.gorilaseleccionado = false; Debug.Log("gorila"); } if (mTrackableBehaviour.TrackableName == "deer") { Animalseleccionado.deerseleccionado = false; Debug.Log("deer"); } if (mTrackableBehaviour.TrackableName == "bear") { Animalseleccionado.ososeleccionado = false; Debug.Log("oso"); } if (mTrackableBehaviour.TrackableName == "shark") { Animalseleccionado.sharkseleccionado = false; Debug.Log("shark"); } if (mTrackableBehaviour.TrackableName == "octopus") { Animalseleccionado.pulposeleccionado = false; Debug.Log("pulpo"); } if (mTrackableBehaviour.TrackableName == "owl") { Animalseleccionado.owlseleccionado = false; Debug.Log("owl"); } } else { // For combo of previousStatus=UNKNOWN + newStatus=UNKNOWN|NOT_FOUND // Vuforia is starting, but tracking has not been lost or found yet // Call OnTrackingLost() to hide the augmentations OnTrackingLost(); } }
/// <summary> /// 每次高通识别,都把状态记录起来。以便按钮按下可以进行恢复状态。 /// </summary> /// <param name="imageTarget">为ImageTarget</param> /// <param name="previousStatus"></param> /// <param name="status"></param> public void SetTrackStatus(GameObject imageTarget, TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status status) { DeleteNullObject(); //判断是否识别到。 bool isFound = false; if (status == TrackableBehaviour.Status.DETECTED || status == TrackableBehaviour.Status.TRACKED || status == TrackableBehaviour.Status.EXTENDED_TRACKED) { isFound = true; EventCenter.Instance.PostEvent(EventName.ModelFound); } else { isFound = false; EventCenter.Instance.PostEvent(EventName.ModelLost); } //把当前ImageTarget状态记录起来。 StatusData data = new StatusData(); data.previousStatus = previousStatus; data.newStatus = status; data.isFound = isFound; //添加到字典中。 if (_trackStatusDictionary.ContainsKey(imageTarget)) { _trackStatusDictionary[imageTarget] = data; } else { _trackStatusDictionary.Add(imageTarget, data); } //把模型添加到ModelManager中管理。 Model[] modelArray = imageTarget.transform.GetComponentsInChildren <Model>(true); for (int i = 0; i < modelArray.Length; i++) { Model model = modelArray[i].gameObject.GetComponent <Model>(); ModelManager.Instance.AddModel(model); } if (SceneData.Instance.type == SceneData.Type.SingleCard && isFound) { foreach (var kv in _trackStatusDictionary) { if (null != kv.Key && kv.Key != imageTarget) { _trackStatusDictionary[kv.Key].isFound = false; } } } //如果没有识别到图片,这里就让模型消失吧。 if (false == isFound) { SetTrackStatus(); } }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { OnMarkerFound(this); } else if (previousStatus == TrackableBehaviour.Status.TRACKED && newStatus == TrackableBehaviour.Status.NO_POSE) { OnMarkerLost(this); } else { OnMarkerLost(this); } }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { throw new System.NotImplementedException(); }
public TrackingChangedEventHandlerArgs(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { PreviousStatus = previousStatus; NewStatus = newStatus; }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { this.mPreviousStatus = previousStatus; this.mStatus = newStatus; if (HasTrackable) { this.mID = Trackable.ID; this.mName = Trackable.Name; } if (onTrackableStateChange != null) onTrackableStateChange(this); }
void ITrackableEventHandler.OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { throw new System.NotImplementedException(); }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (m_TrackableBehaviour == null) { return; } if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { AppController.Instance.OnMarkerFound(m_TrackableBehaviour.TrackableName, m_ID); } else if (previousStatus == TrackableBehaviour.Status.TRACKED && newStatus == TrackableBehaviour.Status.NO_POSE) { AppController.Instance.OnMarkerLost(m_TrackableBehaviour.TrackableName, m_ID); } else { AppController.Instance.OnMarkerLost(m_TrackableBehaviour.TrackableName, m_ID); } }
void OnDevicePoseStatusChanged(TrackableBehaviour.Status status, TrackableBehaviour.StatusInfo statusInfo) { string statusMessage = ""; m_currStatusInfo = statusInfo; SetActiveMessagePutObject(true); switch (statusInfo) { case TrackableBehaviour.StatusInfo.NORMAL: { statusMessage = ""; HideSnackBar(); if (imageVideo.IsPlaying) { imageVideo.StopVideo(); } break; } case TrackableBehaviour.StatusInfo.UNKNOWN: statusMessage = "No hay suficientes características visuales (<b>ver en botón información</b>)"; break; case TrackableBehaviour.StatusInfo.INITIALIZING: statusMessage = "<b>Apunta</b> con tu dispositivo al suelo y <b>mueve</b> para escanear"; break; case TrackableBehaviour.StatusInfo.EXCESSIVE_MOTION: statusMessage = "Mueve tu dispositivo mas <b>lento</b>"; break; case TrackableBehaviour.StatusInfo.INSUFFICIENT_FEATURES: statusMessage = "No hay suficientes características visuales (<b>ver en botón información</b>)"; break; case TrackableBehaviour.StatusInfo.INSUFFICIENT_LIGHT: statusMessage = "No hay suficiente <b>luz</b>"; break; case TrackableBehaviour.StatusInfo.RELOCALIZING: // Display a relocalization message in the UI if: // * No AnchorBehaviours are being tracked // * None of the active/tracked AnchorBehaviours are in TRACKED status // Set the status message now and clear it none of conditions are met. statusMessage = "<b>Mueve</b> la cámara al punto anterior para restaurar la detección"; StateManager stateManager = TrackerManager.Instance.GetStateManager(); if (stateManager != null) { // Cycle through all of the active AnchorBehaviours first. foreach (TrackableBehaviour behaviour in stateManager.GetActiveTrackableBehaviours()) { if (behaviour is AnchorBehaviour) { if (behaviour.CurrentStatus == TrackableBehaviour.Status.TRACKED) { // If at least one of the AnchorBehaviours has Tracked status, // then don't display the relocalization message. statusMessage = ""; } } } } break; default: statusMessage = ""; break; } if (statusInfo != TrackableBehaviour.StatusInfo.NORMAL) { HideMenu(); ShowSnackBar(statusMessage); if (!imageVideo.IsPlaying) { imageVideo.PlayVideo(); } } else { if (!m_IsGroundDetected) { statusMessage = "<b>Apunta</b> con tu dispositivo al suelo y <b>mueve</b> para escanear"; ShowSnackBar(statusMessage); if (!imageVideo.IsPlaying) { imageVideo.PlayVideo(); } } else { ShowMenu(); } } }
/// <summary> /// Implementation of the ITrackableEventHandler function called when the /// tracking state changes. /// </summary> public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { Debug.Log(previousStatus.ToString() + " -- " + newStatus.ToString()); if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { OnTrackingFound(); } else { OnTrackingLost(); } }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { OnTrackingFound(); } else { OnTrackingLost(); } }
void ITrackableEventHandler.OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { int oo = 1000; if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { Debug.Log("Found"); int NO_PARENT = -1; double[,] adjacencyMatrix = { { 0, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, 0, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, 0, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, 0, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, 0, 9.59, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, 9.59, 0, oo, oo, oo, oo, 6.67, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, 0, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, 0, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, 0, oo, oo, oo, oo, oo, oo, 12.853, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, 0, oo, oo, oo, oo, 11.403, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 0, 6.525, 6.38, 13.398, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 6.525, 0, 2.358, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 6.38, 2.358, 0, oo, oo, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 13.398, oo, oo, 0, 6.65, oo, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, 11.403, oo, oo, oo, 6.65, 0, 6.67, oo, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, 12.853, oo, oo, oo, oo, oo, 6.67, 0, 4.06, oo, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 4.06, 0, 4.93, oo, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 4.93, 0, 5.336, oo, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 5.336, 0, 20, 20 }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 20, 0, oo }, { oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, oo, 20, oo, 0 } }; int thisNode = 20; int[] theseEdgeNodes = { 20, 19 }; int[] theseEdgeAngles = { 0, 180 }; int[,] finalPaths = dijkstra(adjacencyMatrix, thisNode - 1); int destination = -1; if (PopulateDropDown.destination == 0) { destination = 12; } else if (PopulateDropDown.destination == 1) { destination = 13; } else if (PopulateDropDown.destination == 2) { destination = 20; } else if (PopulateDropDown.destination == 3) { destination = 21; } else if (PopulateDropDown.destination == 4) { destination = 17; } else if (PopulateDropDown.destination == 5) { destination = 6; } int[] finalPath = new int[finalPaths.GetLength(0)]; for (int i = 0; i < finalPaths.GetLength(0); i++) { finalPath[i] = finalPaths[destination - 1, i]; } int nextNode = -1; if (thisNode != finalPath[0]) { for (int i = 0; i < finalPath.Length; i++) { if (finalPath[i] == 0) { nextNode = finalPath[i - 2]; break; } } int angle = -1; for (int i = 0; i < theseEdgeNodes.Length; i++) { if (theseEdgeNodes[i] == nextNode) { angle = theseEdgeAngles[i]; } } arrow.transform.localRotation = Quaternion.Euler(0, angle, 0); } } else { Debug.Log("Not Found"); } }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { foreach (GameObject sound in sounds) { sound.SetActive(true); } // sound.SetActive(true); } else { foreach (GameObject sound in sounds) { sound.SetActive(false); } // sound.SetActive(false); } }
void OnDevicePoseStatusChanged(TrackableBehaviour.Status status, TrackableBehaviour.StatusInfo statusInfo) { Debug.Log("OnDevicePoseStatusChanged(" + status + ", " + statusInfo + ")"); }
public void OnTrackableStateChanged(TrackableBehaviour.Status _previousstatus, TrackableBehaviour.Status _newstatus) { switch (_newstatus) { case TrackableBehaviour.Status.NOT_FOUND: case TrackableBehaviour.Status.UNKNOWN: case TrackableBehaviour.Status.UNDEFINED: Scannermanager.Getinstance().Ontrackerloseevent(this, this.gameObject); Debug.Log("Lose " + trackablebehaviour.TrackableName); break; case TrackableBehaviour.Status.DETECTED: case TrackableBehaviour.Status.TRACKED: case TrackableBehaviour.Status.EXTENDED_TRACKED: Scannermanager.Getinstance().Ontrackerfoundevent(this, this.gameObject); Debug.Log("Found " + trackablebehaviour.TrackableName); break; } }
public override void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (m_trackableBehaviour.VuMarkTarget != null) { Debug.Log(">>>> tracking " + m_trackableBehaviour.VuMarkTarget.InstanceId.StringValue); } base.OnTrackableStateChanged(previousStatus, newStatus); }
public void ApplyTrackingState(TrackableBehaviour trackableBehaviour, TrackableBehaviour.Status vuforiaStatus, Transform cameraTransform) { ExtendedTrackable extendedTrackable = trackableBehaviour.Trackable as ExtendedTrackable; if (extendedTrackable == null) { return; } float expr_16 = extendedTrackable.GetLargestSizeComponent(); float maxPoseDistance = expr_16 * this.mMaxPoseRelDistance; float minPoseUpdateDistance = expr_16 * this.mMinPoseUpdateRelDistance; int iD = trackableBehaviour.Trackable.ID; VuforiaManager.TrackableIdPair trackableIdPair; if (trackableBehaviour is VuMarkAbstractBehaviour) { trackableIdPair = VuforiaManager.TrackableIdPair.FromTrackableAndResultId(iD, ((VuMarkAbstractBehaviour)trackableBehaviour).VuMarkResultId); } else { trackableIdPair = VuforiaManager.TrackableIdPair.FromTrackableId(iD); } if (vuforiaStatus == TrackableBehaviour.Status.TRACKED && this.mTrackablesExtendedTrackingEnabled.Contains(iD)) { bool flag = true; if (this.mTrackingList.ContainsKey(trackableIdPair)) { HoloLensExtendedTrackingManager.PoseAgeEntry poseAgeEntry = this.mTrackingList[trackableIdPair]; float arg_D3_0 = (poseAgeEntry.CameraPose.Position - cameraTransform.position).magnitude; float num = Quaternion.Angle(poseAgeEntry.CameraPose.Rotation, cameraTransform.rotation); if (arg_D3_0 <= this.mMaxCamPoseAbsDistance && num <= this.mMaxCamPoseAngleDiff) { if (!this.mTrackablesCurrentlyExtendedTracked.ContainsKey(trackableIdPair)) { this.CheckHandoverToHoloLens(poseAgeEntry, trackableBehaviour, trackableIdPair, maxPoseDistance, false, out flag); } else { this.CheckForHoloLensPoseUpdates(poseAgeEntry, trackableBehaviour, trackableIdPair, iD, minPoseUpdateDistance, maxPoseDistance, cameraTransform, out flag); } } } if (flag) { this.mTrackingList[trackableIdPair] = new HoloLensExtendedTrackingManager.PoseAgeEntry { Pose = new HoloLensExtendedTrackingManager.PoseInfo { Position = trackableBehaviour.transform.position, Rotation = trackableBehaviour.transform.rotation }, CameraPose = new HoloLensExtendedTrackingManager.PoseInfo { Position = cameraTransform.position, Rotation = cameraTransform.rotation }, Age = 1 }; } } if (this.mTrackablesCurrentlyExtendedTracked.ContainsKey(trackableIdPair)) { if (!this.mSetWorldAnchors || VuforiaRuntimeUtilities.IsPlayMode()) { HoloLensExtendedTrackingManager.PoseInfo poseInfo = this.mTrackablesCurrentlyExtendedTracked[trackableIdPair]; trackableBehaviour.transform.position = poseInfo.Position; trackableBehaviour.transform.rotation = poseInfo.Rotation; } vuforiaStatus = this.mExtendedTrackablesState[trackableIdPair]; } trackableBehaviour.OnTrackerUpdate(vuforiaStatus); }
void ITrackableEventHandler.OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { this.previousStatus = previousStatus; this.status = newStatus; if (trackActiveGO) { trackActiveGO.SetActive(this.status == TrackableBehaviour.Status.TRACKED); } if (signalTrack) { signalTrack.Invoke(this); } }
private bool IsStatusApproxTracking(TrackableBehaviour.Status status) { return(status == TrackableBehaviour.Status.DETECTED || status == TrackableBehaviour.Status.TRACKED || status == TrackableBehaviour.Status.EXTENDED_TRACKED); }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { boatObj.SetActive(false); }
public void OnTrackableStateChanged( TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { IEnumerable <TrackableBehaviour> tbs = TrackerManager.Instance.GetStateManager().GetActiveTrackableBehaviours(); if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { if (mTrackableBehaviour.TrackableName == "10") { if (fObjects[0] == false) { contPages.GetComponent <ContPages>().addObj(0); fText.PopUpText(); } fObjects[0] = true; } if (mTrackableBehaviour.TrackableName == "8") { if (fObjects[1] == false) { contPages.GetComponent <ContPages>().addObj(1); fText.PopUpText(); } fObjects[1] = true; } if (mTrackableBehaviour.TrackableName == "9") { if (fObjects[2] == false) { contPages.GetComponent <ContPages>().addObj(2); fText.PopUpText(); } fObjects[2] = true; } if (mTrackableBehaviour.TrackableName == "5") { if (fObjects[3] == false) { contPages.GetComponent <ContPages>().addObj(3); fText.PopUpText(); } fObjects[3] = true; } if (mTrackableBehaviour.TrackableName == "6") { if (fObjects[4] == false) { contPages.GetComponent <ContPages>().addObj(4); fText.PopUpText(); } fObjects[4] = true; } if (mTrackableBehaviour.TrackableName == "4") { if (fObjects[5] == false) { contPages.GetComponent <ContPages>().addObj(5); fText.PopUpText(); } fObjects[5] = true; } if (mTrackableBehaviour.TrackableName == "1") { if (fObjects[6] == false) { contPages.GetComponent <ContPages>().addObj(6); fText.PopUpText(); } fObjects[6] = true; } if (mTrackableBehaviour.TrackableName == "2") { if (fObjects[7] == false) { contPages.GetComponent <ContPages>().addObj(7); fText.PopUpText(); } fObjects[7] = true; } if (mTrackableBehaviour.TrackableName == "7") { if (fObjects[8] == false) { contPages.GetComponent <ContPages>().addObj(8); fText.PopUpText(); } fObjects[8] = true; } if (mTrackableBehaviour.TrackableName == "3") { if (fObjects[9] == false) { contPages.GetComponent <ContPages>().addObj(9); fText.PopUpText(); } fObjects[9] = true; } } }
void Update() { if(isAlive) { modelTransform.gameObject.GetComponent<HealtBarScript>().hp = currentHealts; currentStatus = mTrackableBehaviour.CurrentStatus; if( (Input.touchCount > 0) && (currentStatus == TrackableBehaviour.Status.DETECTED || currentStatus == TrackableBehaviour.Status.TRACKED || currentStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) ) { //we can proceed with calculation if(Input.GetTouch(0).phase == TouchPhase.Began) { objectPos = Camera.main.WorldToScreenPoint(modelTransform.position); touchPos = Input.GetTouch(0).position; } else if(Input.GetTouch(0).phase == TouchPhase.Moved) { if(objectPos.x > (ScreenWidth * 0.5f) && touchPos.x > (ScreenWidth * 0.5f) || objectPos.x < (ScreenWidth * 0.5f) && touchPos.x < (ScreenWidth * 0.5f) ) { //both finger and object are on the same side currentPos = Input.GetTouch(0).position; Vector2 translation = touchPos - currentPos; if( translation.y < 0 ) { TurretUp(); } else { TurretDown(); } } } } markerDistance = Vector3.Distance( lastPosition, transform.position); lastPosition = transform.position; if(turretUpFlag) { TurretUp(); } if(turretDownFlag) { TurretDown(); } } }
void OnDevicePoseStatusChanged(TrackableBehaviour.Status status) { Debug.Log("OnDevicePoseStatusChanged(" + status.ToString() + ")"); }
public void SetStatus(TrackableBehaviour.Status status) { mStatus = status; }
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { //Debug.Log(string.Format("Trackable {0} changed from {1} to {2}", _trackableBehaviour.TrackableName, previousStatus, newStatus)); if (OnTrackingChanged != null) { OnTrackingChanged(this, new TrackingChangedEventHandlerArgs(previousStatus, newStatus)); } }