- 128 名前:117 [02/12/31 20:10]
- JNIEXPORT void JNICALL Java_Point3d_add(JNIEnv* env, jobject me, jobject p){
jclass cls = env->GetObjectClass(me); jfieldID fid_x = env->GetFieldID(cls, "x", "D"); jfieldID fid_y = env->GetFieldID(cls, "y", "D"); jfieldID fid_z = env->GetFieldID(cls, "z", "D"); jdouble this_x = env->GetDoubleField(me, fid_x); jdouble this_y = env->GetDoubleField(me, fid_y); jdouble this_z = env->GetDoubleField(me, fid_z); jdouble p_x = env->GetDoubleField(p, fid_x); jdouble p_y = env->GetDoubleField(p, fid_y); jdouble p_z = env->GetDoubleField(p, fid_z); env->SetDoubleField(me, fid_x, this_x+p_x); env->SetDoubleField(me, fid_y, this_y+p_y); env->SetDoubleField(me, fid_z, this_z+p_z); } JNIEXPORT void JNICALL Java_Point3d_exe(JNIEnv* env, jobject me){ jclass cls = env->GetObjectClass(me); jfieldID fid_x = env->GetFieldID(cls, "x", "D");jfieldID fid_y = env->GetFieldID(cls, "y", "D");jfieldID fid_z = env->GetFieldID(cls, "z", "D"); jdouble x = env->GetDoubleField(me, fid_x);jdouble y = env->GetDoubleField(me, fid_y);jdouble z = env->GetDoubleField(me, fid_z); for (int i = 0; i < 0xfffffff; i++) { x += 1.0; y += 1.0; z += 1.0; } env->SetDoubleField(me, fid_x, (jdouble) x); env->SetDoubleField(me, fid_y, (jdouble) y); env->SetDoubleField(me, fid_z, (jdouble) z); } this.x += p.x;を実装するたけでも↑のようなコードが必要っぽい. なんか他にいい方法ないですかね?
|

|