Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-08-10 22:32:36 +0000
committerStijn Buys <ingar@osirion.org>2009-08-10 22:32:36 +0000
commitbd142a328328cdf0cbfbb59e4e0aa99dd51184b8 (patch)
treec2ed4e832e60b379723ea3f530c5b192bec0da61 /src/model/material.h
parentbbd04914749b2e3918796fe331daf649b06163ea (diff)
initial texture support for ase models
Diffstat (limited to 'src/model/material.h')
-rw-r--r--src/model/material.h50
1 files changed, 37 insertions, 13 deletions
diff --git a/src/model/material.h b/src/model/material.h
index a2ba0d6..9072a4d 100644
--- a/src/model/material.h
+++ b/src/model/material.h
@@ -20,20 +20,35 @@ class Material
{
public:
/// surface flags
- enum SurfaceFlags { None=0, Primary=1, Secondary=2, Tertiary=3, Bright=4, Engine=8, Environment=16};
+ enum SurfaceFlags { None=0, Primary=1, Secondary=2, Tertiary=3, Bright=4, Engine=8, Environment=16, Texture=32};
/// type definition for the material registry
typedef std::map<std::string, Material *> Registry;
Material(const std::string &name);
+
~Material();
+ /* ---- inspectors ----------------------------------------- */
+
inline const std::string &name() const { return material_name; }
inline const math::Color &color() const { return material_color; }
inline const unsigned int flags() const { return material_flags; }
+ inline const std::string &texture() const { return material_texture; }
+
+ inline const size_t texture_id() const { return material_texture_id; }
+
+ /* ---- mutators ------------------------------------------- */
+
+ void set_color(const math::Color &color);
+
+ void set_texture(const std::string &texture);
+
+ void set_texture_id(const size_t texture_id);
+
inline void set_flags(SurfaceFlags flags)
{
material_flags |= flags;
@@ -43,31 +58,38 @@ public:
{
material_flags &= ~flags;
}
-
-
- void set_color(const math::Color &color);
-/* ---- static ----------------------------------------------------- */
+ /* ---- static ----------------------------------------------------- */
/**
- * @brief initialize materials
- * reads materials from the shader files
+ * @brief initialize material registry
+ * reads materials from the shader files listed in shaderlist.txt
*/
static void init();
- /// clear all materials
+ /**
+ * @brief shutdown material registry
+ */
static void shutdown();
- /// clear all materials
+ /**
+ * @brief clear material registry
+ */
static void clear();
- /// list registered materials
+ /**
+ * @brief print registered materials to the system console
+ */
static void list();
- /// add a material to the registry
+ /**
+ * @brief add a material to the registry
+ */
static void add(Material *material);
- /// find a material in the registry
+ /**
+ * @brief find a material in the registry
+ */
static Material *find(const std::string &name);
private:
@@ -75,8 +97,10 @@ private:
std::string material_name;
math::Color material_color;
unsigned int material_flags;
+ std::string material_texture;
+ size_t material_texture_id;
- /// the material registry
+ /// the materials registry
static Registry material_registry;
static void load_shader(const std::string &shadername);