2 #include "a/trajbell.h"
3 #include "liba_trajbell.h"
6 #define L Java_liba_trajbell
13 JNIEXPORT
void JNICALL
Java_liba_trajbell_clinit(JNIEnv
*_env
, jclass _cls
)
15 jclass _bb
= (*_env
)->FindClass(_env
, "Ljava/nio/ByteBuffer;");
16 L
.ctx
= (*_env
)->GetFieldID(_env
, _cls
, "ctx", "Ljava/nio/ByteBuffer;");
17 L
.alloc
= (*_env
)->GetStaticMethodID(_env
, _bb
, "allocateDirect", "(I)Ljava/nio/ByteBuffer;");
20 JNIEXPORT
void JNICALL
Java_liba_trajbell_init(JNIEnv
*_env
, jobject _obj
)
22 jobject _ctx
= (*_env
)->CallObjectMethod(_env
, _obj
, L
.alloc
, (jint
)sizeof(a_trajbell
));
23 (*_env
)->SetObjectField(_env
, _obj
, L
.ctx
, _ctx
);
26 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_gen(JNIEnv
*_env
, jobject _obj
, jdouble jm
, jdouble am
, jdouble vm
, jdouble p0
, jdouble p1
, jdouble vs
, jdouble ve
)
28 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
29 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
30 return a_trajbell_gen(ctx
, jm
, am
, vm
, p0
, p1
, vs
, ve
);
33 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_t(JNIEnv
*_env
, jobject _obj
)
35 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
36 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
40 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_tv(JNIEnv
*_env
, jobject _obj
)
42 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
43 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
47 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_ta(JNIEnv
*_env
, jobject _obj
)
49 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
50 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
54 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_td(JNIEnv
*_env
, jobject _obj
)
56 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
57 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
61 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_taj(JNIEnv
*_env
, jobject _obj
)
63 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
64 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
68 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_tdj(JNIEnv
*_env
, jobject _obj
)
70 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
71 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
75 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_p0(JNIEnv
*_env
, jobject _obj
)
77 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
78 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
82 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_p1(JNIEnv
*_env
, jobject _obj
)
84 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
85 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
89 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_v0(JNIEnv
*_env
, jobject _obj
)
91 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
92 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
96 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_v1(JNIEnv
*_env
, jobject _obj
)
98 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
99 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
103 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_vm(JNIEnv
*_env
, jobject _obj
)
105 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
106 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
110 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_jm(JNIEnv
*_env
, jobject _obj
)
112 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
113 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
117 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_am(JNIEnv
*_env
, jobject _obj
)
119 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
120 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
124 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_dm(JNIEnv
*_env
, jobject _obj
)
126 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
127 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
131 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_pos(JNIEnv
*_env
, jobject _obj
, jdouble dt
)
133 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
134 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
135 return a_trajbell_pos(ctx
, dt
);
138 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_vel(JNIEnv
*_env
, jobject _obj
, jdouble dt
)
140 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
141 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
142 return a_trajbell_vel(ctx
, dt
);
145 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_acc(JNIEnv
*_env
, jobject _obj
, jdouble dt
)
147 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
148 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
149 return a_trajbell_acc(ctx
, dt
);
152 JNIEXPORT jdouble JNICALL
Java_liba_trajbell_jer(JNIEnv
*_env
, jobject _obj
, jdouble dt
)
154 jobject _ctx
= (*_env
)->GetObjectField(_env
, _obj
, L
.ctx
);
155 a_trajbell
*ctx
= (a_trajbell
*)(*_env
)->GetDirectBufferAddress(_env
, _ctx
);
156 return a_trajbell_jer(ctx
, dt
);