22 #include <odinseq/seqgrad.h>
23 #include <odinseq/seqdur.h>
24 #include <odinseq/seqdriver.h>
25 #include <odinseq/seqvec.h>
28 #define _GRADROTMATRIX_LIMIT_ 1.0e-5
46 virtual STD_string get_const_program (
float strength,
float matrixfactor)
const = 0;
47 virtual STD_string get_onepoint_program(
float strength,
float matrixfactor)
const = 0;
48 virtual STD_string get_delay_program (
float strength,
float matrixfactor)
const = 0;
49 virtual STD_string get_wave_program (
float strength,
float matrixfactor)
const = 0;
50 virtual STD_string get_trapez_program (
float strength,
float matrixfactor)
const = 0;
51 virtual STD_string get_vector_program (
float strength,
float matrixfactor,
int reordercount)
const = 0;
53 virtual svector get_vector_commands(
const STD_string& iterator)
const = 0;
54 virtual svector get_reord_commands()
const = 0;
56 virtual bool prep_const(
float strength,
const fvector& strengthfactor,
double gradduration) = 0;
58 virtual bool prep_onepoint(
float strength,
const fvector& strengthfactor,
double gradduration) = 0;
60 virtual bool prep_wave(
float strength,
const fvector& strengthfactor,
double gradduration,
const fvector& wave) = 0;
61 virtual void update_wave(
const fvector& wave) = 0;
63 virtual bool prep_vector(
float strength,
const fvector& strengthfactor,
double gradduration,
65 virtual bool prep_vector_iteration(
unsigned int count) = 0;
67 virtual bool prep_trapez(
float strength,
const fvector& strengthfactor,
double ruptime,
const fvector& rupshape,
double consttime,
double rdowntime,
const fvector& rdownshape) = 0;
70 virtual void event(
eventContext& context,
double starttime)
const = 0;
72 virtual float check_strength(
float strength)
const = 0;
94 float gradstrength,
double gradduration);
99 SeqGradChan(
const STD_string& object_label =
"unnamedSeqGradChan" );
130 virtual void resize(
unsigned int newsize) {}
148 STD_string get_grdpart_rot(
direction chan)
const;
173 virtual SeqGradChan& get_subchan(
double starttime,
double endtime)
const = 0;
179 virtual STD_string get_grdpart(
float matrixfactor)
const = 0;
184 virtual float get_integral()
const = 0;
double get_duration() const
SeqGradChan(const SeqGradChan &sgc)
virtual direction get_channel() const
SeqGradChan(const STD_string &object_label="unnamedSeqGradChan")
float get_strength() const
STD_string get_properties() const
fvector get_gradintegral() const
virtual int get_wavesize() const
SeqGradInterface & set_gradrotmatrix(const RotMatrix &matrix)
SeqGradChan & operator=(const SeqGradChan &sgc)
virtual void resize(unsigned int newsize)
SeqGradInterface & invert_strength()
double get_gradduration() const
SeqGradChan(const STD_string &object_label, direction gradchannel, float gradstrength, double gradduration)
fvector get_grdfactors_norot() const
unsigned int event(eventContext &context) const
SeqGradInterface & set_strength(float gradstrength)
float get_grdfactor(direction chan) const