Android Open Source - gameengine Edge Shape






From Project

Back to project page gameengine.

License

The source code is released under:

Apache License

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.//  ww  w .j  a v  a 2 s.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.
 */
public class EdgeShape extends Shape {
    /*
     * JNI #include <Box2D/Box2D.h>
     */

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

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




Java Source Code List

com.badlogic.gdx.math.MathUtils.java
com.badlogic.gdx.math.Matrix3.java
com.badlogic.gdx.math.Matrix4.java
com.badlogic.gdx.math.Quaternion.java
com.badlogic.gdx.math.Vector2.java
com.badlogic.gdx.math.Vector3.java
com.badlogic.gdx.physics.box2d.BodyDef.java
com.badlogic.gdx.physics.box2d.Body.java
com.badlogic.gdx.physics.box2d.ChainShape.java
com.badlogic.gdx.physics.box2d.CircleShape.java
com.badlogic.gdx.physics.box2d.ContactFilter.java
com.badlogic.gdx.physics.box2d.ContactImpulse.java
com.badlogic.gdx.physics.box2d.ContactListener.java
com.badlogic.gdx.physics.box2d.Contact.java
com.badlogic.gdx.physics.box2d.DestructionListener.java
com.badlogic.gdx.physics.box2d.EdgeShape.java
com.badlogic.gdx.physics.box2d.Filter.java
com.badlogic.gdx.physics.box2d.FixtureDef.java
com.badlogic.gdx.physics.box2d.Fixture.java
com.badlogic.gdx.physics.box2d.JointDef.java
com.badlogic.gdx.physics.box2d.JointEdge.java
com.badlogic.gdx.physics.box2d.Joint.java
com.badlogic.gdx.physics.box2d.Manifold.java
com.badlogic.gdx.physics.box2d.MassData.java
com.badlogic.gdx.physics.box2d.PolygonShape.java
com.badlogic.gdx.physics.box2d.QueryCallback.java
com.badlogic.gdx.physics.box2d.RayCastCallback.java
com.badlogic.gdx.physics.box2d.Shape.java
com.badlogic.gdx.physics.box2d.Transform.java
com.badlogic.gdx.physics.box2d.WorldManifold.java
com.badlogic.gdx.physics.box2d.World.java
com.badlogic.gdx.physics.box2d.joints.DistanceJointDef.java
com.badlogic.gdx.physics.box2d.joints.DistanceJoint.java
com.badlogic.gdx.physics.box2d.joints.FrictionJointDef.java
com.badlogic.gdx.physics.box2d.joints.FrictionJoint.java
com.badlogic.gdx.physics.box2d.joints.GearJointDef.java
com.badlogic.gdx.physics.box2d.joints.GearJoint.java
com.badlogic.gdx.physics.box2d.joints.MouseJointDef.java
com.badlogic.gdx.physics.box2d.joints.MouseJoint.java
com.badlogic.gdx.physics.box2d.joints.PrismaticJointDef.java
com.badlogic.gdx.physics.box2d.joints.PrismaticJoint.java
com.badlogic.gdx.physics.box2d.joints.PulleyJointDef.java
com.badlogic.gdx.physics.box2d.joints.PulleyJoint.java
com.badlogic.gdx.physics.box2d.joints.RevoluteJointDef.java
com.badlogic.gdx.physics.box2d.joints.RevoluteJoint.java
com.badlogic.gdx.physics.box2d.joints.RopeJointDef.java
com.badlogic.gdx.physics.box2d.joints.RopeJoint.java
com.badlogic.gdx.physics.box2d.joints.WeldJointDef.java
com.badlogic.gdx.physics.box2d.joints.WeldJoint.java
com.badlogic.gdx.physics.box2d.joints.WheelJointDef.java
com.badlogic.gdx.physics.box2d.joints.WheelJoint.java
com.badlogic.gdx.utils.Array.java
com.badlogic.gdx.utils.ComparableTimSort.java
com.badlogic.gdx.utils.Disposable.java
com.badlogic.gdx.utils.GdxRuntimeException.java
com.badlogic.gdx.utils.LongArray.java
com.badlogic.gdx.utils.LongMap.java
com.badlogic.gdx.utils.NumberUtils.java
com.badlogic.gdx.utils.Pool.java
com.badlogic.gdx.utils.Sort.java
com.badlogic.gdx.utils.StringBuilder.java
com.badlogic.gdx.utils.TimSort.java
com.garrapeta.MathUtils.java
com.garrapeta.gameengine.Actor.java
com.garrapeta.gameengine.AsyncGameMessage.java
com.garrapeta.gameengine.BitmapManager.java
com.garrapeta.gameengine.Box2DActor.java
com.garrapeta.gameengine.Box2DWorld.java
com.garrapeta.gameengine.GameMessage.java
com.garrapeta.gameengine.GameView.java
com.garrapeta.gameengine.GameWorld.java
com.garrapeta.gameengine.ShapeDrawer.java
com.garrapeta.gameengine.SyncGameMessage.java
com.garrapeta.gameengine.Viewport.java
com.garrapeta.gameengine.actor.Box2DAtomicActor.java
com.garrapeta.gameengine.actor.Box2DCircleActor.java
com.garrapeta.gameengine.actor.Box2DEdgeActor.java
com.garrapeta.gameengine.actor.Box2DLoopActor.java
com.garrapeta.gameengine.actor.Box2DOpenChainActor.java
com.garrapeta.gameengine.actor.Box2DPolygonActor.java
com.garrapeta.gameengine.actor.IAtomicActor.java
com.garrapeta.gameengine.actor.SimpleActor.java
com.garrapeta.gameengine.module.LevelActionsModule.java
com.garrapeta.gameengine.module.LoadedLevelActionsModule.java
com.garrapeta.gameengine.module.SoundModule.java
com.garrapeta.gameengine.module.VibrationModule.java
com.garrapeta.gameengine.utils.IOUtils.java
com.garrapeta.gameengine.utils.LogX.java
com.garrapeta.gameengine.utils.PhysicsUtils.java
com.garrapeta.gameengine.utils.Pool.java