anx.framework/ANX.Framework/Graphics/EffectAnnotationCollection.cs

59 lines
1.7 KiB
C#

#region Using Statements
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using ANX.Framework.NonXNA.Development;
#endregion // Using Statements
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
namespace ANX.Framework.Graphics
{
[PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Untested)]
public sealed class EffectAnnotationCollection : IEnumerable<EffectAnnotation>
{
private readonly List<EffectAnnotation> annotations;
public int Count
{
get { return annotations.Count; }
}
public EffectAnnotation this[int index]
{
get { return index >= 0 && index < annotations.Count ? annotations[index] : null; }
}
public EffectAnnotation this[string name]
{
get { return annotations.FirstOrDefault(annotation => annotation.Name == name); }
}
internal EffectAnnotationCollection(List<EffectAnnotation> setAnnotations)
{
annotations = setAnnotations ?? new List<EffectAnnotation>();
}
IEnumerator<EffectAnnotation> IEnumerable<EffectAnnotation>.GetEnumerator()
{
return annotations.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return annotations.GetEnumerator();
}
public List<EffectAnnotation>.Enumerator GetEnumerator()
{
return annotations.GetEnumerator();
}
}
}