Click or drag to resize

ICoordinateSequence Interface

Interface for a sequence of ICoordinate's Implementing many of the IList{T} methods without explicitly extending the IList{T} (for COM interop)

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#
public interface ICoordinateSequence : IList<ICoordinate>, 
	ICollection<ICoordinate>, IEnumerable<ICoordinate>, IEnumerable

The ICoordinateSequence type exposes the following members.

Properties
  NameDescription
Public propertyCoordinateType
Type of coordinate. All coordinates in the sequence must be of the same type
Public propertyCount
The number of ICoordinate's in the list
Public propertyIsReadOnly (Inherited from ICollectionICoordinate.)
Public propertyItem
Get or set the ICoordinate at the specified index in the list
Top
Methods
  NameDescription
Public methodAdd (Inherited from ICollectionICoordinate.)
Public methodClear
Removes all elements from the List.
Public methodContains (Inherited from ICollectionICoordinate.)
Public methodCopyTo (Inherited from ICollectionICoordinate.)
Public methodFind
Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire List.
Public methodGetEnumerator
Returns an enumerator that iterates through the collection.
(Inherited from IEnumerableICoordinate.)
Public methodIndexOf
Searches for the specified object and returns the zero-based index of the first occurrence within the entire List.
Public methodInsert (Inherited from IListICoordinate.)
Public methodRemove
Removes the first occurrence of a specific object from the List.
Public methodRemoveAt
Removes the element at the specified index of the List.
Public methodToArray
Copies all elements of the list to an array.
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