Subversion Repositories AndroidProjects

Rev

Rev 1816 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.bauzoid2.graphics.model;

import com.gebauz.bauzoid2.game.Engine;
import com.gebauz.bauzoid2.graphics.util.Transform;
import com.gebauz.bauzoid2.math.Matrix4;
import com.gebauz.bauzoid2.math.Quaternion;
import com.gebauz.bauzoid2.math.Vector3;
import com.gebauz.bauzoid2.math.Vector4;

/**
 * Created by chris on 14.12.2014.
 */

public class ModelNode
{
    // Constants========================================================================================

    // Embedded Types===================================================================================

    // Fields===========================================================================================

    private String mName = null;

    private int mParentIndex = -1;

    public ModelPart[] parts = null;

    private Matrix4 mGlobalTransform = Matrix4.createIdentity();
    //private Matrix4 mLocalTransform = Matrix4.createIdentity();
        private Matrix4 mGlobalBindPose = Matrix4.createIdentity();

    /*public com.badlogic.gdx.math.Matrix4 globalTransform = new com.badlogic.gdx.math.Matrix4();
    public com.badlogic.gdx.math.Matrix4 localTransform = new com.badlogic.gdx.math.Matrix4();*/


        public Transform transform = new Transform();
    public Transform bindPose = new Transform();

    // Methods==========================================================================================

    public ModelNode(String name, int parentIndex)
    {
        mName = name;
        mParentIndex = parentIndex;
    }

        /*
    public void render()
    {
        Engine.graphics.renderStates.pushModelMatrix();
        Engine.graphics.renderStates.model.preMultiply(mLocalTransform);

        //Engine.graphics.getPrimitiveShader().activate(new Vector4(0, 0, 1, 1));

        if (parts != null)
        {
            for (ModelPart part : parts)
            {
                part.render();
            }
        }

        //Engine.graphics.getPrimitiveShader().deactivate();

        Engine.graphics.renderStates.popModelMatrix();
    }*/


        /*public Matrix4 calcLocalTransform()
        {
                Matrix4 local = Matrix4.createIdentity();
                if (mScale != null)
                        local.multiply(Matrix4.createScale(mScale));
                if (mRotation != null)
                        local.multiply(mRotation.toMatrix());
                if (mTranslation != null)
                        local.multiply(Matrix4.createTranslation(mTranslation));
                return local;
        }*/


    // Getters/Setters==================================================================================

    public final String getName() { return mName; }

    /*public final Matrix4 getLocalTransform() { return mLocalTransform; }
    public final void setLocalTransform(Matrix4 transform) { mLocalTransform = transform; }*/

        /*public final Vector3 getTranslation() { return mTranslation; }
        public final void setTranslation(Vector3 v) { mTranslation = v; }

        public final Quaternion getRotation() { return mRotation; }
        public final void setRotation(Quaternion q) { mRotation = q; }

        public final Vector3 getScale() { return mScale; }
        public final void setScale(Vector3 v) { mScale = v; }*/


    public final Matrix4 getGlobalTransform() { return mGlobalTransform; }
    public final void setGlobalTransform(Matrix4 transform) { mGlobalTransform = transform; }

        public final Matrix4 getGlobalBindPose() { return mGlobalBindPose; }
        public final void setGlobalBindPose(Matrix4 transform) { mGlobalBindPose = transform; }

        public final int getParentIndex() { return mParentIndex; }

}