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)=default
 
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...
 
TypedObjectoperator= (const TypedObject &copy)=default
 

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

Additional Inherited Members

- Public Attributes inherited from TypedObject
 get_type
 

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 45 of file meshDrawer2D.h.

Constructor & Destructor Documentation

◆ MeshDrawer2D()

MeshDrawer2D::MeshDrawer2D ( )
inline

Creates the MeshDrawer2D low level system.

Definition at line 20 of file meshDrawer2D.I.

◆ ~MeshDrawer2D()

MeshDrawer2D::~MeshDrawer2D ( )
inline

Destroys the MeshDrawer2D low level system.

Definition at line 38 of file meshDrawer2D.I.

References NodePath::remove_node().

Member Function Documentation

◆ begin()

void MeshDrawer2D::begin ( )

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

Definition at line 88 of file meshDrawer2D.cxx.

◆ end()

void MeshDrawer2D::end ( )

Finish the drawing and clearing off the remaining vertexes.

Definition at line 110 of file meshDrawer2D.cxx.

◆ get_budget()

int MeshDrawer2D::get_budget ( )
inline

Gets the total triangle budget of the drawer.

Definition at line 66 of file meshDrawer2D.I.

◆ get_root()

NodePath MeshDrawer2D::get_root ( )
inline

Returns the root NodePath.

Definition at line 49 of file meshDrawer2D.I.

◆ 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 85 of file meshDrawer2D.I.

References GeomVertexWriter::add_data2(), GeomVertexWriter::add_data3(), and GeomVertexWriter::add_data4().

◆ 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 131 of file meshDrawer2D.I.

Referenced by 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 186 of file meshDrawer2D.cxx.

References rectangle().

◆ 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 216 of file meshDrawer2D.cxx.

References rectangle_tiled().

◆ 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 135 of file meshDrawer2D.cxx.

References rectangle().

Referenced by rectangle_border_tiled().

◆ set_budget()

void MeshDrawer2D::set_budget ( int  budget)
inline

Sets the total triangle budget of the drawer.

Definition at line 57 of file meshDrawer2D.I.

◆ 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 74 of file meshDrawer2D.I.


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