Exemple #1
0
        private void ShowMarkerLayoutDir(MarkerInfo oMarkerInfo)
        {
            NyARIntPoint2d oCenterPoint = oMarkerInfo.Center;

            string    sDir    = "方向:  未检测出";
            TextBlock oTbkDir = this.GetVertexPointLabel();

            Canvas.SetLeft(oTbkDir, oCenterPoint.x - 30);
            Canvas.SetTop(oTbkDir, oCenterPoint.y - 60);

            if (oMarkerInfo.CurLayoutDir == LayoutDirType.ldtUp)
            {
                sDir = "方向:  上";
            }
            else if (oMarkerInfo.CurLayoutDir == LayoutDirType.ldtLeft)
            {
                sDir = "方向:  左";
            }
            else if (oMarkerInfo.CurLayoutDir == LayoutDirType.ldtRight)
            {
                sDir = "方向:  右";
            }
            else if (oMarkerInfo.CurLayoutDir == LayoutDirType.ldtDown)
            {
                sDir = "方向:  下";
            }

            oTbkDir.Text = sDir;
            this.CvMainZm.Children.Add(oTbkDir);
        }
Exemple #2
0
        private void ShowMarkerVertex(MarkerInfo oMarkerInfo)
        {
            NyARIntPoint2d[] oPoints = oMarkerInfo.Vertex;
            for (int i = 0; i < oPoints.Length; i++)
            {
                TextBlock oTbk = this.GetVertexPointLabel();
                Canvas.SetLeft(oTbk, oPoints[i].x);
                Canvas.SetTop(oTbk, oPoints[i].y);

                if (i == 0)
                {
                    oTbk.Text = "A";
                }
                else if (i == 1)
                {
                    oTbk.Text = "B";
                }
                else if (i == 2)
                {
                    oTbk.Text = "C";
                }
                else if (i == 3)
                {
                    oTbk.Text = "D";
                }

                this.CvMainZm.Children.Add(oTbk);
            }
        }
