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