Panda3D
Loading...
Searching...
No Matches
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.
 
 ~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 which can be clipped.
 
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 the clipping rectangle.
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)=default
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer.
 
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer.
 
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.
 
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly.
 
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type.
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from MemoryBase
void operator delete (void *, void *)
 
void operator delete (void *ptr)
 
void operator delete[] (void *, void *)
 
void operator delete[] (void *ptr)
 
void * operator new (size_t size)
 
void * operator new (size_t size, void *ptr)
 
void * operator new[] (size_t size)
 
void * operator new[] (size_t size, void *ptr)
 

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.
 

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.

It allows clipping and several 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 19 of file meshDrawer2D.I.

◆ ~MeshDrawer2D()

MeshDrawer2D::~MeshDrawer2D ( )
inline

Destroys the MeshDrawer2D low level system.

Definition at line 37 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.

References GeomVertexWriter::add_data3().

◆ force_init_type()

virtual TypeHandle MeshDrawer2D::force_init_type ( )
inlinevirtual

Implements TypedObject.

Definition at line 139 of file meshDrawer2D.h.

◆ get_budget()

int MeshDrawer2D::get_budget ( )
inline

Gets the total triangle budget of the drawer.

Definition at line 65 of file meshDrawer2D.I.

◆ get_class_type()

static TypeHandle MeshDrawer2D::get_class_type ( )
inlinestatic

Definition at line 128 of file meshDrawer2D.h.

◆ get_root()

NodePath MeshDrawer2D::get_root ( )
inline

Returns the root NodePath.

Definition at line 48 of file meshDrawer2D.I.

◆ get_type()

virtual TypeHandle MeshDrawer2D::get_type ( ) const
inlinevirtual

Implements TypedObject.

Definition at line 136 of file meshDrawer2D.h.

◆ init_type()

static void MeshDrawer2D::init_type ( )
inlinestatic

Definition at line 131 of file meshDrawer2D.h.

◆ 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 clipping rectangle.

Definition at line 84 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 which can be clipped.

Definition at line 130 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 185 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 215 of file meshDrawer2D.cxx.

References rectangle_tiled().

◆ rectangle_raw()

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

Definition at line 113 of file meshDrawer2D.I.

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

◆ set_clip()

void MeshDrawer2D::set_clip ( PN_stdfloat x,
PN_stdfloat y,
PN_stdfloat w,
PN_stdfloat h )
inline

Sets the clipping rectangle.

Definition at line 73 of file meshDrawer2D.I.


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