Skip to content

Commit 64f266d

Browse files
committed
Embed examples and rework persistence
- add menu bar with: File, Examples, Settings, Help - embed examples into binary - Rework persistance on WASM: move current behavior into modals accessed via File menu - Rework persistance on Desktop: use file dialogs
1 parent c657a06 commit 64f266d

33 files changed

Lines changed: 1115 additions & 223 deletions

Cargo.lock

Lines changed: 121 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ bytemuck = "1"
4747
cfg-if = "1"
4848
egui_plot="0.34"
4949
send_wrapper = "0.6"
50+
egui-file-dialog ="0.12"
5051
# enum-map="2.7"
5152

5253
# egui_extras={version = "0.33", features=["syntect"]}
@@ -64,6 +65,7 @@ smallvec = {version = "1", features = ["union"]}
6465
rayon={version="1", features=["web_spin_lock"]}
6566
thread_local="1"
6667
regex = "1"
68+
include_dir="0.7"
6769
# needed so dependencies downstream can compile to wasm
6870
getrandom = { version = "0.3", features = ["wasm_js"] }
6971
# egui_nerdfonts = {path = "../../contrib/egui_nerdfonts"}

evalexpr/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#![deny(missing_docs)]
1414
#![forbid(unsafe_code)]
1515
#![allow(clippy::get_first)]
16-
#![feature(vec_into_raw_parts)]
1716

