|
|
|
Mesh drawer creates a single geom object that can be shaped with different draw commands.
More...
#include "meshDrawer.h"
List of all members.
Public Member Functions |
| | MeshDrawer () |
| | Creates the MeshDrawer low level system.
|
| | ~MeshDrawer () |
| | Destroys the MeshDrawer low level system.
|
| void | begin (NodePath camera, NodePath render) |
| | Pass the current camera node and the root node.
|
| void | billboard (const LVector3 &pos, const LVector4 &frame, PN_stdfloat size, const LVector4 &color) |
| | Draws a billboard - particle with no rotation.
|
| void | blended_particle (const LVector3 &pos, const LVector4 &frame1, const LVector4 &frame2, PN_stdfloat blend, PN_stdfloat size, const LVector4 &color, PN_stdfloat rotation) |
| | Works just like particle but accepts 2 frames and a blend (from 0 to 1) component between them Frame contains u,v,u-size,v-size quadruple.
|
| void | cross_segment (const LVector3 &start, const LVector3 &stop, const LVector4 &frame, PN_stdfloat thickness, const LVector4 &color) |
| | Draws a segment a line with a thickness.
|
| void | end () |
| | Finish the drawing and clearing off the remaining vertexes.
|
| void | explosion (const LVector3 &pos, const LVector4 &frame, PN_stdfloat size, const LVector4 &color, int seed, int number, PN_stdfloat distance) |
| | Draws number of particles in a sphere like emitter.
|
|
virtual TypeHandle | force_init_type () |
| void | geometry (NodePath node) |
| | Draws the geometry that is inside this node path into the MeshDrawer object.
|
| int | get_budget () |
| | Gets the total triangle budget of the drawer.
|
| NodePath | get_root () |
| | Returns the root NodePath.
|
|
virtual TypeHandle | get_type () const |
| void | link_segment (const LVector3 &pos, const LVector4 &frame, PN_stdfloat thickness, const LVector4 &color) |
| | Stars or continues linked segment.
|
| void | link_segment_end (const LVector4 &frame, const LVector4 &color) |
| | Finish drawing linked segments, needs at least two calls to link_segment before it can end the linked segment.
|
| void | particle (const LVector3 &pos, const LVector4 &frame, PN_stdfloat size, const LVector4 &color, PN_stdfloat rotation) |
| | Draws a particle that is sort of like a bill board but has an extra rotation component.
|
| void | segment (const LVector3 &start, const LVector3 &stop, const LVector4 &frame, PN_stdfloat thickness, const LVector4 &color) |
| | Draws a segment a line with a thickness.
|
| void | set_budget (int budget) |
| | Sets the total triangle budget of the drawer.
|
| void | stream (const LVector3 &start, const LVector3 &stop, const LVector4 &frame, PN_stdfloat size, const LVector4 &color, int number, PN_stdfloat offset) |
| | Draws a number of particles in a big line with a shift dictated by the offset.
|
| void | tri (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) |
| | Draws a triangle with the given parameters.
|
| void | uneven_segment (const LVector3 &start, const LVector3 &stop, const LVector4 &frame, PN_stdfloat thickness_start, const LVector4 &color_start, PN_stdfloat thickness_stop, const LVector4 &color_stop) |
| | Draws a segment a line with different thickness and color on both sides.
|
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
Mesh drawer creates a single geom object that can be shaped with different draw commands.
This is an efficient way to render bunch of billboards, particles, fast changing triangles. Its implemented by recycling same geom over and over again. Max budget specifies how many triangles are allowed. Some uses of this class can be : particle system, radar icons, health bars, 2d icons, 2d ui, bullets, missile trails. Any that can be drawn with triangles can be drawn with this class. At the low level this uses the GeomVertexRewriter's. The internal geom consists of vertex, normal, uv and color channels.
Definition at line 58 of file meshDrawer.h.
Constructor & Destructor Documentation
Member Function Documentation
Draws a billboard - particle with no rotation.
Billboards always face the camera. Frame contains u,v,u-size,v-size quadruple.
Definition at line 209 of file meshDrawer.cxx.
References tri().
Referenced by stream().
Works just like particle but accepts 2 frames and a blend (from 0 to 1) component between them Frame contains u,v,u-size,v-size quadruple.
Definition at line 190 of file meshDrawer.cxx.
References particle().
Draws a segment a line with a thickness.
This segment does not use the bill boarding behavior and instead draws 2 planes in a cross. Stars at start and ends at stop. Frame contains u,v,u-size,v-size quadruple.
Definition at line 255 of file meshDrawer.cxx.
References tri().
Gets the total triangle budget of the drawer.
Definition at line 80 of file meshDrawer.I.
Returns the root NodePath.
You should use this node to reparent mesh drawer onto the scene might also want to disable depth draw or enable transparency.
Definition at line 57 of file meshDrawer.I.
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 139 of file meshDrawer.h.
References TypedObject::init_type().
Finish drawing linked segments, needs at least two calls to link_segment before it can end the linked segment.
Frame contains u,v,u-size,v-size quadruple.
Definition at line 554 of file meshDrawer.cxx.
References tri().
Referenced by segment().
Sets the total triangle budget of the drawer.
This will not be exceeded. Don't set some thing too large because it will be slow
Definition at line 69 of file meshDrawer.I.
Draws a segment a line with different thickness and color on both sides.
Stars at start and ends at stop. Frame contains u,v,u-size,v-size quadruple.
Definition at line 300 of file meshDrawer.cxx.
References tri().
The documentation for this class was generated from the following files:
| | |