private void solveDegenerateCase(Vector2 point) { var newL = new Parabola(point); Parabola newP = root; var npl = root.GetLeftNode(); while (npl != null) { newP = npl; npl = newP.GetLeftNode(); } //newP is a root right now. var rr = newP; newP = new Parabola(newP.Site); var p = new Vector2(newL.Site.X + JryMath.Abs(newL.Site.X - newP.Site.X) / 2, _maxSize); var seg = new Segment(p, newP.Site, newL.Site); segs.Add(seg); rr.SetRightParabola(newP, seg); rr.SetLeftParabola(newL); }
private float getClipped(Layer2DObject layer, int xph, int v) { int x = xph; int y = v; if (xph < layer.Resolution.X) { x = JryMath.Abs(xph); } if (v < layer.Resolution.Y) { y = JryMath.Abs(v); } if (xph >= layer.Resolution.X) { x = 2 * layer.Resolution.X - xph - 2; } if (v >= layer.Resolution.Y) { y = 2 * layer.Resolution.Y - v - 2; } return(layer[x, y].Value); }
public float NextD(int seedX, int seedY, int seedZ) { seedX += _seed; seedY += 5 * _seed; seedZ += 13 * _seed; var n = seedX + seedY * 57 + seedZ * 271; n = (n << 13) ^ n; var ra = (float)JryMath.Abs((1.0 - ((n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0)); var intra = (long)ra; return(ra - intra); }
public virtual float NextD(int seedX, int seedY) { seedX += 3 * _seed; seedY += 5 * _seed; var n = seedX + seedY * 57; n = (n << 13) ^ n; // it must fit into 0-1 var ra = (float)JryMath.Abs((1.0 - ((n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0)); var intra = (long)ra; return(ra - intra); }