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 org.jbox2d.common.Vec2;
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 {
org.jbox2d.collision.shapes.EdgeShape shape;
public EdgeShape () {
super(new org.jbox2d.collision.shapes.EdgeShape());
shape = (org.jbox2d.collision.shapes.EdgeShape)super.shape;
}
public EdgeShape (org.jbox2d.collision.shapes.EdgeShape shape) {
super(shape);
this.shape = shape;
}
/** Set this as an isolated edge. */
public void set (Vector2 v1, Vector2 v2) {
set(v1.x, v1.y, v2.x, v2.y);
}
Vec2 tmp = new Vec2();
Vec2 tmp2 = new Vec2();
/** Set this as an isolated edge. */
public void set (float v1X, float v1Y, float v2X, float v2Y) {
tmp.set(v1X, v1Y);
tmp2.set(v2X, v2Y);
shape.set(tmp, tmp2);
}
public void getVertex1 (Vector2 vec) {
Vec2 v1 = shape.m_vertex1;
vec.set(v1.x, v1.y);
}
public void getVertex2 (Vector2 vec) {
Vec2 v2 = shape.m_vertex2;
vec.set(v2.x, v2.y);
}
public void getVertex0 (Vector2 vec) {
Vec2 v0 = shape.m_vertex0;
vec.set(v0.x, v0.y);
}
public void getVertex3 (Vector2 vec) {
Vec2 v3 = shape.m_vertex3;
vec.set(v3.x, v3.y);
}
public boolean hasVertex0 () {
return shape.m_hasVertex0;
}
public void setHasVertex0 (boolean hasVertex0) {
shape.m_hasVertex0 = hasVertex0;
}
public boolean hasVertex3 () {
return shape.m_hasVertex3;
}
public void setHasVertex3 (boolean hasVertex3) {
shape.m_hasVertex3 = hasVertex3;
}
@Override
public float getRadius () {
return shape.getRadius();
}
@Override
public void setRadius (float radius) {
shape.setRadius(radius);
}
@Override
public int getChildCount () {
return shape.getChildCount();
}
@Override
public Type getType () {
return Type.Edge;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy