.. _3d-primitives:

Using and extending 3D primitives
=================================

- Primitives vs. rPrimitives


Built-in primitive types
------------------------

- Triangle
- Polygon
- Point
- Mesh
- Particles
- ParticlesSprite


Extending a built-in primitive
------------------------------

- Why do this?
- What to subclass from
- What methods to override


Adding a new custom primitive
-----------------------------

- Subclass from Primitive


Drawing in the 3D viewer
------------------------

All primitives must provide methods to draw themselves in the 3D viewer. There
are different drawing functions associated with different render passes:

- draw_solid
- draw_wireframe


Tesselating for the ScanlineRenderer
------------------------------------

- tesselate

