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. | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. | |
void | begin () |
Opens up the geom for drawing, dont forget to call MeshDrawer2D::end() | |
void | end () |
Finish the drawing and clearing off the remaining vertexes. | |
virtual TypeHandle | force_init_type () |
int | get_best_parent_from_Set (const std::set< int > &) const |
int | get_budget () |
Gets the total triangle budget of the drawer. | |
NodePath | get_root () |
Returns the root NodePath. | |
virtual TypeHandle | get_type () 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. | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
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 *ptr) |
void * | operator new[] (size_t size) |
void | quad_raw (LVector3f v1, LVector4f c1, LVector2f uv1, LVector3f v2, LVector4f c2, LVector2f uv2, LVector3f v3, LVector4f c3, LVector2f uv3, LVector3f v4, LVector4f c4, LVector2f uv4) |
Draws a 2d rectangle. | |
void | rectangle (float x, float y, float w, float h, float u, float v, float us, float vs, LVector4f color) |
Draws a 2d rectangle, that can be cliped. | |
void | rectangle_border (float x, float y, float w, float h, float r, float t, float l, float b, float tr, float tt, float tl, float tb, float u, float v, float us, float vs, LVector4f color) |
Draws a 2d rectangle, with borders and corders, taken from the surrounding texture. | |
void | rectangle_border_tiled (float x, float y, float w, float h, float r, float t, float l, float b, float tr, float tt, float tl, float tb, float u, float v, float us, float vs, LVector4f color) |
Draws a 2d rectangle, with borders and corders, taken from the surrounding texture. | |
void | rectangle_raw (float x, float y, float w, float h, float u, float v, float us, float vs, LVector4f color) |
void | rectangle_tiled (float x, float y, float w, float h, float u, float v, float us, float vs, LVector4f 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 (float x, float y, float w, float 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.
Alows 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().
TypedObject * TypedObject::as_typed_object | ( | ) | [inline, inherited] |
Returns the object, upcast (if necessary) to a TypedObject pointer.
Definition at line 99 of file typedObject.I.
const TypedObject * TypedObject::as_typed_object | ( | ) | const [inline, inherited] |
Returns the object, upcast (if necessary) to a TypedObject pointer.
Definition at line 110 of file typedObject.I.
void MeshDrawer2D::begin | ( | ) |
Opens up the geom for drawing, dont 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_data3f().
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.
int TypedObject::get_type_index | ( | ) | const [inline, inherited] |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
This is equivalent to get_type().get_index().
Definition at line 52 of file typedObject.I.
References TypeHandle::get_index().
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().
bool TypedObject::is_exact_type | ( | TypeHandle | handle | ) | const [inline, inherited] |
Returns true if the current object is the indicated type exactly.
Definition at line 74 of file typedObject.I.
References TypeHandle::get_name().
Referenced by GraphicsStateGuardian::async_reload_texture(), PortalNode::combine_with(), PandaNode::combine_with(), GeomNode::combine_with(), CollisionNode::combine_with(), Character::combine_with(), PGItem::cull_callback(), FactoryParams::get_param_of_type(), CollisionHandlerPusher::handle_entries(), SceneGraphReducer::r_flatten(), ConnectionWriter::send(), FltToEggLevelState::set_transform(), and VirtualFileSystem::unmount().
bool TypedObject::is_of_type | ( | TypeHandle | handle | ) | const [inline, inherited] |
Returns true if the current object is or derives from the indicated type.
Definition at line 63 of file typedObject.I.
References TypeHandle::is_derived_from().
Referenced by EggSliderData::add_back_pointer(), EggJointData::add_back_pointer(), CIntervalManager::add_c_interval(), XFileNode::add_child(), CollisionTraverser::add_collider(), CollisionHandlerPhysical::add_collider(), EggXfmSAnim::add_data(), CharacterJointBundle::add_node(), NonlinearImager::add_screen(), EggGroupNode::apply_first_attribute(), EggGroupNode::apply_last_attribute(), DeferredNodeProperty::apply_to_node(), RecorderController::begin_playback(), NodePath::clear_clip_plane(), EggGroupNode::clear_connected_shading(), NodePath::clear_light(), EggBase::convert_paths(), NodePath::decode_from_bam_stream(), VrpnClient::disconnect_device(), PhysicsManager::do_physics(), GraphicsStateGuardian::fetch_specified_part(), EggRenderState::fill_state(), AnimBundleNode::find_anim_bundle(), EggGroupNode::find_coordsys_entry(), XFile::find_data_object(), Character::find_joint(), EggGroupNode::find_materials(), Character::find_slider(), XFile::find_template(), EggGroupNode::find_textures(), EggMaterialCollection::find_used_materials(), EggTextureCollection::find_used_textures(), EggGroupNode::force_filenames(), EggJointData::force_initial_rest_frame(), WindowFramework::get_aspect_2d(), EggPoolUniquifier::get_category(), EggGroupUniquifier::get_category(), EggGroupNode::get_connected_shading(), PandaFramework::get_mouse(), FactoryParams::get_param_of_type(), EggGroupNode::has_absolute_pathnames(), NodePath::has_clip_plane(), NodePath::has_clip_plane_off(), NodePath::has_light(), PandaFramework::hide_collision_solids(), x11GraphicsWindow::open_window(), eglGraphicsWindow::open_window(), EggNode::parse_egg(), CharacterMaker::part_to_node(), EggGroupNode::post_apply_flat_attribute(), EggBinner::prepare_node(), PortalClipper::prepare_portal(), NodePath::project_texture(), EggMatrixTablePointer::quantize_channels(), ParametricCurveCollection::r_add_curves(), SceneGraphReducer::r_collect_vertex_data(), EggGroupNode::r_load_externals(), EggGroupNode::rebuild_vertex_pools(), EggGroupNode::recompute_polygon_normals(), EggGroupNode::remove_invalid_primitives(), EggGroupNode::remove_unused_vertices(), EggLoader::reparent_decals(), EggMaterialCollection::replace_materials(), EggTextureCollection::replace_textures(), EggGroupNode::resolve_filenames(), EggGroupNode::reverse_vertex_ordering(), NodePath::set_clip_plane(), NodePath::set_clip_plane_off(), NodePath::set_light(), ProjectionScreen::set_projector(), NonlinearImager::set_source_camera(), EggXfmSAnim::set_value(), NonlinearImager::set_viewer_camera(), PandaFramework::show_collision_solids(), BamCache::store(), XFileToEggConverter::strip_nodes(), EggGroupNode::strip_normals(), DataGraphTraverser::traverse(), DataGraphTraverser::traverse_below(), EggGroupNode::triangulate_polygons(), EggGroupNode::unify_attributes(), EggNameUniquifier::uniquify(), NodeCullCallbackData::upcall(), PhysicsCollisionHandler::validate_target(), EggXfmSAnim::write(), EggGroup::write(), EggToDXFLayer::write_3d_face(), and EggToDXFLayer::write_entities().
void MeshDrawer2D::quad_raw | ( | LVector3f | v1, |
LVector4f | c1, | ||
LVector2f | uv1, | ||
LVector3f | v2, | ||
LVector4f | c2, | ||
LVector2f | uv2, | ||
LVector3f | v3, | ||
LVector4f | c3, | ||
LVector2f | uv3, | ||
LVector3f | v4, | ||
LVector4f | c4, | ||
LVector2f | uv4 | ||
) | [inline] |
Draws a 2d rectangle.
Ignores the cliping rectangle
Definition at line 101 of file meshDrawer2D.I.
References GeomVertexWriter::add_data2f(), GeomVertexWriter::add_data3f(), and GeomVertexWriter::add_data4f().
void MeshDrawer2D::rectangle | ( | float | x, |
float | y, | ||
float | w, | ||
float | h, | ||
float | u, | ||
float | v, | ||
float | us, | ||
float | vs, | ||
LVector4f | 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 | ( | float | x, |
float | y, | ||
float | w, | ||
float | h, | ||
float | r, | ||
float | t, | ||
float | l, | ||
float | b, | ||
float | tr, | ||
float | tt, | ||
float | tl, | ||
float | tb, | ||
float | u, | ||
float | v, | ||
float | us, | ||
float | vs, | ||
LVector4f | 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 | ( | float | x, |
float | y, | ||
float | w, | ||
float | h, | ||
float | r, | ||
float | t, | ||
float | l, | ||
float | b, | ||
float | tr, | ||
float | tt, | ||
float | tl, | ||
float | tb, | ||
float | u, | ||
float | v, | ||
float | us, | ||
float | vs, | ||
LVector4f | 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 | ( | float | x, |
float | y, | ||
float | w, | ||
float | h, | ||
float | u, | ||
float | v, | ||
float | us, | ||
float | vs, | ||
LVector4f | 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 | ( | float | x, |
float | y, | ||
float | w, | ||
float | h | ||
) | [inline] |
Sets clipping rectangle.
Definition at line 87 of file meshDrawer2D.I.