Exemple #3
0
        private void API_onResourceStart()
        {
            lock (Global.Lock)
            {
                // taxi vehicles
                #region TaxiVehicles
                new VehInfo(VehicleHash.Taxi, new Vector3(-897.5254f, -2035.502f, 8.904017f), new Vector3(0, 0, -135.3084f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-899.7668f, -2038.035f, 8.90379f), new Vector3(0, 0, -135.3176f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-902.3703f, -2040.493f, 8.903711f), new Vector3(0, 0, -134.8492f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-904.8074f, -2042.999f, 8.903594f), new Vector3(0, 0, -136.4715f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-907.111f, -2045.528f, 8.903583f), new Vector3(0, 0, -136.4113f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-909.6328f, -2047.868f, 8.903583f), new Vector3(0, 0, -135.688f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-912.2091f, -2050.099f, 8.903601f), new Vector3(0, 0, -134.351f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-882.4277f, -2048.99f, 8.903764f), new Vector3(0, 0, 44.82626f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-884.9864f, -2051.37f, 8.90558f), new Vector3(0, 0, 45.86894f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-887.3887f, -2053.851f, 8.911674f), new Vector3(0, 0, 42.99739f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                new VehInfo(VehicleHash.Taxi, new Vector3(-889.7358f, -2056.304f, 8.910381f), new Vector3(0, 0, 44.67617f), 0, 0, 100, Jobs.JOB_TAXI_PARK_ONE, 0);
                #endregion

                new BlipInfo(new Vector3(-915.1155, -2038.782, 8.40499), 56, 5, false, 0, "Downtown Cab Co.");
                MarkerInfo mInfo = new MarkerInfo(1, new Vector3(-915.1155, -2038.782, 8.40499), new Vector3(1, 1, 1), new Vector3(35.5, 1, 1), new Vector3(1.5, 1.5, 2), 100, 23, 182, 71, 1, 2);
                mInfo.SetData("JobTaxiAction", 1);
                new TLabelInfo("Работа в такси", new Vector3(-915.1155, -2038.782, 9.40499), 25, 1);
            }
        }
        private void ReceiveMarkerInfo(MarkerMessage message)
        {
            if (message.IsSuccess && message.MarkerInfo != null)
            {
                using (var markerOption = new MarkerOptions())
                {
                    bool inArray = _markers.Any(x => x.Latitude == message.MarkerInfo.Latitude && x.Longtitude == message.MarkerInfo.Longtitude);

                    if (!inArray)
                    {
                        MarkerInfo markerInfo = message.MarkerInfo;
                        markerOption.SetPosition(new LatLng(markerInfo.Latitude, markerInfo.Longtitude));
                        markerOption.SetTitle(markerInfo.Title);
                        markerOption.SetSnippet(markerInfo.Address);

                        // save the "marker" variable returned if you need move, delete, update it, etc...
                        Marker marker = _googleMap.AddMarker(markerOption);

                        _markers.Add(markerInfo);
                    }
                    else
                    {
                        MarkerInfo markerToRemove = _markers.First(
                            x => x.Latitude == message.MarkerInfo.Latitude && x.Longtitude == message.MarkerInfo.Longtitude);
                        _markers.Remove(markerToRemove);
                        _markers.Add(message.MarkerInfo);
                    }

                    string json = JsonConvert.SerializeObject(_markers, Formatting.Indented);

                    FileHelper.WriteFile(_filenameGenerator, _defaultFilename, json);
                }
            }
        }
Exemple #5
0
 public TimeFrame(int markerCount)
 {
     markerInfos = new MarkerInfo[markerCount];
     for (int i = 0; i < markerCount; i++)
     {
         markerInfos[i] = new MarkerInfo();
     }
 }
Exemple #6
0
        /// <summary>
        /// Parse the source of a parse job.
        /// </summary>
        protected Element Parse(ParseInfo info)
        {
            MarkerInfo marker = new MarkerInfo();

            marker.Element = new Element(Tag.Paragraph);
            marker.Element.Style[StyleKey.WordWrap]   = "break-word";
            marker.Element.Style[StyleKey.WhiteSpace] = "pre-wrap";
            marker.EndIndex = marker.StartIndex = 0;

            int length = info.Source.Length;

            // while there are more characters to read
            while (info.Index < info.Length)
            {
                // move to the next character is there a marker?
                if (info.Search.Next(info.Source[info.Index]))
                {
                    var mark = info.Search.Values[0];
                    if (mark == null)
                    {
                        ++info.Index;
                        continue;
                    }

                    // no, attempt to parse the content of the marker
                    var child = new MarkerInfo();
                    child.StartIndex = info.Index - mark.Prefix.Length + 1;
                    child.Marker     = mark;

                    // parse the info
                    if (Parse(info, child))
                    {
                        if (child.StartIndex > marker.EndIndex)
                        {
                            marker.Element.Content.Add(info.Source.Substring(marker.EndIndex, child.StartIndex - marker.EndIndex));
                        }
                        else
                        {
                            marker.Element.Content.Add(string.Empty);
                        }
                        marker.Element.AddChild(child.Element);
                        marker.EndIndex = info.Index + 1;
                    }
                }

                ++info.Index;
            }

            if (marker.EndIndex < info.Length)
            {
                // append any remaining content to the base element
                marker.Element.Content.Add(info.Source.Substring(marker.EndIndex, info.Length - marker.EndIndex));
            }

            // run the parse callback
            return(marker.Element);
        }
Exemple #7
0
 private bool ContainsFort(List <MarkerInfo> list, MarkerInfo fort)
 {
     foreach (var element in list)
     {
         if (element.location == fort.location)
         {
             return(true);
         }
     }
     return(false);
 }
Exemple #8
0
        private void ShowMarkerRotate(MarkerInfo oMarkerInfo)
        {
            NyARIntPoint2d oCenterPoint = oMarkerInfo.Center;

            TextBlock oTbkRotate = this.GetVertexPointLabel();

            Canvas.SetLeft(oTbkRotate, oCenterPoint.x - 60);
            Canvas.SetTop(oTbkRotate, oCenterPoint.y + 20);

            oTbkRotate.Text = "旋转:  " + Math.Round(oMarkerInfo.Rotate, 3);
            this.CvMainZm.Children.Add(oTbkRotate);
        }
 public void AddMarker(MarkerInfo info, bool stackable)
 {
     if (_appliedMarkers.ContainsKey(info.Type) && stackable)
     {
         _appliedMarkers[info.Type].TurnCount += info.TurnCount;
         info = _appliedMarkers[info.Type];
     }
     else
     {
         _appliedMarkers.Add(info.Type, info);
     }
     OnMarkerChanged.Invoke(info);
 }
    void onCollision(string name, bool status)
    {
        if (isLevelActivated)
        {
            isCardCollision = status;
//		Debug.Log ("collision with object " + name + " count " + markerlList.Count);
            MarkerInfo obj = markerlList.Find(item => item.ImageTargetObject.name == name);
            if (status && obj != null)
            {
                obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = redMaterial;
            }
        }
    }
Exemple #11
0
        private void ShowMarkerInfo(MarkerInfo oMarkerInfo)
        {
            if (oMarkerInfo == null)
            {
                return;
            }

            this.ShowMarkerRect(oMarkerInfo);
            this.ShowMarkerVertex(oMarkerInfo);
            this.ShowMarkerCenter(oMarkerInfo);
            this.ShowMarkerLayoutDir(oMarkerInfo);
            this.ShowMarkerRotate(oMarkerInfo);
        }
Exemple #12
0
        /// <summary>
        /// Завершение рабочего дня
        /// </summary>
        public void JobGryzYval(Client player)
        {
            PlayerInfo pInfo = API.getEntityData(player.handle, Constants.PlayerAccount);

            if (pInfo.Job == (int)Jobs.JOB_JOBGRYZ_ONE)
            {
                var myBox = GryzBoxes.Where(i => i.Player == player).FirstOrDefault();
                if (myBox != null)
                {
                    API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Сначала отнесите ящик на склад.");
                    return;
                }

                API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_OUT, 200);
                API.delay(200, true, () =>
                {
                    pInfo.Job = (int)Jobs.NULL;
                    API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы закончили рабочий день.");
                    API.clearPlayerAccessory(player, 0); // удаляем аксесуары с головы
                    pInfo.UpdateDress();                 // меняем одежду на пользовательскую

                    pInfo.money    = pInfo.money + pInfo.jobMoney;
                    pInfo.jobMoney = 0;
                    pInfo.UpdateBD();
                    var Markers = pInfo.playerEntity.Where(x => x.Key == Constants.Marker); // Удаляем все пользовательские маркеры связанные с работой
                    foreach (var Marker in Markers.ToArray())
                    {
                        MarkerInfo bi = Marker.Value;
                        if (bi.Job == Jobs.JOB_JOBGRYZ_ONE)
                        {
                            bi.DeleteMarker();
                        }
                    }

                    var Blips = pInfo.playerEntity.Where(x => x.Key == Constants.Blip); // Удаляем все пользовательские блипы связанные с работой
                    foreach (var Blip in Blips.ToArray())
                    {
                        BlipInfo bi = Blip.Value;
                        if (bi.Job == Jobs.JOB_JOBGRYZ_ONE)
                        {
                            bi.DeleteBlip();
                        }
                    }
                    API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_IN, 750);
                });
            }
            else
            {
                API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы здесь не работаете.");
            }
        }
