diff --git a/ANX.Framework/ANX.Framework.csproj b/ANX.Framework/ANX.Framework.csproj
index 8d023b8d..d1f0822d 100644
--- a/ANX.Framework/ANX.Framework.csproj
+++ b/ANX.Framework/ANX.Framework.csproj
@@ -187,6 +187,14 @@
+
+
+
+
+
+
+
+
diff --git a/ANX.Framework/Graphics/EffectMaterial.cs b/ANX.Framework/Graphics/EffectMaterial.cs
index 32159b24..5179020a 100644
--- a/ANX.Framework/Graphics/EffectMaterial.cs
+++ b/ANX.Framework/Graphics/EffectMaterial.cs
@@ -62,8 +62,7 @@ namespace ANX.Framework.Graphics
public EffectMaterial(Effect cloneSource)
: base(cloneSource)
{
- throw new NotImplementedException();
+ // nothing to do in here
}
-
}
}
diff --git a/ANX.Framework/Graphics/Model.cs b/ANX.Framework/Graphics/Model.cs
new file mode 100644
index 00000000..0a49b1c1
--- /dev/null
+++ b/ANX.Framework/Graphics/Model.cs
@@ -0,0 +1,108 @@
+#region Using Statements
+using System;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class Model
+ {
+ public void CopyAbsoluteBoneTransformsTo(Matrix[] destinationBoneTransforms)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void CopyBoneTransformsFrom(Matrix[] sourceBoneTransforms)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void CopyBoneTransformsTo(Matrix[] destinationBoneTransforms)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Draw (Matrix world, Matrix view, Matrix projection)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ModelBoneCollection Bones
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public ModelMeshCollection Meshes
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public ModelBone Root
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public Object Tag
+ {
+ get;
+ set;
+ }
+
+ }
+}
diff --git a/ANX.Framework/Graphics/ModelBone.cs b/ANX.Framework/Graphics/ModelBone.cs
new file mode 100644
index 00000000..4b9d2b2f
--- /dev/null
+++ b/ANX.Framework/Graphics/ModelBone.cs
@@ -0,0 +1,102 @@
+#region Using Statements
+using System;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class ModelBone
+ {
+ public ModelBoneCollection Children
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int Index
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public string Name
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public ModelBone Parent
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public Matrix Transform
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ }
+}
diff --git a/ANX.Framework/Graphics/ModelBoneCollection.cs b/ANX.Framework/Graphics/ModelBoneCollection.cs
new file mode 100644
index 00000000..5a2b6cec
--- /dev/null
+++ b/ANX.Framework/Graphics/ModelBoneCollection.cs
@@ -0,0 +1,135 @@
+#region Using Statements
+using System;
+using System.Collections.ObjectModel;
+using System.Collections;
+using System.Collections.Generic;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class ModelBoneCollection : ReadOnlyCollection
+ {
+ private ModelBone[] modelBones;
+
+ internal ModelBoneCollection(ModelBone[] modelBones)
+ : base(modelBones)
+ {
+ this.modelBones = modelBones;
+ }
+
+ public new Enumerator GetEnumerator()
+ {
+ return new Enumerator(this.modelBones);
+ }
+
+ public struct Enumerator : IEnumerator, IDisposable, IEnumerator
+ {
+ private ModelBone[] wrappedArray;
+ private int position;
+
+ internal Enumerator(ModelBone[] wrappedArray)
+ {
+ this.wrappedArray = wrappedArray;
+ this.position = -1;
+ }
+
+ public ModelBone Current
+ {
+ get
+ {
+ return this.wrappedArray[this.position];
+ }
+ }
+
+ public bool MoveNext()
+ {
+ this.position++;
+ if (this.position >= this.wrappedArray.Length)
+ {
+ this.position = this.wrappedArray.Length;
+ return false;
+ }
+ return true;
+ }
+
+ void IEnumerator.Reset()
+ {
+ this.position = -1;
+ }
+
+ public void Dispose()
+ {
+ }
+
+ object IEnumerator.Current
+ {
+ get
+ {
+ return this.Current;
+ }
+ }
+ }
+
+ public bool TryGetValue (string boneName, out ModelBone value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ModelBone this[string boneName]
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ }
+}
diff --git a/ANX.Framework/Graphics/ModelEffectCollection.cs b/ANX.Framework/Graphics/ModelEffectCollection.cs
new file mode 100644
index 00000000..8b92c7c4
--- /dev/null
+++ b/ANX.Framework/Graphics/ModelEffectCollection.cs
@@ -0,0 +1,121 @@
+#region Using Statements
+using System;
+using System.Collections.ObjectModel;
+using System.Collections.Generic;
+using System.Collections;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class ModelEffectCollection : ReadOnlyCollection
+ {
+ private Effect[] effects;
+
+ internal ModelEffectCollection(Effect[] effects)
+ : base(effects)
+ {
+ this.effects = effects;
+ }
+
+ public new Enumerator GetEnumerator()
+ {
+ return new Enumerator(this.effects);
+ }
+
+ public struct Enumerator : IEnumerator, IDisposable, IEnumerator
+ {
+ private Effect[] wrappedArray;
+ private int position;
+
+ internal Enumerator(Effect[] wrappedArray)
+ {
+ this.wrappedArray = wrappedArray;
+ this.position = -1;
+ }
+
+ public Effect Current
+ {
+ get
+ {
+ return this.wrappedArray[this.position];
+ }
+ }
+
+ public bool MoveNext()
+ {
+ this.position++;
+ if (this.position >= this.wrappedArray.Length)
+ {
+ this.position = this.wrappedArray.Length;
+ return false;
+ }
+ return true;
+ }
+
+ void IEnumerator.Reset()
+ {
+ this.position = -1;
+ }
+
+ public void Dispose()
+ {
+ }
+
+ object IEnumerator.Current
+ {
+ get
+ {
+ return this.Current;
+ }
+ }
+ }
+ }
+}
diff --git a/ANX.Framework/Graphics/ModelMesh.cs b/ANX.Framework/Graphics/ModelMesh.cs
new file mode 100644
index 00000000..4854fff9
--- /dev/null
+++ b/ANX.Framework/Graphics/ModelMesh.cs
@@ -0,0 +1,115 @@
+#region Using Statements
+using System;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class ModelMesh
+ {
+ public void Draw()
+ {
+ throw new NotImplementedException();
+ }
+
+ public BoundingSphere BoundingSphere
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public ModelEffectCollection Effects
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public ModelMeshPartCollection MeshParts
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public string Name
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public ModelBone ParentBone
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public Object Tag
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ }
+}
diff --git a/ANX.Framework/Graphics/ModelMeshCollection.cs b/ANX.Framework/Graphics/ModelMeshCollection.cs
new file mode 100644
index 00000000..c0991716
--- /dev/null
+++ b/ANX.Framework/Graphics/ModelMeshCollection.cs
@@ -0,0 +1,135 @@
+#region Using Statements
+using System;
+using System.Collections.ObjectModel;
+using System.Collections.Generic;
+using System.Collections;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class ModelMeshCollection : ReadOnlyCollection
+ {
+ private ModelMesh[] modelMeshes;
+
+ internal ModelMeshCollection(ModelMesh[] modelMeshes)
+ : base(modelMeshes)
+ {
+ this.modelMeshes = modelMeshes;
+ }
+
+ public new Enumerator GetEnumerator()
+ {
+ return new Enumerator(this.modelMeshes);
+ }
+
+ public struct Enumerator : IEnumerator, IDisposable, IEnumerator
+ {
+ private ModelMesh[] wrappedArray;
+ private int position;
+
+ internal Enumerator(ModelMesh[] wrappedArray)
+ {
+ this.wrappedArray = wrappedArray;
+ this.position = -1;
+ }
+
+ public ModelMesh Current
+ {
+ get
+ {
+ return this.wrappedArray[this.position];
+ }
+ }
+
+ public bool MoveNext()
+ {
+ this.position++;
+ if (this.position >= this.wrappedArray.Length)
+ {
+ this.position = this.wrappedArray.Length;
+ return false;
+ }
+ return true;
+ }
+
+ void IEnumerator.Reset()
+ {
+ this.position = -1;
+ }
+
+ public void Dispose()
+ {
+ }
+
+ object IEnumerator.Current
+ {
+ get
+ {
+ return this.Current;
+ }
+ }
+ }
+
+ public bool TryGetValue(string meshName, out ModelMesh value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ModelMesh this[string meshName]
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ }
+}
diff --git a/ANX.Framework/Graphics/ModelMeshPart.cs b/ANX.Framework/Graphics/ModelMeshPart.cs
new file mode 100644
index 00000000..9ecfb4c4
--- /dev/null
+++ b/ANX.Framework/Graphics/ModelMeshPart.cs
@@ -0,0 +1,129 @@
+#region Using Statements
+using System;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class ModelMeshPart
+ {
+ public Effect Effect
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public IndexBuffer IndexBuffer
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int NumVertices
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int PrimitiveCount
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int StartIndex
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public Object Tag
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public VertexBuffer VertexBuffer
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int VertexOffset
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+ }
+}
diff --git a/ANX.Framework/Graphics/ModelMeshPartCollection.cs b/ANX.Framework/Graphics/ModelMeshPartCollection.cs
new file mode 100644
index 00000000..0838422b
--- /dev/null
+++ b/ANX.Framework/Graphics/ModelMeshPartCollection.cs
@@ -0,0 +1,121 @@
+#region Using Statements
+using System;
+using System.Collections.ObjectModel;
+using System.Collections.Generic;
+using System.Collections;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public sealed class ModelMeshPartCollection : ReadOnlyCollection
+ {
+ private ModelMeshPart[] modelMeshParts;
+
+ internal ModelMeshPartCollection(ModelMeshPart[] modelMeshParts)
+ : base(modelMeshParts)
+ {
+ this.modelMeshParts = modelMeshParts;
+ }
+
+ public new Enumerator GetEnumerator()
+ {
+ return new Enumerator(this.modelMeshParts);
+ }
+
+ public struct Enumerator : IEnumerator, IDisposable, IEnumerator
+ {
+ private ModelMeshPart[] wrappedArray;
+ private int position;
+
+ internal Enumerator(ModelMeshPart[] wrappedArray)
+ {
+ this.wrappedArray = wrappedArray;
+ this.position = -1;
+ }
+
+ public ModelMeshPart Current
+ {
+ get
+ {
+ return this.wrappedArray[this.position];
+ }
+ }
+
+ public bool MoveNext()
+ {
+ this.position++;
+ if (this.position >= this.wrappedArray.Length)
+ {
+ this.position = this.wrappedArray.Length;
+ return false;
+ }
+ return true;
+ }
+
+ void IEnumerator.Reset()
+ {
+ this.position = -1;
+ }
+
+ public void Dispose()
+ {
+ }
+
+ object IEnumerator.Current
+ {
+ get
+ {
+ return this.Current;
+ }
+ }
+ }
+ }
+}