Android Open Source - gameengine 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.//from   w  w  w  .  j  a v  a  2  s.  c  om
 * 
 * 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;

/**
 * A shape is used for collision detection. You can create a shape however you
 * like. Shapes used for simulation in b2World are created automatically when a
 * b2Fixture is created. Shapes may encapsulate a one or more child shapes.
 * 
 * NOTE: YOU NEED TO DISPOSE SHAPES YOU CREATED YOURSELF AFTER YOU NO LONGER USE
 * THEM! E.g. after calling body.createFixture();
 * 
 * @author mzechner
 */
public abstract class Shape {
    /*
     * JNI #include <Box2D/Box2D.h>
     */

    /**
     * Enum describing the type of a shape
     * 
     * @author mzechner
     */
    public enum Type {
        Circle,
        Polygon,
        Edge,
        Chain,
    };

    /** the address of the shape **/
    protected long addr;

    /**
     * Get the type of this shape. You can use this to down cast to the concrete
     * shape.
     * 
     * @return the shape type.
     */
    public abstract Type getType();

    /** Returns the radius of this shape */
    public float getRadius() {
        return jniGetRadius(addr);
    }

    private native float jniGetRadius(long addr); /*
                                                   * b2Shape* shape =
                                                   * (b2Shape*)addr; return
                                                   * shape->m_radius;
                                                   */

    /** Sets the radius of this shape */
    public void setRadius(float radius) {
        jniSetRadius(addr, radius);
    }

    private native void jniSetRadius(long addr, float radius); /*
                                                                * b2Shape* shape
                                                                * =
                                                                * (b2Shape*)addr
                                                                * ;
                                                                * shape->m_radius
                                                                * = radius;
                                                                */

    /**
     * Needs to be called when the shape is no longer used, e.g. after a fixture
     * was created based on the shape.
     */
    public void dispose() {
        jniDispose(addr);
    }

    private native void jniDispose(long addr); /*
                                                * b2Shape* shape =
                                                * (b2Shape*)addr; delete shape;
                                                */

    protected static native int jniGetType(long addr); /*
                                                        * b2Shape* shape =
                                                        * (b2Shape*)addr;
                                                        * switch(shape->m_type)
                                                        * { case
                                                        * b2Shape::e_circle:
                                                        * return 0; case
                                                        * b2Shape::e_edge:
                                                        * return 1; case
                                                        * b2Shape::e_polygon:
                                                        * return 2; case
                                                        * b2Shape::e_chain:
                                                        * return 3; default:
                                                        * return -1; }
                                                        */

    /** Get the number of child primitives. */
    public int getChildCount() {
        return jniGetChildCount(addr);
    }

    private native int jniGetChildCount(long addr); /*
                                                     * b2Shape* shape =
                                                     * (b2Shape*)addr; return
                                                     * shape->GetChildCount();
                                                     */

    // /// Test a point for containment in this shape. This only works for
    // convex shapes.
    // /// @param xf the shape world transform.
    // /// @param p a point in world coordinates.
    // virtual bool TestPoint(const b2Transform& xf, const b2Vec2& p) const = 0;
    //
    // /// Cast a ray against this shape.
    // /// @param output the ray-cast results.
    // /// @param input the ray-cast input parameters.
    // /// @param transform the transform to be applied to the shape.
    // virtual bool RayCast(b2RayCastOutput* output, const b2RayCastInput&
    // input, const b2Transform& transform) const = 0;
    //
    // /// Given a transform, compute the associated axis aligned bounding box
    // for this shape.
    // /// @param aabb returns the axis aligned box.
    // /// @param xf the world transform of the shape.
    // virtual void ComputeAABB(b2AABB* aabb, const b2Transform& xf) const = 0;
    //
    // /// Compute the mass properties of this shape using its dimensions and
    // density.
    // /// The inertia tensor is computed about the local origin.
    // /// @param massData returns the mass data for this shape.
    // /// @param density the density in kilograms per meter squared.
    // virtual void ComputeMass(b2MassData* massData, float32 density) const =
    // 0;
}




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