Exemple #13
0
        private void ShowMarkerCenter(MarkerInfo oMarkerInfo)
        {
            NyARIntPoint2d oCenterPoint = oMarkerInfo.Center;
            Ellipse        oEllipse     = new Ellipse()
            {
                Width  = 5,
                Height = 5,
                Fill   = new SolidColorBrush(Colors.Green),
            };

            Canvas.SetLeft(oEllipse, oCenterPoint.x);
            Canvas.SetTop(oEllipse, oCenterPoint.y);
            this.CvMainZm.Children.Add(oEllipse);
        }
Exemple #14
0
 void onCollision(string name, bool status)
 {
     if (isLevelActivated)
     {
         MarkerInfo obj = markerlList.Find(item => item.ImageTargetObject.name == name);
         if (status && obj != null)
         {
             obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = redMaterial;
             collideObjectList.Add(name);
         }
         else
         {
             collideObjectList.Remove(name);
         }
     }
 }
Exemple #15
0
        private static List <MarkerInfo> RemoveMarkers(Project proj, List <Marker> orderedMarkers)
        {
            var markPositions = new List <MarkerInfo>();

            foreach (var marker in orderedMarkers)
            {
                var mi = new MarkerInfo();
                mi.Position = marker.Position;
                mi.Label    = marker.Label;
                markPositions.Add(mi);

                proj.Markers.Remove(marker);
            }

            return(markPositions);
        }
