#ifndef LIBA_TRAJPOLY5_H
#define LIBA_TRAJPOLY5_H
#include "a.h"
typedef struct a_trajpoly5 a_trajpoly5;
#if !defined A_TRAJPOLY5
#define A_TRAJPOLY5 3
#endif
#if defined(__cplusplus)
extern "C" {
#endif
A_EXTERN void a_trajpoly5_gen(a_trajpoly5 *ctx, a_float ts,
a_float p0, a_float p1,
a_float v0, a_float v1,
a_float a0, a_float a1);
A_EXTERN void a_trajpoly5_gen0(a_trajpoly5 *ctx, a_float ts,
a_float p0, a_float p1,
a_float v0, a_float v1,
a_float a0, a_float a1);
#if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 1)
A_EXTERN void a_trajpoly5_gen1(a_trajpoly5 *ctx);
#endif
#if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 2)
A_EXTERN void a_trajpoly5_gen2(a_trajpoly5 *ctx);
#endif
A_EXTERN a_float a_trajpoly5_pos(a_trajpoly5 const *ctx, a_float x);
#if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 1)
A_EXTERN a_float a_trajpoly5_vel(a_trajpoly5 const *ctx, a_float x);
#endif
#if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 2)
A_EXTERN a_float a_trajpoly5_acc(a_trajpoly5 const *ctx, a_float x);
#endif
#if defined(__cplusplus)
}
namespace a
{
typedef struct a_trajpoly5 trajpoly5;
}
#endif
struct a_trajpoly5
{
a_float p[6]; #if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 1)
a_float v[5]; #endif
#if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 2)
a_float a[4]; #endif
#if defined(__cplusplus)
A_INLINE void gen(a_float ts, a_float p0, a_float p1,
a_float v0 = 0, a_float v1 = 0,
a_float a0 = 0, a_float a1 = 0)
{
a_trajpoly5_gen(this, ts, p0, p1, v0, v1, a0, a1);
}
A_INLINE void gen0(a_float ts, a_float p0, a_float p1,
a_float v0 = 0, a_float v1 = 0,
a_float a0 = 0, a_float a1 = 0)
{
a_trajpoly5_gen0(this, ts, p0, p1, v0, v1, a0, a1);
}
A_INLINE a_float pos(a_float x) const
{
return a_trajpoly5_pos(this, x);
}
#if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 1)
A_INLINE void gen1() { a_trajpoly5_gen1(this); }
A_INLINE a_float vel(a_float x) const
{
return a_trajpoly5_vel(this, x);
}
#endif
#if defined(A_TRAJPOLY5) && (A_TRAJPOLY5 + 0 > 2)
A_INLINE void gen2() { a_trajpoly5_gen2(this); }
A_INLINE a_float acc(a_float x) const
{
return a_trajpoly5_acc(this, x);
}
#endif
#endif
};
#endif