X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fmesh.h;h=ec109e9e9422df9ad8d62b5b0fc9287493321c02;hb=c26eb87aec7438d167fa2f460a3f412db09c0ac5;hp=7539298cb8c1fd5758a0eb2ae2653f0b0cb8e940;hpb=0066bd77d25793b76fdaa9a62755cca934f0121d;p=oweals%2Fminetest.git diff --git a/src/mesh.h b/src/mesh.h index 7539298cb..ec109e9e9 100644 --- a/src/mesh.h +++ b/src/mesh.h @@ -22,7 +22,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irrlichttypes_extrabloated.h" #include "nodedef.h" -#include /* Create a new cube mesh. @@ -33,16 +32,6 @@ with this program; if not, write to the Free Software Foundation, Inc., */ 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). @@ -59,6 +48,12 @@ void translateMesh(scene::IMesh *mesh, v3f vec); */ 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 @@ -75,6 +70,13 @@ void setMeshColorByNormalXYZ(scene::IMesh *mesh, */ 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. */ @@ -90,4 +92,11 @@ scene::IMesh* convertNodeboxNodeToMesh(ContentFeatures *f); */ 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