private void initializeRegisters() { addType(pool.getCircleContactStack(), ShapeType.CIRCLE, ShapeType.CIRCLE); addType(pool.getPolyCircleContactStack(), ShapeType.POLYGON, ShapeType.CIRCLE); addType(pool.getPolyContactStack(), ShapeType.POLYGON, ShapeType.POLYGON); addType(pool.getEdgeCircleContactStack(), ShapeType.EDGE, ShapeType.CIRCLE); addType(pool.getEdgePolyContactStack(), ShapeType.EDGE, ShapeType.POLYGON); addType(pool.getChainCircleContactStack(), ShapeType.CHAIN, ShapeType.CIRCLE); addType(pool.getChainPolyContactStack(), ShapeType.CHAIN, ShapeType.POLYGON); }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collideEdgeAndPolygon(manifold, (EdgeShape) m_fixtureA.getShape(), xfA, (PolygonShape) m_fixtureB.getShape(), xfB); } }
/** * Determine if two generic shapes overlap. */ public boolean testOverlap(Shape shapeA, int indexA, Shape shapeB, int indexB, Transform xfA, Transform xfB) { input.proxyA.set(shapeA, indexA); input.proxyB.set(shapeB, indexB); input.transformA.set(xfA); input.transformB.set(xfB); input.useRadii = true; cache.count = 0; pool.getDistance().distance(output, cache, input); // djm note: anything significant about 10.0f? return output.distance < 10.0f * JBoxSettings.EPSILON; }
input.tMax = 1.0f; pool.getTimeOfImpact().timeOfImpact(toiOutput, input);
/** * Determine if two generic shapes overlap. */ public boolean testOverlap(Shape shapeA, int indexA, Shape shapeB, int indexB, Transform xfA, Transform xfB) { input.proxyA.set(shapeA, indexA); input.proxyB.set(shapeB, indexB); input.transformA.set(xfA); input.transformB.set(xfB); input.useRadii = true; cache.count = 0; pool.getDistance().distance(output, cache, input); // djm note: anything significant about 10.0f? return output.distance < 10.0f * JBoxSettings.EPSILON; }
input.tMax = 1.0f; pool.getTimeOfImpact().timeOfImpact(toiOutput, input);
private void initializeRegisters() { addType(pool.getCircleContactStack(), ShapeType.CIRCLE, ShapeType.CIRCLE); addType(pool.getPolyCircleContactStack(), ShapeType.POLYGON, ShapeType.CIRCLE); addType(pool.getPolyContactStack(), ShapeType.POLYGON, ShapeType.POLYGON); addType(pool.getEdgeCircleContactStack(), ShapeType.EDGE, ShapeType.CIRCLE); addType(pool.getEdgePolyContactStack(), ShapeType.EDGE, ShapeType.POLYGON); addType(pool.getChainCircleContactStack(), ShapeType.CHAIN, ShapeType.CIRCLE); addType(pool.getChainPolyContactStack(), ShapeType.CHAIN, ShapeType.POLYGON); }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collideEdgeAndPolygon(manifold, (EdgeShape) m_fixtureA.getShape(), xfA, (PolygonShape) m_fixtureB.getShape(), xfB); } }
pool.getDistance().distance(distanceOutput, cache, distanceInput);
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collidePolygons(manifold, (PolygonShape) m_fixtureA.getShape(), xfA, (PolygonShape) m_fixtureB.getShape(), xfB); } }
pool.getDistance().distance(distanceOutput, cache, distanceInput);
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collideCircles(manifold, (CircleShape) m_fixtureA.getShape(), xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collidePolygons(manifold, (PolygonShape) m_fixtureA.getShape(), xfA, (PolygonShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collidePolygonAndCircle(manifold, (PolygonShape) m_fixtureA.getShape(), xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collideEdgeAndCircle(manifold, (EdgeShape) m_fixtureA.getShape(), xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collidePolygonAndCircle(manifold, (PolygonShape) m_fixtureA.getShape(), xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collideEdgeAndCircle(manifold, (EdgeShape) m_fixtureA.getShape(), xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { pool.getCollision().collideCircles(manifold, (CircleShape) m_fixtureA.getShape(), xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { ChainShape chain = (ChainShape) m_fixtureA.getShape(); chain.getChildEdge(edge, m_indexA); pool.getCollision().collideEdgeAndCircle(manifold, edge, xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }
@Override public void evaluate(Manifold manifold, Transform xfA, Transform xfB) { ChainShape chain = (ChainShape) m_fixtureA.getShape(); chain.getChildEdge(edge, m_indexA); pool.getCollision().collideEdgeAndCircle(manifold, edge, xfA, (CircleShape) m_fixtureB.getShape(), xfB); } }