Exemple #16
0
        private void ShowMarkerRect(MarkerInfo oMarkerInfo)
        {
            int nMarkerID = oMarkerInfo.MarkerID;

            NyARIntPoint2d[] oPoints  = oMarkerInfo.Vertex;
            Polygon          oPolygon = new Polygon()
            {
                SnapsToDevicePixels = true,
                Opacity             = 0.8,
                Stroke = new SolidColorBrush(Colors.Green)
            };

            if (nMarkerID == this.MarkerID_VTT)
            {
                oPolygon.Fill = new SolidColorBrush(Colors.Violet);
            }
            else if (nMarkerID == this.MarkerID_Hiro)
            {
                oPolygon.Fill = new SolidColorBrush(Colors.Aqua);
            }
            else if (nMarkerID == this.MarkerID_KanJi)
            {
                oPolygon.Fill = new SolidColorBrush(Colors.DarkKhaki);
            }
            else if (nMarkerID == this.MarkerID_ABB)
            {
                oPolygon.Fill = new SolidColorBrush(Colors.Coral);
            }
            else if (nMarkerID == this.Marker_Hello)
            {
                oPolygon.Fill = new SolidColorBrush(Colors.Aquamarine);
            }
            else
            {
                oPolygon.Fill = new SolidColorBrush(Colors.OrangeRed);
            }

            oPolygon.Points = new PointCollection(new Point[]
            {
                new Point(oPoints[0].x, oPoints[0].y),
                new Point(oPoints[1].x, oPoints[1].y),
                new Point(oPoints[2].x, oPoints[2].y),
                new Point(oPoints[3].x, oPoints[3].y)
            });

            this.CvMainZm.Children.Add(oPolygon);
        }
 void onCollisionWithQuad(string name, bool status)
 {
     if (isLevelActivated)
     {
         isQuadCollision = status;
         MarkerInfo obj   = markerlList.Find(item => item.ImageTargetObject.name == name);
         int        index = markerlList.FindIndex(item => item.ImageTargetObject.name == name);
         if (status && index == 1 && quadObject != null)
         {
             quadObject.GetComponent <MeshRenderer> ().enabled = false;
         }
         else if (obj != null && index == 1)
         {
             Debug.Log("collision with quad second");
             obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = redMaterial;
         }
     }
 }
Exemple #18
0
        private static void AddRegionOrMarker(MarkerInfo markerInfo, BaseMarkerList <Region> regionList, BaseMarkerList <Marker> markerList)
        {
            var regionOrMarker = GetRegionOrMarker(markerInfo);

            if (regionOrMarker is Region)
            {
                regionList.Add(regionOrMarker);
            }
            else
            {
                markerList.Add(regionOrMarker);
            }

            if (!string.IsNullOrEmpty(markerInfo.Label))
            {
                regionOrMarker.Label = markerInfo.Label;
            }
        }
 private void onResourceStart()
 {
     lock (Global.Lock)
     {
         try
         {
             var JOB_IMMIGRANT_MARKER = new MarkerInfo(1, new Vector3(84.0330581665039, -1291.85900878906, 28.2591037750244), new Vector3(1, 1, 1), new Vector3(35.5, 1, 1), new Vector3(1.5, 1.5, 1), 100, 236, 147, 89, 1, 2);
             JOB_IMMIGRANT_MARKER.SetData("JOB_IMMIGRANT", 1);
             new BlipInfo(new Vector3(84.0330581665039, -1291.85900878906, 28.2591037750244), 408, 2, true, 0, "Работа иммигранта");
             new TLabelInfo("Работа иммигранта", new Vector3(84.0330581665039, -1291.85900878906, 30.2591037750244), 25, 1);
         }
         catch (Exception exp)
         {
             API.consoleOutput("Произошла ошибка при инициализации миссии иммигранта: " + exp.Message);
             return;
         }
     }
 }
Exemple #20
0
        private static Marker GetRegionOrMarker(MarkerInfo markerInfo)
        {
            var regionInfo = markerInfo as RegionInfo;

            if (regionInfo != null)
            {
                //if (!string.IsNullOrEmpty(regionInfo.Label))
                //{
                //    return new Region(regionInfo.Position, regionInfo.Length, regionInfo.Label);
                //}
                return(new Region(regionInfo.Position, regionInfo.Length));
            }

            //if (!string.IsNullOrEmpty(markerInfo.Label))
            //{
            //    return new Marker(markerInfo.Position, markerInfo.Label);
            //}
            return(new Marker(markerInfo.Position));
        }
