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