package org.jbox2d.pooling;
import org.jbox2d.collision.Distance;
import org.jbox2d.collision.shapes.CollideCircle;
import org.jbox2d.collision.shapes.CollidePoly;
public final class SingletonPool {
private static final class Singletons{
public final CollideCircle collideCircle = new CollideCircle();
public final CollidePoly collidePoly = new CollidePoly();
public final Distance distance = new Distance();
}
private static final class Pool extends ThreadLocal<Singletons>{
protected Singletons initialValue(){
return new Singletons();
}
}
private static final Pool pool = new Pool();
public static final CollideCircle getCollideCircle(){
return pool.get().collideCircle;
}
public static final CollidePoly getCollidePoly(){
return pool.get().collidePoly;
}
public static final Distance getDistance(){
return pool.get().distance;
}
}