All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.badlogic.gdx.physics.box2d.EdgeShape Maven / Gradle / Ivy
/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.badlogic.gdx.physics.box2d;
import com.badlogic.gdx.math.Vector2;
/** A line segment (edge) shape. These can be connected in chains or loops to other edge shapes. The connectivity information is
* used to ensure correct contact normals. */
public class EdgeShape extends Shape {
// @off
/*JNI
#include
*/
public EdgeShape () {
addr = newEdgeShape();
}
private native long newEdgeShape (); /*
return (jlong)(new b2EdgeShape());
*/
EdgeShape (long addr) {
this.addr = addr;
}
/** Set this as an isolated edge. */
public void set (Vector2 v1, Vector2 v2) {
set(v1.x, v1.y, v2.x, v2.y);
}
/** Set this as an isolated edge. */
public void set (float v1X, float v1Y, float v2X, float v2Y) {
jniSet(addr, v1X, v1Y, v2X, v2Y);
}
private native void jniSet (long addr, float v1x, float v1y, float v2x, float v2y); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
edge->Set(b2Vec2(v1x, v1y), b2Vec2(v2x, v2y));
*/
static final float[] vertex = new float[2];
public void getVertex1 (Vector2 vec) {
jniGetVertex1(addr, vertex);
vec.x = vertex[0];
vec.y = vertex[1];
}
private native void jniGetVertex1 (long addr, float[] vertex); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
vertex[0] = edge->m_vertex1.x;
vertex[1] = edge->m_vertex1.y;
*/
public void getVertex2 (Vector2 vec) {
jniGetVertex2(addr, vertex);
vec.x = vertex[0];
vec.y = vertex[1];
}
private native void jniGetVertex2 (long addr, float[] vertex); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
vertex[0] = edge->m_vertex2.x;
vertex[1] = edge->m_vertex2.y;
*/
public void getVertex0 (Vector2 vec) {
jniGetVertex0(addr, vertex);
vec.x = vertex[0];
vec.y = vertex[1];
}
private native void jniGetVertex0 (long addr, float[] vertex); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
vertex[0] = edge->m_vertex0.x;
vertex[1] = edge->m_vertex0.y;
*/
public void setVertex0 (Vector2 vec) {
jniSetVertex0(addr, vec.x, vec.y);
}
public void setVertex0 (float x, float y) {
jniSetVertex0(addr, x, y);
}
private native void jniSetVertex0 (long addr, float x, float y); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
edge->m_vertex0.x = x;
edge->m_vertex0.y = y;
*/
public void getVertex3 (Vector2 vec) {
jniGetVertex3(addr, vertex);
vec.x = vertex[0];
vec.y = vertex[1];
}
private native void jniGetVertex3 (long addr, float[] vertex); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
vertex[0] = edge->m_vertex3.x;
vertex[1] = edge->m_vertex3.y;
*/
public void setVertex3 (Vector2 vec) {
jniSetVertex3(addr, vec.x, vec.y);
}
public void setVertex3 (float x, float y) {
jniSetVertex3(addr, x, y);
}
private native void jniSetVertex3 (long addr, float x, float y); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
edge->m_vertex3.x = x;
edge->m_vertex3.y = y;
*/
public boolean hasVertex0() {
return jniHasVertex0(addr);
}
private native boolean jniHasVertex0 (long addr); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
return edge->m_hasVertex0;
*/
public void setHasVertex0 (boolean hasVertex0) {
jniSetHasVertex0(addr, hasVertex0);
}
private native void jniSetHasVertex0 (long addr, boolean hasVertex0); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
edge->m_hasVertex0 = hasVertex0;
*/
public boolean hasVertex3 () {
return jniHasVertex3(addr);
}
private native boolean jniHasVertex3 (long addr); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
return edge->m_hasVertex3;
*/
public void setHasVertex3 (boolean hasVertex3) {
jniSetHasVertex3(addr, hasVertex3);
}
private native void jniSetHasVertex3 (long addr, boolean hasVertex3); /*
b2EdgeShape* edge = (b2EdgeShape*)addr;
edge->m_hasVertex3 = hasVertex3;
*/
@Override
public Type getType () {
return Type.Edge;
}
}