30 Scalar gain = src.getGain();
33 LScalar distance = listener.getPosition().distance(src.getPosition())
34 - listener.getRadius()
36 LScalar ref = listener.getRadius();
37 LScalar rolloff = listener.getRadius() / src.getRadius();
38 gain *= (distance <= 0) ? 1.
f :
float(ref / (ref + rolloff * distance));
41 Scalar cosangle = listener.getAtDirection().dot( src.getDirection() );
42 if (cosangle < listener.getCosAngleRange().min)
43 gain *= listener.getCosAngleRange().phase(cosangle);
44 if (cosangle < src.getCosAngleRange().min)
45 gain *= src.getCosAngleRange().phase(cosangle);