X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fsnode.cc;h=b171f3583f0c2eba16075e888238f67f5583c376;hp=eee5fcec02b26e266306b5eeaf36f23e1aa89f74;hb=fc00873a180b1b7272d94a32dcc40d0d44ed2b72;hpb=ad052fc67fe4e76d2f4a01b2381a738da1708cdb diff --git a/src/snode.cc b/src/snode.cc index eee5fce..b171f35 100644 --- a/src/snode.cc +++ b/src/snode.cc @@ -11,6 +11,7 @@ SceneNode::SceneNode() scene = 0; parent = 0; name = 0; + visible = true; local_bvol_valid = false; } @@ -20,6 +21,7 @@ SceneNode::SceneNode(Object *obj) scene = 0; parent = 0; name = 0; + visible = true; local_bvol_valid = false; add_object(obj); } @@ -205,8 +207,21 @@ void SceneNode::update(float dt) if(debug_gui) { if(parent_expanded) { - int flags = children.empty() ? ImGuiTreeNodeFlags_Leaf : 0; + ImGui::PushID(this); + ImGui::AlignTextToFramePadding(); + + int flags = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick; + if(children.empty()) flags |= ImGuiTreeNodeFlags_Leaf; + if(dbg_sel_node == this) flags |= ImGuiTreeNodeFlags_Selected; expanded = ImGui::TreeNodeEx(name ? name : "", flags); + if(ImGui::IsItemClicked()) { + dbg_sel_node = this; + } + + ImGui::NextColumn(); + ImGui::Checkbox("##vis", &visible); + ImGui::NextColumn(); + ImGui::PopID(); } } @@ -330,7 +345,7 @@ AABox SceneNode::get_bounds() const calc_bounding_aabox(&sub_aabb, &sub_aabb, &tmp); } - AABox aabb; - calc_bounding_aabox(&aabb, &local_bvol, &sub_aabb); + AABox aabb = get_node_bounds(); + calc_bounding_aabox(&aabb, &aabb, &sub_aabb); return aabb; }