Panda3D
Public Member Functions | Static Public Member Functions | List of all members
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

Public Member Functions

 MeshDrawer2D ()
 Creates the MeshDrawer2D low level system. More...
 
 ~MeshDrawer2D ()
 Destroys the MeshDrawer2D low level system. More...
 
void begin ()
 Opens up the geom for drawing, don't forget to call MeshDrawer2D::end() More...
 
void end ()
 Finish the drawing and clearing off the remaining vertexes. More...
 
virtual TypeHandle force_init_type ()
 
int get_budget ()
 Gets the total triangle budget of the drawer. More...
 
NodePath get_root ()
 Returns the root NodePath. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void set_budget (int budget)
 Sets the total triangle budget of the drawer. More...
 
void set_clip (PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h)
 Sets clipping rectangle. More...
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
int get_best_parent_from_Set (const std::set< int > &) const
 
int get_type_index () const
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly. More...
 
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type. More...
 
void operator= (const TypedObject &copy)
 

Static Public Member Functions

static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedObject
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. More...
 

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::MeshDrawer2D ( )
inline

Creates the MeshDrawer2D low level system.

Definition at line 23 of file meshDrawer2D.I.

References ~MeshDrawer2D().

◆ ~MeshDrawer2D()

MeshDrawer2D::~MeshDrawer2D ( )
inline

Destroys the MeshDrawer2D low level system.

Definition at line 43 of file meshDrawer2D.I.

References get_root(), and NodePath::remove_node().

Referenced by MeshDrawer2D().

Member Function Documentation

◆ begin()

void MeshDrawer2D::begin ( )

Opens up the geom for drawing, don't forget to call MeshDrawer2D::end()

Definition at line 94 of file meshDrawer2D.cxx.

◆ end()

void MeshDrawer2D::end ( )

Finish the drawing and clearing off the remaining vertexes.

Definition at line 119 of file meshDrawer2D.cxx.

References GeomVertexWriter::add_data3(), and rectangle_tiled().

◆ get_budget()

int MeshDrawer2D::get_budget ( )
inline

Gets the total triangle budget of the drawer.

Definition at line 77 of file meshDrawer2D.I.

References set_clip().

Referenced by set_budget().

◆ get_root()

NodePath MeshDrawer2D::get_root ( )
inline

Returns the root NodePath.

Definition at line 56 of file meshDrawer2D.I.

References set_budget().

Referenced by ~MeshDrawer2D().

◆ quad_raw()

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(), GeomVertexWriter::add_data4(), and rectangle().

Referenced by set_clip().

◆ rectangle()

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 quad_raw(), rectangle_border(), and rectangle_tiled().

◆ rectangle_border()

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(), and rectangle_border_tiled().

Referenced by rectangle_tiled().

◆ rectangle_border_tiled()

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

Referenced by rectangle_border().

◆ 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(), and rectangle_border().

Referenced by end(), and rectangle_border_tiled().

◆ set_budget()

void MeshDrawer2D::set_budget ( int  budget)
inline

Sets the total triangle budget of the drawer.

Definition at line 66 of file meshDrawer2D.I.

References get_budget().

Referenced by get_root().

◆ set_clip()

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.

References quad_raw().

Referenced by get_budget().


The documentation for this class was generated from the following files: