/* * PinaObject.cs * Authors: August Zinsser * * Copyright August Zinsser 2007 * This program is distributed under the terms of the GNU General Public License */ using System; using System.Collections.Generic; using System.Text; using Microsoft.Xna.Framework; namespace Pina3D { /// /// A basic 3D object that has a position, rotation, and size. /// public class PinaObject { internal PinaState mState; // Instance-specific state data public Vector3 Position { set { mState.Matrix.Translation = value; } get { return mState.Matrix.Translation; } } public Matrix Matrix { set { mState.Matrix = value; } get { return mState.Matrix; } } public PinaObject() { mState = PinaState.Default; } public virtual void Update(float dT) { } } public class PinaState { public static PinaState Default { get { return new PinaState(Matrix.Identity); } } public Matrix Matrix; public PinaState(Matrix matrix) { Matrix = matrix; } } }