INNER CODE UNIT · C++
p2
symphony-of-empires/symphony-of-empires · eng3d/eng3d/curve.cpp:71
auto p2 = points[i + 1];
auto normal = normals[i];
// Vec from p1 to p2
glm::vec3 p1t2 = p2 - p1;
// Orthogonal vector to the line from p1 to p2
glm::vec3 ortho = glm::cross(p1t2, normal);//glm::vec2(p1t2.y, -p1t2.x);
// ortho = ortho.y > 0 ? ortho : -ortho; // Needed for window order of triangle
ortho = glm::normalize(ortho);
// Creates the line corners
glm::vec3 c1 = p1 - ortho * width * 0.5f;
glm::vec3 c2 = p1 + ortho * width * 0.5f;
if(i != 0) {
c1 = glm::mix(c1, prev_c3, .5f);
c2 = glm::mix(c2, prev_c4, .5f);
prev_c3 = c1;
prev_c4 = c2;
this->add_quad(prev_c1, prev_c2, prev_c4, prev_c3);