/// <summary> /// pointing here /// </summary> /// <param name="dst"></param> /// <param name="src"></param> /// <returns></returns> static public /*float*/ FloatPoint GetRatio(FloatPoint dst, FloatPoint src) { return(ScaleUtility.pRatio(dst, src, scaleFlags.autoScale)); #if nono FloatPoint refpoint = src.Clone(); float ratio = 1; int cpr; start: refpoint.X *= ratio; refpoint.Y *= ratio; cpr = check(refpoint, dst); Globe.stat("ref={0},rat={1},ck={2},d={3}", refpoint, ratio, (Comp)cpr, bit.Check(cpr, WIDE)); System.Threading.Thread.Sleep(1000); if (cpr == 0) { return(ratio); } if (bit.Check(cpr, WIDE)) { ratio = ratio * (dst.X / refpoint.X); Globe.stat("for X: {0}", ratio); goto start; } if (bit.Check(cpr, TALL)) { ratio = ratio * (dst.Y / refpoint.Y); Globe.stat("for Y: {0}", ratio); } goto start; #endif }
static public FloatPoint Limit(this FloatPoint input, FloatPoint min, FloatPoint max) { var result = input.Clone(); result.X = result.X.MinMax(min.X, max.X).ToSingle(); result.Y = result.Y.MinMax(min.Y, max.Y).ToSingle(); return(result); }
public DragNode Clone() { return(new DragNode() { anchor = anchor.Clone(), controlLeft = controlLeft.Clone(), controlRight = controlRight.Clone() }); }