*dist = t_min;
}
if (normal) {
- glm::vec4 norm(0.0f);
if (min_all.x > min_all.y) {
if (min_all.x > min_all.z) {
- norm.x = t2.x < t1.x ? 1 : -1;
+ normal->x = t2.x < t1.x ? 1 : -1;
} else {
- norm.z = t2.z < t1.z ? 1 : -1;
+ normal->z = t2.z < t1.z ? 1 : -1;
}
} else if (min_all.y > min_all.z) {
- norm.y = t2.y < t1.y ? 1 : -1;
+ normal->y = t2.y < t1.y ? 1 : -1;
} else {
- norm.z = t2.z < t1.z ? 1 : -1;
+ normal->z = t2.z < t1.z ? 1 : -1;
}
- norm = M * norm;
- *normal = glm::vec3(norm);
}
return true;
}