|
- #ifndef LICKS_DYNAMIC_SEQUENCER_H
- #define LICKS_DYNAMIC_SEQUENCER_H
-
- #include <stdint.h>
- #include "linalg.h"
- #include "ik.h"
-
- typedef enum { seq_nop=0, seq_move_body, seq_rotate_body, seq_move_leg, seq_rotate_leg, seq_move_leg_parabolic, seq_walk } sequencer_command;
-
- typedef struct {
- sequencer_command command;
-
- uint32_t frame_delay;
- uint32_t frame_duration;
- uint32_t frame_t;
-
- vector3d arg_vector3d;
- int arg_int;
- double arg_double;
- void *arg_pointer;
- void *arg_pointer2;
-
- } sequencer_entry;
-
- typedef struct {
- double step_height;
- int step_duration;
-
- vector3d step_direction;
- double step_rotation;
-
- vector3d last_step_direction;
- double last_step_rotation;
-
- } sequencer_walk_parameters;
-
- extern void sequencer_init();
- extern void sequencer_dump();
- extern void sequencer_run_frame(bot *b);
-
- extern sequencer_entry *sequencer_new_entry();
- extern void sequencer_move_body(int,int,vector3d *);
- extern void sequencer_rotate_body(int,int,vector3d *);
- extern void sequencer_rotate_deg_body(int,int,vector3d *);
- extern void sequencer_move_leg(int,int,int,vector3d *);
- extern void sequencer_rotate_leg(int, int, int, vector3d *);
- extern void sequencer_move_leg_parabolic(int,int,int,vector3d *);
- extern void sequencer_tripod_walk(int,int,vector3d *, double,double, int);
- extern void sequencer_walk(sequencer_walk_parameters *p);
- #endif
-
|