diff --git a/main/FunnyBones/fn.main_menu_window.html b/main/FunnyBones/fn.main_menu_window.html index 70e1a04..edf1d47 100644 --- a/main/FunnyBones/fn.main_menu_window.html +++ b/main/FunnyBones/fn.main_menu_window.html @@ -1 +1 @@ -main_menu_window in FunnyBones - Rust

Function FunnyBones::main_menu_window

source ·
pub(crate) fn main_menu_window(app: &impl Application) -> Window
\ No newline at end of file +main_menu_window in FunnyBones - Rust

Function FunnyBones::main_menu_window

source ·
pub(crate) fn main_menu_window(app: &impl Application) -> Window
\ No newline at end of file diff --git a/main/FunnyBones/fn.open_file.html b/main/FunnyBones/fn.open_file.html index e53f884..31e1bb6 100644 --- a/main/FunnyBones/fn.open_file.html +++ b/main/FunnyBones/fn.open_file.html @@ -1,5 +1,5 @@ -open_file in FunnyBones - Rust

Function FunnyBones::open_file

source ·
pub(crate) fn open_file(
+open_file in FunnyBones - Rust

Function FunnyBones::open_file

source ·
pub(crate) fn open_file(
     app: &mut App,
     parent_window: &WindowHandle,
-    close: bool,
+    close_guard: Option<ShutdownGuard>,
 )
\ No newline at end of file diff --git a/main/FunnyBones/fn.save.html b/main/FunnyBones/fn.save.html index 237c049..1720dec 100644 --- a/main/FunnyBones/fn.save.html +++ b/main/FunnyBones/fn.save.html @@ -1,4 +1,4 @@ -save in FunnyBones - Rust

Function FunnyBones::save

source ·
pub(crate) fn save(
+save in FunnyBones - Rust

Function FunnyBones::save

source ·
pub(crate) fn save(
     path: &Dynamic<Option<PathBuf>>,
     skeleton: &EditingSkeleton,
     on_error: &SharedCallback<SaveError>,
diff --git a/main/FunnyBones/fn.save_as.html b/main/FunnyBones/fn.save_as.html
index fcd8bf9..1a93b50 100644
--- a/main/FunnyBones/fn.save_as.html
+++ b/main/FunnyBones/fn.save_as.html
@@ -1,4 +1,4 @@
-save_as in FunnyBones - Rust

Function FunnyBones::save_as

source ·
pub(crate) fn save_as(
+save_as in FunnyBones - Rust

Function FunnyBones::save_as

source ·
pub(crate) fn save_as(
     path: &Dynamic<Option<PathBuf>>,
     skeleton: &EditingSkeleton,
     on_error: &SharedCallback<SaveError>,
diff --git a/main/FunnyBones/fn.skeleton_window.html b/main/FunnyBones/fn.skeleton_window.html
index 6a3f66c..787c966 100644
--- a/main/FunnyBones/fn.skeleton_window.html
+++ b/main/FunnyBones/fn.skeleton_window.html
@@ -1 +1 @@
-skeleton_window in FunnyBones - Rust

Function FunnyBones::skeleton_window

source ·
pub(crate) fn skeleton_window(path: Option<PathBuf>) -> Window
\ No newline at end of file +skeleton_window in FunnyBones - Rust

Function FunnyBones::skeleton_window

source ·
pub(crate) fn skeleton_window(path: Option<PathBuf>) -> Window
\ No newline at end of file diff --git a/main/FunnyBones/index.html b/main/FunnyBones/index.html index 35d075b..0a3727b 100644 --- a/main/FunnyBones/index.html +++ b/main/FunnyBones/index.html @@ -1,2 +1,2 @@ -FunnyBones - Rust

Crate FunnyBones

source ·
Expand description

The FunnyBones 2D Animation Editor.

+FunnyBones - Rust

Crate FunnyBones

source ·
Expand description

The FunnyBones 2D Animation Editor.

Functions§

\ No newline at end of file diff --git a/main/search-index.js b/main/search-index.js index f2b72eb..c136a40 100644 --- a/main/search-index.js +++ b/main/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["FunnyBones",{"t":"HHHHHH","n":["main","main_menu_window","open_file","save","save_as","skeleton_window"],"q":[[0,"FunnyBones"],[6,"cushy"],[7,"cushy::window"],[8,"cushy::app"],[9,"std::path"],[10,"core::option"],[11,"cushy::value"],[12,"funnybones::editor"],[13,"cushy::widget"],[14,"cushy::widgets::layers"],[15,"core::result"]],"i":"``````","f":"{{}b}{{{d{c}}}fh}{{{d{jl}}{d{n}}A`}Ab}{{{d{{Ah{{Af{Ad}}}}}}{d{Aj}}{d{{An{Al}}}}{d{B`}}}{{Bb{AbAl}}}}{{{d{{Ah{{Af{Ad}}}}}}{d{Aj}}{d{{An{Al}}}}{d{B`}}}Ab}{{{Af{Ad}}}f}","D":"b","p":[[8,"Result",6],[1,"reference"],[5,"Window",7],[10,"Application",8],[0,"mut"],[5,"App",8],[5,"WindowHandle",7],[1,"bool"],[1,"unit"],[5,"PathBuf",9],[6,"Option",10],[5,"Dynamic",11],[5,"EditingSkeleton",12],[6,"SaveError",12],[5,"SharedCallback",13],[5,"Modal",14],[6,"Result",15]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUAAQABAAUA"}],["funnybones",{"t":"PFPFFGFGFFFPFTTPFFFNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOPPFPGPPFPPPGFTTPGFGPFGPTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNOOOOCPPPPFGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOFPPPGPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["A","Angle","B","Bone","BoneAxis","BoneEnd","BoneId","BoneKind","Coordinate","Joint","JointId","Jointed","LabeledBoneKind","MAX","MIN","Rigid","Rotation","Skeleton","Vector","adapt_into_using","","","","","","","","","","","","","add","","","","","add_assign","angle","animation","arrays_from","","","","","","","","","","","","","arrays_into","","","","","","","","","","","","","as_any","","","","","","","","","","","","","as_any_mut","","","","","","","","","","","","","as_rotation","axis_a","axis_b","bone","","bone_mut","bones","borrow","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","cam16_into_unclamped","","","","","","","","","","","","","cast","","","","","","","","","","","","","cast_into","","","","","","","","","","","","","clamped","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","","compare","","","","components_from","","","","","","","","","","","","","connections_to","cos","cushy","default","","","","","degrees","","deref","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","deserialize","","","","","","","","","","desired_end","direction","div","downcast","","","","","","","","","","","","","drop","","","","","","","","","","","","","editor","end","","entry_angle","eq","","","","","","","","","","","","equivalent","","","","","","","","","","","","final_vector","find_bone_by_label","find_joint_by_label","fmt","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","from_angle","","","","","","","","","","","","","from_cast","","","","","","","","","","","","","from_components","from_parts","","from_stimulus","","","","","","","","","","","","","full_length","hash","","","","id","","index","","","","index_mut","","init","","","","","","","","","","","","","into","","","","","","","","","","","","","into_angle","","","","","","","","","","","","","into_any","","","","","","","","","","","","","into_any_arc","","","","","","","","","","","","","into_any_rc","","","","","","","","","","","","","into_cam16_unclamped","","","","","","","","","","","","","into_color","","","","","","","","","","","","","into_color_unclamped","","","","","","","","","","","","","into_components","","","","","","","","","","into_parts","","into_read_only","","","","","","","","","","","","","into_stimulus","","","","","","","","","","","","","into_value","","","","","","","","","","","","","","","","","","","","","","","","","","inverse","","is_inverse","is_root","joint","joint_mut","joints","kind","","kind_mut","label","","","lerp","","","magnitude","","map","mul","neg","new","","","other_axis","partial_cmp","","","","percent_between","","push_bone","push_joint","radians","","rotation","serialize","","","","","","","","","","","","set_angle","set_desired_end","set_inverse","set_rotation","set_translation","sin","solve","solved_joint","start","sub","","","","sub_assign","to_degrees","to_owned","","","","","","","","","to_progress","to_radians","to_smolstr","","to_string","","translation","try_components_into","","","","","","","","","","","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","","","try_into_color","","","","","","","","","","","","","type_id","","","","","","","","","","","","","uints_from","","","","","","","","","","","","","uints_into","","","","","","","","","","","","","upcast","","","","","","","","","","","","","vector_to","with_label","","x","y","end_length","inverse","length","start_length","Add","Angle","Animation","Bone","BoneProperty","Bool","ChangeTo","Frame","Invalid","Inverse","Joint","JointProperty","Keyframe","MAX","MIN","Number","PropertyUpdate","RunningAnimation","Target","","Timeline","Value","Vector","ZERO","adapt_into_using","","","","","","","","","","add","arrays_from","","","","","","","","","","arrays_into","","","","","","","","","","as_any","","","","","","","","","","as_any_mut","","","","","","","","","","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","cam16_into_unclamped","","","","","","","","","","cast","","","","","","","","","","cast_into","","","","","","","","","","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","compare","","components_from","","","","","","","","","","default","","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","deserialize","","","","","","","","downcast","","","","","","","","","","drop","","","","","","","","","","easing","eq","","","","","","","","","equivalent","","","fmt","","","","","","","","","from","","","","","","","","","","","","","","from_angle","","","","","","","","","","from_cast","","","","","","","","","","from_stimulus","","","","","","","","","","get","","","init","","","","","","","","","","insert","insert_frame","into","","","","","","","","","","into_angle","","","","","","","","","","into_any","","","","","","","","","","into_any_arc","","","","","","","","","","into_any_rc","","","","","","","","","","into_cam16_unclamped","","","","","","","","","","into_color","","","","","","","","","","into_color_unclamped","","","","","","","","","","into_components","","","","into_read_only","","","","","","","","","","into_stimulus","","","","","","","","","","into_value","","","","","","","","","","","","","","","","","","","","looping","new","","partial_cmp","push","remove","serialize","","","","","","","","set_frame_offset","set_variable","start","sub","target","to_owned","","","","","","","","","try_components_into","","","","","","","","","","try_from","","","","","","","","","","","try_into","","","","","","","","","","try_into_color","","","","","","","","","","type_id","","","","","","","","","","uints_from","","","","","","","","","","uints_into","","","","","","","","","","upcast","","","","","","","","","","update","","","","","variable","with","with_easing","with_frame","with_variable","bone","joint","property","","skeleton_canvas","DesiredEnd","Joint","SetDesiredEnd","SetJointRotation","SkeletonCanvas","SkeletonMutation","Target","adapt_into_using","","","arrays_from","","","arrays_into","","","as_any","","","as_any_mut","","","borrow","","","borrow_mut","","","cam16_into_unclamped","","","cast","","","cast_into","","","clone","","clone_into","","clone_to_uninit","","components_from","","","deref","","","deref_mut","","","downcast","","","drop","","","eq","","equivalent","","","fmt","","","from","","","from_angle","","","from_cast","","","from_stimulus","","","hit_test","hover","init","","","into","","","into_angle","","","into_any","","","into_any_arc","","into_any_rc","","","into_cam16_unclamped","","","into_color","","","into_color_unclamped","","","into_components","","into_read_only","","","into_stimulus","","","into_value","","","","","","layout","make_widget","make_window","make_with_tag","maximum_scale","minimum_scale","mouse_down","mouse_drag","mouse_up","mouse_wheel","new","on_mutate","open","redraw","run","run_in","scale","to_owned","","try_components_into","","","try_from","","","try_into","","","try_into_color","","","type_id","","","uints_from","","","uints_into","","","unhover","upcast","","","bone","end","joint","rotation","EditingSkeleton","InvalidPath","Io","","ReadError","Rsn","SaveError","SkeletonEditor","adapt_into_using","","","","arrays_from","","","","arrays_into","","","","as_any","","","","as_any_mut","","","","borrow","","","","borrow_mut","","","","cam16_into_unclamped","","","","cast","","","","cast_into","","","","clone","clone_into","clone_to_uninit","components_from","","","","default","deref","","","","deref_mut","","","","downcast","","","","drop","","","","editor","eq","fmt","","","","","","","from","","","","","","","","from_angle","","","","from_cast","","","","from_stimulus","","","","init","","","","into","","","","into_angle","","","","into_any","","","","into_any_arc","","","","into_any_rc","","","","into_cam16_unclamped","","","","into_color","","","","into_color_unclamped","","","","into_read_only","","","","into_stimulus","","","","into_value","","","","","","","","make_widget","make_window","open","read_from","run","run_in","skeleton","skeleton_editor","to_owned","to_smolstr","","to_string","","try_components_into","","","","try_from","","","","try_into","","","","try_into_color","","","","type_id","","","","uints_from","","","","uints_into","","","","upcast","","","","write_to"],"q":[[0,"funnybones"],[775,"funnybones::BoneKind"],[779,"funnybones::animation"],[1322,"funnybones::animation::Target"],[1326,"funnybones::cushy"],[1327,"funnybones::cushy::skeleton_canvas"],[1491,"funnybones::cushy::skeleton_canvas::SkeletonMutation"],[1495,"funnybones::editor"],[1694,"palette::chromatic_adaptation"],[1695,"core::any"],[1696,"core::option"],[1697,"palette::cam16::parameters"],[1698,"intentional::cast"],[1699,"core::cmp"],[1700,"core::result"],[1701,"serde::de"],[1702,"core::fmt"],[1703,"cushy::context"],[1704,"core::hash"],[1705,"alloc::boxed"],[1706,"alloc::sync"],[1707,"alloc::rc"],[1708,"cushy::value"],[1709,"core::ops::function"],[1710,"cushy::animation"],[1711,"core::convert"],[1712,"serde::ser"],[1713,"core::ops::range"],[1714,"cushy::widgets::progress"],[1715,"smol_str"],[1716,"alloc::string"],[1717,"palette::convert::try_from_into_color"],[1718,"alloc::borrow"],[1719,"core::time"],[1720,"easing_function::easings"],[1721,"figures::units"],[1722,"figures::point"],[1723,"cursor_icon"],[1724,"cushy"],[1725,"figures::size"],[1726,"cushy::widget"],[1727,"cushy::window"],[1728,"winit::event"],[1729,"core::marker"],[1730,"winit::error"],[1731,"cushy::app"],[1732,"std::io::error"],[1733,"rsn::de"],[1734,"tempfile::file"],[1735,"std::path"]],"i":"Bj`0````````Bf`Bd01```Dbd2hf5AhAfAjA`AdBh<8876672`98:76;543210<98:76;543210<98:76;543210<98:76;543210<811545598:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<78:76;410<8:76;410<8:76;410<10110098:76;543210<57`8:765:798:76;543210<98:76;543210<8:76;5410<36898:76;543210<98:76;543210<`3438:76;543210<444111000<<<3558:::7776;543210<9988::7766;543210<98:76;543210<98:76;543210<8:798:76;543210<;410<3255105598:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<88:76;410<:798:76;543210<98:76;543210<9988::7766;;554433221100<<4<;3555393329:76868878622:710:755:758:76;543210<23;5575338876778:76;410<:7:7:7598:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<8;288Lj0Ll1GfGd`G``Fh3`0Gb2``Gh02```1``20GlFjFlFn75869463210758694321075869432107586943210758694321075869432107586943210758694321075869432107586942107586942107586942107586944443210758694243221107586943221107586941075869432107586943210758694021075869444421075869432107586666944321075869432107586943210758694758321075869421321075869432107586943210758694321075869432107586943210758694321075869432107586940694321075869432107586943322110077558866994431042210758694122492107586943210758694321075869443210758694321075869432107586943210758694321075869432107586943758022012LnM`10`Hd0Hf0```Hh210210210210210210210210210212121210210210210210212122202102102102102100021021021021210210210210212102102100221100000000000000000210210210210210210210210021Mb0Md0`KnKl1`0``Lf12Kj1230123012301230123012301230123012300001230012301230123012301022233301222333012301230123012301230123012301230123012301230123012301230112233001110111`02323123012301230123012301230123012300","f":"```````````````````{eg{}{{b{c}}}{}}000000000000{{dd}c{}}{{df}c{}}{{hh}c{}}{{ff}c{}}{{fh}c{}}{{{l{jh}}h}n}{{{l{A`}}}h}`{ce{}{}}000000000000{{}c{}}000000000000{l{{l{Ab}}}}000000000000{{{l{j}}}{{l{jAb}}}}000000000000{dh}{AdAf}0{{{l{Ah}}Ad}{{Al{{l{Aj}}}}}}`{{{l{jAh}}Ad}{{Al{{l{jAj}}}}}}{{{l{Ah}}}{{l{{An{Aj}}}}}}{l{{l{c}}}{}}000000000000{{{l{j}}}{{l{jc}}}{}}000000000000{{{B`{c}}}e{}{}}000000000000{{}e{}{{Bb{c}}}}000000000000;;;;;;;;;;;;;{hh}{{{l{d}}}d}{{{l{Bd}}}Bd}{{{l{h}}}h}{{{l{f}}}f}{{{l{Bf}}}Bf}{{{l{Af}}}Af}{{{l{Ad}}}Ad}{{{l{Bh}}}Bh}{{{l{Bj}}}Bj}{{l{l{jc}}}n{}}00000000{ln}00000000{{{l{Ad}}{l{Ad}}}Bl}{{{l{Bh}}{l{Bh}}}Bl}{{l{l{c}}}Bl{}}000{ce{}{}}000000000000{{{l{Ah}}Af}{{Al{{l{{An{Bh}}}}}}}}{hBn}`{{}d}{{}Bd}{{}h}{{}f}{{}Ah}{BnBd}{Bnh}{C`{{l{c}}}{}}000000000000{C`{{l{jc}}}{}}000000000000{c{{Cb{d}}}Cd}{c{{Cb{Bd}}}Cd}{c{{Cb{h}}}Cd}{c{{Cb{f}}}Cd}{c{{Cb{Bf}}}Cd}{c{{Cb{Ah}}}Cd}{c{{Cb{Af}}}Cd}{c{{Cb{Ad}}}Cd}{c{{Cb{Bh}}}Cd}{c{{Cb{Bj}}}Cd}{{{l{Aj}}}{{Al{f}}}}`{{dBn}c{}}{l{{l{c}}}{}}000000000000{C`n}000000000000`{{{l{Aj}}}d}`{{{l{Aj}}}h}{{{l{d}}{l{d}}}Cf}{{{l{Bd}}{l{Bd}}}Cf}{{{l{h}}{l{h}}}Cf}{{{l{f}}{l{f}}}Cf}{{{l{Bf}}{l{Bf}}}Cf}{{{l{Ah}}{l{Ah}}}Cf}{{{l{Af}}{l{Af}}}Cf}{{{l{Aj}}{l{Aj}}}Cf}{{{l{A`}}{l{A`}}}Cf}{{{l{Ad}}{l{Ad}}}Cf}{{{l{Bh}}{l{Bh}}}Cf}{{{l{Bj}}{l{Bj}}}Cf}{{l{l{c}}}Cf{}}00000000000{{{l{Aj}}}f}{{{l{Ah}}{l{Ch}}}{{Al{Ad}}}}{{{l{Ah}}{l{Ch}}}{{Al{Bh}}}}{{{l{d}}{l{jCj}}}Cl}{{{l{Bd}}{l{jCj}}}Cl}0{{l{l{Cn}}{l{jCj}}}{{Cb{nD`}}}}0{{{l{h}}{l{jCj}}}Cl}0{{{l{f}}{l{jCj}}}Cl}{{{l{Bf}}{l{jCj}}}Cl}{{{l{Ah}}{l{jCj}}}Cl}{{{l{Af}}{l{jCj}}}Cl}{{{l{Aj}}{l{jCj}}}Cl}{{{l{A`}}{l{jCj}}}Cl}{{{l{Ad}}{l{jCj}}}Cl}{{{l{Bh}}{l{jCj}}}Cl}{{{l{Bj}}{l{jCj}}}Cl}{BfDb}{cc{}}0{fd}1{hBd}2{Bdh}3{df}4444444444444444444444444444444444{{{Dd{BnBn}}}d}{Alc{}}0{ce{}{}}000000000000{{{l{Bf}}}Bn}{{{l{Af}}{l{jc}}}nDf}{{{l{Ad}}{l{jc}}}nDf}{{{l{Bh}}{l{jc}}}nDf}{{{l{Bj}}{l{jc}}}nDf}{{{l{Aj}}}Ad}{{{l{A`}}}Bh}{{{l{Ah}}Bh}{{l{c}}}{}}{{{l{Ah}}Ad}{{l{c}}}{}}{AdC`}{BhC`}{{{l{jAh}}Ad}{{l{jc}}}{}}{{{l{jAh}}Bh}{{l{jc}}}{}}{{}C`}000000000000{{}c{}}0000000000000000000000000{{{Dh{c}}}{{Dh{Ab}}}{}}000000000000{{{Dj{c}}}{{Dj{Ab}}}{}}000000000000{{{Dl{c}}}{{Dl{Ab}}}{}}000000000000{{{B`{c}}}e{}{}}00000000000044444444444444444444444444{d{{Dd{BnBn}}}}{{}{{Dd{cc}}}{}}00000000{{}{{Dd{Al}}}}0{{}{{Dn{c}}}{}}0000000000008888888888888{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}010101011001101001010110{AfAf}{BjBj}{{{l{Bf}}}Cf}{{{l{Aj}}}Cf}{{{l{Ah}}Bh}{{Al{{l{A`}}}}}}{{{l{jAh}}Bh}{{Al{{l{jA`}}}}}}{{{l{Ah}}}{{l{{An{A`}}}}}}{{{l{Aj}}}{{l{Bf}}}}`{{{l{jAj}}}{{l{jBf}}}}{{{l{Aj}}}{{l{Ch}}}}{{{l{A`}}}{{l{Ch}}}}`{{{l{Bd}}{l{Bd}}Bn}Bd}{{{l{h}}{l{h}}Bn}h}{{{l{f}}{l{f}}Bn}f}{{{l{d}}}Bn}`{{dc}d{{Ed{Bn}{{Eb{Bn}}}}}}{{dBn}c{}}{hc{}}{{BnBn}d}{{Bnh}f}{{hAfAf}A`}{{{l{A`}}Af}Af}{{{l{Bd}}{l{Bd}}}{{Al{Bl}}}}{{{l{h}}{l{h}}}{{Al{Bl}}}}{{{l{Ad}}{l{Ad}}}{{Al{Bl}}}}{{{l{Bh}}{l{Bh}}}{{Al{Bl}}}}{{{l{Bd}}{l{Bd}}{l{Bd}}}Ef}{{{l{h}}{l{h}}{l{h}}}Ef}{{{l{jAh}}c}Ad{{Eh{Db}}}}{{{l{jAh}}A`}Bh}{BnBd}{Bnh}{{{l{Ah}}}h}{{{l{d}}c}CbEj}{{{l{Bd}}c}CbEj}{{{l{h}}c}CbEj}{{{l{f}}c}CbEj}{{{l{Bf}}c}CbEj}{{{l{Ah}}c}CbEj}{{{l{Af}}c}CbEj}{{{l{Aj}}c}CbEj}{{{l{A`}}c}CbEj}{{{l{Ad}}c}CbEj}{{{l{Bh}}c}CbEj}{{{l{Bj}}c}CbEj}{{{l{jA`}}h}n}{{{l{jAj}}{Al{f}}}n}{{{l{jBf}}Cf}n}{{{l{jAh}}h}n}{{{l{jAh}}d}n}{hBn}{{{l{jAh}}}n}{{{l{Aj}}}{{Al{d}}}}{{{l{Aj}}}d}{{df}c{}}{{dd}c{}}{{hh}c{}}{{fh}c{}}{{{l{jh}}h}n}8{lc{}}00000000{{l{Al{{El{l}}}}}En}:{lF`}0{lFb}0{{{l{Ah}}}d}{{}{{Cb{c}}}{}}000000000000{c{{Cb{e}}}{}{}}0000000000001111111111111{{}{{Cb{c{Fd{c}}}}}{}}000000000000{lFf}000000000000{ce{}{}}000000000000{{}c{}}000000000000{l{{Al{{l{c}}}}}{}}000000000000{{dd}f}{{Bfc}Db{{Eh{Fb}}}}{{A`c}A`{{Eh{Fb}}}}``````````````````````````````{eg{}{{b{c}}}{}}000000000{{FhFh}c{}}77777777776666666666{l{{l{Ab}}}}000000000{{{l{j}}}{{l{jAb}}}}000000000{l{{l{c}}}{}}000000000{{{l{j}}}{{l{jc}}}{}}000000000{{{B`{c}}}e{}{}}000000000{{}e{}{{Bb{c}}}}000000000<<<<<<<<<<{{{l{Fj}}}Fj}{{{l{Fl}}}Fl}{{{l{Fn}}}Fn}{{{l{G`}}}G`}{{{l{Gb}}}Gb}{{{l{Gd}}}Gd}{{{l{Fh}}}Fh}{{{l{Gf}}}Gf}{{{l{Gh}}}Gh}{{l{l{jc}}}n{}}00000000{ln}00000000{{{l{Gh}}{l{Gh}}}Bl}{{l{l{c}}}Bl{}}0{ce{}{}}000000000{{}Fj}{{}Gh}{C`{{l{c}}}{}}{{{l{Fj}}}{{l{c}}}{}}1{{{l{Fl}}}{{l{c}}}{}}22222222{C`{{l{jc}}}{}}0{{{l{jFj}}}{{l{jc}}}{}}{{{l{jFl}}}{{l{jc}}}{}}22222222{c{{Cb{Fl}}}Cd}{c{{Cb{Fn}}}Cd}{c{{Cb{G`}}}Cd}{c{{Cb{Gb}}}Cd}{c{{Cb{Gd}}}Cd}{c{{Cb{Fh}}}Cd}{c{{Cb{Gf}}}Cd}{c{{Cb{Gh}}}Cd}{l{{l{c}}}{}}000000000{C`n}000000000`{{{l{Fj}}{l{Fj}}}Cf}{{{l{Fl}}{l{Fl}}}Cf}{{{l{Fn}}{l{Fn}}}Cf}{{{l{G`}}{l{G`}}}Cf}{{{l{Gb}}{l{Gb}}}Cf}{{{l{Gd}}{l{Gd}}}Cf}{{{l{Fh}}{l{Fh}}}Cf}{{{l{Gf}}{l{Gf}}}Cf}{{{l{Gh}}{l{Gh}}}Cf}{{l{l{c}}}Cf{}}00{{{l{Fj}}{l{jCj}}}Cl}{{{l{Fl}}{l{jCj}}}Cl}{{{l{Fn}}{l{jCj}}}Cl}{{{l{G`}}{l{jCj}}}Cl}{{{l{Gb}}{l{jCj}}}Cl}{{{l{Gd}}{l{jCj}}}Cl}{{{l{Fh}}{l{jCj}}}Cl}{{{l{Gf}}{l{jCj}}}Cl}{{{l{Gh}}{l{jCj}}}Cl}{cc{}}000000{CfFh}{fFh}{BnFh}333{GjGh}44444444444444444444{ce{}{}}000000000{{{l{G`}}{l{Ah}}}Fh}{{{l{Gb}}{l{Aj}}}Fh}{{{l{Gd}}{l{A`}}}Fh}{{}C`}000000000{{{l{jFj}}C`Fl}n}{{{l{jFl}}Fn}n}{{}c{}}0000000000000000000{{{Dh{c}}}{{Dh{Ab}}}{}}000000000{{{Dj{c}}}{{Dj{Ab}}}{}}000000000{{{Dl{c}}}{{Dl{Ab}}}{}}000000000{{{B`{c}}}e{}{}}00000000044444444444444444444{{}{{Dd{cc}}}{}}000{{}{{Dn{c}}}{}}0000000006666666666{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}101010011001010101{GlGl}{G`Fl}{{GhGf}Fn}{{{l{Gh}}{l{Gh}}}{{Al{Bl}}}}{{{l{jFj}}Fl}n}{{{l{jFj}}C`}Fl}{{{l{Fl}}c}CbEj}{{{l{Fn}}c}CbEj}{{{l{G`}}c}CbEj}{{{l{Gb}}c}CbEj}{{{l{Gd}}c}CbEj}{{{l{Fh}}c}CbEj}{{{l{Gf}}c}CbEj}{{{l{Gh}}c}CbEj}{{{l{jFl}}C`Gh}n}{{{l{jFj}}cBn}n{{Eh{{Gn{Ch}}}}}}{{{l{Fj}}}Gl}{{GhGh}c{}}{{{l{Gf}}Fh}Fh}{lc{}}00000000{{}{{Cb{c}}}{}}000000000{c{{Cb{e}}}{}{}}00000000{H`{{Cb{Ghc}}}{}}12222222222{{}{{Cb{c{Fd{c}}}}}{}}000000000{lFf}000000000{ce{}{}}000000000{{}c{}}000000000{l{{Al{{l{c}}}}}{}}000000000{{{l{jGl}}H`{l{jAh}}}Cf}{{{l{G`}}Fh{l{jAh}}}n}{{{l{Gb}}Fh{l{jAj}}}n}{{{l{Gd}}Fh{l{jA`}}}n}`{{{l{Fj}}{l{Ch}}}{{Al{Bn}}}}{{FjFl}Fj}{{FnHb}Fn}{{FlFn}Fl}{{FjcBn}Fj{{Eh{Fb}}}}````````````{eg{}{{b{c}}}{}}00<<<;;;{l{{l{Ab}}}}00{{{l{j}}}{{l{jAb}}}}00{l{{l{c}}}{}}00{{{l{j}}}{{l{jc}}}{}}00{{{B`{c}}}e{}{}}00{{}e{}{{Bb{c}}}}00{{}c{}}00{{{l{Hd}}}Hd}{{{l{Hf}}}Hf}{{l{l{jc}}}n{}}0{ln}0{ce{}{}}00{C`{{l{c}}}{}}00{C`{{l{jc}}}{}}00;;;{C`n}00{{{l{Hd}}{l{Hd}}}Cf}{{{l{Hf}}{l{Hf}}}Cf}{{l{l{c}}}Cf{}}00{{{l{Hh}}{l{jCj}}}Cl}{{{l{Hd}}{l{jCj}}}Cl}{{{l{Hf}}{l{jCj}}}Cl}{cc{}}00000000:::{{{l{jHh}}{Hl{Hj}}{l{jHn}}}Cf}{{{l{jHh}}{Hl{Hj}}{l{jHn}}}{{Al{I`}}}}{{}C`}00{{}c{}}00000{{{Dh{c}}}{{Dh{Ab}}}{}}00{{{Dj{c}}}{{Dj{Ab}}}{}}0{{{Dl{c}}}{{Dl{Ab}}}{}}00{{{B`{c}}}e{}{}}00444444{{}{{Dd{cc}}}{}}0{{}{{Dn{c}}}{}}00666{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}0101{{{l{jHh}}{Id{Ib}}{l{jIf}}}{{Id{Ih}}}}{{}Ij}{{}Il}{InIj}{{{l{Hh}}}{{l{{J`{Bn}}}}}}0{{{l{jHh}}{Hl{Hj}}JbJd{l{jHn}}}Jf}{{{l{jHh}}{Hl{Hj}}JbJd{l{jHn}}}n}{{{l{jHh}}{Al{{Hl{Hj}}}}JbJd{l{jHn}}}n}{{{l{jHh}}JbJhJj{l{jHn}}}Jf}{{{J`{Ah}}}Hh}{{Hhc}Hh{{Ed{Hf}}Jl}}{{{l{jc}}}{{Cb{JnK`}}}{KbKd}}{{{l{jHh}}{l{jKf}}}n}{{}{{Cb{nK`}}}}{Kh{{Cb{nK`}}}}:{lc{}}0{{}{{Cb{c}}}{}}00{c{{Cb{e}}}{}{}}00111{{}{{Cb{c{Fd{c}}}}}{}}00{lFf}00{ce{}{}}00{{}c{}}00{{{l{jHh}}{l{jHn}}}n}{l{{Al{{l{c}}}}}{}}00````````````{eg{}{{b{c}}}{}}00044443333{l{{l{Ab}}}}000{{{l{j}}}{{l{jAb}}}}000{l{{l{c}}}{}}000{{{l{j}}}{{l{jc}}}{}}000{{{B`{c}}}e{}{}}000{{}e{}{{Bb{c}}}}0009999{{{l{Kj}}}Kj}{{l{l{jc}}}n{}}{ln}===={{}Kj}{C`{{l{c}}}{}}000{C`{{l{jc}}}{}}0009999{C`n}000`{{{l{Kj}}{l{Kj}}}Cf}{{{l{Kl}}{l{jCj}}}Cl}0{{l{l{Cn}}{l{jCj}}}{{Cb{nD`}}}}0{{{l{Kn}}{l{jCj}}}Cl}0{{{l{Kj}}{l{jCj}}}Cl}{cc{}}{L`Kl}{LbKl}2{L`Kn}{LdKn}4444444444{ce{}{}}000{{}C`}000{{}c{}}0000000{{{Dh{c}}}{{Dh{Ab}}}{}}000{{{Dj{c}}}{{Dj{Ab}}}{}}000{{{Dl{c}}}{{Dl{Ab}}}{}}000{{{B`{c}}}e{}{}}00044444444{{}{{Dn{c}}}{}}0005555{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}100101{LfIj}{{}Il}{{{l{jc}}}{{Cb{JnK`}}}{KbKd}}{{{l{Lh}}}{{Cb{KjKl}}}}{{}{{Cb{nK`}}}}{Kh{{Cb{nK`}}}}`{KjLf}{lc{}}{lF`}0{lFb}0{{}{{Cb{c}}}{}}000{c{{Cb{e}}}{}{}}0001111{{}{{Cb{c{Fd{c}}}}}{}}000{lFf}000{ce{}{}}000{{}c{}}000{l{{Al{{l{c}}}}}{}}000{{{l{Kj}}{l{Lh}}}{{Cb{nKn}}}}","D":"ACb","p":[[10,"TransformMatrix",1694],[5,"Coordinate",0],[5,"Vector",0],[5,"Rotation",0],[0,"mut"],[1,"reference"],[1,"unit"],[5,"Joint",0],[10,"Any",1695],[5,"BoneId",0],[5,"BoneAxis",0],[5,"Skeleton",0],[5,"Bone",0],[6,"Option",1696],[1,"slice"],[5,"BakedParameters",1697],[10,"CastFrom",1698],[5,"Angle",0],[6,"BoneKind",0],[5,"JointId",0],[6,"BoneEnd",0],[6,"Ordering",1699],[1,"f32"],[1,"usize"],[6,"Result",1700],[10,"Deserializer",1701],[1,"bool"],[1,"str"],[5,"Formatter",1702],[8,"Result",1702],[5,"WidgetContext",1703],[5,"Error",1702],[5,"LabeledBoneKind",0],[1,"tuple"],[10,"Hasher",1704],[5,"Box",1705],[5,"Arc",1706],[5,"Rc",1707],[6,"ReadOnly",1708],[6,"Value",1708],[17,"Output"],[10,"FnMut",1709],[5,"ZeroToOne",1710],[10,"Into",1711],[10,"Serializer",1712],[5,"RangeInclusive",1713],[6,"Progress",1714],[5,"SmolStr",1715],[5,"String",1716],[5,"OutOfBounds",1717],[5,"TypeId",1695],[6,"Value",779],[5,"Animation",779],[5,"Timeline",779],[5,"Keyframe",779],[6,"Target",779],[6,"BoneProperty",779],[6,"JointProperty",779],[6,"PropertyUpdate",779],[5,"Frame",779],[1,"u32"],[5,"RunningAnimation",779],[6,"Cow",1718],[5,"Duration",1719],[6,"StandardEasing",1720],[6,"Target",1327],[6,"SkeletonMutation",1327],[5,"SkeletonCanvas",1327],[5,"Px",1721],[5,"Point",1722],[5,"EventContext",1703],[6,"CursorIcon",1723],[6,"ConstraintLimit",1724],[5,"Size",1725],[5,"LayoutContext",1703],[5,"UPx",1721],[5,"WidgetInstance",1726],[5,"Window",1727],[5,"WidgetTag",1726],[5,"Dynamic",1708],[6,"DeviceId",1727],[6,"MouseButton",1728],[8,"EventHandling",1726],[6,"MouseScrollDelta",1728],[6,"TouchPhase",1728],[10,"Send",1729],[5,"WindowHandle",1727],[6,"EventLoopError",1730],[10,"Application",1731],[10,"Sized",1729],[5,"GraphicsContext",1703],[5,"PendingApp",1731],[5,"EditingSkeleton",1495],[6,"ReadError",1495],[6,"SaveError",1495],[5,"Error",1732],[5,"Error",1733],[5,"PersistError",1734],[5,"SkeletonEditor",1495],[5,"Path",1735],[15,"Jointed",775],[15,"Rigid",775],[15,"Bone",1322],[15,"Joint",1322],[15,"SetDesiredEnd",1491],[15,"SetJointRotation",1491]],"r":[],"b":[[32,"impl-Add-for-Coordinate"],[33,"impl-Add%3CVector%3E-for-Coordinate"],[35,"impl-Add-for-Vector"],[36,"impl-Add%3CRotation%3E-for-Vector"],[318,"impl-Display-for-Angle"],[319,"impl-Debug-for-Angle"],[322,"impl-Display-for-Rotation"],[323,"impl-Debug-for-Rotation"],[400,"impl-Index%3CJointId%3E-for-Skeleton"],[401,"impl-Index%3CBoneId%3E-for-Skeleton"],[404,"impl-IndexMut%3CBoneId%3E-for-Skeleton"],[405,"impl-IndexMut%3CJointId%3E-for-Skeleton"],[644,"impl-Sub%3CVector%3E-for-Coordinate"],[645,"impl-Sub-for-Coordinate"],[1027,"impl-From%3Cbool%3E-for-Value"],[1028,"impl-From%3CVector%3E-for-Value"],[1029,"impl-From%3Cf32%3E-for-Value"],[1569,"impl-Display-for-ReadError"],[1570,"impl-Debug-for-ReadError"],[1573,"impl-Debug-for-SaveError"],[1574,"impl-Display-for-SaveError"],[1577,"impl-From%3CError%3E-for-ReadError"],[1578,"impl-From%3CError%3E-for-ReadError"],[1580,"impl-From%3CError%3E-for-SaveError"],[1581,"impl-From%3CPersistError%3E-for-SaveError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUGJAAUABIAKAA0AGQAQACmAC0A1wAEAN4AIwAEARsAIwEXAD4BEABRAQAAUwEAAFUBAABXAQAAYAEpAIsBAwCRAQEAlQEOALEBmgBZAgIAXwIBAGUCBQBwAgsAhQIEAIsCCQCWAgMAmwJnAAwD8AAEBAIACgQtAEIELwF1BQ0AhgWiACoGAQAtBgEAMQYPAEUGWQA="}]]')); +var searchIndex = new Map(JSON.parse('[["FunnyBones",{"t":"HHHHHH","n":["main","main_menu_window","open_file","save","save_as","skeleton_window"],"q":[[0,"FunnyBones"],[6,"cushy"],[7,"cushy::window"],[8,"cushy::app"],[9,"core::option"],[10,"std::path"],[11,"cushy::value"],[12,"funnybones::editor"],[13,"cushy::widget"],[14,"cushy::widgets::layers"],[15,"core::result"]],"i":"``````","f":"{{}b}{{{d{c}}}fh}{{{d{jl}}{d{n}}{Ab{A`}}}Ad}{{{d{{Ah{{Ab{Af}}}}}}{d{Aj}}{d{{An{Al}}}}{d{B`}}}{{Bb{AdAl}}}}{{{d{{Ah{{Ab{Af}}}}}}{d{Aj}}{d{{An{Al}}}}{d{B`}}}Ad}{{{Ab{Af}}}f}","D":"b","p":[[8,"Result",6],[1,"reference"],[5,"Window",7],[10,"Application",8],[0,"mut"],[5,"App",8],[5,"WindowHandle",7],[8,"ShutdownGuard",8],[6,"Option",9],[1,"unit"],[5,"PathBuf",10],[5,"Dynamic",11],[5,"EditingSkeleton",12],[6,"SaveError",12],[5,"SharedCallback",13],[5,"Modal",14],[6,"Result",15]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUAAQABAAUA"}],["funnybones",{"t":"PFPFFGFGFFFPFTTPFFFNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOPPFPGPPFPPPGFTTPGFGPFGPTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNOOOOCPPPPFGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOFPPPGPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["A","Angle","B","Bone","BoneAxis","BoneEnd","BoneId","BoneKind","Coordinate","Joint","JointId","Jointed","LabeledBoneKind","MAX","MIN","Rigid","Rotation","Skeleton","Vector","adapt_into_using","","","","","","","","","","","","","add","","","","","add_assign","angle","animation","arrays_from","","","","","","","","","","","","","arrays_into","","","","","","","","","","","","","as_any","","","","","","","","","","","","","as_any_mut","","","","","","","","","","","","","as_rotation","axis_a","axis_b","bone","","bone_mut","bones","borrow","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","cam16_into_unclamped","","","","","","","","","","","","","cast","","","","","","","","","","","","","cast_into","","","","","","","","","","","","","clamped","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","","compare","","","","components_from","","","","","","","","","","","","","connections_to","cos","cushy","default","","","","","degrees","","deref","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","deserialize","","","","","","","","","","desired_end","direction","div","downcast","","","","","","","","","","","","","drop","","","","","","","","","","","","","editor","end","","entry_angle","eq","","","","","","","","","","","","equivalent","","","","","","","","","","","","final_vector","find_bone_by_label","find_joint_by_label","fmt","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","from_angle","","","","","","","","","","","","","from_cast","","","","","","","","","","","","","from_components","from_parts","","from_stimulus","","","","","","","","","","","","","full_length","hash","","","","id","","index","","","","index_mut","","init","","","","","","","","","","","","","into","","","","","","","","","","","","","into_angle","","","","","","","","","","","","","into_any","","","","","","","","","","","","","into_any_arc","","","","","","","","","","","","","into_any_rc","","","","","","","","","","","","","into_cam16_unclamped","","","","","","","","","","","","","into_color","","","","","","","","","","","","","into_color_unclamped","","","","","","","","","","","","","into_components","","","","","","","","","","into_parts","","into_read_only","","","","","","","","","","","","","into_stimulus","","","","","","","","","","","","","into_value","","","","","","","","","","","","","","","","","","","","","","","","","","inverse","","is_inverse","is_root","joint","joint_mut","joints","kind","","kind_mut","label","","","lerp","","","magnitude","","map","mul","neg","new","","","other_axis","partial_cmp","","","","percent_between","","push_bone","push_joint","radians","","rotation","serialize","","","","","","","","","","","","set_angle","set_desired_end","set_inverse","set_rotation","set_translation","sin","solve","solved_joint","start","sub","","","","sub_assign","to_degrees","to_owned","","","","","","","","","to_progress","to_radians","to_smolstr","","to_string","","translation","try_components_into","","","","","","","","","","","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","","","try_into_color","","","","","","","","","","","","","type_id","","","","","","","","","","","","","uints_from","","","","","","","","","","","","","uints_into","","","","","","","","","","","","","upcast","","","","","","","","","","","","","vector_to","with_label","","x","y","end_length","inverse","length","start_length","Add","Angle","Animation","Bone","BoneProperty","Bool","ChangeTo","Frame","Invalid","Inverse","Joint","JointProperty","Keyframe","MAX","MIN","Number","PropertyUpdate","RunningAnimation","Target","","Timeline","Value","Vector","ZERO","adapt_into_using","","","","","","","","","","add","arrays_from","","","","","","","","","","arrays_into","","","","","","","","","","as_any","","","","","","","","","","as_any_mut","","","","","","","","","","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","cam16_into_unclamped","","","","","","","","","","cast","","","","","","","","","","cast_into","","","","","","","","","","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","compare","","components_from","","","","","","","","","","default","","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","deserialize","","","","","","","","downcast","","","","","","","","","","drop","","","","","","","","","","easing","eq","","","","","","","","","equivalent","","","fmt","","","","","","","","","from","","","","","","","","","","","","","","from_angle","","","","","","","","","","from_cast","","","","","","","","","","from_stimulus","","","","","","","","","","get","","","init","","","","","","","","","","insert","insert_frame","into","","","","","","","","","","into_angle","","","","","","","","","","into_any","","","","","","","","","","into_any_arc","","","","","","","","","","into_any_rc","","","","","","","","","","into_cam16_unclamped","","","","","","","","","","into_color","","","","","","","","","","into_color_unclamped","","","","","","","","","","into_components","","","","into_read_only","","","","","","","","","","into_stimulus","","","","","","","","","","into_value","","","","","","","","","","","","","","","","","","","","looping","new","","partial_cmp","push","remove","serialize","","","","","","","","set_frame_offset","set_variable","start","sub","target","to_owned","","","","","","","","","try_components_into","","","","","","","","","","try_from","","","","","","","","","","","try_into","","","","","","","","","","try_into_color","","","","","","","","","","type_id","","","","","","","","","","uints_from","","","","","","","","","","uints_into","","","","","","","","","","upcast","","","","","","","","","","update","","","","","variable","with","with_easing","with_frame","with_variable","bone","joint","property","","skeleton_canvas","DesiredEnd","Joint","SetDesiredEnd","SetJointRotation","SkeletonCanvas","SkeletonMutation","Target","adapt_into_using","","","arrays_from","","","arrays_into","","","as_any","","","as_any_mut","","","borrow","","","borrow_mut","","","cam16_into_unclamped","","","cast","","","cast_into","","","clone","","clone_into","","clone_to_uninit","","components_from","","","deref","","","deref_mut","","","downcast","","","drop","","","eq","","equivalent","","","fmt","","","from","","","from_angle","","","from_cast","","","from_stimulus","","","hit_test","hover","init","","","into","","","into_angle","","","into_any","","","into_any_arc","","into_any_rc","","","into_cam16_unclamped","","","into_color","","","into_color_unclamped","","","into_components","","into_read_only","","","into_stimulus","","","into_value","","","","","","layout","make_widget","make_window","make_with_tag","maximum_scale","minimum_scale","mouse_down","mouse_drag","mouse_up","mouse_wheel","new","on_mutate","open","redraw","run","run_in","scale","to_owned","","try_components_into","","","try_from","","","try_into","","","try_into_color","","","type_id","","","uints_from","","","uints_into","","","unhover","upcast","","","bone","end","joint","rotation","EditingSkeleton","InvalidPath","Io","","ReadError","Rsn","SaveError","SkeletonEditor","adapt_into_using","","","","arrays_from","","","","arrays_into","","","","as_any","","","","as_any_mut","","","","borrow","","","","borrow_mut","","","","cam16_into_unclamped","","","","cast","","","","cast_into","","","","clone","clone_into","clone_to_uninit","components_from","","","","default","deref","","","","deref_mut","","","","downcast","","","","drop","","","","editor","eq","fmt","","","","","","","from","","","","","","","","from_angle","","","","from_cast","","","","from_stimulus","","","","init","","","","into","","","","into_angle","","","","into_any","","","","into_any_arc","","","","into_any_rc","","","","into_cam16_unclamped","","","","into_color","","","","into_color_unclamped","","","","into_read_only","","","","into_stimulus","","","","into_value","","","","","","","","make_widget","make_window","open","read_from","run","run_in","skeleton","skeleton_editor","to_owned","to_smolstr","","to_string","","try_components_into","","","","try_from","","","","try_into","","","","try_into_color","","","","type_id","","","","uints_from","","","","uints_into","","","","upcast","","","","write_to"],"q":[[0,"funnybones"],[775,"funnybones::BoneKind"],[779,"funnybones::animation"],[1322,"funnybones::animation::Target"],[1326,"funnybones::cushy"],[1327,"funnybones::cushy::skeleton_canvas"],[1491,"funnybones::cushy::skeleton_canvas::SkeletonMutation"],[1495,"funnybones::editor"],[1694,"palette::chromatic_adaptation"],[1695,"core::any"],[1696,"core::option"],[1697,"palette::cam16::parameters"],[1698,"intentional::cast"],[1699,"core::cmp"],[1700,"core::result"],[1701,"serde::de"],[1702,"core::fmt"],[1703,"cushy::context"],[1704,"core::hash"],[1705,"alloc::boxed"],[1706,"alloc::sync"],[1707,"alloc::rc"],[1708,"cushy::value"],[1709,"core::ops::function"],[1710,"cushy::animation"],[1711,"core::convert"],[1712,"serde::ser"],[1713,"core::ops::range"],[1714,"cushy::widgets::progress"],[1715,"smol_str"],[1716,"alloc::string"],[1717,"palette::convert::try_from_into_color"],[1718,"alloc::borrow"],[1719,"core::time"],[1720,"easing_function::easings"],[1721,"figures::units"],[1722,"figures::point"],[1723,"cursor_icon"],[1724,"cushy"],[1725,"figures::size"],[1726,"cushy::widget"],[1727,"cushy::window"],[1728,"winit::event"],[1729,"core::marker"],[1730,"winit::error"],[1731,"cushy::app"],[1732,"std::io::error"],[1733,"rsn::de"],[1734,"tempfile::file"],[1735,"std::path"]],"i":"Bj`0````````Bf`Bd01```Dbd2hf5AhAfAjA`AdBh<8876672`98:76;543210<98:76;543210<98:76;543210<98:76;543210<811545598:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<78:76;410<8:76;410<8:76;410<10110098:76;543210<57`8:765:798:76;543210<98:76;543210<8:76;5410<36898:76;543210<98:76;543210<`3438:76;543210<444111000<<<3558:::7776;543210<9988::7766;543210<98:76;543210<98:76;543210<8:798:76;543210<;410<3255105598:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<88:76;410<:798:76;543210<98:76;543210<9988::7766;;554433221100<<4<;3555393329:76868878622:710:755:758:76;543210<23;5575338876778:76;410<:7:7:7598:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<98:76;543210<8;288Lj0Ll1GfGd`G``Fh3`0Gb2``Gh02```1``20GlFjFlFn75869463210758694321075869432107586943210758694321075869432107586943210758694321075869432107586942107586942107586942107586944443210758694243221107586943221107586941075869432107586943210758694021075869444421075869432107586666944321075869432107586943210758694758321075869421321075869432107586943210758694321075869432107586943210758694321075869432107586940694321075869432107586943322110077558866994431042210758694122492107586943210758694321075869443210758694321075869432107586943210758694321075869432107586943758022012LnM`10`Hd0Hf0```Hh210210210210210210210210210212121210210210210210212122202102102102102100021021021021210210210210212102102100221100000000000000000210210210210210210210210021Mb0Md0`KnKl1`0``Lf12Kj1230123012301230123012301230123012300001230012301230123012301022233301222333012301230123012301230123012301230123012301230123012301230112233001110111`02323123012301230123012301230123012300","f":"```````````````````{eg{}{{b{c}}}{}}000000000000{{dd}c{}}{{df}c{}}{{hh}c{}}{{ff}c{}}{{fh}c{}}{{{l{jh}}h}n}{{{l{A`}}}h}`{ce{}{}}000000000000{{}c{}}000000000000{l{{l{Ab}}}}000000000000{{{l{j}}}{{l{jAb}}}}000000000000{dh}{AdAf}0{{{l{Ah}}Ad}{{Al{{l{Aj}}}}}}`{{{l{jAh}}Ad}{{Al{{l{jAj}}}}}}{{{l{Ah}}}{{l{{An{Aj}}}}}}{l{{l{c}}}{}}000000000000{{{l{j}}}{{l{jc}}}{}}000000000000{{{B`{c}}}e{}{}}000000000000{{}e{}{{Bb{c}}}}000000000000;;;;;;;;;;;;;{hh}{{{l{d}}}d}{{{l{Bd}}}Bd}{{{l{h}}}h}{{{l{f}}}f}{{{l{Bf}}}Bf}{{{l{Af}}}Af}{{{l{Ad}}}Ad}{{{l{Bh}}}Bh}{{{l{Bj}}}Bj}{{l{l{jc}}}n{}}00000000{ln}00000000{{{l{Ad}}{l{Ad}}}Bl}{{{l{Bh}}{l{Bh}}}Bl}{{l{l{c}}}Bl{}}000{ce{}{}}000000000000{{{l{Ah}}Af}{{Al{{l{{An{Bh}}}}}}}}{hBn}`{{}d}{{}Bd}{{}h}{{}f}{{}Ah}{BnBd}{Bnh}{C`{{l{c}}}{}}000000000000{C`{{l{jc}}}{}}000000000000{c{{Cb{d}}}Cd}{c{{Cb{Bd}}}Cd}{c{{Cb{h}}}Cd}{c{{Cb{f}}}Cd}{c{{Cb{Bf}}}Cd}{c{{Cb{Ah}}}Cd}{c{{Cb{Af}}}Cd}{c{{Cb{Ad}}}Cd}{c{{Cb{Bh}}}Cd}{c{{Cb{Bj}}}Cd}{{{l{Aj}}}{{Al{f}}}}`{{dBn}c{}}{l{{l{c}}}{}}000000000000{C`n}000000000000`{{{l{Aj}}}d}`{{{l{Aj}}}h}{{{l{d}}{l{d}}}Cf}{{{l{Bd}}{l{Bd}}}Cf}{{{l{h}}{l{h}}}Cf}{{{l{f}}{l{f}}}Cf}{{{l{Bf}}{l{Bf}}}Cf}{{{l{Ah}}{l{Ah}}}Cf}{{{l{Af}}{l{Af}}}Cf}{{{l{Aj}}{l{Aj}}}Cf}{{{l{A`}}{l{A`}}}Cf}{{{l{Ad}}{l{Ad}}}Cf}{{{l{Bh}}{l{Bh}}}Cf}{{{l{Bj}}{l{Bj}}}Cf}{{l{l{c}}}Cf{}}00000000000{{{l{Aj}}}f}{{{l{Ah}}{l{Ch}}}{{Al{Ad}}}}{{{l{Ah}}{l{Ch}}}{{Al{Bh}}}}{{{l{d}}{l{jCj}}}Cl}{{{l{Bd}}{l{jCj}}}Cl}0{{l{l{Cn}}{l{jCj}}}{{Cb{nD`}}}}0{{{l{h}}{l{jCj}}}Cl}0{{{l{f}}{l{jCj}}}Cl}{{{l{Bf}}{l{jCj}}}Cl}{{{l{Ah}}{l{jCj}}}Cl}{{{l{Af}}{l{jCj}}}Cl}{{{l{Aj}}{l{jCj}}}Cl}{{{l{A`}}{l{jCj}}}Cl}{{{l{Ad}}{l{jCj}}}Cl}{{{l{Bh}}{l{jCj}}}Cl}{{{l{Bj}}{l{jCj}}}Cl}{BfDb}{cc{}}0{fd}1{hBd}2{Bdh}3{df}4444444444444444444444444444444444{{{Dd{BnBn}}}d}{Alc{}}0{ce{}{}}000000000000{{{l{Bf}}}Bn}{{{l{Af}}{l{jc}}}nDf}{{{l{Ad}}{l{jc}}}nDf}{{{l{Bh}}{l{jc}}}nDf}{{{l{Bj}}{l{jc}}}nDf}{{{l{Aj}}}Ad}{{{l{A`}}}Bh}{{{l{Ah}}Bh}{{l{c}}}{}}{{{l{Ah}}Ad}{{l{c}}}{}}{AdC`}{BhC`}{{{l{jAh}}Ad}{{l{jc}}}{}}{{{l{jAh}}Bh}{{l{jc}}}{}}{{}C`}000000000000{{}c{}}0000000000000000000000000{{{Dh{c}}}{{Dh{Ab}}}{}}000000000000{{{Dj{c}}}{{Dj{Ab}}}{}}000000000000{{{Dl{c}}}{{Dl{Ab}}}{}}000000000000{{{B`{c}}}e{}{}}00000000000044444444444444444444444444{d{{Dd{BnBn}}}}{{}{{Dd{cc}}}{}}00000000{{}{{Dd{Al}}}}0{{}{{Dn{c}}}{}}0000000000008888888888888{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}010101011001101001010110{AfAf}{BjBj}{{{l{Bf}}}Cf}{{{l{Aj}}}Cf}{{{l{Ah}}Bh}{{Al{{l{A`}}}}}}{{{l{jAh}}Bh}{{Al{{l{jA`}}}}}}{{{l{Ah}}}{{l{{An{A`}}}}}}{{{l{Aj}}}{{l{Bf}}}}`{{{l{jAj}}}{{l{jBf}}}}{{{l{Aj}}}{{l{Ch}}}}{{{l{A`}}}{{l{Ch}}}}`{{{l{Bd}}{l{Bd}}Bn}Bd}{{{l{h}}{l{h}}Bn}h}{{{l{f}}{l{f}}Bn}f}{{{l{d}}}Bn}`{{dc}d{{Ed{Bn}{{Eb{Bn}}}}}}{{dBn}c{}}{hc{}}{{BnBn}d}{{Bnh}f}{{hAfAf}A`}{{{l{A`}}Af}Af}{{{l{Bd}}{l{Bd}}}{{Al{Bl}}}}{{{l{h}}{l{h}}}{{Al{Bl}}}}{{{l{Ad}}{l{Ad}}}{{Al{Bl}}}}{{{l{Bh}}{l{Bh}}}{{Al{Bl}}}}{{{l{Bd}}{l{Bd}}{l{Bd}}}Ef}{{{l{h}}{l{h}}{l{h}}}Ef}{{{l{jAh}}c}Ad{{Eh{Db}}}}{{{l{jAh}}A`}Bh}{BnBd}{Bnh}{{{l{Ah}}}h}{{{l{d}}c}CbEj}{{{l{Bd}}c}CbEj}{{{l{h}}c}CbEj}{{{l{f}}c}CbEj}{{{l{Bf}}c}CbEj}{{{l{Ah}}c}CbEj}{{{l{Af}}c}CbEj}{{{l{Aj}}c}CbEj}{{{l{A`}}c}CbEj}{{{l{Ad}}c}CbEj}{{{l{Bh}}c}CbEj}{{{l{Bj}}c}CbEj}{{{l{jA`}}h}n}{{{l{jAj}}{Al{f}}}n}{{{l{jBf}}Cf}n}{{{l{jAh}}h}n}{{{l{jAh}}d}n}{hBn}{{{l{jAh}}}n}{{{l{Aj}}}{{Al{d}}}}{{{l{Aj}}}d}{{df}c{}}{{dd}c{}}{{hh}c{}}{{fh}c{}}{{{l{jh}}h}n}8{lc{}}00000000{{l{Al{{El{l}}}}}En}:{lF`}0{lFb}0{{{l{Ah}}}d}{{}{{Cb{c}}}{}}000000000000{c{{Cb{e}}}{}{}}0000000000001111111111111{{}{{Cb{c{Fd{c}}}}}{}}000000000000{lFf}000000000000{ce{}{}}000000000000{{}c{}}000000000000{l{{Al{{l{c}}}}}{}}000000000000{{dd}f}{{Bfc}Db{{Eh{Fb}}}}{{A`c}A`{{Eh{Fb}}}}``````````````````````````````{eg{}{{b{c}}}{}}000000000{{FhFh}c{}}77777777776666666666{l{{l{Ab}}}}000000000{{{l{j}}}{{l{jAb}}}}000000000{l{{l{c}}}{}}000000000{{{l{j}}}{{l{jc}}}{}}000000000{{{B`{c}}}e{}{}}000000000{{}e{}{{Bb{c}}}}000000000<<<<<<<<<<{{{l{Fj}}}Fj}{{{l{Fl}}}Fl}{{{l{Fn}}}Fn}{{{l{G`}}}G`}{{{l{Gb}}}Gb}{{{l{Gd}}}Gd}{{{l{Fh}}}Fh}{{{l{Gf}}}Gf}{{{l{Gh}}}Gh}{{l{l{jc}}}n{}}00000000{ln}00000000{{{l{Gh}}{l{Gh}}}Bl}{{l{l{c}}}Bl{}}0{ce{}{}}000000000{{}Fj}{{}Gh}{C`{{l{c}}}{}}{{{l{Fj}}}{{l{c}}}{}}1{{{l{Fl}}}{{l{c}}}{}}22222222{C`{{l{jc}}}{}}0{{{l{jFj}}}{{l{jc}}}{}}{{{l{jFl}}}{{l{jc}}}{}}22222222{c{{Cb{Fl}}}Cd}{c{{Cb{Fn}}}Cd}{c{{Cb{G`}}}Cd}{c{{Cb{Gb}}}Cd}{c{{Cb{Gd}}}Cd}{c{{Cb{Fh}}}Cd}{c{{Cb{Gf}}}Cd}{c{{Cb{Gh}}}Cd}{l{{l{c}}}{}}000000000{C`n}000000000`{{{l{Fj}}{l{Fj}}}Cf}{{{l{Fl}}{l{Fl}}}Cf}{{{l{Fn}}{l{Fn}}}Cf}{{{l{G`}}{l{G`}}}Cf}{{{l{Gb}}{l{Gb}}}Cf}{{{l{Gd}}{l{Gd}}}Cf}{{{l{Fh}}{l{Fh}}}Cf}{{{l{Gf}}{l{Gf}}}Cf}{{{l{Gh}}{l{Gh}}}Cf}{{l{l{c}}}Cf{}}00{{{l{Fj}}{l{jCj}}}Cl}{{{l{Fl}}{l{jCj}}}Cl}{{{l{Fn}}{l{jCj}}}Cl}{{{l{G`}}{l{jCj}}}Cl}{{{l{Gb}}{l{jCj}}}Cl}{{{l{Gd}}{l{jCj}}}Cl}{{{l{Fh}}{l{jCj}}}Cl}{{{l{Gf}}{l{jCj}}}Cl}{{{l{Gh}}{l{jCj}}}Cl}{cc{}}000000{CfFh}{fFh}{BnFh}333{GjGh}44444444444444444444{ce{}{}}000000000{{{l{G`}}{l{Ah}}}Fh}{{{l{Gb}}{l{Aj}}}Fh}{{{l{Gd}}{l{A`}}}Fh}{{}C`}000000000{{{l{jFj}}C`Fl}n}{{{l{jFl}}Fn}n}{{}c{}}0000000000000000000{{{Dh{c}}}{{Dh{Ab}}}{}}000000000{{{Dj{c}}}{{Dj{Ab}}}{}}000000000{{{Dl{c}}}{{Dl{Ab}}}{}}000000000{{{B`{c}}}e{}{}}00000000044444444444444444444{{}{{Dd{cc}}}{}}000{{}{{Dn{c}}}{}}0000000006666666666{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}101010011001010101{GlGl}{G`Fl}{{GhGf}Fn}{{{l{Gh}}{l{Gh}}}{{Al{Bl}}}}{{{l{jFj}}Fl}n}{{{l{jFj}}C`}Fl}{{{l{Fl}}c}CbEj}{{{l{Fn}}c}CbEj}{{{l{G`}}c}CbEj}{{{l{Gb}}c}CbEj}{{{l{Gd}}c}CbEj}{{{l{Fh}}c}CbEj}{{{l{Gf}}c}CbEj}{{{l{Gh}}c}CbEj}{{{l{jFl}}C`Gh}n}{{{l{jFj}}cBn}n{{Eh{{Gn{Ch}}}}}}{{{l{Fj}}}Gl}{{GhGh}c{}}{{{l{Gf}}Fh}Fh}{lc{}}00000000{{}{{Cb{c}}}{}}000000000{c{{Cb{e}}}{}{}}00000000{H`{{Cb{Ghc}}}{}}12222222222{{}{{Cb{c{Fd{c}}}}}{}}000000000{lFf}000000000{ce{}{}}000000000{{}c{}}000000000{l{{Al{{l{c}}}}}{}}000000000{{{l{jGl}}H`{l{jAh}}}Cf}{{{l{G`}}Fh{l{jAh}}}n}{{{l{Gb}}Fh{l{jAj}}}n}{{{l{Gd}}Fh{l{jA`}}}n}`{{{l{Fj}}{l{Ch}}}{{Al{Bn}}}}{{FjFl}Fj}{{FnHb}Fn}{{FlFn}Fl}{{FjcBn}Fj{{Eh{Fb}}}}````````````{eg{}{{b{c}}}{}}00<<<;;;{l{{l{Ab}}}}00{{{l{j}}}{{l{jAb}}}}00{l{{l{c}}}{}}00{{{l{j}}}{{l{jc}}}{}}00{{{B`{c}}}e{}{}}00{{}e{}{{Bb{c}}}}00{{}c{}}00{{{l{Hd}}}Hd}{{{l{Hf}}}Hf}{{l{l{jc}}}n{}}0{ln}0{ce{}{}}00{C`{{l{c}}}{}}00{C`{{l{jc}}}{}}00;;;{C`n}00{{{l{Hd}}{l{Hd}}}Cf}{{{l{Hf}}{l{Hf}}}Cf}{{l{l{c}}}Cf{}}00{{{l{Hh}}{l{jCj}}}Cl}{{{l{Hd}}{l{jCj}}}Cl}{{{l{Hf}}{l{jCj}}}Cl}{cc{}}00000000:::{{{l{jHh}}{Hl{Hj}}{l{jHn}}}Cf}{{{l{jHh}}{Hl{Hj}}{l{jHn}}}{{Al{I`}}}}{{}C`}00{{}c{}}00000{{{Dh{c}}}{{Dh{Ab}}}{}}00{{{Dj{c}}}{{Dj{Ab}}}{}}0{{{Dl{c}}}{{Dl{Ab}}}{}}00{{{B`{c}}}e{}{}}00444444{{}{{Dd{cc}}}{}}0{{}{{Dn{c}}}{}}00666{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}0101{{{l{jHh}}{Id{Ib}}{l{jIf}}}{{Id{Ih}}}}{{}Ij}{{}Il}{InIj}{{{l{Hh}}}{{l{{J`{Bn}}}}}}0{{{l{jHh}}{Hl{Hj}}JbJd{l{jHn}}}Jf}{{{l{jHh}}{Hl{Hj}}JbJd{l{jHn}}}n}{{{l{jHh}}{Al{{Hl{Hj}}}}JbJd{l{jHn}}}n}{{{l{jHh}}JbJhJj{l{jHn}}}Jf}{{{J`{Ah}}}Hh}{{Hhc}Hh{{Ed{Hf}}Jl}}{{{l{jc}}}{{Cb{JnK`}}}{KbKd}}{{{l{jHh}}{l{jKf}}}n}{{}{{Cb{nK`}}}}{Kh{{Cb{nK`}}}}:{lc{}}0{{}{{Cb{c}}}{}}00{c{{Cb{e}}}{}{}}00111{{}{{Cb{c{Fd{c}}}}}{}}00{lFf}00{ce{}{}}00{{}c{}}00{{{l{jHh}}{l{jHn}}}n}{l{{Al{{l{c}}}}}{}}00````````````{eg{}{{b{c}}}{}}00044443333{l{{l{Ab}}}}000{{{l{j}}}{{l{jAb}}}}000{l{{l{c}}}{}}000{{{l{j}}}{{l{jc}}}{}}000{{{B`{c}}}e{}{}}000{{}e{}{{Bb{c}}}}0009999{{{l{Kj}}}Kj}{{l{l{jc}}}n{}}{ln}===={{}Kj}{C`{{l{c}}}{}}000{C`{{l{jc}}}{}}0009999{C`n}000`{{{l{Kj}}{l{Kj}}}Cf}{{{l{Kl}}{l{jCj}}}Cl}0{{l{l{Cn}}{l{jCj}}}{{Cb{nD`}}}}0{{{l{Kn}}{l{jCj}}}Cl}0{{{l{Kj}}{l{jCj}}}Cl}{cc{}}{L`Kl}{LbKl}2{L`Kn}{LdKn}4444444444{ce{}{}}000{{}C`}000{{}c{}}0000000{{{Dh{c}}}{{Dh{Ab}}}{}}000{{{Dj{c}}}{{Dj{Ab}}}{}}000{{{Dl{c}}}{{Dl{Ab}}}{}}000{{{B`{c}}}e{}{}}00044444444{{}{{Dn{c}}}{}}0005555{{}{{E`{c}}}{}}{{}{{E`{{Al{c}}}}}{}}100101{LfIj}{{}Il}{{{l{jc}}}{{Cb{JnK`}}}{KbKd}}{{{l{Lh}}}{{Cb{KjKl}}}}{{}{{Cb{nK`}}}}{Kh{{Cb{nK`}}}}`{KjLf}{lc{}}{lF`}0{lFb}0{{}{{Cb{c}}}{}}000{c{{Cb{e}}}{}{}}0001111{{}{{Cb{c{Fd{c}}}}}{}}000{lFf}000{ce{}{}}000{{}c{}}000{l{{Al{{l{c}}}}}{}}000{{{l{Kj}}{l{Lh}}}{{Cb{nKn}}}}","D":"ACb","p":[[10,"TransformMatrix",1694],[5,"Coordinate",0],[5,"Vector",0],[5,"Rotation",0],[0,"mut"],[1,"reference"],[1,"unit"],[5,"Joint",0],[10,"Any",1695],[5,"BoneId",0],[5,"BoneAxis",0],[5,"Skeleton",0],[5,"Bone",0],[6,"Option",1696],[1,"slice"],[5,"BakedParameters",1697],[10,"CastFrom",1698],[5,"Angle",0],[6,"BoneKind",0],[5,"JointId",0],[6,"BoneEnd",0],[6,"Ordering",1699],[1,"f32"],[1,"usize"],[6,"Result",1700],[10,"Deserializer",1701],[1,"bool"],[1,"str"],[5,"Formatter",1702],[8,"Result",1702],[5,"WidgetContext",1703],[5,"Error",1702],[5,"LabeledBoneKind",0],[1,"tuple"],[10,"Hasher",1704],[5,"Box",1705],[5,"Arc",1706],[5,"Rc",1707],[6,"ReadOnly",1708],[6,"Value",1708],[17,"Output"],[10,"FnMut",1709],[5,"ZeroToOne",1710],[10,"Into",1711],[10,"Serializer",1712],[5,"RangeInclusive",1713],[6,"Progress",1714],[5,"SmolStr",1715],[5,"String",1716],[5,"OutOfBounds",1717],[5,"TypeId",1695],[6,"Value",779],[5,"Animation",779],[5,"Timeline",779],[5,"Keyframe",779],[6,"Target",779],[6,"BoneProperty",779],[6,"JointProperty",779],[6,"PropertyUpdate",779],[5,"Frame",779],[1,"u32"],[5,"RunningAnimation",779],[6,"Cow",1718],[5,"Duration",1719],[6,"StandardEasing",1720],[6,"Target",1327],[6,"SkeletonMutation",1327],[5,"SkeletonCanvas",1327],[5,"Px",1721],[5,"Point",1722],[5,"EventContext",1703],[6,"CursorIcon",1723],[6,"ConstraintLimit",1724],[5,"Size",1725],[5,"LayoutContext",1703],[5,"UPx",1721],[5,"WidgetInstance",1726],[5,"Window",1727],[5,"WidgetTag",1726],[5,"Dynamic",1708],[6,"DeviceId",1727],[6,"MouseButton",1728],[8,"EventHandling",1726],[6,"MouseScrollDelta",1728],[6,"TouchPhase",1728],[10,"Send",1729],[5,"WindowHandle",1727],[6,"EventLoopError",1730],[10,"Application",1731],[10,"Sized",1729],[5,"GraphicsContext",1703],[5,"PendingApp",1731],[5,"EditingSkeleton",1495],[6,"ReadError",1495],[6,"SaveError",1495],[5,"Error",1732],[5,"Error",1733],[5,"PersistError",1734],[5,"SkeletonEditor",1495],[5,"Path",1735],[15,"Jointed",775],[15,"Rigid",775],[15,"Bone",1322],[15,"Joint",1322],[15,"SetDesiredEnd",1491],[15,"SetJointRotation",1491]],"r":[],"b":[[32,"impl-Add-for-Coordinate"],[33,"impl-Add%3CVector%3E-for-Coordinate"],[35,"impl-Add-for-Vector"],[36,"impl-Add%3CRotation%3E-for-Vector"],[318,"impl-Display-for-Angle"],[319,"impl-Debug-for-Angle"],[322,"impl-Display-for-Rotation"],[323,"impl-Debug-for-Rotation"],[400,"impl-Index%3CJointId%3E-for-Skeleton"],[401,"impl-Index%3CBoneId%3E-for-Skeleton"],[404,"impl-IndexMut%3CBoneId%3E-for-Skeleton"],[405,"impl-IndexMut%3CJointId%3E-for-Skeleton"],[644,"impl-Sub%3CVector%3E-for-Coordinate"],[645,"impl-Sub-for-Coordinate"],[1027,"impl-From%3Cbool%3E-for-Value"],[1028,"impl-From%3CVector%3E-for-Value"],[1029,"impl-From%3Cf32%3E-for-Value"],[1569,"impl-Display-for-ReadError"],[1570,"impl-Debug-for-ReadError"],[1573,"impl-Debug-for-SaveError"],[1574,"impl-Display-for-SaveError"],[1577,"impl-From%3CError%3E-for-ReadError"],[1578,"impl-From%3CError%3E-for-ReadError"],[1580,"impl-From%3CError%3E-for-SaveError"],[1581,"impl-From%3CPersistError%3E-for-SaveError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUGJAAUABIAKAA0AGQAQACmAC0A1wAEAN4AIwAEARsAIwEXAD4BEABRAQAAUwEAAFUBAABXAQAAYAEpAIsBAwCRAQEAlQEOALEBmgBZAgIAXwIBAGUCBQBwAgsAhQIEAIsCCQCWAgMAmwJnAAwD8AAEBAIACgQtAEIELwF1BQ0AhgWiACoGAQAtBgEAMQYPAEUGWQA="}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[872,24422]} \ No newline at end of file +//{"start":39,"fragment_lengths":[889,24422]} \ No newline at end of file diff --git a/main/src/FunnyBones/funnybones.rs.html b/main/src/FunnyBones/funnybones.rs.html index fe92367..2485541 100644 --- a/main/src/FunnyBones/funnybones.rs.html +++ b/main/src/FunnyBones/funnybones.rs.html @@ -158,7 +158,16 @@ 157 158 159 -160
//! The FunnyBones 2D Animation Editor.
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
//! The FunnyBones 2D Animation Editor.
 
 use std::path::PathBuf;
 
@@ -168,7 +177,7 @@
     widget::{MakeWidget, SharedCallback, HANDLED},
     widgets::layers::Modal,
     window::{MakeWindow, PendingWindow, Window, WindowHandle},
-    App, Application, ModifiersStateExt, Open, PendingApp, WithClone,
+    App, Application, ModifiersStateExt, Open, PendingApp, ShutdownGuard, WithClone,
 };
 use funnybones::editor::{EditingSkeleton, SaveError};
 
@@ -190,8 +199,21 @@
     };
     let path = Dynamic::new(path);
 
-    let on_error = SharedCallback::new(|err: SaveError| {
-        todo!("show {err}");
+    let on_error = SharedCallback::new({
+        let modals = modals.clone();
+        move |err: SaveError| {
+            modals.present(
+                format!("Error saving: {err}")
+                    .and("OK".into_button().on_click({
+                        let modals = modals.clone();
+                        move |_| {
+                            modals.dismiss();
+                        }
+                    }))
+                    .into_rows()
+                    .contain(),
+            );
+        }
     });
     let skeleton_editor = funnybones::editor::skeleton_editor(editing_skeleton.clone());
 
@@ -263,7 +285,6 @@
 fn main_menu_window(app: &impl Application) -> Window {
     let window = PendingWindow::default();
     let handle = window.handle();
-    let visible = Dynamic::new(true);
 
     window
         .with_root(
@@ -273,18 +294,19 @@
                     let mut app = app.as_app();
                     let handle = handle.clone();
                     move |_| {
-                        let _ = skeleton_window(None).open(&mut app);
+                        let _close_guard = app.prevent_shutdown();
                         handle.request_close();
+                        let _ = skeleton_window(None).open(&mut app);
                     }
                 })
                 .and("New Animation".into_button())
                 .and("Open Existing...".into_button().on_click({
                     let mut app = app.as_app();
                     let handle = handle.clone();
-                    let visible = visible.clone();
                     move |_| {
-                        visible.set(false);
-                        open_file(&mut app, &handle, true);
+                        let shutdown_guard = app.prevent_shutdown();
+                        open_file(&mut app, &handle, shutdown_guard);
+                        handle.request_close();
                     }
                 }))
                 .into_rows()
@@ -292,13 +314,11 @@
         )
         .resize_to_fit(true)
         .resizable(false)
-        .visible(visible)
 }
 
-fn open_file(app: &mut App, parent_window: &WindowHandle, close: bool) {
+fn open_file(app: &mut App, parent_window: &WindowHandle, close_guard: Option<ShutdownGuard>) {
     parent_window.execute({
         let mut app = app.clone();
-        let parent_window = parent_window.clone();
         move |context| {
             let dialog = rfd::FileDialog::new()
                 .add_filter("FunnyBones Skeleton (.fbs)", &["fbs"])
@@ -311,9 +331,7 @@
                         todo!("unknown file type");
                     }
                 }
-                if close {
-                    parent_window.request_close();
-                }
+                drop(close_guard);
             });
         }
     });