Exemplo n.º 1
0
  void Font_FT::Glyph::render(Video &vr, const Point2f &position, const float &vratio) const {
    const float x = int(position.x * vratio + 0.5f) / vratio;
    const float y = int(position.y * vratio + 0.5f) / vratio;

    Quadrilateral<Vertex2f_Texture> rect(
      (Vertex2f_Texture(Point2f(m_upper_left_point.x + x, m_upper_left_point.y + y), m_upper_left_texel)) ,
      (Vertex2f_Texture(Point2f(m_upper_left_point.x + x, m_lower_right_point.y + y), Point2f(m_upper_left_texel.x, m_lower_right_texel.y))) ,
      (Vertex2f_Texture(Point2f(m_lower_right_point.x + x, m_lower_right_point.y + y), m_lower_right_texel)) ,
      (Vertex2f_Texture(Point2f(m_lower_right_point.x + x, m_upper_left_point.y + y), Point2f(m_lower_right_texel.x, m_upper_left_texel.y))) );

    vr.render(rect);
  }
Exemplo n.º 2
0
  void render_image(
    const std::string &image_name,
    const Point2f &upper_left,
    const Point2f &lower_right,
    const bool &horizontally_flipped,
    const Color &color_filter) {

      float
        tx0 = horizontally_flipped ? 1.0f : 0.0f,
        tx1 = 1.0f - tx0;

      Material material(image_name, color_filter);

      Quadrilateral<Vertex2f_Texture> q( (Vertex2f_Texture(Point2f(upper_left.x, upper_left.y), Point2f(tx0, 0.0f))) ,
                                         (Vertex2f_Texture(Point2f(upper_left.x, lower_right.y), Point2f(tx0, 1.0f))) ,
                                         (Vertex2f_Texture(Point2f(lower_right.x, lower_right.y), Point2f(tx1, 1.0f))) ,
                                         (Vertex2f_Texture(Point2f(lower_right.x, upper_left.y), Point2f(tx1, 0.0f))) );
      q.lend_Material(&material);

      get_Video().render(q);
  }
Exemplo n.º 3
0
  void render_image(
    const std::string &image_name,
    const Point2f &upper_left,
    const Point2f &lower_right,
    const float &radians_ccw,
    const float &scaling_factor,
    const Point2f &about,
    const bool &horizontally_flipped,
    const Color &color_filter) {

      const Point3f about3 = Point3f(about);

      Vector3f 
        ulv = Point3f(upper_left) - about3,
        llv = Point3f(upper_left.x, lower_right.y, 0.0f) - about3,
        lrv = Point3f(lower_right) - about3,
        urv = Point3f(lower_right.x, upper_left.y, 0.0f) - about3;

      ulv.set_spherical(ulv.theta() - radians_ccw, ulv.phi(), ulv.magnitude() * scaling_factor);
      llv.set_spherical(llv.theta() - radians_ccw, llv.phi(), llv.magnitude() * scaling_factor);
      lrv.set_spherical(lrv.theta() - radians_ccw, lrv.phi(), lrv.magnitude() * scaling_factor);
      urv.set_spherical(urv.theta() - radians_ccw, urv.phi(), urv.magnitude() * scaling_factor);

      const float
        tx0 = horizontally_flipped ? 1.0f : 0.0f,
        tx1 = 1.0f - tx0;

      Material material(image_name, color_filter);

      Vertex2f_Texture vt;
      Quadrilateral<Vertex2f_Texture> q( (Vertex2f_Texture(Point2f(about3 + ulv), Point2f(tx0, 0.0f))) ,
                                         (Vertex2f_Texture(Point2f(about3 + llv), Point2f(tx0, 1.0f))) ,
                                         (Vertex2f_Texture(Point2f(about3 + lrv), Point2f(tx1, 1.0f))) ,
                                         (Vertex2f_Texture(Point2f(about3 + urv), Point2f(tx1, 0.0f))) );
      q.lend_Material(&material);

      get_Video().render(q);
  }