Panda3D
|
This class allows the drawing of 2d objects - mainly based on quads and rectangles. More...
#include "meshDrawer2D.h"
Public Member Functions | |
MeshDrawer2D () | |
Creates the MeshDrawer2D low level system. | |
~MeshDrawer2D () | |
Destroys the MeshDrawer2D low level system. | |
void | begin () |
Opens up the geom for drawing, don't forget to call MeshDrawer2D::end() | |
void | end () |
Finish the drawing and clearing off the remaining vertexes. | |
virtual TypeHandle | force_init_type () |
int | get_budget () |
Gets the total triangle budget of the drawer. | |
NodePath | get_root () |
Returns the root NodePath. | |
virtual TypeHandle | get_type () const |
void | quad_raw (const LVector3 &v1, const LVector4 &c1, const LVector2 &uv1, const LVector3 &v2, const LVector4 &c2, const LVector2 &uv2, const LVector3 &v3, const LVector4 &c3, const LVector2 &uv3, const LVector3 &v4, const LVector4 &c4, const LVector2 &uv4) |
Draws a 2d rectangle. | |
void | rectangle (PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h, PN_stdfloat u, PN_stdfloat v, PN_stdfloat us, PN_stdfloat vs, const LVector4 &color) |
Draws a 2d rectangle, that can be cliped. | |
void | rectangle_border (PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h, PN_stdfloat r, PN_stdfloat t, PN_stdfloat l, PN_stdfloat b, PN_stdfloat tr, PN_stdfloat tt, PN_stdfloat tl, PN_stdfloat tb, PN_stdfloat u, PN_stdfloat v, PN_stdfloat us, PN_stdfloat vs, const LVector4 &color) |
Draws a 2d rectangle, with borders and corders, taken from the surrounding texture. | |
void | rectangle_border_tiled (PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h, PN_stdfloat r, PN_stdfloat t, PN_stdfloat l, PN_stdfloat b, PN_stdfloat tr, PN_stdfloat tt, PN_stdfloat tl, PN_stdfloat tb, PN_stdfloat u, PN_stdfloat v, PN_stdfloat us, PN_stdfloat vs, const LVector4 &color) |
Draws a 2d rectangle, with borders and corders, taken from the surrounding texture. | |
void | rectangle_raw (PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h, PN_stdfloat u, PN_stdfloat v, PN_stdfloat us, PN_stdfloat vs, const LVector4 &color) |
void | rectangle_tiled (PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h, PN_stdfloat u, PN_stdfloat v, PN_stdfloat us, PN_stdfloat vs, const LVector4 &color) |
Draws a tiled rectangle, size of tiles is in us and vs. | |
void | set_budget (int budget) |
Sets the total triangle budget of the drawer. | |
void | set_clip (PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h) |
Sets clipping rectangle. | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
This function is declared non-inline to work around a compiler bug in g++ 2.96. |
This class allows the drawing of 2d objects - mainly based on quads and rectangles.
Allows clipping and serverl high level UI theme functions.
Definition at line 49 of file meshDrawer2D.h.
MeshDrawer2D::MeshDrawer2D | ( | ) | [inline] |
Creates the MeshDrawer2D low level system.
Definition at line 23 of file meshDrawer2D.I.
MeshDrawer2D::~MeshDrawer2D | ( | ) | [inline] |
Destroys the MeshDrawer2D low level system.
Definition at line 43 of file meshDrawer2D.I.
References NodePath::remove_node().
void MeshDrawer2D::begin | ( | ) |
Opens up the geom for drawing, don't forget to call MeshDrawer2D::end()
Definition at line 94 of file meshDrawer2D.cxx.
void MeshDrawer2D::end | ( | ) |
Finish the drawing and clearing off the remaining vertexes.
Definition at line 119 of file meshDrawer2D.cxx.
References GeomVertexWriter::add_data3().
int MeshDrawer2D::get_budget | ( | ) | [inline] |
Gets the total triangle budget of the drawer.
Definition at line 77 of file meshDrawer2D.I.
NodePath MeshDrawer2D::get_root | ( | ) | [inline] |
Returns the root NodePath.
Definition at line 56 of file meshDrawer2D.I.
static void MeshDrawer2D::init_type | ( | ) | [inline, static] |
This function is declared non-inline to work around a compiler bug in g++ 2.96.
Making it inline seems to cause problems in the optimizer.
Reimplemented from TypedObject.
Definition at line 135 of file meshDrawer2D.h.
References TypedObject::init_type().
void MeshDrawer2D::quad_raw | ( | const LVector3 & | v1, |
const LVector4 & | c1, | ||
const LVector2 & | uv1, | ||
const LVector3 & | v2, | ||
const LVector4 & | c2, | ||
const LVector2 & | uv2, | ||
const LVector3 & | v3, | ||
const LVector4 & | c3, | ||
const LVector2 & | uv3, | ||
const LVector3 & | v4, | ||
const LVector4 & | c4, | ||
const LVector2 & | uv4 | ||
) | [inline] |
Draws a 2d rectangle.
Ignores the cliping rectangle
Definition at line 101 of file meshDrawer2D.I.
References GeomVertexWriter::add_data2(), GeomVertexWriter::add_data3(), and GeomVertexWriter::add_data4().
void MeshDrawer2D::rectangle | ( | PN_stdfloat | x, |
PN_stdfloat | y, | ||
PN_stdfloat | w, | ||
PN_stdfloat | h, | ||
PN_stdfloat | u, | ||
PN_stdfloat | v, | ||
PN_stdfloat | us, | ||
PN_stdfloat | vs, | ||
const LVector4 & | color | ||
) | [inline] |
Draws a 2d rectangle, that can be cliped.
Definition at line 149 of file meshDrawer2D.I.
Referenced by rectangle_border(), and rectangle_tiled().
void MeshDrawer2D::rectangle_border | ( | PN_stdfloat | x, |
PN_stdfloat | y, | ||
PN_stdfloat | w, | ||
PN_stdfloat | h, | ||
PN_stdfloat | r, | ||
PN_stdfloat | t, | ||
PN_stdfloat | l, | ||
PN_stdfloat | b, | ||
PN_stdfloat | tr, | ||
PN_stdfloat | tt, | ||
PN_stdfloat | tl, | ||
PN_stdfloat | tb, | ||
PN_stdfloat | u, | ||
PN_stdfloat | v, | ||
PN_stdfloat | us, | ||
PN_stdfloat | vs, | ||
const LVector4 & | color | ||
) |
Draws a 2d rectangle, with borders and corders, taken from the surrounding texture.
Definition at line 200 of file meshDrawer2D.cxx.
References rectangle().
void MeshDrawer2D::rectangle_border_tiled | ( | PN_stdfloat | x, |
PN_stdfloat | y, | ||
PN_stdfloat | w, | ||
PN_stdfloat | h, | ||
PN_stdfloat | r, | ||
PN_stdfloat | t, | ||
PN_stdfloat | l, | ||
PN_stdfloat | b, | ||
PN_stdfloat | tr, | ||
PN_stdfloat | tt, | ||
PN_stdfloat | tl, | ||
PN_stdfloat | tb, | ||
PN_stdfloat | u, | ||
PN_stdfloat | v, | ||
PN_stdfloat | us, | ||
PN_stdfloat | vs, | ||
const LVector4 & | color | ||
) |
Draws a 2d rectangle, with borders and corders, taken from the surrounding texture.
Definition at line 232 of file meshDrawer2D.cxx.
References rectangle_tiled().
void MeshDrawer2D::rectangle_tiled | ( | PN_stdfloat | x, |
PN_stdfloat | y, | ||
PN_stdfloat | w, | ||
PN_stdfloat | h, | ||
PN_stdfloat | u, | ||
PN_stdfloat | v, | ||
PN_stdfloat | us, | ||
PN_stdfloat | vs, | ||
const LVector4 & | color | ||
) |
Draws a tiled rectangle, size of tiles is in us and vs.
Definition at line 147 of file meshDrawer2D.cxx.
References rectangle().
Referenced by rectangle_border_tiled().
void MeshDrawer2D::set_budget | ( | int | budget | ) | [inline] |
Sets the total triangle budget of the drawer.
Definition at line 66 of file meshDrawer2D.I.
void MeshDrawer2D::set_clip | ( | PN_stdfloat | x, |
PN_stdfloat | y, | ||
PN_stdfloat | w, | ||
PN_stdfloat | h | ||
) | [inline] |
Sets clipping rectangle.
Definition at line 87 of file meshDrawer2D.I.