Keep the region name with the material.
This commit is contained in:
parent
94630733ff
commit
c9e23231da
@ -97,11 +97,13 @@ SGMaterial::SGMaterial( const SGReaderWriterOptions* options,
|
||||
const SGPropertyNode *props,
|
||||
SGPropertyNode *prop_root,
|
||||
std::shared_ptr<AreaList> a,
|
||||
SGSharedPtr<const SGCondition> c)
|
||||
SGSharedPtr<const SGCondition> c,
|
||||
const std::string& n)
|
||||
{
|
||||
init();
|
||||
areas = a;
|
||||
condition = c;
|
||||
region = n;
|
||||
read_properties( options, props, prop_root );
|
||||
buildEffectProperties(options);
|
||||
}
|
||||
@ -110,12 +112,14 @@ SGMaterial::SGMaterial( const osgDB::Options* options,
|
||||
const SGPropertyNode *props,
|
||||
SGPropertyNode *prop_root,
|
||||
std::shared_ptr<AreaList> a,
|
||||
SGSharedPtr<const SGCondition> c)
|
||||
SGSharedPtr<const SGCondition> c,
|
||||
const std::string& n)
|
||||
{
|
||||
osg::ref_ptr<SGReaderWriterOptions> opt;
|
||||
opt = SGReaderWriterOptions::copyOrCreate(options);
|
||||
areas = a;
|
||||
condition = c;
|
||||
region = n;
|
||||
init();
|
||||
read_properties(opt.get(), props, prop_root);
|
||||
buildEffectProperties(opt.get());
|
||||
|
@ -98,14 +98,16 @@ public:
|
||||
const SGPropertyNode *props,
|
||||
SGPropertyNode *prop_root,
|
||||
std::shared_ptr<AreaList> a,
|
||||
SGSharedPtr<const SGCondition> c);
|
||||
SGSharedPtr<const SGCondition> c,
|
||||
const std::string& n);
|
||||
|
||||
|
||||
SGMaterial(const simgear::SGReaderWriterOptions*,
|
||||
const SGPropertyNode *props,
|
||||
SGPropertyNode *prop_root,
|
||||
std::shared_ptr<AreaList> a,
|
||||
SGSharedPtr<const SGCondition> c);
|
||||
SGSharedPtr<const SGCondition> c,
|
||||
const std::string& n);
|
||||
|
||||
/**
|
||||
* Destructor.
|
||||
@ -124,6 +126,11 @@ public:
|
||||
simgear::Effect* get_one_effect(int texIndex);
|
||||
simgear::Effect* get_effect();
|
||||
|
||||
/**
|
||||
* Get the region Name.
|
||||
*/
|
||||
const std::string get_region_name() const { return region; }
|
||||
|
||||
/**
|
||||
* Get the Effect Name.
|
||||
*/
|
||||
@ -488,6 +495,9 @@ private:
|
||||
SGVec4f ambient, diffuse, specular, emission;
|
||||
double shininess;
|
||||
|
||||
// region of this material
|
||||
std::string region;
|
||||
|
||||
// effect for this material
|
||||
std::string effect;
|
||||
|
||||
|
@ -128,12 +128,13 @@ bool SGMaterialLib::load( const SGPath &fg_root, const SGPath& mpath,
|
||||
|
||||
// Now build all the materials for this set of areas and conditions
|
||||
|
||||
const std::string region = node->getStringValue("name");
|
||||
const simgear::PropertyList materials = node->getChildren("material");
|
||||
simgear::PropertyList::const_iterator materials_iter = materials.begin();
|
||||
for (; materials_iter != materials.end(); materials_iter++) {
|
||||
const SGPropertyNode *node = materials_iter->get();
|
||||
SGSharedPtr<SGMaterial> m =
|
||||
new SGMaterial(options.get(), node, prop_root, arealist, condition);
|
||||
new SGMaterial(options.get(), node, prop_root, arealist, condition, region);
|
||||
|
||||
std::vector<SGPropertyNode_ptr>names = node->getChildren("name");
|
||||
for ( unsigned int j = 0; j < names.size(); j++ ) {
|
||||
|
Loading…
Reference in New Issue
Block a user