This commit is contained in:
sam
2026-03-17 09:34:15 +05:45
parent 0fe796ea19
commit 493338d91b
5 changed files with 107 additions and 31 deletions
+12 -15
View File
@@ -3,7 +3,6 @@ package ion
import b2 "vendor:box2d"
import im "shared:odin-imgui"
import "core:slice"
import "core:container/small_array"
import "core:fmt"
@@ -174,8 +173,8 @@ interface_shape_def_editor :: proc(def: ^engine_entity_def) -> bool
im.SliderFloat("Density", &def.shape_def.density, 0, 100)
if im.Button("Flip horizontally") do flip_points(small_array.slice(&def.vertices), .Horizontal)
if im.Button("Flip Vertically ") do flip_points(small_array.slice(&def.vertices), .Vertical)
if im.Button("Flip horizontally") do flip_points(def.vertices[:], .Horizontal)
if im.Button("Flip Vertically ") do flip_points(def.vertices[:], .Vertical)
if im.TreeNode("Events and contacts") {
im.Checkbox("Is sensor", &def.shape_def.isSensor)
@@ -217,7 +216,7 @@ interface_shape_def_editor :: proc(def: ^engine_entity_def) -> bool
interface_entity :: proc(interface: ^interface_state) -> bool
{
entity_selected := interface.selected_entity^ != -1
entity_selected := (interface.selected_entity^ != -1) && len(interface.entity_defs) > 0
if entity_selected
{
@@ -226,7 +225,7 @@ interface_entity :: proc(interface: ^interface_state) -> bool
ret := false
interface.edit_mode = .ENTITY
//interface.edit_mode = .ENTITY
//Flags
for flag in engine_entity_flags_enum
{
@@ -234,14 +233,6 @@ interface_entity :: proc(interface: ^interface_state) -> bool
if im.Checkbox(fmt.ctprint(flag), &contains) do def.entity_flags ~= {flag}
}
if .CHAIN in def.entity_flags
{
im.InputInt("Body Count", &def.body_count, 1)
im.SliderFloat("Half Link Length", &def.half_link_length, 1, 10)
}
im.Separator()
if im.CollapsingHeader("Shape Edit")
@@ -263,10 +254,16 @@ interface_entity :: proc(interface: ^interface_state) -> bool
if .CHAIN in def.entity_flags
{
interface_edit_rev_joint_minimal(&def.rev_joint)
im.InputInt("Body Count", &def.body_count)
//im.SliderFloat2("Half Link Length", &def.link_length, -10, 10)
if im.CollapsingHeader("Chain joint def")
{
interface_edit_rev_joint_minimal(&def.rev_joint)
}
}
return def^ != def_old || ret
return !compare_engine_entity_def(def^, def_old) || ret
}
return false