Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media3D / Generated / Point3DCollection.cs / 1 / Point3DCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // This file was generated, please do not edit it directly. // // Please see http://wiki/default.aspx/Microsoft.Projects.Avalon/MilCodeGen.html for more information. // //--------------------------------------------------------------------------- using MS.Internal; using MS.Internal.Collections; using MS.Internal.PresentationCore; using MS.Utility; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Runtime.InteropServices; using System.Text; using System.Windows.Markup; using System.Windows.Media.Media3D.Converters; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Security; using System.Security.Permissions; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; using System.Windows.Media.Imaging; // These types are aliased to match the unamanaged names used in interop using BOOL = System.UInt32; using WORD = System.UInt16; using Float = System.Single; namespace System.Windows.Media.Media3D { ////// A collection of Point3Ds. /// [TypeConverter(typeof(Point3DCollectionConverter))] [ValueSerializer(typeof(Point3DCollectionValueSerializer))] // Used by MarkupWriter public sealed partial class Point3DCollection : Freezable, IFormattable, IList, IList{ //----------------------------------------------------- // // Public Methods // //----------------------------------------------------- #region Public Methods /// /// Shadows inherited Clone() with a strongly typed /// version for convenience. /// public new Point3DCollection Clone() { return (Point3DCollection)base.Clone(); } ////// Shadows inherited CloneCurrentValue() with a strongly typed /// version for convenience. /// public new Point3DCollection CloneCurrentValue() { return (Point3DCollection)base.CloneCurrentValue(); } #endregion Public Methods //------------------------------------------------------ // // Public Properties // //----------------------------------------------------- #region IList/// /// Adds "value" to the list /// public void Add(Point3D value) { AddHelper(value); } ////// Removes all elements from the list /// public void Clear() { WritePreamble(); _collection.Clear(); ++_version; WritePostscript(); } ////// Determines if the list contains "value" /// public bool Contains(Point3D value) { ReadPreamble(); return _collection.Contains(value); } ////// Returns the index of "value" in the list /// public int IndexOf(Point3D value) { ReadPreamble(); return _collection.IndexOf(value); } ////// Inserts "value" into the list at the specified position /// public void Insert(int index, Point3D value) { WritePreamble(); _collection.Insert(index, value); ++_version; WritePostscript(); } ////// Removes "value" from the list /// public bool Remove(Point3D value) { WritePreamble(); int index = IndexOf(value); if (index >= 0) { // we already have index from IndexOf so instead of using Remove, // which will search the collection a second time, we'll use RemoveAt _collection.RemoveAt(index); ++_version; WritePostscript(); return true; } // Collection_Remove returns true, calls WritePostscript, // increments version, and does UpdateResource if it succeeds return false; } ////// Removes the element at the specified index /// public void RemoveAt(int index) { RemoveAtWithoutFiringPublicEvents(index); // RemoveAtWithoutFiringPublicEvents incremented the version WritePostscript(); } ////// Removes the element at the specified index without firing /// the public Changed event. /// The caller - typically a public method - is responsible for calling /// WritePostscript if appropriate. /// internal void RemoveAtWithoutFiringPublicEvents(int index) { WritePreamble(); _collection.RemoveAt(index); ++_version; // No WritePostScript to avoid firing the Changed event. } ////// Indexer for the collection /// public Point3D this[int index] { get { ReadPreamble(); return _collection[index]; } set { WritePreamble(); _collection[ index ] = value; ++_version; WritePostscript(); } } #endregion #region ICollection/// /// The number of elements contained in the collection. /// public int Count { get { ReadPreamble(); return _collection.Count; } } ////// Copies the elements of the collection into "array" starting at "index" /// public void CopyTo(Point3D[] array, int index) { ReadPreamble(); if (array == null) { throw new ArgumentNullException("array"); } // This will not throw in the case that we are copying // from an empty collection. This is consistent with the // BCL Collection implementations. (Windows 1587365) if (index < 0 || (index + _collection.Count) > array.Length) { throw new ArgumentOutOfRangeException("index"); } _collection.CopyTo(array, index); } bool ICollection.IsReadOnly { get { ReadPreamble(); return IsFrozen; } } #endregion #region IEnumerable /// /// Returns an enumerator for the collection /// public Enumerator GetEnumerator() { ReadPreamble(); return new Enumerator(this); } IEnumeratorIEnumerable .GetEnumerator() { return this.GetEnumerator(); } #endregion #region IList bool IList.IsReadOnly { get { return ((ICollection )this).IsReadOnly; } } bool IList.IsFixedSize { get { ReadPreamble(); return IsFrozen; } } object IList.this[int index] { get { return this[index]; } set { // Forwards to typed implementation this[index] = Cast(value); } } int IList.Add(object value) { // Forward to typed helper return AddHelper(Cast(value)); } bool IList.Contains(object value) { if (value is Point3D) { return Contains((Point3D)value); } return false; } int IList.IndexOf(object value) { if (value is Point3D) { return IndexOf((Point3D)value); } return -1; } void IList.Insert(int index, object value) { // Forward to IList Insert Insert(index, Cast(value)); } void IList.Remove(object value) { if (value is Point3D) { Remove((Point3D)value); } } #endregion #region ICollection void ICollection.CopyTo(Array array, int index) { ReadPreamble(); if (array == null) { throw new ArgumentNullException("array"); } // This will not throw in the case that we are copying // from an empty collection. This is consistent with the // BCL Collection implementations. (Windows 1587365) if (index < 0 || (index + _collection.Count) > array.Length) { throw new ArgumentOutOfRangeException("index"); } if (array.Rank != 1) { throw new ArgumentException(SR.Get(SRID.Collection_BadRank)); } // Elsewhere in the collection we throw an AE when the type is // bad so we do it here as well to be consistent try { int count = _collection.Count; for (int i = 0; i < count; i++) { array.SetValue(_collection[i], index + i); } } catch (InvalidCastException e) { throw new ArgumentException(SR.Get(SRID.Collection_BadDestArray, this.GetType().Name), e); } } bool ICollection.IsSynchronized { get { ReadPreamble(); return IsFrozen || Dispatcher != null; } } object ICollection.SyncRoot { get { ReadPreamble(); return this; } } #endregion #region IEnumerable IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } #endregion #region Internal Helpers /// /// A frozen empty Point3DCollection. /// internal static Point3DCollection Empty { get { if (s_empty == null) { Point3DCollection collection = new Point3DCollection(); collection.Freeze(); s_empty = collection; } return s_empty; } } ////// Helper to return read only access. /// internal Point3D Internal_GetItem(int i) { return _collection[i]; } #endregion #region Private Helpers private Point3D Cast(object value) { if( value == null ) { throw new System.ArgumentNullException("value"); } if (!(value is Point3D)) { throw new System.ArgumentException(SR.Get(SRID.Collection_BadType, this.GetType().Name, value.GetType().Name, "Point3D")); } return (Point3D) value; } // IList.Add returns int and IList.Add does not. This // is called by both Adds and IList 's just ignores the // integer private int AddHelper(Point3D value) { int index = AddWithoutFiringPublicEvents(value); // AddAtWithoutFiringPublicEvents incremented the version WritePostscript(); return index; } internal int AddWithoutFiringPublicEvents(Point3D value) { int index = -1; WritePreamble(); index = _collection.Add(value); ++_version; // No WritePostScript to avoid firing the Changed event. return index; } #endregion Private Helpers private static Point3DCollection s_empty; #region Public Properties #endregion Public Properties //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ #region Protected Methods /// /// Implementation of ///Freezable.CreateInstanceCore . ///The new Freezable. protected override Freezable CreateInstanceCore() { return new Point3DCollection(); } ////// Implementation of Freezable.CloneCore() /// protected override void CloneCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.CloneCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } /// /// Implementation of Freezable.CloneCurrentValueCore() /// protected override void CloneCurrentValueCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.CloneCurrentValueCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } /// /// Implementation of Freezable.GetAsFrozenCore() /// protected override void GetAsFrozenCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.GetAsFrozenCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } /// /// Implementation of Freezable.GetCurrentValueAsFrozenCore() /// protected override void GetCurrentValueAsFrozenCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.GetCurrentValueAsFrozenCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } #endregion ProtectedMethods //----------------------------------------------------- // // Internal Methods // //------------------------------------------------------ #region Internal Methods #endregion Internal Methods //----------------------------------------------------- // // Internal Properties // //----------------------------------------------------- #region Internal Properties /// /// Creates a string representation of this object based on the current culture. /// ////// A string representation of this object. /// public override string ToString() { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, null /* format provider */); } ////// Creates a string representation of this object based on the IFormatProvider /// passed in. If the provider is null, the CurrentCulture is used. /// ////// A string representation of this object. /// public string ToString(IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, provider); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// string IFormattable.ToString(string format, IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(format, provider); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// internal string ConvertToString(string format, IFormatProvider provider) { if (_collection.Count == 0) { return String.Empty; } StringBuilder str = new StringBuilder(); // Consider using this separator // Helper to get the numeric list separator for a given culture. // char separator = MS.Internal.TokenizerHelper.GetNumericListSeparator(provider); for (int i=0; i<_collection.Count; i++) { str.AppendFormat( provider, "{0:" + format + "}", _collection[i]); if (i != _collection.Count-1) { str.Append(" "); } } return str.ToString(); } ////// Parse - returns an instance converted from the provided string /// using the current culture /// string with Point3DCollection data /// public static Point3DCollection Parse(string source) { IFormatProvider formatProvider = CultureInfo.GetCultureInfo("en-us"); TokenizerHelper th = new TokenizerHelper(source, formatProvider); Point3DCollection resource = new Point3DCollection(); Point3D value; while (th.NextToken()) { value = new Point3D( Convert.ToDouble(th.GetCurrentToken(), formatProvider), Convert.ToDouble(th.NextTokenRequired(), formatProvider), Convert.ToDouble(th.NextTokenRequired(), formatProvider)); resource.Add(value); } return resource; } #endregion Internal Properties //----------------------------------------------------- // // Dependency Properties // //------------------------------------------------------ #region Dependency Properties #endregion Dependency Properties //----------------------------------------------------- // // Internal Fields // //------------------------------------------------------ #region Internal Fields internal FrugalStructList_collection; internal uint _version = 0; #endregion Internal Fields #region Enumerator /// /// Enumerates the items in a Point3DCollection /// public struct Enumerator : IEnumerator, IEnumerator{ #region Constructor internal Enumerator(Point3DCollection list) { Debug.Assert(list != null, "list may not be null."); _list = list; _version = list._version; _index = -1; _current = default(Point3D); } #endregion #region Methods void IDisposable.Dispose() { } /// /// Advances the enumerator to the next element of the collection. /// ////// true if the enumerator was successfully advanced to the next element, /// false if the enumerator has passed the end of the collection. /// public bool MoveNext() { _list.ReadPreamble(); if (_version == _list._version) { if (_index > -2 && _index < _list._collection.Count - 1) { _current = _list._collection[++_index]; return true; } else { _index = -2; // -2 indicates "past the end" return false; } } else { throw new InvalidOperationException(SR.Get(SRID.Enumerator_CollectionChanged)); } } ////// Sets the enumerator to its initial position, which is before the /// first element in the collection. /// public void Reset() { _list.ReadPreamble(); if (_version == _list._version) { _index = -1; } else { throw new InvalidOperationException(SR.Get(SRID.Enumerator_CollectionChanged)); } } #endregion #region Properties object IEnumerator.Current { get { return this.Current; } } ////// Current element /// /// The behavior of IEnumerable<T>.Current is undefined /// before the first MoveNext and after we have walked /// off the end of the list. However, the IEnumerable.Current /// contract requires that we throw exceptions /// public Point3D Current { get { if (_index > -1) { return _current; } else if (_index == -1) { throw new InvalidOperationException(SR.Get(SRID.Enumerator_NotStarted)); } else { Debug.Assert(_index == -2, "expected -2, got " + _index + "\n"); throw new InvalidOperationException(SR.Get(SRID.Enumerator_ReachedEnd)); } } } #endregion #region Data private Point3D _current; private Point3DCollection _list; private uint _version; private int _index; #endregion } #endregion #region Constructors //------------------------------------------------------ // // Constructors // //----------------------------------------------------- ////// Initializes a new instance that is empty. /// public Point3DCollection() { _collection = new FrugalStructList(); } /// /// Initializes a new instance that is empty and has the specified initial capacity. /// /// int - The number of elements that the new list is initially capable of storing. public Point3DCollection(int capacity) { _collection = new FrugalStructList(capacity); } /// /// Creates a Point3DCollection with all of the same elements as collection /// public Point3DCollection(IEnumerablecollection) { // The WritePreamble and WritePostscript aren't technically necessary // in the constructor as of 1/20/05 but they are put here in case // their behavior changes at a later date WritePreamble(); if (collection != null) { ICollection icollectionOfT = collection as ICollection ; if (icollectionOfT != null) { _collection = new FrugalStructList (icollectionOfT); } else { ICollection icollection = collection as ICollection; if (icollection != null) // an IC but not and IC { _collection = new FrugalStructList (icollection); } else // not a IC or IC so fall back to the slower Add { _collection = new FrugalStructList (); foreach (Point3D item in collection) { _collection.Add(item); } } } WritePostscript(); } else { throw new ArgumentNullException("collection"); } } #endregion Constructors } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // // Copyright (C) Microsoft Corporation. All rights reserved. // // // This file was generated, please do not edit it directly. // // Please see http://wiki/default.aspx/Microsoft.Projects.Avalon/MilCodeGen.html for more information. // //--------------------------------------------------------------------------- using MS.Internal; using MS.Internal.Collections; using MS.Internal.PresentationCore; using MS.Utility; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Runtime.InteropServices; using System.Text; using System.Windows.Markup; using System.Windows.Media.Media3D.Converters; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Security; using System.Security.Permissions; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; using System.Windows.Media.Imaging; // These types are aliased to match the unamanaged names used in interop using BOOL = System.UInt32; using WORD = System.UInt16; using Float = System.Single; namespace System.Windows.Media.Media3D { ////// A collection of Point3Ds. /// [TypeConverter(typeof(Point3DCollectionConverter))] [ValueSerializer(typeof(Point3DCollectionValueSerializer))] // Used by MarkupWriter public sealed partial class Point3DCollection : Freezable, IFormattable, IList, IList{ //----------------------------------------------------- // // Public Methods // //----------------------------------------------------- #region Public Methods /// /// Shadows inherited Clone() with a strongly typed /// version for convenience. /// public new Point3DCollection Clone() { return (Point3DCollection)base.Clone(); } ////// Shadows inherited CloneCurrentValue() with a strongly typed /// version for convenience. /// public new Point3DCollection CloneCurrentValue() { return (Point3DCollection)base.CloneCurrentValue(); } #endregion Public Methods //------------------------------------------------------ // // Public Properties // //----------------------------------------------------- #region IList/// /// Adds "value" to the list /// public void Add(Point3D value) { AddHelper(value); } ////// Removes all elements from the list /// public void Clear() { WritePreamble(); _collection.Clear(); ++_version; WritePostscript(); } ////// Determines if the list contains "value" /// public bool Contains(Point3D value) { ReadPreamble(); return _collection.Contains(value); } ////// Returns the index of "value" in the list /// public int IndexOf(Point3D value) { ReadPreamble(); return _collection.IndexOf(value); } ////// Inserts "value" into the list at the specified position /// public void Insert(int index, Point3D value) { WritePreamble(); _collection.Insert(index, value); ++_version; WritePostscript(); } ////// Removes "value" from the list /// public bool Remove(Point3D value) { WritePreamble(); int index = IndexOf(value); if (index >= 0) { // we already have index from IndexOf so instead of using Remove, // which will search the collection a second time, we'll use RemoveAt _collection.RemoveAt(index); ++_version; WritePostscript(); return true; } // Collection_Remove returns true, calls WritePostscript, // increments version, and does UpdateResource if it succeeds return false; } ////// Removes the element at the specified index /// public void RemoveAt(int index) { RemoveAtWithoutFiringPublicEvents(index); // RemoveAtWithoutFiringPublicEvents incremented the version WritePostscript(); } ////// Removes the element at the specified index without firing /// the public Changed event. /// The caller - typically a public method - is responsible for calling /// WritePostscript if appropriate. /// internal void RemoveAtWithoutFiringPublicEvents(int index) { WritePreamble(); _collection.RemoveAt(index); ++_version; // No WritePostScript to avoid firing the Changed event. } ////// Indexer for the collection /// public Point3D this[int index] { get { ReadPreamble(); return _collection[index]; } set { WritePreamble(); _collection[ index ] = value; ++_version; WritePostscript(); } } #endregion #region ICollection/// /// The number of elements contained in the collection. /// public int Count { get { ReadPreamble(); return _collection.Count; } } ////// Copies the elements of the collection into "array" starting at "index" /// public void CopyTo(Point3D[] array, int index) { ReadPreamble(); if (array == null) { throw new ArgumentNullException("array"); } // This will not throw in the case that we are copying // from an empty collection. This is consistent with the // BCL Collection implementations. (Windows 1587365) if (index < 0 || (index + _collection.Count) > array.Length) { throw new ArgumentOutOfRangeException("index"); } _collection.CopyTo(array, index); } bool ICollection.IsReadOnly { get { ReadPreamble(); return IsFrozen; } } #endregion #region IEnumerable /// /// Returns an enumerator for the collection /// public Enumerator GetEnumerator() { ReadPreamble(); return new Enumerator(this); } IEnumeratorIEnumerable .GetEnumerator() { return this.GetEnumerator(); } #endregion #region IList bool IList.IsReadOnly { get { return ((ICollection )this).IsReadOnly; } } bool IList.IsFixedSize { get { ReadPreamble(); return IsFrozen; } } object IList.this[int index] { get { return this[index]; } set { // Forwards to typed implementation this[index] = Cast(value); } } int IList.Add(object value) { // Forward to typed helper return AddHelper(Cast(value)); } bool IList.Contains(object value) { if (value is Point3D) { return Contains((Point3D)value); } return false; } int IList.IndexOf(object value) { if (value is Point3D) { return IndexOf((Point3D)value); } return -1; } void IList.Insert(int index, object value) { // Forward to IList Insert Insert(index, Cast(value)); } void IList.Remove(object value) { if (value is Point3D) { Remove((Point3D)value); } } #endregion #region ICollection void ICollection.CopyTo(Array array, int index) { ReadPreamble(); if (array == null) { throw new ArgumentNullException("array"); } // This will not throw in the case that we are copying // from an empty collection. This is consistent with the // BCL Collection implementations. (Windows 1587365) if (index < 0 || (index + _collection.Count) > array.Length) { throw new ArgumentOutOfRangeException("index"); } if (array.Rank != 1) { throw new ArgumentException(SR.Get(SRID.Collection_BadRank)); } // Elsewhere in the collection we throw an AE when the type is // bad so we do it here as well to be consistent try { int count = _collection.Count; for (int i = 0; i < count; i++) { array.SetValue(_collection[i], index + i); } } catch (InvalidCastException e) { throw new ArgumentException(SR.Get(SRID.Collection_BadDestArray, this.GetType().Name), e); } } bool ICollection.IsSynchronized { get { ReadPreamble(); return IsFrozen || Dispatcher != null; } } object ICollection.SyncRoot { get { ReadPreamble(); return this; } } #endregion #region IEnumerable IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } #endregion #region Internal Helpers /// /// A frozen empty Point3DCollection. /// internal static Point3DCollection Empty { get { if (s_empty == null) { Point3DCollection collection = new Point3DCollection(); collection.Freeze(); s_empty = collection; } return s_empty; } } ////// Helper to return read only access. /// internal Point3D Internal_GetItem(int i) { return _collection[i]; } #endregion #region Private Helpers private Point3D Cast(object value) { if( value == null ) { throw new System.ArgumentNullException("value"); } if (!(value is Point3D)) { throw new System.ArgumentException(SR.Get(SRID.Collection_BadType, this.GetType().Name, value.GetType().Name, "Point3D")); } return (Point3D) value; } // IList.Add returns int and IList.Add does not. This // is called by both Adds and IList 's just ignores the // integer private int AddHelper(Point3D value) { int index = AddWithoutFiringPublicEvents(value); // AddAtWithoutFiringPublicEvents incremented the version WritePostscript(); return index; } internal int AddWithoutFiringPublicEvents(Point3D value) { int index = -1; WritePreamble(); index = _collection.Add(value); ++_version; // No WritePostScript to avoid firing the Changed event. return index; } #endregion Private Helpers private static Point3DCollection s_empty; #region Public Properties #endregion Public Properties //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ #region Protected Methods /// /// Implementation of ///Freezable.CreateInstanceCore . ///The new Freezable. protected override Freezable CreateInstanceCore() { return new Point3DCollection(); } ////// Implementation of Freezable.CloneCore() /// protected override void CloneCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.CloneCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } /// /// Implementation of Freezable.CloneCurrentValueCore() /// protected override void CloneCurrentValueCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.CloneCurrentValueCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } /// /// Implementation of Freezable.GetAsFrozenCore() /// protected override void GetAsFrozenCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.GetAsFrozenCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } /// /// Implementation of Freezable.GetCurrentValueAsFrozenCore() /// protected override void GetCurrentValueAsFrozenCore(Freezable source) { Point3DCollection sourcePoint3DCollection = (Point3DCollection) source; base.GetCurrentValueAsFrozenCore(source); int count = sourcePoint3DCollection._collection.Count; _collection = new FrugalStructList(count); for (int i = 0; i < count; i++) { _collection.Add(sourcePoint3DCollection._collection[i]); } } #endregion ProtectedMethods //----------------------------------------------------- // // Internal Methods // //------------------------------------------------------ #region Internal Methods #endregion Internal Methods //----------------------------------------------------- // // Internal Properties // //----------------------------------------------------- #region Internal Properties /// /// Creates a string representation of this object based on the current culture. /// ////// A string representation of this object. /// public override string ToString() { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, null /* format provider */); } ////// Creates a string representation of this object based on the IFormatProvider /// passed in. If the provider is null, the CurrentCulture is used. /// ////// A string representation of this object. /// public string ToString(IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, provider); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// string IFormattable.ToString(string format, IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(format, provider); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// internal string ConvertToString(string format, IFormatProvider provider) { if (_collection.Count == 0) { return String.Empty; } StringBuilder str = new StringBuilder(); // Consider using this separator // Helper to get the numeric list separator for a given culture. // char separator = MS.Internal.TokenizerHelper.GetNumericListSeparator(provider); for (int i=0; i<_collection.Count; i++) { str.AppendFormat( provider, "{0:" + format + "}", _collection[i]); if (i != _collection.Count-1) { str.Append(" "); } } return str.ToString(); } ////// Parse - returns an instance converted from the provided string /// using the current culture /// string with Point3DCollection data /// public static Point3DCollection Parse(string source) { IFormatProvider formatProvider = CultureInfo.GetCultureInfo("en-us"); TokenizerHelper th = new TokenizerHelper(source, formatProvider); Point3DCollection resource = new Point3DCollection(); Point3D value; while (th.NextToken()) { value = new Point3D( Convert.ToDouble(th.GetCurrentToken(), formatProvider), Convert.ToDouble(th.NextTokenRequired(), formatProvider), Convert.ToDouble(th.NextTokenRequired(), formatProvider)); resource.Add(value); } return resource; } #endregion Internal Properties //----------------------------------------------------- // // Dependency Properties // //------------------------------------------------------ #region Dependency Properties #endregion Dependency Properties //----------------------------------------------------- // // Internal Fields // //------------------------------------------------------ #region Internal Fields internal FrugalStructList_collection; internal uint _version = 0; #endregion Internal Fields #region Enumerator /// /// Enumerates the items in a Point3DCollection /// public struct Enumerator : IEnumerator, IEnumerator{ #region Constructor internal Enumerator(Point3DCollection list) { Debug.Assert(list != null, "list may not be null."); _list = list; _version = list._version; _index = -1; _current = default(Point3D); } #endregion #region Methods void IDisposable.Dispose() { } /// /// Advances the enumerator to the next element of the collection. /// ////// true if the enumerator was successfully advanced to the next element, /// false if the enumerator has passed the end of the collection. /// public bool MoveNext() { _list.ReadPreamble(); if (_version == _list._version) { if (_index > -2 && _index < _list._collection.Count - 1) { _current = _list._collection[++_index]; return true; } else { _index = -2; // -2 indicates "past the end" return false; } } else { throw new InvalidOperationException(SR.Get(SRID.Enumerator_CollectionChanged)); } } ////// Sets the enumerator to its initial position, which is before the /// first element in the collection. /// public void Reset() { _list.ReadPreamble(); if (_version == _list._version) { _index = -1; } else { throw new InvalidOperationException(SR.Get(SRID.Enumerator_CollectionChanged)); } } #endregion #region Properties object IEnumerator.Current { get { return this.Current; } } ////// Current element /// /// The behavior of IEnumerable<T>.Current is undefined /// before the first MoveNext and after we have walked /// off the end of the list. However, the IEnumerable.Current /// contract requires that we throw exceptions /// public Point3D Current { get { if (_index > -1) { return _current; } else if (_index == -1) { throw new InvalidOperationException(SR.Get(SRID.Enumerator_NotStarted)); } else { Debug.Assert(_index == -2, "expected -2, got " + _index + "\n"); throw new InvalidOperationException(SR.Get(SRID.Enumerator_ReachedEnd)); } } } #endregion #region Data private Point3D _current; private Point3DCollection _list; private uint _version; private int _index; #endregion } #endregion #region Constructors //------------------------------------------------------ // // Constructors // //----------------------------------------------------- ////// Initializes a new instance that is empty. /// public Point3DCollection() { _collection = new FrugalStructList(); } /// /// Initializes a new instance that is empty and has the specified initial capacity. /// /// int - The number of elements that the new list is initially capable of storing. public Point3DCollection(int capacity) { _collection = new FrugalStructList(capacity); } /// /// Creates a Point3DCollection with all of the same elements as collection /// public Point3DCollection(IEnumerablecollection) { // The WritePreamble and WritePostscript aren't technically necessary // in the constructor as of 1/20/05 but they are put here in case // their behavior changes at a later date WritePreamble(); if (collection != null) { ICollection icollectionOfT = collection as ICollection ; if (icollectionOfT != null) { _collection = new FrugalStructList (icollectionOfT); } else { ICollection icollection = collection as ICollection; if (icollection != null) // an IC but not and IC { _collection = new FrugalStructList (icollection); } else // not a IC or IC so fall back to the slower Add { _collection = new FrugalStructList (); foreach (Point3D item in collection) { _collection.Add(item); } } } WritePostscript(); } else { throw new ArgumentNullException("collection"); } } #endregion Constructors } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SimpleType.cs
- storagemappingitemcollection.viewdictionary.cs
- PopOutPanel.cs
- DynamicRendererThreadManager.cs
- AppDomainProtocolHandler.cs
- Transform3DGroup.cs
- ConfigDefinitionUpdates.cs
- IdleTimeoutMonitor.cs
- XmlEnumAttribute.cs
- CodeDirectoryCompiler.cs
- CannotUnloadAppDomainException.cs
- BaseCAMarshaler.cs
- DictionaryItemsCollection.cs
- EventHandlerService.cs
- SQLDateTimeStorage.cs
- TraceListener.cs
- ExtendedPropertyCollection.cs
- SessionStateItemCollection.cs
- TraceLevelStore.cs
- PropertyStore.cs
- If.cs
- HttpNamespaceReservationInstallComponent.cs
- ConfigXmlWhitespace.cs
- ObjectItemNoOpAssemblyLoader.cs
- AtomServiceDocumentSerializer.cs
- CacheRequest.cs
- GridViewColumnCollection.cs
- ResourceWriter.cs
- PropertyPathConverter.cs
- Menu.cs
- _Semaphore.cs
- IntMinMaxAggregationOperator.cs
- ApplicationException.cs
- Transform3D.cs
- GenericIdentity.cs
- GridViewDeleteEventArgs.cs
- SBCSCodePageEncoding.cs
- httpstaticobjectscollection.cs
- StylusCaptureWithinProperty.cs
- TaiwanLunisolarCalendar.cs
- WebPartEditorOkVerb.cs
- NumberFormatter.cs
- DeleteMemberBinder.cs
- NamespaceCollection.cs
- CollectionChangeEventArgs.cs
- ConfigErrorGlyph.cs
- BaseDataList.cs
- BindingWorker.cs
- HwndAppCommandInputProvider.cs
- ValidationSummary.cs
- FixedStringLookup.cs
- Ref.cs
- ClientFormsAuthenticationMembershipProvider.cs
- IntegerFacetDescriptionElement.cs
- PublishLicense.cs
- WpfKnownMemberInvoker.cs
- ToolstripProfessionalRenderer.cs
- BinaryMethodMessage.cs
- SingletonConnectionReader.cs
- ProtocolsConfiguration.cs
- cache.cs
- VisualTransition.cs
- PageHandlerFactory.cs
- CodeIdentifier.cs
- TypeBuilderInstantiation.cs
- BamlBinaryWriter.cs
- Vector3DValueSerializer.cs
- PasswordTextContainer.cs
- XamlValidatingReader.cs
- FileDialog.cs
- ClientSideQueueItem.cs
- PngBitmapDecoder.cs
- StringAttributeCollection.cs
- SchemaTableColumn.cs
- ToolStripItemImageRenderEventArgs.cs
- ToolStripContainer.cs
- datacache.cs
- FormatException.cs
- ProtocolsConfigurationHandler.cs
- EpmContentSerializer.cs
- MimeMapping.cs
- CalendarDateChangedEventArgs.cs
- SecureUICommand.cs
- FamilyMapCollection.cs
- NetDispatcherFaultException.cs
- RootProfilePropertySettingsCollection.cs
- SHA512.cs
- BitmapPalette.cs
- PromptBuilder.cs
- FixedSOMLineRanges.cs
- Matrix3DStack.cs
- CompiledELinqQueryState.cs
- ScrollProperties.cs
- ScriptDescriptor.cs
- EntitySqlException.cs
- Help.cs
- SQLMembershipProvider.cs
- ItemChangedEventArgs.cs
- XmlSignatureProperties.cs
- PersonalizableTypeEntry.cs