From: Stuart Buchanan Date: Sun, 1 May 2016 21:35:21 +0000 (+0100) Subject: Display random objects independently of buildings X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=910acd1f8ee6e84b69f351b23c82e8eaa8b7a1fd;p=simgear.git Display random objects independently of buildings Fix bug reported by Thorsten RENK on the mailing list that random objects were only being displayed if random objects were also present for the tile. Also fix crash if none of the random object models were found. --- diff --git a/simgear/scene/material/matmodel.cxx b/simgear/scene/material/matmodel.cxx index 41d004da..84dd9237 100644 --- a/simgear/scene/material/matmodel.cxx +++ b/simgear/scene/material/matmodel.cxx @@ -130,6 +130,8 @@ SGMatModel::load_models( SGPropertyNode *prop_root ) } else { SG_LOG(SG_INPUT, SG_ALERT, "Failed to load object " << _paths[i]); + // Ensure the vector contains something, otherwise get_random_model below fails + _models.push_back(new osg::Node()); } } } diff --git a/simgear/scene/tgdb/SGTileDetailsCallback.hxx b/simgear/scene/tgdb/SGTileDetailsCallback.hxx index 465be137..1cd9139b 100644 --- a/simgear/scene/tgdb/SGTileDetailsCallback.hxx +++ b/simgear/scene/tgdb/SGTileDetailsCallback.hxx @@ -387,7 +387,7 @@ public: float cos_zero_density_angle = mat->get_cos_object_zero_density_slope_angle(); float cos_max_density_angle = mat->get_cos_object_max_density_slope_angle(); - if (building_coverage == 0) + if ((building_coverage == 0) && (group_count ==0)) continue; SGBuildingBin* bin = NULL;