Rev 1767 |
Rev 1778 |
Go to most recent revision |
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.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 Vector3 mTranslation =
null;
private Quaternion mRotation =
null;
private Vector3 mScale =
null;
// 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
;
/*nodes[newNodeIndex].getLocalTransform().identity();
if (nodeData.scale != null)
{
nodes[newNodeIndex].getLocalTransform().multiply(Matrix4.createScale(nodeData.scale[0], nodeData.scale[1], nodeData.scale[2]));
}
if (nodeData.rotation != null)
{
Quaternion q = new Quaternion(nodeData.rotation);
nodes[newNodeIndex].getLocalTransform().multiply(q.toMatrix());
}
if (nodeData.translation != null)
{
nodes[newNodeIndex].getLocalTransform().multiply(Matrix4.createTranslation(nodeData.translation[0], nodeData.translation[1], nodeData.translation[2]));
}*/
}
// 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 int getParentIndex
() { return mParentIndex
; }
}