Vector3 in;
sensor0[0] = -1;
do {
in = RandomUtil.uniformOnSphere(rng).toCartesian();
incidentCollector.record(in, new Callback() {
public void record(int sensor) {
result.cast[sensor]++;
sensor0[0] = sensor;
}
});
} while (sensor0[0] < 0);
in = incidentPointsOutward ? in.opposite() : in;
double wavelength = info.channel.sample(rng);
Vector3 v = info.specimen.scatter(SurfacePointGeometry.STANDARD, in, adjoint, wavelength, rng);
if (v != null) {
v = exitantVectorStrategy.getExitantVector(in, v);
exitantCollector.record(v, new Callback() {
public void record(int sensor) {
result.sca[sensor0[0] * numOutSensors + sensor]++;
}
});
} else {