// volumi multipli separati
        public override ArrayList InitDops()
        {
            ArrayList dops = new ArrayList();
            VolumeSubdivision tmp_dop;
            numdops = 0;

            int i, j, dop_i, dop_j;
            int dopsize = 3;

            for(dop_i = 0; dop_i < (nodesx / dopsize); dop_i++) {
                for(dop_j = 0; dop_j < (nodesy / dopsize); dop_j++) {

                    numdops++;
                    tmp_dop = new BoundingBox(texture_id, pw.GetVertexCoords(dopsize * dop_i, dopsize * dop_j));
                    for(i = 0; (i < dopsize-1) && ( i+dopsize*dop_i< nodesx); i++) {
                        for(j = 0; (j < dopsize-1) && ( j+dopsize*dop_j< nodesy); j++) {
                            tmp_dop.AddVertex(pw.GetVertexCoords(dopsize * dop_i + i, dopsize * dop_j + j), convertXYIndexesToInd(dopsize * dop_i + i , dopsize * dop_j + j));
                        }
                    }
                    dops.Add(tmp_dop);
                }
            }

            Console.WriteLine("Aggiunta di " + dops.Count + "DOPs");
            return dops;
        }
示例#2
0
 //
 // passa al gestore dei volumi i punti dell'oggetto
 public override VolumeSubdivision InitDop()
 {
     // un unico volume
     int i;
     float[] tmp;
     tmp = new float[3] {points[0,0],points[0,1],points[0,2]};
     VolumeSubdivision dop = new BoundingBox(0, tmp);
     for(i = 0; i < 4; i++) {
         tmp = new float[3] { points[i, 0], points[i, 1], points[i, 2] };
         dop.AddVertex(tmp, i);
     }
     return dop;
 }
 // passa al gestore dei volumi i punti dell'oggetto
 public override VolumeSubdivision InitDop()
 {
     // un unico volume
     VolumeSubdivision dop = new BoundingBox(texture_id, pw.GetVertexCoords(0, 0));
     numdops = 1;
     int i,j;
     for(i = 0; i < nodesx; i++) {
         for(j = 0; j < nodesy-1; j++) {
             // assegno per ora ad un unico volume
             dop.AddVertex(pw.GetVertexCoords(i, j), i+j*nodesx);
             // meglio più volumi separati...
         }
     }
     return dop;
 }