Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<float> getVolumes(const ofVec3f &pos, const vector<ofVec3f> &speakers, float rolloff, float blur_radius) {
- vector<float> volumes;
- float sum = 0;
- transform(begin(speakers), end(speakers), back_inserter(volumes), [&sum, pos, rolloff, blur_radius](const ofVec3f &speaker) {
- const float rolloff_default = 20*log10f(0.5f);
- float power = pow(sqrt(pos.squareDistance(speaker)+pow(blur_radius,2)), rolloff/rolloff_default);
- sum += pow(power,2);
- return power;
- });
- sum = sqrt(sum);
- transform(begin(volumes), end(volumes), begin(volumes), [sum](float volume) {
- return volume/sum;
- });
- return volumes;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement