com.badlogic.gdx.physics.box2d.EdgeShape.java Source code

Java tutorial

Introduction

Here is the source code for com.badlogic.gdx.physics.box2d.EdgeShape.java

Source

/*******************************************************************************
 * 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;
    }
}