X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=util.cpp;h=c6517c90fbe8af07733463fa9d41d0831a0a73f0;hp=0d852e725ad65cb989ce4872d54635596d754c06;hb=2463f8abd9662e08438e23e5c0d0f958ea4fe54e;hpb=5215390259a3b39c576b63853240bbf1f1f6dc46 diff --git a/util.cpp b/util.cpp index 0d852e7..c6517c9 100644 --- a/util.cpp +++ b/util.cpp @@ -124,3 +124,17 @@ std::string output_glsl_mat3(const std::string &name, const Eigen::Matrix3d &m) m(0,2), m(1,2), m(2,2)); return buf; } + +void combine_two_samples(float w1, float w2, float *offset, float *total_weight) +{ + assert(w1 * w2 >= 0.0f); // Should not have differing signs. + if (fabs(w1 + w2) < 1e-6) { + *offset = 0.5f; + *total_weight = 0.0f; + } else { + *offset = w2 / (w1 + w2); + *total_weight = w1 + w2; + } + assert(*offset >= 0.0f); + assert(*offset <= 1.0f); +}