Click or drag to resize

CoordinateList Class

A list implementation of a sequence of coordinates. If the coordinates has the M coordinate, they are assumed to be strictly increasing
Inheritance Hierarchy
SystemObject
  System.Collections.GenericListICoordinate
    DHI.Mike1D.Generic.Spatial.GeometryCoordinateList

Namespace:  DHI.Mike1D.Generic.Spatial.Geometry
Assembly:  DHI.Mike1D.Generic (in DHI.Mike1D.Generic.dll) Version: 16.0.0.0 (11.1.1.1111)
Syntax
C#
[SerializableAttribute]
public class CoordinateList : List<ICoordinate>, 
	ICoordinateSequence, IList<ICoordinate>, ICollection<ICoordinate>, 
	IEnumerable<ICoordinate>, IEnumerable

The CoordinateList type exposes the following members.

Properties
  NameDescription
Public propertyCapacity
Gets or sets the total number of elements the internal data structure can hold without resizing.
(Inherited from ListICoordinate.)
Public propertyCoordinateType
Type of coordinate. All coordinates in the sequence must be of the same type
Public propertyCount (Inherited from ListICoordinate.)
Public propertyItem
Gets or sets the element at the specified index.
(Inherited from ListICoordinate.)
Public propertySortByM
If true, keeps data sorted by their M value
Top
Methods
  NameDescription
