Browse Source

Revert to AABB testing if AnimatedModel's bones have been destroyed.

Lasse Öörni 14 years ago
parent
commit
b7e5971bc1

+ 0 - 5
Bin/Data/Scripts/Editor/EditorSceneWindow.as

@@ -624,11 +624,6 @@ void SceneDelete()
     // Remove component
     // Remove component
     if (selectedComponent !is null)
     if (selectedComponent !is null)
     {
     {
-        // For the sake of sanity, do not allow to delete the octree from the scene
-        if (selectedNode is editorScene && selectedComponent.typeName == "Octree" && selectedComponent is
-            selectedNode.GetComponents("Octree")[0])
-            return;
-
         uint id = selectedNode.id;
         uint id = selectedNode.id;
         BeginModify(id);
         BeginModify(id);
         selectedNode.RemoveComponent(selectedComponent);
         selectedNode.RemoveComponent(selectedComponent);

+ 1 - 1
Engine/Graphics/AnimatedModel.cpp

@@ -100,7 +100,7 @@ void AnimatedModel::FinishUpdate()
 void AnimatedModel::ProcessRayQuery(RayOctreeQuery& query, float initialDistance)
 void AnimatedModel::ProcessRayQuery(RayOctreeQuery& query, float initialDistance)
 {
 {
     // If no bones or no bone-level testing, use the Drawable test
     // If no bones or no bone-level testing, use the Drawable test
-    if (!skeleton_.GetNumBones() || query.level_ < RAY_AABB)
+    if (query.level_ < RAY_AABB || !skeleton_.GetRootBone() || !skeleton_.GetRootBone()->node_)
     {
     {
         Drawable::ProcessRayQuery(query, initialDistance);
         Drawable::ProcessRayQuery(query, initialDistance);
         return;
         return;