goat3d
annotate src/material.cc @ 58:d317eb4f83da
- made everything compile properly on windows again
- removed libanim/libvmath, we'll use them as external dependencies
- added new maxgoat_stub 3dsmax plugin project. Gets loaded as a max plugin and
loads the actual maxgoat (and later maxgoat_anim) exporters on demand, to
allow reloading the actual exporters without having to restart 3dsmax (which
takes AGES).
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 25 Mar 2014 03:19:55 +0200 |
parents | f1b4c27382ce |
children | dad392c710df |
rev | line source |
---|---|
nuclear@9 | 1 #include "material.h" |
nuclear@9 | 2 |
nuclear@47 | 3 using namespace g3dimpl; |
nuclear@47 | 4 |
nuclear@15 | 5 MaterialAttrib Material::def_attr; |
nuclear@15 | 6 |
nuclear@9 | 7 int Material::get_attrib_count() const |
nuclear@9 | 8 { |
nuclear@9 | 9 return (int)attrib.size(); |
nuclear@9 | 10 } |
nuclear@9 | 11 |
nuclear@9 | 12 const char *Material::get_attrib_name(int idx) const |
nuclear@9 | 13 { |
nuclear@9 | 14 if(idx < 0 || idx >= get_attrib_count()) { |
nuclear@9 | 15 return 0; |
nuclear@9 | 16 } |
nuclear@9 | 17 |
nuclear@9 | 18 std::map<std::string, MaterialAttrib>::const_iterator it = attrib.begin(); |
nuclear@9 | 19 for(int i=0; i<idx; i++) it++; |
nuclear@9 | 20 return it->first.c_str(); |
nuclear@9 | 21 } |
nuclear@9 | 22 |
nuclear@9 | 23 MaterialAttrib &Material::operator [](int idx) |
nuclear@9 | 24 { |
nuclear@9 | 25 if(idx < 0 || idx >= get_attrib_count()) { |
nuclear@9 | 26 return def_attr; |
nuclear@9 | 27 } |
nuclear@9 | 28 |
nuclear@9 | 29 std::map<std::string, MaterialAttrib>::iterator it = attrib.begin(); |
nuclear@9 | 30 for(int i=0; i<idx; i++) it++; |
nuclear@9 | 31 return it->second; |
nuclear@9 | 32 } |
nuclear@9 | 33 |
nuclear@9 | 34 const MaterialAttrib &Material::operator [](int idx) const |
nuclear@9 | 35 { |
nuclear@9 | 36 if(idx < 0 || idx >= get_attrib_count()) { |
nuclear@9 | 37 return def_attr; |
nuclear@9 | 38 } |
nuclear@9 | 39 |
nuclear@9 | 40 std::map<std::string, MaterialAttrib>::const_iterator it = attrib.begin(); |
nuclear@9 | 41 for(int i=0; i<idx; i++) it++; |
nuclear@9 | 42 return it->second; |
nuclear@9 | 43 } |
nuclear@9 | 44 |
nuclear@9 | 45 MaterialAttrib &Material::operator [](const std::string &name) |
nuclear@9 | 46 { |
nuclear@9 | 47 return attrib[name]; |
nuclear@9 | 48 } |
nuclear@9 | 49 |
nuclear@9 | 50 const MaterialAttrib &Material::operator [](const std::string &name) const |
nuclear@9 | 51 { |
nuclear@9 | 52 std::map<std::string, MaterialAttrib>::const_iterator it; |
nuclear@9 | 53 if((it = attrib.find(name)) != attrib.end()) { |
nuclear@9 | 54 return it->second; |
nuclear@9 | 55 } |
nuclear@9 | 56 return def_attr; |
nuclear@9 | 57 } |
nuclear@9 | 58 |