goat3d
annotate src/material.h @ 16:cb6c1a945a11
goat3d is starting to become functional inch by inch
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 26 Sep 2013 14:16:09 +0300 |
parents | 04bb114fcf05 |
children | 498ca7ac7047 |
rev | line source |
---|---|
nuclear@0 | 1 #ifndef MATERIAL_H_ |
nuclear@0 | 2 #define MATERIAL_H_ |
nuclear@0 | 3 |
nuclear@1 | 4 #include <string> |
nuclear@1 | 5 #include <map> |
nuclear@1 | 6 #include <vmath/vmath.h> |
nuclear@1 | 7 |
nuclear@1 | 8 struct MaterialAttrib { |
nuclear@1 | 9 Vector4 value; |
nuclear@1 | 10 std::string map; |
nuclear@15 | 11 |
nuclear@15 | 12 MaterialAttrib() : value(1, 1, 1, 1) {} |
nuclear@1 | 13 }; |
nuclear@1 | 14 |
nuclear@0 | 15 class Material { |
nuclear@1 | 16 private: |
nuclear@1 | 17 static MaterialAttrib def_attr; |
nuclear@1 | 18 |
nuclear@1 | 19 std::map<std::string, MaterialAttrib> attrib; |
nuclear@1 | 20 |
nuclear@1 | 21 public: |
nuclear@8 | 22 std::string name; |
nuclear@8 | 23 |
nuclear@9 | 24 int get_attrib_count() const; |
nuclear@9 | 25 const char *get_attrib_name(int idx) const; |
nuclear@1 | 26 |
nuclear@9 | 27 MaterialAttrib &operator [](int idx); |
nuclear@9 | 28 const MaterialAttrib &operator [](int idx) const; |
nuclear@9 | 29 |
nuclear@9 | 30 MaterialAttrib &operator [](const std::string &name); |
nuclear@9 | 31 const MaterialAttrib &operator [](const std::string &name) const; |
nuclear@0 | 32 }; |
nuclear@0 | 33 |
nuclear@0 | 34 #endif // MATERIAL_H_ |