If you think the Android project gameengine listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*******************************************************************************
* Copyright 2011 See AUTHORS file.//www.java2s.com
*
* 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.
*/publicclass EdgeShape extends Shape {
/*
* JNI #include <Box2D/Box2D.h>
*/public EdgeShape() {
addr = newEdgeShape();
}
privatenativelong newEdgeShape(); /*
* return (jlong)(new b2EdgeShape());
*/
EdgeShape(long addr) {
this.addr = addr;
}
/** Set this as an isolated edge. */publicvoid set(Vector2 v1, Vector2 v2) {
set(v1.x, v1.y, v2.x, v2.y);
}
/** Set this as an isolated edge. */publicvoid set(float v1X, float v1Y, float v2X, float v2Y) {
jniSet(addr, v1X, v1Y, v2X, v2Y);
}
privatenativevoid jniSet(long addr, float v1x, float v1y, float v2x, float v2y); /*
* b2EdgeShape
* *
* edge
* =
* (
* b2EdgeShape
* *
* )
* addr
* ;
* edge
* -
* >
* Set
* (
* b2Vec2
* (
* v1x
* ,
* v1y
* )
* ,
* b2Vec2
* (
* v2x
* ,
* v2y
* )
* )
* ;
*/staticfinalfloat[] vertex = newfloat[2];
publicvoid getVertex1(Vector2 vec) {
jniGetVertex1(addr, vertex);
vec.x = vertex[0];
vec.y = vertex[1];
}
privatenativevoid jniGetVertex1(long addr, float[] vertex); /*
* b2EdgeShape*
* edge =
* (b2EdgeShape
* *)addr;
* vertex[0] =
* edge
* ->m_vertex1
* .x;
* vertex[1] =
* edge
* ->m_vertex1
* .y;
*/publicvoid getVertex2(Vector2 vec) {
jniGetVertex2(addr, vertex);
vec.x = vertex[0];
vec.y = vertex[1];
}
privatenativevoid jniGetVertex2(long addr, float[] vertex); /*
* b2EdgeShape*
* edge =
* (b2EdgeShape
* *)addr;
* vertex[0] =
* edge
* ->m_vertex2
* .x;
* vertex[1] =
* edge
* ->m_vertex2
* .y;
*/// /// @see b2Shape::TestPoint
// bool TestPoint(const b2Transform& transform, const b2Vec2& p) const;
//
// /// Implement b2Shape.
// bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input,
// const b2Transform& transform, int32 childIndex) const;
//
// /// @see b2Shape::ComputeAABB
// void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32
// childIndex) const;
//
// /// @see b2Shape::ComputeMass
// void ComputeMass(b2MassData* massData, float32 density) const;
//
// /// These are the edge vertices
// b2Vec2 m_vertex1, m_vertex2;
//
// /// Optional adjacent vertices. These are used for smooth collision.
// b2Vec2 m_vertex0, m_vertex3;
// bool m_hasVertex0, m_hasVertex3;
@Override
public Type getType() {
return Type.Edge;
}
}