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_SimplexCollisionShape.h"
37#include "jmeBulletUtil.h"
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43    /*
44     * Class:     com_jme3_bullet_collision_shapes_SimplexCollisionShape
45     * Method:    createShape
46     * Signature: (Lcom/jme3/math/Vector3f;)J
47     */
48    JNIEXPORT jlong JNICALL Java_com_jme3_bullet_collision_shapes_SimplexCollisionShape_createShape__Lcom_jme3_math_Vector3f_2
49    (JNIEnv *env, jobject object, jobject vector1) {
50        jmeClasses::initJavaClasses(env);
51        btVector3 vec1 = btVector3();
52        jmeBulletUtil::convert(env, vector1, &vec1);
53        btBU_Simplex1to4* simplexShape = new btBU_Simplex1to4(vec1);
54        return reinterpret_cast<jlong>(simplexShape);
55    }
56
57    /*
58     * Class:     com_jme3_bullet_collision_shapes_SimplexCollisionShape
59     * Method:    createShape
60     * Signature: (Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;)J
61     */
62    JNIEXPORT jlong JNICALL Java_com_jme3_bullet_collision_shapes_SimplexCollisionShape_createShape__Lcom_jme3_math_Vector3f_2Lcom_jme3_math_Vector3f_2
63    (JNIEnv *env, jobject object, jobject vector1, jobject vector2) {
64        jmeClasses::initJavaClasses(env);
65        btVector3 vec1 = btVector3();
66        jmeBulletUtil::convert(env, vector1, &vec1);
67        btVector3 vec2 = btVector3();
68        jmeBulletUtil::convert(env, vector2, &vec2);
69        btBU_Simplex1to4* simplexShape = new btBU_Simplex1to4(vec1, vec2);
70        return reinterpret_cast<jlong>(simplexShape);
71    }
72    /*
73     * Class:     com_jme3_bullet_collision_shapes_SimplexCollisionShape
74     * Method:    createShape
75     * Signature: (Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;)J
76     */
77    JNIEXPORT jlong JNICALL Java_com_jme3_bullet_collision_shapes_SimplexCollisionShape_createShape__Lcom_jme3_math_Vector3f_2Lcom_jme3_math_Vector3f_2Lcom_jme3_math_Vector3f_2
78    (JNIEnv * env, jobject object, jobject vector1, jobject vector2, jobject vector3) {
79        jmeClasses::initJavaClasses(env);
80        btVector3 vec1 = btVector3();
81        jmeBulletUtil::convert(env, vector1, &vec1);
82        btVector3 vec2 = btVector3();
83        jmeBulletUtil::convert(env, vector2, &vec2);
84        btVector3 vec3 = btVector3();
85        jmeBulletUtil::convert(env, vector3, &vec3);
86        btBU_Simplex1to4* simplexShape = new btBU_Simplex1to4(vec1, vec2, vec3);
87        return reinterpret_cast<jlong>(simplexShape);
88    }
89    /*
90     * Class:     com_jme3_bullet_collision_shapes_SimplexCollisionShape
91     * Method:    createShape
92     * Signature: (Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;)J
93     */
94    JNIEXPORT jlong JNICALL Java_com_jme3_bullet_collision_shapes_SimplexCollisionShape_createShape__Lcom_jme3_math_Vector3f_2Lcom_jme3_math_Vector3f_2Lcom_jme3_math_Vector3f_2Lcom_jme3_math_Vector3f_2
95    (JNIEnv * env, jobject object, jobject vector1, jobject vector2, jobject vector3, jobject vector4) {
96        jmeClasses::initJavaClasses(env);
97        btVector3 vec1 = btVector3();
98        jmeBulletUtil::convert(env, vector1, &vec1);
99        btVector3 vec2 = btVector3();
100        jmeBulletUtil::convert(env, vector2, &vec2);
101        btVector3 vec3 = btVector3();
102        jmeBulletUtil::convert(env, vector3, &vec3);
103        btVector3 vec4 = btVector3();
104        jmeBulletUtil::convert(env, vector4, &vec4);
105        btBU_Simplex1to4* simplexShape = new btBU_Simplex1to4(vec1, vec2, vec3, vec4);
106        return reinterpret_cast<jlong>(simplexShape);
107    }
108#ifdef __cplusplus
109}
110#endif
111