Panda3D
Public Member Functions | Static Public Member Functions

MeshDrawer2D Class Reference

This class allows the drawing of 2d objects - mainly based on quads and rectangles. More...

#include "meshDrawer2D.h"

Inheritance diagram for MeshDrawer2D:
TypedObject MemoryBase

List of all members.

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.

Detailed Description

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.


Constructor & Destructor Documentation

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().


Member Function Documentation

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.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations