示例#1
0
    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);
        }
    }
示例#2
0
    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();
        }
    }
示例#3
0
    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);
    }
示例#4
0
    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);
    }
示例#5
0
    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();
    }