Exemple #21
0
        private static string ConvertMarkerInfoToString(MarkerInfo markerInfo)
        {
            StringBuilder sb = new StringBuilder();

            string markerInfoType        = markerInfo.Type.Replace(',', Definitions.PlaceholderForCommaChar);
            string markerInfoDescription = markerInfo.Description.Replace(',', Definitions.PlaceholderForCommaChar);

            // obligatory
            // Position and ChannelNumber are stored in file as 1-indexed
            sb.Append(Invariant($"{markerInfoType},{markerInfoDescription},{markerInfo.Position + 1},{markerInfo.Length},{markerInfo.ChannelNumber + 1}"));

            // optional
            if (markerInfo.Date != null)
            {
                sb.Append(",").Append(markerInfo.Date.Value.ToString("yyyyMMddHHmmssffffff", CultureInfo.InvariantCulture));
            }

            return(sb.ToString());
        }
Exemple #22
0
        private void ProcessMarker(MarkerInfo marker)
        {
            CurrentMatchError = Mathf.Min(marker.match_error, CurrentMatchError);
            CurrentTransError = Mathf.Min(marker.trans_error, CurrentTransError);

            if (marker.match_error < MaxMatchError && marker.trans_error < MaxTransformationError)
            {
                Matrix4x4 matrixRaw       = MatrixFromFloatArray(marker.transformation_matrix);
                var       transformMatrix = LHMatrixFromRHMatrix(matrixRaw);

                OnNewPoseDetected(new MarkerPose
                {
                    Id         = marker.id,
                    Confidence = marker.confidence,
                    Position   = transformMatrix.GetPosition() + new Vector3(Offset, 0, 0),
                    Rotation   = transformMatrix.GetRotation()
                });
            }
        }
Exemple #23
0
        private void SavePokestopsInfo()
        {
            var file = GlobalVars.FortsFile;

            if (file == "")
            {
                file = System.IO.Path.Combine(Program.path, "forts.json");
            }
            var array    = new List <MarkerInfo>();
            var infoJSON = "";

            if (System.IO.File.Exists(file))
            {
                infoJSON = System.IO.File.ReadAllText(file);
                array    = Newtonsoft.Json.JsonConvert.DeserializeObject <List <MarkerInfo> >(infoJSON);
            }

            foreach (var element in _pokeStopsOverlay.Markers)
            {
                var mInfo = new MarkerInfo();
                mInfo.type     = 0;
                mInfo.info     = element.ToolTipText;
                mInfo.location = element.Position;
                if (!ContainsFort(array, mInfo))
                {
                    array.Add(mInfo);
                }
            }
            foreach (var element in _pokeGymsOverlay.Markers)
            {
                var mInfo = new MarkerInfo();
                mInfo.type     = 1;
                mInfo.info     = element.ToolTipText;
                mInfo.location = element.Position;
                if (!ContainsFort(array, mInfo))
                {
                    array.Add(mInfo);
                }
            }
            infoJSON = Newtonsoft.Json.JsonConvert.SerializeObject(array, Newtonsoft.Json.Formatting.Indented);
            System.IO.File.WriteAllText(file, infoJSON);
        }
Exemple #24
0
        private void DrawARDetectInfo(int nMarkerID, string sMarkerName)
        {
            double         dConfidence  = Math.Round(this.ARMarkerSystem.getConfidence(nMarkerID), 5);
            NyARIntPoint2d oCenterPoint = this.ARMarkerSystem.getCenter(nMarkerID);

            NyARIntPoint2d[] oPoints = this.ARMarkerSystem.getVertex2D(nMarkerID);

            if (MarkerInfos.Contains(nMarkerID))
            {
                MarkerInfo oMarkerInfo = this.MarkerInfos[nMarkerID] as MarkerInfo;
                oMarkerInfo.Update(oPoints, oCenterPoint, dConfidence);
                this.ShowMarkerInfo(oMarkerInfo);
            }
            else
            {
                MarkerInfo oMarkerInfo = new MarkerInfo(nMarkerID, oPoints, oCenterPoint, dConfidence);
                this.MarkerInfos.Add(nMarkerID, oMarkerInfo);
                this.ShowMarkerInfo(oMarkerInfo);
            }
        }
