* @see ca.eandb.jmist.framework.geometry.PrimitiveGeometry#generateRandomSurfacePoint(ca.eandb.jmist.framework.ShadingContext)
*/
@Override
public void generateRandomSurfacePoint(ShadingContext context, double ru, double rv, double rj) {
Vector2 uv = RandomUtil.uniformOnDisc(boundingSphere.radius(), ru, rv).toCartesian();
Basis3 basis = Basis3.fromW(this.plane.normal(), Basis3.Orientation.RIGHT_HANDED);
Point3 p = boundingSphere.center()
.plus(basis.u().times(uv.x()))
.plus(basis.v().times(uv.y()));
int id = (twoSided && RandomUtil.coin(rj))
? DISC_SURFACE_BOTTOM
: DISC_SURFACE_TOP;