Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions

# MeshDrawer Class Reference

Mesh drawer creates a single geom object that can be shaped with different draw commands. More...

Inheritance diagram for MeshDrawer:

List of all members.

## Public Member Functions
| MeshDrawer ()
| Creates the MeshDrawer low level system.
| begin (NodePath camera, NodePath render)
| Pass the current camera node and the root node.
| billboard (Vec3 const pos, Vec4 const frame, float size, Vec4 const color)
| Draws a billboard - particle with no rotation.
| blendedParticle (Vec3 const pos, Vec4 const frame1, Vec4 const frame2, float blend, float size, Vec4 const color, float 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.
| crossSegment (Vec3 const start, Vec3 const stop, Vec4 const frame, float thickness, Vec4 const color)
| Draws a segment a line with a thickness.
| end ()
| Finish the drawing and clearing off the remaining vertexes.
| explosion (Vec3 const pos, Vec4 const frame, float size, Vec4 const color, int seed, int number, float distance)
| Draws number of particles in a sphere like emitter.
| geometry (NodePath node)
| Draws the geometry that is inside this node path into the MeshDrawer object.
int | getBudget ()
| Gets the total triangle budget of the drawer.
NodePath | getRoot ()
| Returns the root NodePath.
| linkSegment (Vec3 const pos, Vec4 const frame, float thickness, Vec4 const color)
| Stars or continues linked segment.
| linkSegmentEnd (Vec4 const frame, Vec4 const color)
| Finish drawing linked segments, needs at least two calls to link_segment before it can end the linked segment.
| particle (Vec3 const pos, Vec4 const frame, float size, Vec4 const color, float rotation)
| Draws a particle that is sort of like a bill board but has an extra rotation component.
| segment (Vec3 const start, Vec3 const stop, Vec4 const frame, float thickness, Vec4 const color)
| Draws a segment a line with a thickness.
| setBudget (int budget)
| Sets the total triangle budget of the drawer.
| stream (Vec3 const start, Vec3 const stop, Vec4 const frame, float size, Vec4 const color, int number, float offset)
| Draws a number of particles in a big line with a shift dictated by the offset.
| tri (Vec3 const v1, Vec4 const c1, Vec2 const uv1, Vec3 const v2, Vec4 const c2, Vec2 const uv2, Vec3 const v3, Vec4 const c3, Vec2 const uv3)
| Draws a triangle with the given parameters.
| unevenSegment (Vec3 const start, Vec3 const stop, Vec4 const frame, float thickness_start, Vec4 const color_start, float thickness_stop, Vec4 const color_stop)
| Draws a segment a line with different thickness and color on both sides.
## Static Public Member Functions
static TypeHandle | getClassType ()

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

## Constructor & Destructor Documentation

MeshDrawer | ( |  | ) |

Creates the MeshDrawer low level system.

## Member Function Documentation

begin | ( | NodePath | camera,
|  | NodePath | render
| ) |  |

Pass the current camera node and the root node.

Passing the camera is required to generate bill boards that face it.

billboard | ( | Vec3 const | pos,
|  | Vec4 const | frame,
|  | float | size,
|  | Vec4 const | color
| ) |  |

Draws a billboard - particle with no rotation.

Billboards always face the camera. Frame contains u,v,u-size,v-size quadruple.

blendedParticle | ( | Vec3 const | pos,
|  | Vec4 const | frame1,
|  | Vec4 const | frame2,
|  | float | blend,
|  | float | size,
|  | Vec4 const | color,
|  | float | 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.

crossSegment | ( | Vec3 const | start,
|  | Vec3 const | stop,
|  | Vec4 const | frame,
|  | float | thickness,
|  | Vec4 const | color
| ) |  |

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.

end | ( |  | ) |

Finish the drawing and clearing off the remaining vertexes.

explosion | ( | Vec3 const | pos,
|  | Vec4 const | frame,
|  | float | size,
|  | Vec4 const | color,
|  | int | seed,
|  | int | number,
|  | float | distance
| ) |  |

Draws number of particles in a sphere like emitter.

Frame contains u,v,u-size,v-size quadruple.

geometry | ( | NodePath | node | ) |

Draws the geometry that is inside this node path into the MeshDrawer object.

This performs a similar functions as RigidBodyCombiner but for very dynamic situations that share the same texture like physcal chunks of explosions. It can be a little slow

int getBudget | ( |  | ) |

Gets the total triangle budget of the drawer.

static TypeHandle getClassType | ( |  | ) | `[static]`

Reimplemented from TypedObject.

NodePath getRoot | ( |  | ) |

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.

linkSegment | ( | Vec3 const | pos,
|  | Vec4 const | frame,
|  | float | thickness,
|  | Vec4 const | color
| ) |  |

Stars or continues linked segment.

Control position, frame, thickness and color with parameters. Frame contains u,v,u-size,v-size quadruple.

linkSegmentEnd | ( | Vec4 const | frame,
|  | Vec4 const | color
| ) |  |

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.

particle | ( | Vec3 const | pos,
|  | Vec4 const | frame,
|  | float | size,
|  | Vec4 const | color,
|  | float | rotation
| ) |  |

Draws a particle that is sort of like a bill board but has an extra rotation component.

Frame contains u,v,u-size,v-size quadruple.

segment | ( | Vec3 const | start,
|  | Vec3 const | stop,
|  | Vec4 const | frame,
|  | float | thickness,
|  | Vec4 const | color
| ) |  |

Draws a segment a line with a thickness.

That has billboarding effect. Frame contains u,v,u-size,v-size quadruple.

setBudget | ( | int | budget | ) |

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

stream | ( | Vec3 const | start,
|  | Vec3 const | stop,
|  | Vec4 const | frame,
|  | float | size,
|  | Vec4 const | color,
|  | int | number,
|  | float | offset
| ) |  |

Draws a number of particles in a big line with a shift dictated by the offset.

Frame contains u,v,u-size,v-size quadruple.

tri | ( | Vec3 const | v1,
|  | Vec4 const | c1,
|  | Vec2 const | uv1,
|  | Vec3 const | v2,
|  | Vec4 const | c2,
|  | Vec2 const | uv2,
|  | Vec3 const | v3,
|  | Vec4 const | c3,
|  | Vec2 const | uv3
| ) |  |

Draws a triangle with the given parameters.

unevenSegment | ( | Vec3 const | start,
|  | Vec3 const | stop,
|  | Vec4 const | frame,
|  | float | thickness_start,
|  | Vec4 const | color_start,
|  | float | thickness_stop,
|  | Vec4 const | color_stop
| ) |  |

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.

All Classes Namespaces Functions Variables Enumerations Enumerator Properties