protected override void Execute() { BookmarkUIObj bookmark = new BookmarkUIObj(ParentFolder); System.Drawing.Point ControlPostion = Viking.UI.State.ViewerForm.PointToClient(Cursor.Position); Geometry.GridVector2 WorldPosition = Viking.UI.State.ViewerControl.ScreenToWorld(ControlPostion.X, ControlPostion.Y); bookmark.X = WorldPosition.X; bookmark.Y = WorldPosition.Y; bookmark.Z = Viking.UI.State.ViewerControl.Section.Number; bookmark.Downsample = Viking.UI.State.ViewerControl.Downsample; bookmark.Name = "X:" + bookmark.X.ToString("F0") + " Y:" + bookmark.Y.ToString("F0") + " Z:" + bookmark.Z.ToString(); bookmark.Save(); base.Execute(); }
protected override void OnShowObject(object Object) { bookmark = Object as BookmarkUIObj; textName.Text = bookmark.Name; richComment.Text = bookmark.Comment; }
public void DrawLabel(BookmarkUIObj bookmark, double alpha, GraphicsDevice graphicsDevice) { double VisibleLabelCutoff = 7; Viking.UI.Controls.SectionViewerControl parent = Viking.UI.State.ViewerControl; Vector2 LabelSize = bookmark.GetLabelSize(parent.fontArial); Vector2 LabelOffset = new Vector2(LabelSize.X / 2, LabelSize.Y / 2f); float MagnificationFactor = (1 / (float)parent.StatusMagnification) * BookmarkUIObj.LabelScaleFactor; float scale = (((float)Global.DefaultBookmarkRadius / LabelSize.X) * MagnificationFactor) / 2f; //Don't draw the label if it cannot be seen if (scale * _parent.fontArial.LineSpacing < VisibleLabelCutoff) return; GridVector2 WorldPosition = bookmark.GridPosition; GridVector2 DrawPosition = parent.WorldToScreen(WorldPosition.X, WorldPosition.Y); BlendState originalBlendState = graphicsDevice.BlendState; RasterizerState originalRasterState = graphicsDevice.RasterizerState; //Print the label parent.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); Microsoft.Xna.Framework.Color color = new Color(Color.Black.ToVector3()); color.A = (byte)(255.0 * alpha); parent.spriteBatch.DrawString(parent.fontArial, bookmark.Name, new Vector2((float)DrawPosition.X, (float)DrawPosition.Y ), color, 0, LabelOffset, scale, SpriteEffects.None, 0); parent.spriteBatch.End(); graphicsDevice.BlendState = originalBlendState; graphicsDevice.RasterizerState = originalRasterState; //PORT XNA 4 //graphicsDevice.RenderState.CullMode = CullMode.None; //graphicsDevice.RenderState.AlphaTestEnable = false; }
public BookmarkTreeNode(BookmarkUIObj folder) : base(folder) { }