コード例 #1
0
ファイル: line_shape.cpp プロジェクト: ipaddr/omim
    vector<glsl::vec2> const & GenerateCap(LineSegment const & segment, EPointType type,
                                           float sign, bool isStart)
    {
        m_normalBuffer.clear();
        m_normalBuffer.reserve(24);

        GenerateCapNormals(m_params.m_cap,
                           segment.m_leftNormals[type],
                           segment.m_rightNormals[type],
                           sign * segment.m_tangent,
                           GetHalfWidth(), isStart, m_normalBuffer);

        return m_normalBuffer;
    }
コード例 #2
0
ファイル: line_shape.cpp プロジェクト: ipaddr/omim
    void CreateRoundCap(glsl::vec2 const & pos)
    {
        m_capGeometry.reserve(8);

        float const radius = GetHalfWidth();

        m_capGeometry.push_back(CapVertex(CapVertex::TPosition(pos, m_params.m_depth),
                                          CapVertex::TNormal(-radius, radius, radius),
                                          CapVertex::TTexCoord(m_colorCoord)));
        m_capGeometry.push_back(CapVertex(CapVertex::TPosition(pos, m_params.m_depth),
                                          CapVertex::TNormal(-radius, -radius, radius),
                                          CapVertex::TTexCoord(m_colorCoord)));
        m_capGeometry.push_back(CapVertex(CapVertex::TPosition(pos, m_params.m_depth),
                                          CapVertex::TNormal(radius, radius, radius),
                                          CapVertex::TTexCoord(m_colorCoord)));
        m_capGeometry.push_back(CapVertex(CapVertex::TPosition(pos, m_params.m_depth),
                                          CapVertex::TNormal(radius, -radius, radius),
                                          CapVertex::TTexCoord(m_colorCoord)));
    }
コード例 #3
0
ファイル: line_shape.cpp プロジェクト: ipaddr/omim
    vector<glsl::vec2> const & GenerateJoin(LineSegment const & seg1, LineSegment const & seg2)
    {
        m_normalBuffer.clear();
        m_normalBuffer.reserve(24);

        glsl::vec2 n1 = seg1.m_hasLeftJoin[EndPoint] ? seg1.m_leftNormals[EndPoint] :
                        seg1.m_rightNormals[EndPoint];

        glsl::vec2 n2 = seg2.m_hasLeftJoin[StartPoint] ? seg2.m_leftNormals[StartPoint] :
                        seg2.m_rightNormals[StartPoint];

        float widthScalar = seg1.m_hasLeftJoin[EndPoint] ? seg1.m_rightWidthScalar[EndPoint].x :
                            seg1.m_leftWidthScalar[EndPoint].x;

        GenerateJoinNormals(m_params.m_join, n1, n2, GetHalfWidth(),
                            seg1.m_hasLeftJoin[EndPoint], widthScalar, m_normalBuffer);

        return m_normalBuffer;
    }
コード例 #4
0
ファイル: CSector.cpp プロジェクト: cugone/Abrams2012
void Sector::SetHalfHeight(double height) {
    SetHalfExtents(GetHalfWidth(), height);
}
コード例 #5
0
ファイル: line_shape.cpp プロジェクト: ipaddr/omim
 void SubmitVertex(glsl::vec3 const & pivot, glsl::vec2 const & normal, bool isLeft, float offsetFromStart)
 {
     float const halfWidth = GetHalfWidth();
     m_geometry.emplace_back(V(pivot, TNormal(halfWidth * normal, halfWidth * GetSide(isLeft)),
                               m_colorCoord, m_texCoordGen.GetTexCoordsByDistance(offsetFromStart)));
 }
コード例 #6
0
ファイル: line_shape.cpp プロジェクト: ipaddr/omim
 void SubmitVertex(glsl::vec3 const & pivot, glsl::vec2 const & normal, bool isLeft)
 {
     float const halfWidth = GetHalfWidth();
     m_geometry.emplace_back(V(pivot, TNormal(halfWidth * normal, halfWidth * GetSide(isLeft)), m_colorCoord));
 }