summaryrefslogtreecommitdiff
path: root/src/mesh.h
diff options
context:
space:
mode:
authorKahrl <kahrl@gmx.net>2011-12-03 08:40:32 +0100
committerPerttu Ahola <celeron55@gmail.com>2011-12-03 11:47:37 +0200
commit392485aa454e871566a67afc61e11331f9d27397 (patch)
tree7c2a0b971feaa6cad6fafff9569d57d8bda53803 /src/mesh.h
parent275a348b75ae710f5cfdb71595ea6e95ecdbcd63 (diff)
downloadminetest-392485aa454e871566a67afc61e11331f9d27397.tar.gz
minetest-392485aa454e871566a67afc61e11331f9d27397.tar.bz2
minetest-392485aa454e871566a67afc61e11331f9d27397.zip
inventorycube: use all three specified textures; also moved mesh creation / modification functions to mesh.cpp; in lua, inventorycube is now called minetest.inventorycube
Diffstat (limited to 'src/mesh.h')
-rw-r--r--src/mesh.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/mesh.h b/src/mesh.h
new file mode 100644
index 000000000..33e072927
--- /dev/null
+++ b/src/mesh.h
@@ -0,0 +1,66 @@
+/*
+Minetest-c55
+Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef MESH_HEADER
+#define MESH_HEADER
+
+#include "common_irrlicht.h"
+
+/*
+ Create a new cube mesh.
+ Vertices are at (+-scale.X/2, +-scale.Y/2, +-scale.Z/2).
+
+ The resulting mesh has 6 materials (up, down, right, left, back, front)
+ which must be defined by the caller.
+*/
+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 scaleMesh(scene::IMesh *mesh, v3f scale);
+
+/*
+ Set a constant color for all vertices in the mesh
+*/
+void setMeshColor(scene::IMesh *mesh, const video::SColor &color);
+
+/*
+ Set the color of all vertices in the mesh.
+ For each vertex, determine the largest absolute entry in
+ the normal vector, and choose one of colorX, colorY or
+ colorZ accordingly.
+*/
+void setMeshColorByNormalXYZ(scene::IMesh *mesh,
+ const video::SColor &colorX,
+ const video::SColor &colorY,
+ const video::SColor &colorZ);
+
+#endif