1817
pub use crate::context::HashMapContext;
1918
pub use crate::error::{EvalexprError, EvalexprResult};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"entries":[{"id":0,"name":"c","visible":false,"color":{"DefaultColor":2},"ty":{"Constant":{"value":7.0,"step":1.0,"ty":{"LoopForwardAndBackward":{"forward":false}},"range_start":{"text":"0","display_rational":false},"range_end":{"text":"15","display_rational":false}}}},{"id":1,"name":"","visible":true,"color":{"DefaultColor":3},"ty":{"Function":{"func":{"text":"sin(x)","display_rational":false},"ranged":false,"range_start":{"text":"","display_rational":false},"range_end":{"text":"","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":2,"name":"","visible":true,"color":{"DefaultColor":4},"ty":{"Function":{"func":{"text":"Sum(0..c, n,\n(-1)^n * x^(2*n+1) / (2*n+1)!) ","display_rational":false},"ranged":false,"range_start":{"text":"","display_rational":false},"range_end":{"text":"","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}}],"graph_config":{"graph_plot_bounds":{"center":[0.860347490120656,2.3413227424037046],"h_size":44.09270495562461,"data_aspect":0.9999999999999996},"allow_zoom":[true,true],"allow_scroll":[true,true],"show_axes":[true,true],"invert_axes":[false,false],"show_grid":[true,true],"x_axis_label":"","y_axis_label":"","clamp_grid":false,"grid_spacing":[8.0,300.0]},"id_generator":{"next_id":3}}

examples/Circle to Hyperbola.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"entries":[{"id":0,"name":"","visible":true,"color":{"DefaultColor":0},"ty":{"Function":{"func":{"text":"x^2 + y^2 = 1","display_rational":false},"ranged":false,"range_start":{"text":"-2","display_rational":false},"range_end":{"text":"2","display_rational":false},"style":{"selectable":false,"line_width":1.0,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":1,"name":"","visible":true,"color":{"DefaultColor":2},"ty":{"Function":{"func":{"text":"x^2 - y^2 = 1","display_rational":false},"ranged":false,"range_start":{"text":"-2","display_rational":false},"range_end":{"text":"2","display_rational":false},"style":{"selectable":false,"line_width":1.0,"line_style":"Solid","line_style_size":4.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":2,"name":"t","visible":true,"color":{"DefaultColor":3},"ty":{"Constant":{"value":0.46999999999999953,"step":0.01,"ty":{"LoopForwardAndBackward":{"forward":false}},"range_start":{"text":"0","display_rational":false},"range_end":{"text":"1","display_rational":false}}}},{"id":3,"name":"hermite","visible":false,"color":{"DefaultColor":5},"ty":{"Function":{"func":{"text":"3*x^2 - 2* x^3","display_rational":false},"ranged":false,"range_start":{"text":"-2","display_rational":false},"range_end":{"text":"2","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":4,"name":"smooth","visible":false,"color":{"DefaultColor":6},"ty":{"Function":{"func":{"text":"hermite(hermite(x))","display_rational":false},"ranged":false,"range_start":{"text":"-2","display_rational":false},"range_end":{"text":"2","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":5,"name":"","visible":true,"color":{"DefaultColor":7},"ty":{"Function":{"func":{"text":"x^2 + y^2 -smooth(t)*(2*y^2) <= 1","display_rational":false},"ranged":false,"range_start":{"text":"-2","display_rational":false},"range_end":{"text":"2","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}}],"graph_config":{"graph_plot_bounds":{"center":[0.0,0.0],"h_size":4.0,"data_aspect":0.9999999999999964},"allow_zoom":[true,true],"allow_scroll":[true,true],"show_axes":[true,true],"invert_axes":[false,false],"show_grid":[true,true],"x_axis_label":"","y_axis_label":"","clamp_grid":false,"grid_spacing":[8.0,300.0]},"id_generator":{"next_id":6}}

examples/Color picker.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"entries":[{"id":0,"name":"A","visible":false,"color":{"DefaultColor":2},"ty":{"Folder":{"entries":[{"id":1,"name":"a","visible":false,"color":{"DefaultColor":11},"ty":{"Constant":{"value":2.931144037696142,"step":0.01,"ty":{"LoopForwardAndBackward":{"forward":true}},"range_start":{"text":"-10","display_rational":false},"range_end":{"text":"10","display_rational":false}}}},{"id":2,"name":"A","visible":true,"color":{"DefaultColor":11},"ty":{"Points":{"points":[],"points_ty":{"Separate":{"points":[{"x":{"text":"a","display_rational":false},"y":{"text":"0","display_rational":false},"drag_type":"X"}]}},"style":{"show_lines":true,"show_arrows":false,"show_points":true,"line_style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"label_config":{"text":"","size":"Medium","pos":"TRight","italic":false,"angle":{"text":"","display_rational":false}},"fill":false,"fill_rule":"EvenOdd","connect_first_and_last":false,"fill_alpha":128}}}}]}}},{"id":3,"name":"B","visible":false,"color":{"DefaultColor":3},"ty":{"Folder":{"entries":[{"id":4,"name":"b","visible":false,"color":{"DefaultColor":0},"ty":{"Constant":{"value":1.794508116367872,"step":0.01,"ty":{"LoopForwardAndBackward":{"forward":true}},"range_start":{"text":"-10","display_rational":false},"range_end":{"text":"10","display_rational":false}}}},{"id":5,"name":"B","visible":true,"color":{"DefaultColor":0},"ty":{"Points":{"points":[],"points_ty":{"Separate":{"points":[{"x":{"text":"0","display_rational":false},"y":{"text":"b","display_rational":false},"drag_type":"Y"}]}},"style":{"show_lines":true,"show_arrows":false,"show_points":true,"line_style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"label_config":{"text":"","size":"Medium","pos":"TLeft","italic":false,"angle":{"text":"","display_rational":false}},"fill":false,"fill_rule":"EvenOdd","connect_first_and_last":false,"fill_alpha":128}}}}]}}},{"id":6,"name":"Ellipse","visible":false,"color":{"DefaultColor":8},"ty":{"Folder":{"entries":[{"id":7,"name":"ellipse","visible":true,"color":{"DefaultColor":10},"ty":{"Function":{"func":{"text":"x^2/a^2 + y^2/b^2 = 1","display_rational":false},"ranged":false,"range_start":{"text":"","display_rational":false},"range_end":{"text":"","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":8,"name":"e_f1","visible":true,"color":{"DefaultColor":10},"ty":{"Points":{"points":[],"points_ty":{"Separate":{"points":[{"x":{"text":"-sqrt(a^2-b^2)","display_rational":false},"y":{"text":"0","display_rational":false},"drag_type":"X"}]}},"style":{"show_lines":true,"show_arrows":false,"show_points":true,"line_style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"label_config":{"text":"","size":"Small","pos":"Bottom","italic":true,"angle":{"text":"","display_rational":false}},"fill":false,"fill_rule":"EvenOdd","connect_first_and_last":false,"fill_alpha":128}}}},{"id":9,"name":"e_f2","visible":true,"color":{"DefaultColor":10},"ty":{"Points":{"points":[],"points_ty":{"Separate":{"points":[{"x":{"text":"sqrt(a^2-b^2)","display_rational":false},"y":{"text":"0","display_rational":false},"drag_type":"X"}]}},"style":{"show_lines":true,"show_arrows":false,"show_points":true,"line_style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"label_config":{"text":"","size":"Small","pos":"Bottom","italic":true,"angle":{"text":"","display_rational":false}},"fill":false,"fill_rule":"EvenOdd","connect_first_and_last":false,"fill_alpha":128}}}}]}}},{"id":10,"name":"Hyperbola","visible":false,"color":{"DefaultColor":9},"ty":{"Folder":{"entries":[{"id":11,"name":"hyperbola","visible":true,"color":{"DefaultColor":16},"ty":{"Function":{"func":{"text":"x^2/a^2 - y^2/b^2 = 1","display_rational":false},"ranged":false,"range_start":{"text":"","display_rational":false},"range_end":{"text":"","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":12,"name":"","visible":true,"color":{"DefaultColor":16},"ty":{"Function":{"func":{"text":"x * b/a ","display_rational":false},"ranged":false,"range_start":{"text":"","display_rational":false},"range_end":{"text":"","display_rational":false},"style":{"selectable":false,"line_width":1.0,"line_style":"Dashed","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":13,"name":"","visible":true,"color":{"DefaultColor":16},"ty":{"Function":{"func":{"text":"-x * b/a","display_rational":false},"ranged":false,"range_start":{"text":"","display_rational":false},"range_end":{"text":"","display_rational":false},"style":{"selectable":false,"line_width":1.0,"line_style":"Dashed","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":14,"name":"h_f1","visible":true,"color":{"DefaultColor":16},"ty":{"Points":{"points":[],"points_ty":{"Separate":{"points":[{"x":{"text":"-sqrt(a^2+b^2)","display_rational":false},"y":{"text":"0","display_rational":false},"drag_type":"X"}]}},"style":{"show_lines":true,"show_arrows":false,"show_points":true,"line_style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"label_config":{"text":"","size":"Small","pos":"Bottom","italic":true,"angle":{"text":"","display_rational":false}},"fill":false,"fill_rule":"EvenOdd","connect_first_and_last":false,"fill_alpha":128}}}},{"id":15,"name":"h_f2","visible":true,"color":{"DefaultColor":16},"ty":{"Points":{"points":[],"points_ty":{"Separate":{"points":[{"x":{"text":"sqrt(a^2+b^2)","display_rational":false},"y":{"text":"0","display_rational":false},"drag_type":"X"}]}},"style":{"show_lines":true,"show_arrows":false,"show_points":true,"line_style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"label_config":{"text":"","size":"Small","pos":"Bottom","italic":true,"angle":{"text":"","display_rational":false}},"fill":false,"fill_rule":"EvenOdd","connect_first_and_last":false,"fill_alpha":128}}}}]}}},{"id":16,"name":"Ellipse to hyperbola","visible":false,"color":{"DefaultColor":8},"ty":{"Folder":{"entries":[{"id":17,"name":"hermite","visible":false,"color":{"DefaultColor":9},"ty":{"Function":{"func":{"text":"3*x^2 -2*x^3","display_rational":false},"ranged":false,"range_start":{"text":"-2","display_rational":false},"range_end":{"text":"2","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}},{"id":18,"name":"t","visible":true,"color":{"DefaultColor":10},"ty":{"Constant":{"value":0.00499999999999918,"step":0.005,"ty":{"LoopForwardAndBackward":{"forward":false}},"range_start":{"text":"0","display_rational":false},"range_end":{"text":"1","display_rational":false}}}},{"id":19,"name":"","visible":true,"color":{"DefaultColor":9},"ty":{"Function":{"func":{"text":"x^2/a^2 + y^2/b^2 - 2* t *(y^2/b^2) <= 1","display_rational":false},"ranged":false,"range_start":{"text":"-2","display_rational":false},"range_end":{"text":"2","display_rational":false},"style":{"selectable":false,"line_width":1.5,"line_style":"Solid","line_style_size":5.5},"implicit_resolution":200,"parametric_fill":false,"fill_rule":"EvenOdd","fill_alpha":128}}}]}}}],"graph_config":{"graph_plot_bounds":{"center":[0.2619713175764753,0.18115468804083434],"h_size":10.873128571745172,"data_aspect":1.0000000000000009},"allow_zoom":[true,true],"allow_scroll":[true,true],"show_axes":[true,true],"invert_axes":[false,false],"show_grid":[true,true],"x_axis_label":"","y_axis_label":"","clamp_grid":false,"grid_spacing":[8.0,300.0]},"id_generator":{"next_id":20}}

0 commit comments

Comments
 (0)