#include "irrlichttypes_extrabloated.h"
#include "nodedef.h"
-#include <string>
/*
Create a new cube mesh.
*/
scene::IAnimatedMesh* createCubeMesh(v3f scale);
-/*
- Create a new extruded mesh from a texture.
- Maximum bounding box is (+-scale.X/2, +-scale.Y/2, +-scale.Z).
- Thickness is in Z direction.
-
- The resulting mesh has 1 material which must be defined by the caller.
-*/
-scene::IAnimatedMesh* createExtrudedMesh(video::ITexture *texture,
- video::IVideoDriver *driver, v3f scale);
-
/*
Multiplies each vertex coordinate by the specified scaling factors
(componentwise vector multiplication).
*/
void setMeshColor(scene::IMesh *mesh, const video::SColor &color);
+/*
+ Shade mesh faces according to their normals
+*/
+
+void shadeMeshFaces(scene::IMesh *mesh);
+
/*
Set the color of all vertices in the mesh.
For each vertex, determine the largest absolute entry in
*/
void rotateMeshBy6dFacedir(scene::IMesh *mesh, int facedir);
+/*
+ Rotate the mesh around the axis and given angle in degrees.
+*/
+void rotateMeshXYby (scene::IMesh *mesh, f64 degrees);
+void rotateMeshXZby (scene::IMesh *mesh, f64 degrees);
+void rotateMeshYZby (scene::IMesh *mesh, f64 degrees);
+
/*
Clone the mesh.
*/
scene::IMesh* cloneMesh(scene::IMesh *src_mesh);
/*
- Convert nodebox drawtype node to mesh.
+ Convert nodeboxes to mesh.
+ boxes - set of nodeboxes to be converted into cuboids
+ uv_coords[24] - table of texture uv coords for each cuboid face
*/
-scene::IMesh* convertNodeboxNodeToMesh(ContentFeatures *f);
+scene::IMesh* convertNodeboxesToMesh(const std::vector<aabb3f> &boxes,
+ const f32 *uv_coords = NULL);
/*
Update bounding box for a mesh.
*/
void recalculateBoundingBox(scene::IMesh *src_mesh);
+/*
+ Vertex cache optimization according to the Forsyth paper:
+ http://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html
+ Ported from irrlicht 1.8
+*/
+scene::IMesh* createForsythOptimizedMesh(const scene::IMesh *mesh);
+
#endif