2 #include "a/trajpoly7.h"
3 #include "liba_trajpoly7.h"
6 #define L Java_liba_trajpoly7
13 JNIEXPORT
void JNICALL
Java_liba_trajpoly7_clinit(JNIEnv
*_env
, jclass _cls
)
15 jclass _nbb
= (*_env
)->FindClass(_env
, "Ljava/nio/ByteBuffer;");
16 L
._new
= (*_env
)->GetStaticMethodID(_env
, _nbb
, "allocateDirect", "(I)Ljava/nio/ByteBuffer;");
17 L
.ctx
= (*_env
)->GetFieldID(_env
, _cls
, "ctx", "Ljava/nio/ByteBuffer;");
20 JNIEXPORT jobject JNICALL
Java_liba_trajpoly7_gen(JNIEnv
*_env
, jobject _obj
, jdouble ts
, jdouble p0
, jdouble p1
, jdouble v0
, jdouble v1
, jdouble a0
, jdouble a1
, jdouble j0
, jdouble j1
)
22 jobject _ctx
= (*_env
)->CallObjectMethod(_env
, _obj
, L
._new
, (jint
)sizeof(a_trajpoly7
));
23 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
24 (*_env
)->SetObjectField(_env
, _obj
, L
.ctx
, _ctx
);
25 a_trajpoly7_gen(ctx
, ts
, p0
, p1
, v0
, v1
, a0
, a1
, j0
, j1
);
29 JNIEXPORT jobject JNICALL
Java_liba_trajpoly7_p(JNIEnv
*_env
, jobject _obj
)
31 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
32 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
33 jobject p
= (*_env
)->NewDoubleArray(_env
, A_LEN(ctx
->p
));
34 (*_env
)->SetDoubleArrayRegion(_env
, p
, 0, A_LEN(ctx
->p
), ctx
->p
);
38 JNIEXPORT jobject JNICALL
Java_liba_trajpoly7_v(JNIEnv
*_env
, jobject _obj
)
40 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
41 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
42 jobject v
= (*_env
)->NewDoubleArray(_env
, A_LEN(ctx
->v
));
43 (*_env
)->SetDoubleArrayRegion(_env
, v
, 0, A_LEN(ctx
->v
), ctx
->v
);
47 JNIEXPORT jobject JNICALL
Java_liba_trajpoly7_a(JNIEnv
*_env
, jobject _obj
)
49 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
50 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
51 jobject a
= (*_env
)->NewDoubleArray(_env
, A_LEN(ctx
->a
));
52 (*_env
)->SetDoubleArrayRegion(_env
, a
, 0, A_LEN(ctx
->a
), ctx
->a
);
56 JNIEXPORT jobject JNICALL
Java_liba_trajpoly7_j(JNIEnv
*_env
, jobject _obj
)
58 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
59 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
60 jobject j
= (*_env
)->NewDoubleArray(_env
, A_LEN(ctx
->j
));
61 (*_env
)->SetDoubleArrayRegion(_env
, j
, 0, A_LEN(ctx
->j
), ctx
->j
);
65 JNIEXPORT jdouble JNICALL
Java_liba_trajpoly7_pos(JNIEnv
*_env
, jobject _obj
, jdouble x
)
67 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
68 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
69 return a_trajpoly7_pos(ctx
, x
);
72 JNIEXPORT jdouble JNICALL
Java_liba_trajpoly7_vel(JNIEnv
*_env
, jobject _obj
, jdouble x
)
74 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
75 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
76 return a_trajpoly7_vel(ctx
, x
);
79 JNIEXPORT jdouble JNICALL
Java_liba_trajpoly7_acc(JNIEnv
*_env
, jobject _obj
, jdouble x
)
81 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
82 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
83 return a_trajpoly7_acc(ctx
, x
);
86 JNIEXPORT jdouble JNICALL
Java_liba_trajpoly7_jer(JNIEnv
*_env
, jobject _obj
, jdouble x
)
88 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
89 a_trajpoly7
*ctx
= (a_trajpoly7
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
90 return a_trajpoly7_jer(ctx
, x
);