From: david Date: Fri, 27 Feb 2004 03:30:01 +0000 (+0000) Subject: Load submodels before animations, so that we can animate submodels. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=aa67c738a115c04dd841eb0f6a53cd47aeeca542;p=simgear.git Load submodels before animations, so that we can animate submodels. Allow submodels to be named when they are loaded. --- diff --git a/simgear/scene/model/model.cxx b/simgear/scene/model/model.cxx index c2fdbb1c..39eb41c5 100644 --- a/simgear/scene/model/model.cxx +++ b/simgear/scene/model/model.cxx @@ -236,16 +236,6 @@ sgLoad3DModel( const string &fg_root, const string &path, unsigned int i; - // Load animations - vector animation_nodes = props.getChildren("animation"); - for (i = 0; i < animation_nodes.size(); i++) { - const char * name = animation_nodes[i]->getStringValue("name", 0); - vector name_nodes = - animation_nodes[i]->getChildren("object-name"); - sgMakeAnimation( model, name, name_nodes, prop_root, animation_nodes[i], - sim_time_sec); - } - // Load sub-models vector model_nodes = props.getChildren("model"); for (i = 0; i < model_nodes.size(); i++) { @@ -264,9 +254,20 @@ sgLoad3DModel( const string &fg_root, const string &path, ssgBranch * kid = sgLoad3DModel( fg_root, node->getStringValue("path"), prop_root, sim_time_sec ); align->addKid(kid); + align->setName(node->getStringValue("name", "")); model->addKid(align); } + // Load animations + vector animation_nodes = props.getChildren("animation"); + for (i = 0; i < animation_nodes.size(); i++) { + const char * name = animation_nodes[i]->getStringValue("name", 0); + vector name_nodes = + animation_nodes[i]->getChildren("object-name"); + sgMakeAnimation( model, name, name_nodes, prop_root, animation_nodes[i], + sim_time_sec); + } + return alignmainmodel; }