25 #define SPEED_OF_SOUND 0.341
31 ShoeBox::ShoeBox() : mRoomSize(3, 4, 3), mSource(1, 2, 1), mListenerPosition(1.5, 2., 1.) {
146 float temp, pairTemp, anglesTemp;
149 while (increment > 0)
168 if (increment/2 != 0)
169 increment = increment/2;
170 else if (increment == 1)
217 float powOfXDelta, powOfMiusXDelta, powOfYDelta, powOfMiusYDelta, powOfZDelta, powOfMiusZDelta;
218 float distanceFromSource, initalDistance, initialDelay, reflections;
219 float reflectionAngleI, reflectionAngleII, reflectionAngleIII, reflectionAngleIV;
220 int reflXpos,reflXneg,reflYpos,reflYneg,reflZpos,reflZneg;
259 reflXneg = abs((
int)floor(-imageX[i]/
mRoomSize.
x));
264 reflYneg = abs((
int)floor(-imageY[j]/
mRoomSize.
y));
273 reflZneg = abs((
int)floor(-imageZ[k]/
mRoomSize.
z));
277 distanceFromSource = sqrt(powOfXDelta + powOfYDelta + powOfZDelta);
279 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
285 distanceFromSource = sqrt(powOfMiusXDelta + powOfYDelta + powOfZDelta);
287 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
293 distanceFromSource = sqrt(powOfXDelta + powOfMiusYDelta + powOfZDelta);
295 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
301 distanceFromSource = sqrt(powOfMiusXDelta + powOfMiusYDelta + powOfZDelta);
303 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
309 distanceFromSource = sqrt(powOfXDelta + powOfYDelta + powOfMiusZDelta);
311 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
317 distanceFromSource = sqrt(powOfMiusXDelta + powOfYDelta + powOfMiusZDelta);
319 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
325 distanceFromSource = sqrt(powOfXDelta + powOfMiusYDelta + powOfMiusZDelta);
327 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
333 distanceFromSource = sqrt(powOfMiusXDelta + powOfMiusYDelta + powOfMiusZDelta);
335 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;