mirror of
https://gitlab.rlp.net/mobitar/ReCo.jl.git
synced 2024-11-08 22:21:08 +00:00
Debugging additions seperation
This commit is contained in:
parent
6f7d7fef37
commit
f429f03237
1 changed files with 69 additions and 24 deletions
|
@ -26,13 +26,16 @@ function animate_bundle!(args, sim_consts)
|
||||||
color = get(args.color_scheme, rem2pi(bundle_φ[i, frame], RoundDown) / π2)
|
color = get(args.color_scheme, rem2pi(bundle_φ[i, frame], RoundDown) / π2)
|
||||||
args.colors[][i] = RGBAf(color)
|
args.colors[][i] = RGBAf(color)
|
||||||
|
|
||||||
if args.debug
|
if args.show_interaction_circle
|
||||||
args.interaction_circles[][i] = Circle(
|
args.interaction_circles[][i] = Circle(
|
||||||
Point2(c[1], c[2]), sim_consts.interaction_r
|
Point2(c[1], c[2]), sim_consts.interaction_r
|
||||||
)
|
)
|
||||||
|
args.interaction_colors[][i] = RGBAf(color, 0.08)
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.show_skin_circle
|
||||||
args.skin_circles[][i] = Circle(Point2(c[1], c[2]), sim_consts.skin_r)
|
args.skin_circles[][i] = Circle(Point2(c[1], c[2]), sim_consts.skin_r)
|
||||||
|
|
||||||
args.interaction_colors[][i] = RGBAf(color, 0.08)
|
|
||||||
args.skin_colors[][i] = RGBAf(color, 0.04)
|
args.skin_colors[][i] = RGBAf(color, 0.04)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -47,21 +50,24 @@ function animate_bundle!(args, sim_consts)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
if args.n_bundle == 1
|
if args.n_bundle == 1 # First and only frame of first bundle
|
||||||
poly!(args.ax, args.circles; color=args.colors)
|
poly!(args.ax, args.circles; color=args.colors)
|
||||||
|
|
||||||
if args.show_center_of_mass
|
if args.show_center_of_mass
|
||||||
poly!(args.ax, args.center_of_mass_circle; color=RGBAf(1, 1, 1, 0.5))
|
poly!(args.ax, args.center_of_mass_circle; color=RGBAf(1, 1, 1, 0.5))
|
||||||
end
|
end
|
||||||
|
|
||||||
if args.debug
|
if args.show_interaction_circle
|
||||||
poly!(args.ax, args.interaction_circles; color=args.interaction_colors)
|
poly!(args.ax, args.interaction_circles; color=args.interaction_colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.show_skin_circle
|
||||||
poly!(args.ax, args.skin_circles; color=args.skin_colors)
|
poly!(args.ax, args.skin_circles; color=args.skin_colors)
|
||||||
end
|
end
|
||||||
|
|
||||||
println("Recording started!")
|
println("Recording started!")
|
||||||
else
|
else
|
||||||
if args.debug && frame > 1
|
if args.show_frame_diff && frame > 1
|
||||||
@simd for i in 1:(sim_consts.n_particles)
|
@simd for i in 1:(sim_consts.n_particles)
|
||||||
first_ind = 2 * i - 1
|
first_ind = 2 * i - 1
|
||||||
second_ind = 2 * i
|
second_ind = 2 * i
|
||||||
|
@ -79,6 +85,9 @@ function animate_bundle!(args, sim_consts)
|
||||||
args.ax, args.segments_x, args.segments_y; color=args.colors
|
args.ax, args.segments_x, args.segments_y; color=args.colors
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
notify(args.segments_x)
|
||||||
|
notify(args.segments_y)
|
||||||
end
|
end
|
||||||
|
|
||||||
notify(args.circles)
|
notify(args.circles)
|
||||||
|
@ -88,15 +97,14 @@ function animate_bundle!(args, sim_consts)
|
||||||
notify(args.center_of_mass_circle)
|
notify(args.center_of_mass_circle)
|
||||||
end
|
end
|
||||||
|
|
||||||
if args.debug && frame > 1
|
if args.show_interaction_circle
|
||||||
notify(args.interaction_circles)
|
notify(args.interaction_circles)
|
||||||
notify(args.interaction_colors)
|
notify(args.interaction_colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.show_skin_circle
|
||||||
notify(args.skin_circles)
|
notify(args.skin_circles)
|
||||||
notify(args.skin_colors)
|
notify(args.skin_colors)
|
||||||
|
|
||||||
notify(args.segments_x)
|
|
||||||
notify(args.segments_y)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -108,8 +116,32 @@ function animate_bundle!(args, sim_consts)
|
||||||
return nothing
|
return nothing
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function sort_bundle_paths(bundle_paths::Vector{String})
|
||||||
|
n_bundles = length(bundle_paths)
|
||||||
|
|
||||||
|
bundle_nums = Vector{Int64}(undef, n_bundles)
|
||||||
|
|
||||||
|
extension_length = 5 # == length(".jld2")
|
||||||
|
|
||||||
|
for i in 1:n_bundles
|
||||||
|
bundle_path = bundle_paths[i]
|
||||||
|
bundle_num_string = bundle_path[(findfirst("bundle_", s).stop + 1):(end - extension_length)]
|
||||||
|
bundle_nums[i] = parse(Int64, bundle_num_string)
|
||||||
|
end
|
||||||
|
|
||||||
|
sort_perm = sortperm(bundle_nums)
|
||||||
|
|
||||||
|
return bundle_paths[sort_perm]
|
||||||
|
end
|
||||||
|
|
||||||
function animate_with_sim_consts(
|
function animate_with_sim_consts(
|
||||||
dir::String, sim_consts, framerate::Int64, show_center_of_mass::Bool, debug::Bool
|
dir::String,
|
||||||
|
sim_consts,
|
||||||
|
framerate::Int64,
|
||||||
|
show_center_of_mass::Bool,
|
||||||
|
show_interaction_circle::Bool,
|
||||||
|
show_skin_circle::Bool,
|
||||||
|
show_frame_diff::Bool,
|
||||||
)
|
)
|
||||||
set_theme!(theme_black())
|
set_theme!(theme_black())
|
||||||
|
|
||||||
|
@ -153,26 +185,24 @@ function animate_with_sim_consts(
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
if debug
|
if show_interaction_circle
|
||||||
segments_x = Observable(zeros(2 * n_particles))
|
|
||||||
segments_y = Observable(zeros(2 * n_particles))
|
|
||||||
|
|
||||||
interaction_circles = Observable(Vector{Circle}(undef, n_particles))
|
interaction_circles = Observable(Vector{Circle}(undef, n_particles))
|
||||||
skin_circles = Observable(Vector{Circle}(undef, n_particles))
|
skin_circles = Observable(Vector{Circle}(undef, n_particles))
|
||||||
|
end
|
||||||
|
|
||||||
|
if show_skin_circle
|
||||||
interaction_colors = Observable(Vector{RGBAf}(undef, n_particles))
|
interaction_colors = Observable(Vector{RGBAf}(undef, n_particles))
|
||||||
skin_colors = Observable(Vector{RGBAf}(undef, n_particles))
|
skin_colors = Observable(Vector{RGBAf}(undef, n_particles))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if show_frame_diff
|
||||||
|
segments_x = Observable(zeros(2 * n_particles))
|
||||||
|
segments_y = Observable(zeros(2 * n_particles))
|
||||||
|
end
|
||||||
|
|
||||||
bundle_paths = readdir("$dir/bundles"; join=true, sort=false)
|
bundle_paths = readdir("$dir/bundles"; join=true, sort=false)
|
||||||
|
|
||||||
sort_perm = sortperm([
|
bundle_paths = sort_bundle_paths(bundle_paths)
|
||||||
parse(Int64, s[(findfirst("bundle_", s).stop + 1):(end - length(".jld2"))]) for
|
|
||||||
s in bundle_paths
|
|
||||||
])
|
|
||||||
|
|
||||||
bundle_paths = bundle_paths[sort_perm]
|
|
||||||
sort_perm = nothing
|
|
||||||
|
|
||||||
@showprogress 1 for (n_bundle, bundle_path) in enumerate(bundle_paths)
|
@showprogress 1 for (n_bundle, bundle_path) in enumerate(bundle_paths)
|
||||||
bundle::Bundle = JLD2.load_object(bundle_path)
|
bundle::Bundle = JLD2.load_object(bundle_path)
|
||||||
|
@ -180,7 +210,9 @@ function animate_with_sim_consts(
|
||||||
args = (;
|
args = (;
|
||||||
# Input
|
# Input
|
||||||
show_center_of_mass,
|
show_center_of_mass,
|
||||||
debug,
|
show_interaction_circle,
|
||||||
|
show_skin_circle,
|
||||||
|
show_frame_diff,
|
||||||
# Intern
|
# Intern
|
||||||
io,
|
io,
|
||||||
ax,
|
ax,
|
||||||
|
@ -207,13 +239,26 @@ function animate_with_sim_consts(
|
||||||
end
|
end
|
||||||
|
|
||||||
function animate(
|
function animate(
|
||||||
dir::String; framerate::Int64=1, show_center_of_mass::Bool=false, debug::Bool=false
|
dir::String;
|
||||||
|
framerate::Int64=1,
|
||||||
|
show_center_of_mass::Bool=false,
|
||||||
|
show_interaction_circle::Bool=false,
|
||||||
|
show_skin_circle::Bool=false,
|
||||||
|
show_frame_diff::Bool=false,
|
||||||
)
|
)
|
||||||
println("Generating animation...")
|
println("Generating animation...")
|
||||||
|
|
||||||
sim_consts = JSON3.read(read("$dir/sim_consts.json", String))
|
sim_consts = JSON3.read(read("$dir/sim_consts.json", String))
|
||||||
|
|
||||||
animate_with_sim_consts(dir, sim_consts, framerate, show_center_of_mass, debug)
|
animate_with_sim_consts(
|
||||||
|
dir,
|
||||||
|
sim_consts,
|
||||||
|
framerate,
|
||||||
|
show_center_of_mass,
|
||||||
|
show_interaction_circle,
|
||||||
|
show_skin_circle,
|
||||||
|
show_frame_diff,
|
||||||
|
)
|
||||||
|
|
||||||
println("Animation done.")
|
println("Animation done.")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue