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->drop();
node->updateAbsolutePosition(); 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)"; std::string debug_name = groupname+" (LOD track-object)";
lod_node->setName(debug_name.c_str()); lod_node->setName(debug_name.c_str());
#endif #endif
lod_node->setNeedsUpdateAbsTrans(true);
return lod_node; return lod_node;
} }
else else

View File

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