Android Open Source - fun-gl Orthographic Camera






From Project

Back to project page fun-gl.

License

The source code is released under:

Apache License

If you think the Android project fun-gl 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

package com.jcxavier.android.opengl.game.camera;
//from   w  w  w  . ja va2  s .c  o  m
import android.graphics.Point;
import android.opengl.Matrix;
import com.jcxavier.android.opengl.math.Matrix4;
import com.jcxavier.android.opengl.math.Vector3;

/**
 * Created on 11/03/2014.
 *
 * @author Joo Xavier <jcxavier@jcxavier.com>
 */
public class OrthographicCamera implements Camera {

    private final Matrix4 mProjectionMatrix;
    private final Matrix4 mLookAtMatrix;

    private Vector3 mEye;
    private Vector3 mCenter;
    private Vector3 mUp;

    private final Point mScreenSize;

    private boolean mDirty;

    /**
     * Creates a simple, non-configurable ortographic camera.
     */
    public OrthographicCamera() {
        mProjectionMatrix = new Matrix4();
        mLookAtMatrix = new Matrix4();

        mEye = new Vector3(0.0f, 0.0f, 0.0f);
        mCenter = new Vector3(0.0f, 0.0f, -1.0f);
        mUp = new Vector3(0.0f, 1.0f, 0.0f);

        mScreenSize = new Point();
        mDirty = true;
    }

    @Override
    public void updateScreenSize(final Point screenSize) {
        mScreenSize.set(screenSize.x, screenSize.y);
        mDirty = true;
    }

    @Override
    public Matrix4 getProjectionMatrix() {
        if (mDirty) {
            Matrix.orthoM(mProjectionMatrix.m, 0, 0, mScreenSize.x, mScreenSize.y, 0, -1024, 1024);
            Matrix.setLookAtM(mLookAtMatrix.m, 0, mEye.x, mEye.y, mEye.z, mCenter.x, mCenter.y, mCenter.z, mUp.x, mUp.y, mUp.z);

            mProjectionMatrix.multiply(mLookAtMatrix);
            mDirty = false;
        }

        return mProjectionMatrix;
    }

    public void setEye(Vector3 eye) {
        mEye = eye;
        mDirty = true;
    }

    public void setCenter(Vector3 center) {
        mCenter = center;
        mDirty = true;
    }

    public void setUp(Vector3 up) {
        mUp = up;
        mDirty = true;
    }
}




Java Source Code List

com.jcxavier.android.opengl.engine.BitmapConfigHelper.java
com.jcxavier.android.opengl.engine.EngineActivity.java
com.jcxavier.android.opengl.engine.EngineRenderer.java
com.jcxavier.android.opengl.engine.EngineView.java
com.jcxavier.android.opengl.engine.RendererOptions.java
com.jcxavier.android.opengl.engine.cache.GLState.java
com.jcxavier.android.opengl.engine.gdx.GdxEglConfigChooser.java
com.jcxavier.android.opengl.engine.shader.ColorShader.java
com.jcxavier.android.opengl.engine.shader.ShaderManager.java
com.jcxavier.android.opengl.engine.shader.Shader.java
com.jcxavier.android.opengl.engine.shader.TextureShader.java
com.jcxavier.android.opengl.engine.texture.TextureFilteringMode.java
com.jcxavier.android.opengl.engine.texture.TextureManager.java
com.jcxavier.android.opengl.engine.texture.TextureWrap.java
com.jcxavier.android.opengl.engine.texture.Texture.java
com.jcxavier.android.opengl.engine.type.RotationMode.java
com.jcxavier.android.opengl.file.FileManager.java
com.jcxavier.android.opengl.game.GameStage.java
com.jcxavier.android.opengl.game.SimpleGameStage.java
com.jcxavier.android.opengl.game.camera.Camera.java
com.jcxavier.android.opengl.game.camera.DefaultCamera.java
com.jcxavier.android.opengl.game.camera.OrthographicCamera.java
com.jcxavier.android.opengl.game.manager.GameManager.java
com.jcxavier.android.opengl.game.manager.ScreenManager.java
com.jcxavier.android.opengl.game.manager.input.InputHandler.java
com.jcxavier.android.opengl.game.manager.input.InputManager.java
com.jcxavier.android.opengl.game.object.DrawableObject.java
com.jcxavier.android.opengl.game.object.GameObject.java
com.jcxavier.android.opengl.game.object.Sprite.java
com.jcxavier.android.opengl.game.type.Resizeable.java
com.jcxavier.android.opengl.game.type.Touchable.java
com.jcxavier.android.opengl.game.type.Transformable.java
com.jcxavier.android.opengl.game.type.Updateable.java
com.jcxavier.android.opengl.math.IVector.java
com.jcxavier.android.opengl.math.Matrix4.java
com.jcxavier.android.opengl.math.Vector2.java
com.jcxavier.android.opengl.math.Vector3.java
com.jcxavier.android.opengl.math.Vector4.java
com.jcxavier.android.opengl.sample.GameActivity.java
com.jcxavier.android.opengl.sample.TestStage.java
com.jcxavier.android.opengl.util.BitmapUtils.java
com.jcxavier.android.opengl.util.Constants.java
com.jcxavier.android.opengl.util.ReflectionUtils.java
com.jcxavier.android.opengl.util.WeakList.java
com.sample.clean.TestActivity.java
com.sample.clean.TestStage.java