private static bool TrySnapPoint(Vector2 pos, List <Ruler> rulers, RulerOrientation orientationFilter, out Vector2 snappedPoint) { var sceneZoom = SceneView.Instance.Scene.Scale.X; foreach (var ruler in rulers) { foreach (var line in ruler.Lines) { if (line.RulerOrientation != orientationFilter) { continue; } var mask = orientationFilter == RulerOrientation.Vertical ? Vector2.Right : Vector2.Down; var transformedPosition = pos * SceneView.Instance.Scene.CalcTransitionToSpaceOf(Document.Current.RootNode.AsWidget); var lineVector = LineToVector(line, ruler.AnchorToRoot); if ((transformedPosition * mask - lineVector).Length < Threshold / sceneZoom) { snappedPoint = transformedPosition * (Vector2.One - mask) + lineVector; return(true); } } } snappedPoint = default; return(false); }
public Ruler(RulerOrientation orientation) { this.posstart = 0; this.posend = 0; this.Init(); this.orientation = orientation; }
public Guideline CreateGuide(Point p, RulerOrientation typ) { Guideline local; switch (typ) { case RulerOrientation.Horizontal: local = new GuidelineVertical(this); break; case RulerOrientation.Vertical: local = new GuidelineHorizontal(this); break; case RulerOrientation.Diagonal: local = new GuidelineDiagonal(this); local.Info.Angle = 45; break; default: return(null); } if (!oldShowMousePosition.HasValue) { oldShowMousePosition = ShowMousePosition; ShowMousePosition = false; } local.SetPixel(p); GuideManager.Guides.Add(local); RefreshGuides(); return(local); }
public RulerData(Vector2 origin, float leftStoper, float rightStoper, float offset, RulerOrientation rulerOrientation) { Origin = origin; LeftStoper = leftStoper; RightStoper = rightStoper; Offset = offset; RulerOrientation = rulerOrientation; }
private static Vector2 SnapPointToRulers(Vector2 point, List <Ruler> rulers, RulerOrientation orientationFilter) { if (TrySnapPoint(point, rulers, orientationFilter, out var snappedPoint)) { return(snappedPoint * Document.Current.RootNode.AsWidget.CalcTransitionToSpaceOf(SceneView.Instance.Scene)); } return(point); }
public Cursor HitTestGuide(Point p, RulerOrientation mode) { if (_Guides.Exists(g => (int)g.Info.Orientation == (int)mode && g.HitTest(p))) { return(_Guides.First(g => (int)g.Info.Orientation == (int)mode && g.HitTest(p)).Cursor); } return(Cursors.Arrow); }
public Guideline GetGuide(Point p, RulerOrientation mode) { if (_Guides.Exists(g => (int)g.Info.Orientation == (int)mode && g.HitTest(p))) { return(_Guides.First(g => (int)g.Info.Orientation == (int)mode && g.HitTest(p))); } return(_Container.CreateGuide(p, mode)); }
private void Init() { this.orientation = RulerOrientation.Horizontal; this.escala = Units.Centimetro; this.tickporunidade = 0; this.tick = 0; this.tickfator = 0.0; this.Font = new Font("Small Fonts", 7f); this.InitializeDevive(); this.InternalSetUnits(); }
private static void DrawLine(Vector2 containerSize, Vector2 value, RulerOrientation orientation, Color4 color) { if (value.Y <= RulerHeight && orientation == RulerOrientation.Horizontal || value.X <= RulerHeight && orientation == RulerOrientation.Vertical ) { return; } var mask = orientation.GetDirection(); var a = (Vector2.One - mask) * RulerHeight + mask * value; var b = (Vector2.One - mask) * containerSize + mask * value; Renderer.DrawLine(a, b, color); }
private static IEnumerator <object> CreateLineTask(Widget widget, RulerOrientation lineRulerOrientation = RulerOrientation.Horizontal) { while (true) { if (widget.Input.WasMousePressed() && !Document.Current.PreviewScene) { var rect = new Rectangle(Vector2.Zero, widget.Size); sv.Components.Add(new CreateLineRequestComponent { Orientation = lineRulerOrientation, IsHovered = () => rect.Contains(widget.LocalMousePosition()) }); } yield return(null); } }
//Constructors public Ruler() { InitializeComponent(); Component.Instance.GetLicense(typeof(Ruler), this); mFont = new Font("Microsoft Sans Serif", 7.0F); mUnit = RulerUnit.Pixel; mMajor = 100; mMinor = 10; mMid = 50; mStart = 0; mZoom = 100; mScaleFactor = 1; mUnitScaleFactor = new PointF(1, 1); mOrientation = RulerOrientation.Top; mBorderStyle = RulerBorderStyle.Edge; mDrawGuides = true; mGradientColor = BackColor; }
//Constructors public Ruler() { InitializeComponent(); Component.Instance.GetLicense(typeof(Ruler), this); mFont = new Font("Microsoft Sans Serif",7.0F); mUnit = RulerUnit.Pixel; mMajor = 100; mMinor = 10; mMid = 50; mStart = 0; mZoom = 100; mScaleFactor = 1; mUnitScaleFactor = new PointF(1,1); mOrientation = RulerOrientation.Top; mBorderStyle = RulerBorderStyle.Edge; mDrawGuides = true; mGradientColor = BackColor; }
//Constructors public Ruler() { InitializeComponent(); _font = new Font("Microsoft Sans Serif", 7.0F); _unit = RulerUnit.Pixel; _major = 100; _minor = 10; _mid = 50; _start = 0; _zoom = 100; _scaleFactor = 1; _unitScaleFactor = new PointF(1, 1); _orientation = RulerOrientation.Top; _borderStyle = RulerBorderStyle.Edge; _drawGuides = true; _gradientColor = BackColor; }
private static IEnumerator <object> CreateLineTask(Widget widget, RulerOrientation lineRulerOrientation = RulerOrientation.Horizontal) { while (true) { var rect = new Rectangle(Vector2.Zero, widget.Size); if (rect.Contains(widget.LocalMousePosition()) && !Document.Current.PreviewAnimation && !Document.Current.ExpositionMode ) { if (widget.Input.WasMousePressed()) { SceneView.Instance.Components.Add(new CreateLineRequestComponent { Orientation = lineRulerOrientation, }); } } yield return(null); } }
public static float GetComponentFor(this RulerOrientation orientation, Vector2 value) { return(orientation == RulerOrientation.Horizontal ? value.Y : value.X); }
public static Vector2 GetDirection(this RulerOrientation orientation) { return(orientation == RulerOrientation.Horizontal ? Vector2.Down : Vector2.Right); }
public static bool IsRulerContainLine(float value, RulerOrientation orientation) => Ruler.Lines.Any(l => l.RulerOrientation == orientation && Math.Abs(l.Value - value) < Mathf.ZeroTolerance);
private static float GetVectorComponentForOrientation(Vector2 value, RulerOrientation orientation) { return(orientation == RulerOrientation.Horizontal ? value.X : value.Y); }
public RulerLine(float value = 0, RulerOrientation rulerOrientation = RulerOrientation.Horizontal) { RulerOrientation = rulerOrientation; Value = value; }
public RulerLine(Vector2 value, RulerOrientation rulerOrientation = RulerOrientation.Horizontal) { RulerOrientation = rulerOrientation; MakePassingThroughPoint(value); }
public RulerBarPresenter(RulerOrientation rulerOrientation) { RulerOrientation = rulerOrientation; }