private DxSAPSpace2(DxSpace space, int axisorder, long staticGeomCategoryMask) { super(space); this.staticGeomCategoryMask = staticGeomCategoryMask; type = dSweepAndPruneSpaceClass; // Init AABB to infinity _aabb.set(-dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity); ax0id = ((axisorder) & 3); ax1id = ((axisorder >> 2) & 3); ax2id = ((axisorder >> 4) & 3); }
@Override void computeAABB() { if (_first != null) { // int i; // double[] a = new double[6]; DAABB aabb = new DAABB(); aabb.set( dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity); // a[0] = dInfinity; // a[1] = -dInfinity; // a[2] = dInfinity; // a[3] = -dInfinity; // a[4] = dInfinity; // a[5] = -dInfinity; for (DxGeom g=_first; g != null; g=g.getNext()) { g.recomputeAABB(); // for (i=0; i<6; i += 2) if (g._aabb.get(i) < a[i]) a[i] = g._aabb.get(i); // for (i=1; i<6; i += 2) if (g._aabb.get(i) > a[i]) a[i] = g._aabb.get(i); aabb.expand(g.getAABB()); } //memcpy(aabb,a,6*sizeof(double)); _aabb.set(aabb); } else { _aabb.setZero(); } }
static void GIM_AABB_COPY( aabb3f src, DAABB dst ) { dst.set( src.minX, src.maxX, src.minY, src.maxY, src.minZ, src.maxZ ); // dst[ 0 ]= (src).minX; // dst[ 1 ]= (src).maxX; // dst[ 2 ]= (src).minY; // dst[ 3 ]= (src).maxY; // dst[ 4 ]= (src).minZ; // dst[ 5 ]= (src).maxZ; }
@Override void computeAABB() { if (_first != null) { // int i; // double[] a = new double[6]; DAABB aabb = new DAABB(); aabb.set( dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity); // a[0] = dInfinity; // a[1] = -dInfinity; // a[2] = dInfinity; // a[3] = -dInfinity; // a[4] = dInfinity; // a[5] = -dInfinity; for (DxGeom g=_first; g != null; g=g.getNext()) { g.recomputeAABB(); // for (i=0; i<6; i += 2) if (g._aabb.get(i) < a[i]) a[i] = g._aabb.get(i); // for (i=1; i<6; i += 2) if (g._aabb.get(i) > a[i]) a[i] = g._aabb.get(i); aabb.expand(g.getAABB()); } //memcpy(aabb,a,6*sizeof(double)); _aabb.set(aabb); } else { _aabb.setZero(); } }
private DxSAPSpace2(DxSpace space, int axisorder, long staticGeomCategoryMask) { super(space); this.staticGeomCategoryMask = staticGeomCategoryMask; type = dSweepAndPruneSpaceClass; // Init AABB to infinity _aabb.set(-dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity); ax0id = ((axisorder) & 3); ax1id = ((axisorder >> 2) & 3); ax2id = ((axisorder >> 4) & 3); }
static void GIM_AABB_COPY( aabb3f src, DAABB dst ) { dst.set( src.minX, src.maxX, src.minY, src.maxY, src.minZ, src.maxZ ); // dst[ 0 ]= (src).minX; // dst[ 1 ]= (src).maxX; // dst[ 2 ]= (src).minY; // dst[ 3 ]= (src).maxY; // dst[ 4 ]= (src).minZ; // dst[ 5 ]= (src).maxZ; }
public void dGeomGetAABB (DAABB aabb) { //dAASSERT (g); //dAASSERT (aabb); recomputeAABB(); //memcpy (aabb,g.aabb,6 * sizeof(double)); aabb.set(_aabb); } @Override
private BVHNode() { aabb = new DAABB(); aabb.set(dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity); } }
public void dGeomGetAABB (DAABB aabb) { //dAASSERT (g); //dAASSERT (aabb); recomputeAABB(); //memcpy (aabb,g.aabb,6 * sizeof(double)); aabb.set(_aabb); } @Override
private BVHNode() { aabb = new DAABB(); aabb.set(dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity); } }
/** * Return the axis-aligned bounding box. * * Return in aabb an axis aligned bounding box that surrounds the given geom. * The aabb array has elements (minx, maxx, miny, maxy, minz, maxz). If the * geom is a space, a bounding box that surrounds all contained geoms is * returned. * * This function may return a pre-computed cached bounding box, if it can * determine that the geom has not moved since the last time the bounding * box was computed. * * @param geom the geom to query * @param aabb the returned bounding box */ //ODE_API // void dGeomGetAABB (dGeom geom, double aabb[6]) { public static void dGeomGetAABB (DGeom geom, DAABB aabb) { aabb.set(geom.getAABB()); }
/** * Return the axis-aligned bounding box. * * Return in aabb an axis aligned bounding box that surrounds the given geom. * The aabb array has elements (minx, maxx, miny, maxy, minz, maxz). If the * geom is a space, a bounding box that surrounds all contained geoms is * returned. * * This function may return a pre-computed cached bounding box, if it can * determine that the geom has not moved since the last time the bounding * box was computed. * * @param geom the geom to query * @param aabb the returned bounding box */ //ODE_API // void dGeomGetAABB (dGeom geom, double aabb[6]) { public static void dGeomGetAABB (DGeom geom, DAABB aabb) { aabb.set(geom.getAABB()); }
private DxBVHSpace(DxSpace space, int nodesPerLeaf, boolean highQuality, double fatAabbMargin, long staticGeomCategoryMask) { super(space); type = dBVHSpaceClass; _aabb.set(-dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity); bvhTree = new AABBTree<>(new GeomSpatialIndexHandler(staticGeomCategoryMask), nodesPerLeaf, highQuality, fatAabbMargin); }
private DxBVHSpace(DxSpace space, int nodesPerLeaf, boolean highQuality, double fatAabbMargin, long staticGeomCategoryMask) { super(space); type = dBVHSpaceClass; _aabb.set(-dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity); bvhTree = new AABBTree<>(new GeomSpatialIndexHandler(staticGeomCategoryMask), nodesPerLeaf, highQuality, fatAabbMargin); }
_aabb.set( -dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity);
@Override void computeAABB() { // _aabb.v[0] = _final_posr.pos.v[0] - _radius; // _aabb.v[1] = _final_posr.pos.v[0] + _radius; // _aabb.v[2] = _final_posr.pos.v[1] - _radius; // _aabb.v[3] = _final_posr.pos.v[1] + _radius; // _aabb.v[4] = _final_posr.pos.v[2] - _radius; // _aabb.v[5] = _final_posr.pos.v[2] + _radius; _aabb.set(final_posr().pos().get0() - _radius, final_posr().pos().get0() + _radius, final_posr().pos().get1() - _radius, final_posr().pos().get1() + _radius, final_posr().pos().get2() - _radius, final_posr().pos().get2() + _radius); }
_aabb.set( -dInfinity, dInfinity, -dInfinity, dInfinity, -dInfinity, dInfinity);
@Override void computeAABB() { // _aabb.v[0] = _final_posr.pos.v[0] - _radius; // _aabb.v[1] = _final_posr.pos.v[0] + _radius; // _aabb.v[2] = _final_posr.pos.v[1] - _radius; // _aabb.v[3] = _final_posr.pos.v[1] + _radius; // _aabb.v[4] = _final_posr.pos.v[2] - _radius; // _aabb.v[5] = _final_posr.pos.v[2] + _radius; _aabb.set(final_posr().pos().get0() - _radius, final_posr().pos().get0() + _radius, final_posr().pos().get1() - _radius, final_posr().pos().get1() + _radius, final_posr().pos().get2() - _radius, final_posr().pos().get2() + _radius); }
@Override void computeAABB() { // final dMatrix3& R = final_posr.R; // final dVector3& pos = final_posr.pos; DMatrix3C R = final_posr().R(); DVector3C pos = final_posr().pos(); double xrange = 0.5 * ( dFabs (R.get00() * side.get0()) + dFabs (R.get01() * side.get1()) + dFabs (R.get02() * side.get2()) ); double yrange = 0.5 * ( dFabs (R.get10() * side.get0()) + dFabs (R.get11() * side.get1()) + dFabs (R.get12() * side.get2()) ); double zrange = 0.5 * ( dFabs (R.get20() * side.get0()) + dFabs (R.get21() * side.get1()) + dFabs (R.get22() * side.get2()) ); // _aabb.v[0] = pos.v[0] - xrange; // _aabb.v[1] = pos.v[0] + xrange; // _aabb.v[2] = pos.v[1] - yrange; // _aabb.v[3] = pos.v[1] + yrange; // _aabb.v[4] = pos.v[2] - zrange; // _aabb.v[5] = pos.v[2] + zrange; _aabb.set( pos.get0() - xrange, pos.get0() + xrange, pos.get1() - yrange, pos.get1() + yrange, pos.get2() - zrange, pos.get2() + zrange); }
@Override void computeAABB() { // final dMatrix3& R = final_posr.R; // final dVector3& pos = final_posr.pos; DMatrix3C R = final_posr().R(); DVector3C pos = final_posr().pos(); double xrange = 0.5 * ( dFabs (R.get00() * side.get0()) + dFabs (R.get01() * side.get1()) + dFabs (R.get02() * side.get2()) ); double yrange = 0.5 * ( dFabs (R.get10() * side.get0()) + dFabs (R.get11() * side.get1()) + dFabs (R.get12() * side.get2()) ); double zrange = 0.5 * ( dFabs (R.get20() * side.get0()) + dFabs (R.get21() * side.get1()) + dFabs (R.get22() * side.get2()) ); // _aabb.v[0] = pos.v[0] - xrange; // _aabb.v[1] = pos.v[0] + xrange; // _aabb.v[2] = pos.v[1] - yrange; // _aabb.v[3] = pos.v[1] + yrange; // _aabb.v[4] = pos.v[2] - zrange; // _aabb.v[5] = pos.v[2] + zrange; _aabb.set( pos.get0() - xrange, pos.get0() + xrange, pos.get1() - yrange, pos.get1() + yrange, pos.get2() - zrange, pos.get2() + zrange); }