Ejemplo n.º 1
0
        //action on mouse
        public void onMouseClick(int mouseX, int mouseY)
        {
            foreach (var f in frames)
            {
                if (f.GlobalRectangle.Contains(mouseX, mouseY))
                {
                    return;
                }
                Console.WriteLine("click on frame");
            }

            //if (frames.Count > 1) return;
            DVector2 mousePosition;

            ViewLayer.GlobeCamera.ScreenToSpherical(mouseX, mouseY, out mousePosition);
            var posts = new List <Post>();

            Gis.GeoPoint currentpost = new Gis.GeoPoint();

            if (globePostsVK != null && globePostsVK.IsVisible)
            {
                for (int i = 0; i < Control.PostsVK.Count; i++)
                {
                    var post = globePostsVK.PointsCpu[i];
                    if (post.Color.Alpha == 0)
                    {
                        continue;
                    }
                    var distance = GeoHelper.DistanceBetweenTwoPoints(mousePosition, new DVector2(post.Lon, post.Lat));
                    if (distance < post.Tex0.Z)
                    {
                        if (!(Game.GameInterface is CustomGameInterface))
                        {
                            return;
                        }

                        posts.Add(Control.PostsVK[i]);
                        currentpost = post;
                    }
                }
            }

            Log.Message(DMathUtil.RadiansToDegrees(mousePosition.X) + "");
            Log.Message(DMathUtil.RadiansToDegrees(mousePosition.Y) + "");

            var ui = ((CustomGameInterface)Game.GameInterface).ui;

            if (posts.Count > 0)
            {
                //for (int i = 0; i < frames.Count; i++)
                //{
                //	var f = frames[i];
                //	f.Parent.Remove(f);
                //	f = null;
                //}
                //frames.Clear();
                List <InstagramPost> instPost = new List <InstagramPost>();
                foreach (var po in posts)
                {
                    var ins = new InstagramPost()
                    {
                        Likes     = po?.likes?.count > 0? po.likes.count.ToString() : 0.ToString(),
                        Text      = po.text,
                        TimeStamp = ConvertFromUnixTimestamp((double)po.date * 1000),
                        Url       = String.IsNullOrEmpty(po.photo_url) ? "" : po.photo_url,
                    };
                    instPost.Add(ins);
                }
                var frame = FrameHelper.createWebPhotoFrameGeoTag(ui, mouseX, mouseY, maxImageSize, maxImageSize, "inst_load", posts[0].photo_url, 0, instPost.ToArray(), currentpost);
                frames.Add(frame);
                var p = (Panel as GisPanel);
                p.Frame.Insert(0, frame);
            }
            else
            {
                for (int i = 0; i < frames.Count; i++)
                {
                    var f = frames[i];
                    f.Parent.Remove(f);
                    f = null;
                }
                frames.Clear();
            }
        }