Removed non #if'ed physics code.

This commit is contained in:
2025-07-30 14:00:04 +02:00
parent 0d35175aed
commit dc18060729
4 changed files with 45 additions and 28 deletions

View File

@@ -9,8 +9,10 @@ Mesh_Entity :: struct {
init_entity :: (e: *Mesh_Entity) {
if e.model_path.count > 0 {
load_model_into_entity(e, get_or_load_model(e.model_path));
e.flags |= .PHYSICS;
e.physics.type = .TRIANGLE_MESH;
#if PHYSICS {
e.flags |= .PHYSICS;
e.physics.type = .TRIANGLE_MESH;
}
//e.physics.box.half_extent = .{0.5,0.5,0.5};
}
}

View File

@@ -144,7 +144,9 @@ unload_scene :: (scene: *Scene) {
destroy_entity(e);
}
deinit_physx_scene(scene);
#if PHYSICS {
deinit_physx_scene(scene);
}
free(scene.name);
fini(*scene.pool);
@@ -163,7 +165,7 @@ reload_scene :: (scene: *Scene) {
load_scene(name);
}
create_scene :: (name: string = "", max_entities: s64 = 256) -> *Scene {
create_scene :: (name: string = "", max_entities: s64 = 256, trigger_callbacks := false) -> *Scene {
scene := New(Scene);
new_name := name;
@@ -195,7 +197,9 @@ create_scene :: (name: string = "", max_entities: s64 = 256) -> *Scene {
array_reserve(*scene.entities, max_entities);
init_physx_scene(scene);
#if PHYSICS {
init_physx_scene(scene);
}
scene.directional_light.color_and_intensity = .{1,1,1,2};
scene.directional_light.direction = to_v4(normalize(Vector3.{0.4, -0.7, 0.4}));
@@ -205,6 +209,12 @@ create_scene :: (name: string = "", max_entities: s64 = 256) -> *Scene {
dir_light_data.direction = scene.directional_light.direction;
upload_data_to_buffer(engine.renderer, engine.directional_light_buffer, *dir_light_data, size_of(Directional_Light_Buffer_Data));
if trigger_callbacks {
if engine.procs.on_scene_loaded != null {
engine.procs.on_scene_loaded(scene, engine.mode);
}
}
return scene;
}

View File

@@ -46,8 +46,11 @@ Engine_Core :: struct {
on_scene_loaded: (*Scene, Engine_Mode);
on_pre_scene_loaded: (*Scene, Engine_Mode);
on_pre_scene_unloaded: (*Scene);
on_trigger_enter: (*Entity, *Entity);
on_trigger_exit: (*Entity, *Entity);
#if PHYSICS {
on_trigger_enter: (*Entity, *Entity);
on_trigger_exit: (*Entity, *Entity);
}
}
paused: bool;

View File

@@ -61,28 +61,30 @@ init_trigger_line_rendering :: () {
}
render_trigger_lines :: () {
for e: engine.current_scene.entities {
if e.physics.type == .BOX {
color := Color.{0,0,1,1};//e.collider.aabb_color;
aabb := AABB.{-e.physics.box.half_extent, e.physics.box.half_extent};
#if PHYSICS {
for e: engine.current_scene.entities {
if e.physics.type == .BOX {
color := Color.{0,0,1,1};//e.collider.aabb_color;
aabb := AABB.{-e.physics.box.half_extent, e.physics.box.half_extent};
min := aabb.min;
max := aabb.max;
min := aabb.min;
max := aabb.max;
add_line(transform_position(.{min.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{min.x, min.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, min.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, max.y, min.z}, e.transform.model_matrix), transform_position(.{min.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, max.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{min.x, max.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, min.y, max.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, max.z}, e.transform.model_matrix), transform_position(.{min.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, min.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, max.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, max.z}, e.transform.model_matrix), transform_position(.{max.x, min.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, max.y, max.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, max.z}, e.transform.model_matrix), color);
}
}
add_line(transform_position(.{min.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{min.x, min.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, min.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, max.y, min.z}, e.transform.model_matrix), transform_position(.{min.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, max.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{min.x, max.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{max.x, min.y, max.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, max.z}, e.transform.model_matrix), transform_position(.{min.x, max.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, min.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, max.y, min.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, min.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, min.y, max.z}, e.transform.model_matrix), transform_position(.{max.x, min.y, max.z}, e.transform.model_matrix), color);
add_line(transform_position(.{min.x, max.y, max.z}, e.transform.model_matrix), transform_position(.{max.x, max.y, max.z}, e.transform.model_matrix), color);
}
}
render_lines();
render_lines();
}
}