Public methodAdd
Add a ICoordinate to the list
Public methodAddRange (Inherited from ListICoordinate.)
Public methodAsReadOnly (Inherited from ListICoordinate.)
Public methodBinarySearch(T)
Searches the entire sorted ListT for an element using the default comparer and returns the zero-based index of the element.
(Inherited from ListICoordinate.)
Public methodBinarySearch(T, IComparerT)
Searches the entire sorted ListT for an element using the specified comparer and returns the zero-based index of the element.
(Inherited from ListICoordinate.)
Public methodBinarySearch(Int32, Int32, T, IComparerT)
Searches a range of elements in the sorted ListT for an element using the specified comparer and returns the zero-based index of the element.
(Inherited from ListICoordinate.)
Public methodClear (Inherited from ListICoordinate.)
Public methodContains (Inherited from ListICoordinate.)
Public methodConvertAllTOutput (Inherited from ListICoordinate.)
Public methodCopyTo(T) (Inherited from ListICoordinate.)
Public methodCopyTo(T, Int32) (Inherited from ListICoordinate.)
Public methodCopyTo(Int32, T, Int32, Int32)
Copies a range of elements from the ListT to a compatible one-dimensional array, starting at the specified index of the target array.
(Inherited from ListICoordinate.)
Public methodStatic memberCreate(CoordinateType)
Create a coordinate list of the specified type
Public methodStatic memberCreate(CoordinateType, IEnumerableICoordinate)
Creates a new CoordinateList of the specified type that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied.
Public methodStatic memberCreate(CoordinateType, Int32)
Create a coordinate list of the specified type and with the specified initial capacity
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodExists (Inherited from ListICoordinate.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodFind
Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire ListT.
(Inherited from ListICoordinate.)
Public methodFindAll
Retrieves all the elements that match the conditions defined by the specified predicate.
(Inherited from ListICoordinate.)
Public methodFindIndex(PredicateT)
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire ListT.
(Inherited from ListICoordinate.)
Public methodFindIndex(Int32, PredicateT)
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ListT that extends from the specified index to the last element.
(Inherited from ListICoordinate.)
Public methodFindIndex(Int32, Int32, PredicateT)
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ListT that starts at the specified index and contains the specified number of elements.
(Inherited from ListICoordinate.)
Public methodFindLast
Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire ListT.
(Inherited from ListICoordinate.)
Public methodFindLastIndex(PredicateT)
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire ListT.
(Inherited from ListICoordinate.)
Public methodFindLastIndex(Int32, PredicateT)
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the ListT that extends from the first element to the specified index.
(Inherited from ListICoordinate.)
Public methodFindLastIndex(Int32, Int32, PredicateT)
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the ListT that contains the specified number of elements and ends at the specified index.
(Inherited from ListICoordinate.)
Public methodForEach (Inherited from ListICoordinate.)
Public methodGetEnumerator (Inherited from ListICoordinate.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetRange (Inherited from ListICoordinate.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIndexOf(T) (Inherited from ListICoordinate.)
Public methodIndexOf(T, Int32)
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the ListT that extends from the specified index to the last element.
(Inherited from ListICoordinate.)
Public methodIndexOf(T, Int32, Int32)
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the ListT that starts at the specified index and contains the specified number of elements.
(Inherited from ListICoordinate.)
Public methodInsert (Inherited from ListICoordinate.)
Public methodInsertRange (Inherited from ListICoordinate.)
Public methodLastIndexOf(T) (Inherited from ListICoordinate.)
Public methodLastIndexOf(T, Int32)
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the ListT that extends from the first element to the specified index.
(Inherited from ListICoordinate.)
Public methodLastIndexOf(T, Int32, Int32)
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the ListT that contains the specified number of elements and ends at the specified index.
(Inherited from ListICoordinate.)
Public methodLocateAlong(Double)
Returns a derived ICoordinate value that matches the specified m coordinate value. If the specified m-coordinate is outside the span of m-values in the sequence, null is returned.
Public methodLocateAlong(Double, Boolean)
Returns a derived ICoordinate value that matches the specified m coordinate value
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodRemove (Inherited from ListICoordinate.)
Public methodRemoveAll
Removes all the elements that match the conditions defined by the specified predicate.
(Inherited from ListICoordinate.)
Public methodRemoveAt (Inherited from ListICoordinate.)
Public methodRemoveRange (Inherited from ListICoordinate.)
Public methodReverse (Inherited from ListICoordinate.)
Public methodReverse(Int32, Int32)
Reverses the order of the elements in the specified range.
(Inherited from ListICoordinate.)
Public methodStatic memberSetSortByM
Set the flag to sort coordinate list on chainage
Public methodSort (Inherited from ListICoordinate.)
Public methodSort(IComparerT) (Inherited from ListICoordinate.)
Public methodSort(ComparisonT) (Inherited from ListICoordinate.)
Public methodSort(Int32, Int32, IComparerT) (Inherited from ListICoordinate.)
Public methodToArray (Inherited from ListICoordinate.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodTrimExcess (Inherited from ListICoordinate.)
Public methodTrueForAll (Inherited from ListICoordinate.)
Top
Extension Methods
  NameDescription
Public Extension MethodBinarySearchICoordinate(ICoordinate)Overloaded.
Searches the entire sorted IListT for an element and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

(Defined by GenericExtensions.)
Public Extension MethodCode exampleBinarySearchICoordinate(FuncICoordinate, Int32)Overloaded.
Searches the entire sorted IListT for an element using the provided comparer and returns the zero-based index of the element.

This differs from the "ordinary" binary search in allowing a comparer delegate that defines whether an item is found (returning 0), whether the item in the list is before (<0) or after (>0) that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class.

Examples
If having a list of doubles, to find 4.5 in the list, use:
int index = list.BinarySearch(d => d.CompareTo(4.5))
(Defined by GenericExtensions.)
Public Extension MethodBinarySearchICoordinate(ICoordinate, IComparerICoordinate)Overloaded.
Searches the entire sorted IListT for an element using the provided comparer and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

(Defined by GenericExtensions.)
Public Extension MethodBinarySearchICoordinate, TKey(FuncICoordinate, TKey, TKey)Overloaded.
Searches the entire sorted IListT for an element and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

This differs from the "ordinary" binary search in allowing a keySelectorcomparer that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class.

(Defined by GenericExtensions.)
Public Extension MethodBinarySearchICoordinate, TKey(FuncICoordinate, TKey, TKey, IComparerTKey)Overloaded.
Searches the entire sorted IListT for an element using the provided comparer and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

This differs from the "ordinary" binary search in allowing a keySelectorcomparer that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class.

(Defined by GenericExtensions.)
Public Extension MethodCastToList
Cast an ICoordinateSequence to an CoordinateList, create a new if a cast is not possible
(Defined by SpatialExtensions.)
Public Extension MethodDirectionUnitVector
Finds the local reach direction as the direction from the locally surounding digi points. The vector returned is a unit vector.
(Defined by SpatialExtensions.)
Public Extension MethodDirectionUnitVectorSmooth
Finds the local reach direction as the direction from the locally surrounding digi points. The vector returned is a unit vector.

This returns a smoothly varying unit vector: On the center of the line between two digipoints, the direction of the line is returned. On a digipoint the average of the line before and after the digipoint is returned. In between the center of the line and the digipoint the direction varies linearly.

(Defined by SpatialExtensions.)
Public Extension MethodLocateAlong(Double)Overloaded.
Locate a coordinate where the m value is located in the coords.
(Defined by SpatialExtensions.)
Public Extension MethodLocateAlong(Double, ExtrapolationTypes)Overloaded.
Locate a coordinate where the m value is located in the coords.

If extrapolate is true, the coordinates are extrapolated. If only one coordinate exist in coords, return that coordinate.

Extrapoloation types 'Nearest' and 'Linear is supported'.

(Defined by SpatialExtensions.)
Public Extension MethodLocateAlong(Double, ExtrapolationTypes, Double)Overloaded.
Locate a coordinate where the m value is located in the coords.

If extrapolate is true, the coordinates are extrapolated within the extrapolation distance. If only one coordinate exist in coords, return that coordinate.

Extrapoloation types 'Nearest' and 'Linear is supported'.

(Defined by SpatialExtensions.)
Public Extension MethodSortICoordinateOverloaded.
Sorts the elements in the entire List{T} using the default comparer.

A quick sort algorithm is used. Quick sort is a un-stable sort algorithm i.e. if two elements are equal their order may not be preserved.

If the provided IList is either an array or a list, the build in sorting method is used (also quick sort).

(Defined by GenericExtensions.)
Public Extension MethodSortICoordinate(IComparerICoordinate)Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.

A quick sort algorithm is used. Quick sort is a un-stable sort algorithm i.e. if two elements are equal their order may not be preserved.

If the provided IList is either an array or a list, the build in sorting method is used (also quick sort).

(Defined by GenericExtensions.)
Public Extension MethodSortStableICoordinateOverloaded. (Defined by GenericExtensions.)
Public Extension MethodSortStableICoordinate(IComparerICoordinate)Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.

A merge sort algorithm is used. merge sort is a stable sort algorithm i.e. if two elements are equal their order are preserved.

(Defined by GenericExtensions.)
Public Extension MethodSortStableICoordinate(ComparisonICoordinate)Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.

A merge sort algorithm is used. merge sort is a stable sort algorithm i.e. if two elements are equal their order are preserved.

(Defined by GenericExtensions.)
Top
See Also