void Object::LoadFromJson(const JsonObject& obj) { for (PropertySet::PropertyMap::iterator it = GetPropertySet()->Begin(); it != GetPropertySet()->End(); it++) { if (obj.HasMember(it->first.c_str())) { Set(it->first, obj[it->first.c_str()].GetString()); } } }
MaterialMask Material::ParseMask(JsonObject& obj) { MaterialMask ret; if (obj.HasMember("red")) { GetValue(ret.red_mask_,obj,"red"); } if (obj.HasMember("green")) { GetValue(ret.green_mask_,obj,"green"); } if (obj.HasMember("blue")) { GetValue(ret.blue_mask_,obj,"blue"); } if (obj.HasMember("alpha")) { GetValue(ret.alpha_mask_,obj,"alpha"); } return ret; }
void Material::ParseExp(MaterialInput& input,JsonObject& obj,const string& key) { if (obj.HasMember(key.c_str())) { JsonObject::MemberIterator first_mem = obj[key.c_str()].MemberBegin(); if(first_mem!=obj.MemberEnd()) { MaterialExpMap::iterator it = exp_map_.find(first_mem->name.GetString()); if (it!=exp_map_.end()) { MaterialExpression* exp =(*it).second; input.input_mask_ = ParseMask(first_mem->value); ParseExp(exp,first_mem->value); input.link_ = exp; } first_mem++; } } }