Ogre Procedural
0.3.0 unstable
Procedural Geometry & Textures for Ogre3D
|
Extrudes a 2D shape along a path to build an extruded mesh. More...
#include <ProceduralExtruder.h>
Public Types | |
typedef std::map< unsigned int, const Track * > | TrackMap |
Public Member Functions | |
Extruder () | |
Default constructor. More... | |
void | addToTriangleBuffer (TriangleBuffer &buffer) const |
Builds the mesh into the given TriangleBuffer. More... | |
Extruder & | setShapeToExtrude (const Shape *shapeToExtrude) |
Sets the shape to extrude. More... | |
Extruder & | setMultiShapeToExtrude (const MultiShape *multiShapeToExtrude) |
Sets the multishape to extrude. More... | |
Extruder & | setExtrusionPath (const Path *extrusionPath) |
Sets the extrusion path. More... | |
Extruder & | setExtrusionPath (const MultiPath *multiExtrusionPath) |
Sets the extrusion multipath. More... | |
Extruder & | setRotationTrack (const Track *rotationTrack, unsigned int index=0) |
Sets the rotation track (optional) More... | |
Extruder & | setScaleTrack (const Track *scaleTrack, unsigned int index=0) |
Sets the scale track (optional) More... | |
Extruder & | setShapeTextureTrack (const Track *shapeTextureTrack, unsigned int index=0) |
Sets the track that maps shape points to V texture coords (optional). More... | |
Extruder & | setPathTextureTrack (const Track *pathTextureTrack, unsigned int index=0) |
Sets the track that maps path points to V texture coord (optional). More... | |
Extruder & | setCapped (bool capped) |
Sets whether caps are added to the extremities or not (not closed paths only) More... | |
Ogre::MeshPtr | realizeMesh (const std::string &name="", const Ogre::String &group="General") |
Builds a mesh. More... | |
TriangleBuffer | buildTriangleBuffer () const |
Outputs a triangleBuffer. More... | |
Extruder & | setUTile (Ogre::Real uTile) |
Sets U Tile, ie the number by which u texture coordinates are multiplied (default=1) More... | |
Extruder & | setVTile (Ogre::Real vTile) |
Sets V Tile, ie the number by which v texture coordinates are multiplied (default=1) More... | |
Extruder & | setTextureRectangle (const Ogre::RealRect &textureRectangle) |
Sets the texture rectangle. More... | |
Extruder & | setEnableNormals (bool enableNormals) |
Sets whether normals are enabled or not (default=true) More... | |
Extruder & | setNumTexCoordSet (unsigned char numTexCoordSet) |
Sets the number of texture coordintate sets (default=1) More... | |
Extruder & | setSwitchUV (bool switchUV) |
Sets whether to switch U and V texture coordinates. More... | |
Extruder & | setOrientation (const Ogre::Quaternion &orientation) |
Sets an orientation to give when building the mesh. More... | |
Extruder & | setPosition (const Ogre::Vector3 &position) |
Sets a translation baked into the resulting mesh. More... | |
Extruder & | setPosition (Ogre::Real x, Ogre::Real y, Ogre::Real z) |
Sets a translation baked into the resulting mesh. More... | |
Extruder & | setScale (const Ogre::Vector3 &scale) |
Sets a scale baked into the resulting mesh. More... | |
Extruder & | setScale (Ogre::Real scale) |
Sets a uniform scale baked into the resulting mesh. More... | |
Extruder & | setScale (Ogre::Real x, Ogre::Real y, Ogre::Real z) |
Sets a scale baked into the resulting mesh. More... | |
Extruder & | resetTransforms () |
Resets all transforms (orientation, position and scale) that would have been applied to the mesh to their default values. More... | |
Protected Member Functions | |
void | addPoint (TriangleBuffer &buffer, const Ogre::Vector3 &position, const Ogre::Vector3 &normal, const Ogre::Vector2 &uv) const |
Adds a new point to a triangle buffer, using the format defined for that MeshGenerator. More... | |
Protected Attributes | |
Ogre::Real | mUTile |
A pointer to the default scene manager. More... | |
Ogre::Real | mVTile |
V tile for texture coords generation. More... | |
bool | mEnableNormals |
Whether to produces normals or not. More... | |
unsigned char | mNumTexCoordSet |
The number of texture coordinate sets to include. More... | |
Ogre::Vector2 | mUVOrigin |
Rectangle in which the texture coordinates will be placed. More... | |
bool | mSwitchUV |
If set to true, the UV coordinates coming from the mesh generator will be switched. More... | |
Ogre::Quaternion | mOrientation |
Orientation to apply the mesh. More... | |
Ogre::Vector3 | mScale |
Scale to apply the mesh. More... | |
Ogre::Vector3 | mPosition |
Position to apply to the mesh. More... | |
bool | mTransform |
Extrudes a 2D shape along a path to build an extruded mesh.
Can be used to build things such as pipelines, roads...
typedef std::map<unsigned int, const Track*> Procedural::Extruder::TrackMap |
Procedural::Extruder::Extruder | ( | ) |
Default constructor.
|
protectedinherited |
Adds a new point to a triangle buffer, using the format defined for that MeshGenerator.
buffer | the triangle buffer to update |
position | the position of the new point |
normal | the normal of the new point |
uv | the uv texcoord of the new point |
|
virtual |
Builds the mesh into the given TriangleBuffer.
buffer | The TriangleBuffer on where to append the mesh. |
Ogre::InvalidStateException | Either shape or multishape must be defined! |
Ogre::InvalidStateException | Required parameter is zero! |
Implements Procedural::MeshGenerator< Extruder >.
|
inherited |
Outputs a triangleBuffer.
|
inherited |
Builds a mesh.
name | of the mesh for the MeshManager |
group | ressource group in which the mesh will be created |
|
inherited |
Resets all transforms (orientation, position and scale) that would have been applied to the mesh to their default values.
Extruder& Procedural::Extruder::setCapped | ( | bool | capped | ) |
Sets whether caps are added to the extremities or not (not closed paths only)
|
inherited |
Sets whether normals are enabled or not (default=true)
Sets the extrusion multipath.
References Procedural::MultiPath::_calcIntersections(), Procedural::MultiPath::addMultiPath(), and Procedural::MultiPath::clear().
Sets the extrusion path.
References Procedural::MultiPath::_calcIntersections(), Procedural::MultiPath::addPath(), and Procedural::MultiPath::clear().
Extruder& Procedural::Extruder::setMultiShapeToExtrude | ( | const MultiShape * | multiShapeToExtrude | ) |
Sets the multishape to extrude.
Mutually exclusive with setShapeToExtrude.
References Procedural::MultiShape::addMultiShape(), and Procedural::MultiShape::clear().
|
inherited |
Sets the number of texture coordintate sets (default=1)
|
inherited |
Sets an orientation to give when building the mesh.
Extruder& Procedural::Extruder::setPathTextureTrack | ( | const Track * | pathTextureTrack, |
unsigned int | index = 0 |
||
) |
Sets the track that maps path points to V texture coord (optional).
|
inherited |
Sets a translation baked into the resulting mesh.
|
inherited |
Sets a translation baked into the resulting mesh.
Extruder& Procedural::Extruder::setRotationTrack | ( | const Track * | rotationTrack, |
unsigned int | index = 0 |
||
) |
Sets the rotation track (optional)
|
inherited |
Sets a scale baked into the resulting mesh.
|
inherited |
Sets a uniform scale baked into the resulting mesh.
|
inherited |
Sets a scale baked into the resulting mesh.
Sets the scale track (optional)
Extruder& Procedural::Extruder::setShapeTextureTrack | ( | const Track * | shapeTextureTrack, |
unsigned int | index = 0 |
||
) |
Sets the track that maps shape points to V texture coords (optional).
Warning : if used with multishape, all shapes will have the same track.
Sets the shape to extrude.
Mutually exclusive with setMultiShapeToExtrude.
References Procedural::MultiShape::addShape(), and Procedural::MultiShape::clear().
|
inherited |
Sets whether to switch U and V texture coordinates.
|
inherited |
Sets the texture rectangle.
|
inherited |
Sets U Tile, ie the number by which u texture coordinates are multiplied (default=1)
|
inherited |
Sets V Tile, ie the number by which v texture coordinates are multiplied (default=1)
|
protectedinherited |
Whether to produces normals or not.
|
protectedinherited |
The number of texture coordinate sets to include.
|
protectedinherited |
Orientation to apply the mesh.
|
protectedinherited |
Position to apply to the mesh.
|
protectedinherited |
Scale to apply the mesh.
|
protectedinherited |
If set to true, the UV coordinates coming from the mesh generator will be switched.
It can be used, for example, if your texture doesn't fit the mesh generator's assumptions about UV. If UV were to fit in a given rectangle, they still fit in it after the switch.
|
protectedinherited |
|
protectedinherited |
A pointer to the default scene manager.
U tile for texture coords generation
|
protectedinherited |
Rectangle in which the texture coordinates will be placed.
|
protectedinherited |
V tile for texture coords generation.