internal override void UpdateQRCode(QRCode qrCode) { MarkerSpacePinManager currentMarker = GetMarkerByQRCode(qrCode); if (currentMarker == null) { if (!AddUnknownQrCode || !AtLeastOneMarkerDetected()) { Debug.Log("You must first scan a marker that is known in the database."); return; } var markerData = GetMarkerDataByQrCode(qrCode); currentMarker = CreateNewVirtualMarkerByScan(markerData); if (currentMarker != null) { currentMarker.UpdateByQRJustAdded(qrCode); MyImportExportMarkers.Export(); } } else { currentMarker.UpdateByQR(qrCode); } }
internal override void ResetQRCode(QRCode qrCode) { MarkerSpacePinManager currentMarker = GetMarkerByQRCode(qrCode); if (currentMarker == null) { //Debug.Log(qrCode.Data + " is not registered. TODO : add a qr code in json"); } else { currentMarker.ResetSpacePin(); } }
private MarkerSpacePinManager CreateIdleMarker(MarkerData markerData) { GameObject marker = GameObject.Instantiate(MarkerPrefab, Vector3.zero, Quaternion.identity); marker.transform.SetParent(MarkersParent.transform, true); marker.transform.localPosition = Vector3.zero; marker.transform.localRotation = Quaternion.identity; MarkerSpacePinManager currentMarker = marker.GetComponent <MarkerSpacePinManager>(); currentMarker.Create(markerData.Id, markerData.IsQR, this, markerData.SizeMeters); _markers.Add(currentMarker); return(currentMarker); }
private MarkerSpacePinManager CreateNewVirtualMarkerByScan(MarkerData markerData) { if (markerData == null) { return(null); } MarkerSpacePinManager newMarker = CreateIdleMarker(markerData); newMarker.UpdateByJSON(markerData); newMarker.AddToAlignSubTree(ref MyAlignSubtree); MyAlignSubtree.ClaimPinOwnership(); newMarker.ResetSpacePin(); return(newMarker); }
internal void RemoveAMarker(MarkerSpacePinManager marker) { if (marker == null) { return; } marker.ResetSpacePin(); marker.RemoveToAlignSubTree(ref MyAlignSubtree); if (_markers.Contains(marker)) { _markers.Remove(marker); } Destroy(marker.gameObject); MyImportExportMarkers.Export(); }