@@ -25,8 +25,8 @@ pub struct KinematicsApp {
2525
2626 /// Current direction.
2727 current_target_pos : Pos2 ,
28- /// Stop following .
29- paused : bool ,
28+ /// Movement speed .
29+ speed : f32 ,
3030 /// Shows that parameters have changed.
3131 regenerate : bool ,
3232}
@@ -40,7 +40,7 @@ impl Default for KinematicsApp {
4040 width : 1.0 ,
4141 width_factor : 0.0 ,
4242 current_target_pos : Pos2 :: default ( ) ,
43- paused : false ,
43+ speed : 1.0 ,
4444 regenerate : true ,
4545 }
4646 }
@@ -59,9 +59,7 @@ impl KinematicsApp {
5959 ui. available_rect_before_wrap ( ) ,
6060 ) ;
6161
62- if !self . paused {
63- self . current_target_pos = target_pos;
64- } ;
62+ self . current_target_pos = target_pos;
6563 self . paint ( & painter, self . current_target_pos ) ;
6664
6765 // Make sure we allocate what we used (everything)
@@ -86,16 +84,15 @@ impl KinematicsApp {
8684
8785 /// Adds UI options for the app.
8886 fn add_ui_options ( & mut self , ui : & mut Ui ) {
89- ui. checkbox ( & mut self . paused , "Paused" ) ;
90-
87+ let speed = ui. add ( Slider :: new ( & mut self . speed , 0.0 ..=10.0 ) . text ( "Speed" ) ) ;
9188 let n_segments =
9289 ui. add ( Slider :: new ( & mut self . segments_amount , 1 ..=500 ) . text ( "segments number" ) ) ;
9390 let length = ui. add ( Slider :: new ( & mut self . length , 0.1 ..=100.0 ) . text ( "length" ) ) ;
9491 let width = ui. add ( Slider :: new ( & mut self . width , 0.1 ..=100.0 ) . text ( "width" ) ) ;
9592 let width_factor =
9693 ui. add ( Slider :: new ( & mut self . width_factor , -5.0 ..=5.0 ) . text ( "width factor" ) ) ;
9794
98- if [ n_segments, length, width, width_factor]
95+ if [ n_segments, length, width, width_factor, speed ]
9996 . iter ( )
10097 . any ( eframe:: egui:: Response :: changed)
10198 {
@@ -155,7 +152,8 @@ impl App for KinematicsApp {
155152 . last ( )
156153 . is_none_or ( |segment| segment. end ( ) . x > 0.0 )
157154 {
158- vec2 ( -1.0 , 1.0 )
155+ let speed = self . speed ;
156+ vec2 ( -speed, speed)
159157 } else {
160158 Vec2 :: ZERO
161159 } ;
0 commit comments