Exemple #25
0
        private void ApplyButton_Click(object sender, EventArgs e)
        {
            var markerInfo = new MarkerInfo
            {
                Address     = _addressText.Text,
                Latitude    = double.Parse(_latitudeText.Text),
                Longtitude  = double.Parse(_longtitudeText.Text),
                Title       = _titleEditText.Text,
                Snippet     = _snippetEditText.Text,
                LastModData = DateTime.Now
            };
            var markerMessage = new MarkerMessage
            {
                IsSuccess  = true,
                MarkerInfo = markerInfo
            };

            Messenger.Default.Send(markerMessage);
            _navigationService.GoBack();
        }
        private async void HandleOnGoogleMapClick(object sender, GoogleMap.MapClickEventArgs e)
        {
            if (!RequestExternalStoragePermissionIfNecessary(RC_WRITE_EXTERNAL_STORAGE_PERMISSION))
            {
                return;
            }

            Address address = await GeocodingHelper.ReverseGeocodeCurrentLocation(e.Point, this);

            var marker = new MarkerInfo
            {
                Longtitude  = e.Point.Longitude,
                Latitude    = e.Point.Latitude,
                Address     = address == null ? string.Empty : $"{address.CountryName} {address.AdminArea}",
                LastModData = DateTime.Now
            };

            string markerString = JsonConvert.SerializeObject(marker);

            App.Locator.MainViewModel.CreateNewMarkerCommand.Execute(markerString);
        }
        private void HandleOnGoogleMapMarkerClick(object sender, GoogleMap.MarkerClickEventArgs e)
        {
            e.Handled = true;

            if (!RequestExternalStoragePermissionIfNecessary(RC_WRITE_EXTERNAL_STORAGE_PERMISSION))
            {
                return;
            }

            MarkerInfo markerInfo =
                _markers.FirstOrDefault(x => x.Latitude == e.Marker.Position.Latitude && x.Longtitude == e.Marker.Position.Longitude);

            if (markerInfo == null)
            {
                return;
            }

            string markerString = JsonConvert.SerializeObject(markerInfo);

            App.Locator.MainViewModel.CreateNewMarkerCommand.Execute(markerString);
        }
    void onCollisionWithQuad(string name, bool status)
    {
        isQuadCollision = status;
        MarkerInfo obj   = markerlList.Find(item => item.ImageTargetObject.name == name);
        int        index = markerlList.FindIndex(item => item.ImageTargetObject.name == name);

        //Debug.Log ("collision with quad " + name + " count " + index);
        if (status && index == 1 && quadObject != null)
        {
            //			Debug.Log (quadObject);
            quadObject.GetComponent <MeshRenderer> ().enabled = false;
            obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = blueMaterial;
        }
        else if (obj != null)
        {
            //	Debug.Log ("collision exit");
            //Destroy (quadObject);
            //			CreateQuad ();
            obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = redMaterial;
        }
    }
    void onCollisionWithPlane(string name, bool status)
    {
        isPlaneCollision = status;
        MarkerInfo obj = markerlList.Find(item => item.ImageTargetObject.name == name);

        //Debug.Log ("collision with plane " + name + " count " + status + " obj " + obj);
        if (status && obj != null)
        {
            //Debug.Log ("plane mesh off  " + obj.Name);
            planeObject.GetComponent <MeshRenderer> ().enabled = false;
            obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = greenMaterial;
        }
        else if (obj != null)
        {
            obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = redMaterial;
        }
        if (!status)
        {
            isPlaneIndex = -1;
        }
    }
