Fix lod node after updateAbsolutePosition optimization

This commit is contained in:
Benau 2022-06-27 13:22:07 +08:00
parent 11fb04bd95
commit 21d9b4bc70
3 changed files with 5 additions and 0 deletions

View File

@ -254,4 +254,5 @@ void LODNode::add(int level, scene::ISceneNode* node, bool reparent)
node->drop();
node->updateAbsolutePosition();
node->setNeedsUpdateAbsTrans(true);
}

View File

@ -157,6 +157,7 @@ LODNode* ModelDefinitionLoader::instanciateAsLOD(const XMLNode* node, scene::ISc
std::string debug_name = groupname+" (LOD track-object)";
lod_node->setName(debug_name.c_str());
#endif
lod_node->setNeedsUpdateAbsTrans(true);
return lod_node;
}
else

View File

@ -135,7 +135,9 @@ void TrackObjectPresentationSceneNode::move(const core::vector3df& xyz,
}
m_node->setRotation(hpr);
m_node->setScale(scale);
bool prev_needs_update = m_node->getNeedsUpdateAbsTrans();
m_node->updateAbsolutePosition();
m_node->setNeedsUpdateAbsTrans(prev_needs_update);
} // move
// ----------------------------------------------------------------------------
@ -279,6 +281,7 @@ TrackObjectPresentationLibraryNode::TrackObjectPresentationLibraryNode(
m_node->setRotation(m_init_hpr);
m_node->setScale(m_init_scale);
m_node->updateAbsolutePosition();
m_node->setNeedsUpdateAbsTrans(true);
assert(libroot != NULL);
Track::getCurrentTrack()->loadObjects(libroot, lib_path, model_def_loader,