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);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…