Exemple #30
0
 void onCollisionWithQuad(string name, bool status)
 {
     if (isLevelActivated)
     {
         isCollision = status;
         MarkerInfo obj   = markerlList.Find(item => item.ImageTargetObject.name == name);
         int        index = markerlList.FindIndex(item => item.ImageTargetObject.name == name);
         Debug.Log("collision with quad " + isCollision + " status " + status);
         if (status && index == 2 && quadObject != null)
         {
             quadObject.GetComponent <MeshRenderer> ().enabled = false;
             markerlList [markerlList.Count - 1].ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = markerlList [markerlList.Count - 2].ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material;
         }
         else if (obj != null)
         {
             Destroy(quadObject);
             CreateQuad();
             obj.ImageTargetObject.transform.GetChild(0).gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ().material = redMaterial;
         }
     }
 }
        private void ProcessMarker(MarkerInfo marker)
        {
            var pose = marker.transform_matrix;
            var transformMatrix = new Matrix4x4();

            transformMatrix.m00 = pose.m00;
            transformMatrix.m01 = pose.m01;
            transformMatrix.m02 = pose.m02;
            transformMatrix.m03 = pose.m03;

            transformMatrix.m10 = pose.m10;
            transformMatrix.m11 = pose.m11;
            transformMatrix.m12 = pose.m12;
            transformMatrix.m13 = pose.m13;

            transformMatrix.m20 = pose.m20;
            transformMatrix.m21 = pose.m21;
            transformMatrix.m22 = pose.m22;
            transformMatrix.m23 = pose.m23;

            transformMatrix.m30 = 0;
            transformMatrix.m31 = 0;
            transformMatrix.m32 = 0;
            transformMatrix.m33 = 1;

            if (NewPoseDetected != null)
            {
                NewPoseDetected(new MarkerPose
                {
                    Id = marker.id,
                    Name = marker.name,
                    Position = transformMatrix.GetPosition(),
                    Rotation = transformMatrix.GetRotation()
                });
            }
        }
        public object AssociateMarker(params object[] markerConfigs)
        {
            // make sure we are initialized
            if (!initialized)
                throw new MarkerException("NewNyAR is not initialized. Call InitTracker(...)");

            if (!(markerConfigs.Length == 2 || markerConfigs.Length == 5))
                throw new MarkerException("Problem in AssociateMarker in NewNyAR");

            MarkerInfo markerInfo = new MarkerInfo();
           
            if (markerConfigs.Length == 2)
            {
                string arrayName = "";
                ComputationMethod method = ComputationMethod.Average;

                try
                {
                    arrayName = (String)markerConfigs[0];
                    method = (ComputationMethod)markerConfigs[1];
                }
                catch (Exception exception)
                {
                
                    throw new MarkerException("Problem in AssociateMarker in NewNyAR");
                }

                ParseArray(arrayName, ref markerInfo);

                markerInfo.Method = method;
            }
            else
            {
                float pattSize = 0, conf = 0;
                String pattId = "";

                try
                {
                    pattId = (String)(markerConfigs[0]);
                    pattSize = (float)markerConfigs[3];
                    conf = (float)markerConfigs[4];
                }
                catch (Exception)
                {
                    throw new MarkerException("Problem in AssociateMarker in NewNyAR");
                }

                IdCode code = new IdCode();
                code.Id = int.Parse(pattId);
                code.Size = pattSize;
                code.MID = markerSystem.addNyIdMarker(code.Id, code.Size);
                
                codes.Add(code);
                pattSizes.Add(pattSize);

                PatternInfo info = new PatternInfo();
                info.ConfidenceThreshold = conf;

                markerInfo.PatternInfos.Add(code.MID, info);
                markerInfo.RelativeTransforms.Add(code.MID, Matrix.Identity);
                markerInfo.Method = ComputationMethod.Average;

                markerInfoMap.Add(code.MID, markerInfo);
            }
            
            markerInfoList.Add(markerInfo);
            
            /*
            // reinitialize the multi marker detector if the programmer adds new marker node
            // after the initialization phase
            if (started)
            {
                
            }
             * */
            return markerInfo;
        }
        private void ParseArray(string arrayName, ref MarkerInfo markerInfo)
        {
            XElement markerArray = XElement.Load(@"" + arrayName);

            float pattSize = 0;
            int pattId;
            Vector3 center = Vector3.Zero;
            string[] tmp = null;

            foreach (XElement markerElement in markerArray.Elements("marker"))
            {
                try
                {
                    pattId = int.Parse(markerElement.Attribute("patternId").Value);
                    pattSize = float.Parse(markerElement.Attribute("patternSize").Value);
                    tmp = markerElement.Attribute("center").Value.Split(',');
                    center.X = -float.Parse(tmp[0]);
                    center.Y = float.Parse(tmp[1]);
                }
                catch (Exception exp)
                {
                    throw new MarkerException("Wrong marker array format: " + exp.Message);
                }

                IdCode code = new IdCode();
                code.Id = pattId;
                code.Size = pattSize;
                code.MID = markerSystem.addNyIdMarker(code.Id, code.Size);
                
                codes.Add(code);
                pattSizes.Add(pattSize);

                PatternInfo info = new PatternInfo();

                markerInfo.PatternInfos.Add(code.MID, info);
                markerInfo.RelativeTransforms.Add(code.MID, Matrix.CreateTranslation(center));
                markerInfo.Method = ComputationMethod.Average;

                markerInfoMap.Add(code.MID, markerInfo);
            }
        }
        /// <summary>
        /// Associates a marker with an identifier so that the identifier can be used to find this
        /// marker after processing the image. 
        /// </summary>
        /// <param name="markerConfigs">A set of parameters that identifies a maker. (e.g., for
        /// ARTag, this parameter would be the marker array name or marker ID)</param>
        /// <returns>An identifier for this marker object</returns>
        public Object AssociateMarker(params Object[] markerConfigs)
        {
            // make sure we are initialized
            if (!initialized)
                throw new MarkerException("ARToolkitTracker is not initialized. Call InitTracker(...)");

            if (!(markerConfigs.Length == 2 || markerConfigs.Length == 5))
                throw new MarkerException(GetAssocMarkerUsage());

            MarkerInfo markerInfo = new MarkerInfo();

            if (markerConfigs.Length == 2)
            {
                string arrayName = "";
                ComputationMethod method = ComputationMethod.Average;

                try
                {
                    arrayName = (String)markerConfigs[0];
                    method = (ComputationMethod)markerConfigs[1];
                }
                catch (Exception)
                {
                    throw new MarkerException(GetAssocMarkerUsage());
                }

                ParseArray(arrayName, ref markerInfo);

                markerInfo.Method = method;
            }
            else
            {
                int pattWidth = 0, pattHeight = 0;
                float pattSize = 0, conf = 0;
                String pattName = "";

                try
                {
                    pattName = (String)markerConfigs[0];
                    pattWidth = (int)markerConfigs[1];
                    pattHeight = (int)markerConfigs[2];
                    pattSize = (float)markerConfigs[3];
                    conf = (float)markerConfigs[4];
                }
                catch (Exception)
                {
                    throw new MarkerException(GetAssocMarkerUsage());
                }

                NyARCode code = new NyARCode(pattWidth, pattHeight);
                code.loadARPatt(new System.IO.StreamReader(TitleContainer.OpenStream(pattName)));
                codes.Add(code);
                pattSizes.Add(pattSize);

                PatternInfo info = new PatternInfo();
                info.ConfidenceThreshold = conf;

                int id = codes.Count - 1;
                markerInfo.PatternInfos.Add(id, info);
                markerInfo.RelativeTransforms.Add(id, Matrix.Identity);
                markerInfo.Method = ComputationMethod.Average;

                markerInfoMap.Add(id, markerInfo);
            }

            markerInfoList.Add(markerInfo);

            // reinitialize the multi marker detector if the programmer adds new marker node
            // after the initialization phase
            if (started)
            {
                multiDetector = new MarkerDetector(param, codes.ToArray(), pattSizes.ToArray(),
                    codes.Count, raster.getBufferType());
                multiDetector.setContinueMode(continuousMode);
            }

            return markerInfo;
        }
        private void ParseArray(string arrayName, ref MarkerInfo markerInfo)
        {
            XElement markerArray = XElement.Load(@"" + arrayName);

            int pattWidth = 0, pattHeight = 0;
            float pattSize = 0, conf = 0;
            String pattName = "";
            Vector3 upperLeftCorner = Vector3.Zero;
            string[] tmp = null;

            foreach (XElement markerElement in markerArray.Elements("marker"))
            {
                try
                {
                    pattName = markerElement.Attribute("patternName").Value;
                    pattWidth = int.Parse(markerElement.Attribute("patternWidth").Value);
                    pattHeight = int.Parse(markerElement.Attribute("patternHeight").Value);
                    pattSize = float.Parse(markerElement.Attribute("patternSize").Value);
                    conf = float.Parse(markerElement.Attribute("confidence").Value);
                    tmp = markerElement.Attribute("upperLeftCorner").Value.Split(',');
                    upperLeftCorner.X = -float.Parse(tmp[0]);
                    upperLeftCorner.Y = float.Parse(tmp[1]);
                }
                catch (Exception exp)
                {
                    throw new MarkerException("Wrong marker array format: " + exp.Message);
                }

                NyARCode code = new NyARCode(pattWidth, pattHeight);
                code.loadARPatt(new System.IO.StreamReader(TitleContainer.OpenStream(pattName)));
                codes.Add(code);
                pattSizes.Add(pattSize);

                PatternInfo info = new PatternInfo();
                info.ConfidenceThreshold = conf;

                int id = codes.Count - 1;
                markerInfo.PatternInfos.Add(id, info);
                markerInfo.RelativeTransforms.Add(id, Matrix.CreateTranslation(upperLeftCorner));

                markerInfoMap.Add(id, markerInfo);
            }
        }