@Override public void cleanGeoms() { // compute the AABBs of all dirty geoms, clear the dirty flags, // remove from dirty list lock_count++; if (dirtyGeoms) { for (DxGeom g : dirty) { if (g instanceof DSpace) { ((DSpace) g).cleanGeoms(); } g.recomputeAABB(); g.unsetFlagDirtyAndBad(); } for (Iterator<DxGeom> iter = infGeomList.iterator(); iter.hasNext();) { DxGeom g = iter.next(); if (g._aabb.getMax(ax0id) != dInfinity) { iter.remove(); normGeomList.add(g); } } Collections.sort(normGeomList, new GeomComparator()); dirty.clear(); dirtyGeoms = false; bvhNodes.clear(); } lock_count--; }
DxGeom g0 = buffer.get(i); DAABB aabb0 = g0._aabb; final double idx0ax0max = aabb0.getMax(ax0id);//(ax0idx+1); for (int j = i+1; j < size; j++) { DxGeom g1 = buffer.get(j); if ( aabb0.getMax(ax1id) >= g1._aabb.getMin(ax1id)) if (g1._aabb.getMax(ax1id) >= aabb0.getMin(ax1id) ) if ( aabb0.getMax(ax2id) >= g1._aabb.getMin(ax2id)) if (g1._aabb.getMax(ax2id) >= aabb0.getMin(ax2id) ) collideGeomsNoAABBs(g0, g1, data, callback);
@Override public void cleanGeoms() { // compute the AABBs of all dirty geoms, clear the dirty flags, // remove from dirty list lock_count++; if (dirtyGeoms) { for (DxGeom g : dirty) { if (g instanceof DSpace) { ((DSpace) g).cleanGeoms(); } g.recomputeAABB(); g.unsetFlagDirtyAndBad(); } for (Iterator<DxGeom> iter = infGeomList.iterator(); iter.hasNext();) { DxGeom g = iter.next(); if (g._aabb.getMax(ax0id) != dInfinity) { iter.remove(); normGeomList.add(g); } } Collections.sort(normGeomList, new GeomComparator()); dirty.clear(); dirtyGeoms = false; bvhNodes.clear(); } lock_count--; }
DxGeom g0 = buffer.get(i); DAABB aabb0 = g0._aabb; final double idx0ax0max = aabb0.getMax(ax0id);//(ax0idx+1); for (int j = i+1; j < size; j++) { DxGeom g1 = buffer.get(j); if ( aabb0.getMax(ax1id) >= g1._aabb.getMin(ax1id)) if (g1._aabb.getMax(ax1id) >= aabb0.getMin(ax1id) ) if ( aabb0.getMax(ax2id) >= g1._aabb.getMin(ax2id)) if (g1._aabb.getMax(ax2id) >= aabb0.getMin(ax2id) ) collideGeomsNoAABBs(g0, g1, data, callback);
DxGeom g0 = geoms.get(i); DAABB aabb0 = g0._aabb; final double idx0ax0max = aabb0.getMax(ax0id); int next = i + 1; if (aabb0.getMax(ax1id) >= g1._aabb.getMin(ax1id)) if (g1._aabb.getMax(ax1id) >= aabb0.getMin(ax1id)) if (aabb0.getMax(ax2id) >= g1._aabb.getMin(ax2id)) if (g1._aabb.getMax(ax2id) >= aabb0.getMin(ax2id)) collideGeomsNoAABBs(g0, g1, data, callback);
DxGeom g0 = geoms.get(i); DAABB aabb0 = g0._aabb; final double idx0ax0max = aabb0.getMax(ax0id); int next = i + 1; if (aabb0.getMax(ax1id) >= g1._aabb.getMin(ax1id)) if (g1._aabb.getMax(ax1id) >= aabb0.getMin(ax1id)) if (aabb0.getMax(ax2id) >= g1._aabb.getMin(ax2id)) if (g1._aabb.getMax(ax2id) >= aabb0.getMin(ax2id)) collideGeomsNoAABBs(g0, g1, data, callback);
if( !GEOM_ENABLED(g) ) // skip disabled ones continue; final double amax = g._aabb.getMax(axis0max); if( amax == dInfinity ) // HACK? probably not... TmpInfGeomList.add( g );
if( !GEOM_ENABLED(g) ) // skip disabled ones continue; final double amax = g._aabb.getMax(axis0max); if( amax == dInfinity ) // HACK? probably not... TmpInfGeomList.add( g );
aabb.dbounds[2*i+1] = (int)Math.floor (geom._aabb.getMax(i)/cellsize);
aabb.dbounds[2*i+1] = (int)Math.floor (geom._aabb.getMax(i)/cellsize);