Exemplo n.º 1
0
 private void insertPoint(int is, int ip, int x, int y) {
   Check.argument(is <= _ns, "is in bounds");
   Check.argument(is == _ns && ip == 0 || is < _ns && ip <= _x1[is].length, "is in bounds");
   if (is == _ns) {
     int ns = is + 1;
     float[][] x1 = new float[ns][0];
     float[][] x2 = new float[ns][0];
     float[][] vx = new float[ns][0];
     for (int js = 0; js < _ns; ++js) {
       x1[js] = _x1[js];
       x2[js] = _x2[js];
       vx[js] = _vx[js];
     }
     _x1 = x1;
     _x2 = x2;
     _vx = vx;
     _ns = ns;
   }
   int np = _x1[is].length;
   float[] x1p = _x1[is];
   float[] x2p = _x2[is];
   float[] vxp = _vx[is];
   float[] x1t = new float[np + 1];
   float[] x2t = new float[np + 1];
   float[] vxt = new float[np + 1];
   for (int jp = 0; jp < ip; ++jp) {
     x1t[jp] = x1p[jp];
     x2t[jp] = x2p[jp];
     vxt[jp] = vxp[jp];
   }
   x1t[ip] = x1(x, y);
   x2t[ip] = x2(x, y);
   vxt[ip] = _is2.get(x1t[ip], x2t[ip]);
   for (int jp = ip; jp < np; ++jp) {
     x1t[jp + 1] = x1p[jp];
     x2t[jp + 1] = x2p[jp];
     vxt[jp + 1] = vxp[jp];
   }
   _x1[is] = x1t;
   _x2[is] = x2t;
   _vx[is] = vxt;
 }