1 /* 2 * Copyright (c) 2009-2010 jMonkeyEngine 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 /** 34 * Author: Normen Hansen 35 */ 36 #include "com_jme3_bullet_collision_shapes_CollisionShape.h" 37 #include "jmeBulletUtil.h" 38 39 #ifdef __cplusplus 40 extern "C" { 41 #endif 42 43 /* 44 * Class: com_jme3_bullet_collision_shapes_CollisionShape 45 * Method: getMargin 46 * Signature: (J)F 47 */ Java_com_jme3_bullet_collision_shapes_CollisionShape_getMargin(JNIEnv * env,jobject object,jlong shapeId)48 JNIEXPORT jfloat JNICALL Java_com_jme3_bullet_collision_shapes_CollisionShape_getMargin 49 (JNIEnv * env, jobject object, jlong shapeId) { 50 btCollisionShape* shape = reinterpret_cast<btCollisionShape*>(shapeId); 51 if (shape == NULL) { 52 jclass newExc = env->FindClass("java/lang/NullPointerException"); 53 env->ThrowNew(newExc, "The native object does not exist."); 54 return 0; 55 } 56 return shape->getMargin(); 57 } 58 59 /* 60 * Class: com_jme3_bullet_collision_shapes_CollisionShape 61 * Method: setLocalScaling 62 * Signature: (JLcom/jme3/math/Vector3f;)V 63 */ Java_com_jme3_bullet_collision_shapes_CollisionShape_setLocalScaling(JNIEnv * env,jobject object,jlong shapeId,jobject scale)64 JNIEXPORT void JNICALL Java_com_jme3_bullet_collision_shapes_CollisionShape_setLocalScaling 65 (JNIEnv * env, jobject object, jlong shapeId, jobject scale) { 66 btCollisionShape* shape = reinterpret_cast<btCollisionShape*>(shapeId); 67 if (shape == NULL) { 68 jclass newExc = env->FindClass("java/lang/NullPointerException"); 69 env->ThrowNew(newExc, "The native object does not exist."); 70 return; 71 } 72 btVector3 scl = btVector3(); 73 jmeBulletUtil::convert(env, scale, &scl); 74 shape->setLocalScaling(scl); 75 } 76 77 /* 78 * Class: com_jme3_bullet_collision_shapes_CollisionShape 79 * Method: setMargin 80 * Signature: (JF)V 81 */ Java_com_jme3_bullet_collision_shapes_CollisionShape_setMargin(JNIEnv * env,jobject object,jlong shapeId,jfloat newMargin)82 JNIEXPORT void JNICALL Java_com_jme3_bullet_collision_shapes_CollisionShape_setMargin 83 (JNIEnv * env, jobject object, jlong shapeId, jfloat newMargin) { 84 btCollisionShape* shape = reinterpret_cast<btCollisionShape*>(shapeId); 85 if (shape == NULL) { 86 jclass newExc = env->FindClass("java/lang/NullPointerException"); 87 env->ThrowNew(newExc, "The native object does not exist."); 88 return; 89 } 90 shape->setMargin(newMargin); 91 } 92 93 /* 94 * Class: com_jme3_bullet_collision_shapes_CollisionShape 95 * Method: finalizeNative 96 * Signature: (J)V 97 */ Java_com_jme3_bullet_collision_shapes_CollisionShape_finalizeNative(JNIEnv * env,jobject object,jlong shapeId)98 JNIEXPORT void JNICALL Java_com_jme3_bullet_collision_shapes_CollisionShape_finalizeNative 99 (JNIEnv * env, jobject object, jlong shapeId) { 100 btCollisionShape* shape = reinterpret_cast<btCollisionShape*>(shapeId); 101 if (shape == NULL) { 102 jclass newExc = env->FindClass("java/lang/NullPointerException"); 103 env->ThrowNew(newExc, "The native object does not exist."); 104 return; 105 } 106 delete(shape); 107 } 108 #ifdef __cplusplus 109 } 110 #endif 111