All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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