DotSpatial.Data Tiny structure for storing A,R,G,B components of Color Returns an integer that ranges from 0 to 255. If value is larger than 255, the value will be equal to 255. If the value is smaller than 255, it will be equal to 255. A Double value to convert. An integer ranging from 0 to 255 Writes the specified type. The writer. The value. Reads the specified type. The reader. A registry used to map CLR cultures and encodings to dBase language driver id (LDID) encoding specifiers. Lookup values are taken from Esri's ArcPad Reference Guide Gets the associated with the given dBase LDID. The language driver id (LDID) to get a CultureInfo for. A which uses the encoding represented by by default. Gets the which matches the given dBase LDID. The language driver id (LDID) to get the for. An which corresponds to the the code established by Esri. Gets a language driver id (LDID) for the given encoding. The Encoding used to lookup the LDID. A language driver code used to specify the encoding used to write text in the dBase file. 0x57 (Windows ANSI) is returned as a default if there is no associated LDID for the given encoding. Specifies which code page to use in a instance. Represents a culture and encoding pair. This base class tries to correctly implement disposable, and should help make the behaviors more consistent across classes that inherit from this class. Unlike forms that have a disposable life cycle with a clear chain of ownership, or purely managed libraries that have in a built in reference counting system, disposable members in DotSpatial require the ability to behave in some cases like a layer that should be removed from memory as soon as it is removed from the map, and other times like a persistent object. The DisposeLock concept works like an industrial lock-out system. Each additional lock increases the lock count. When all users have released the lock, the IsDisposedLocked property will be false, and the next action like a removal from the parent layers will properly dispose the item. Users may feel free to add the lock in order to handle disposal on the layers themselves. These methods will not actually prevent Dispose from functioning, but understand that calling dispose when there is an IsDisposeLocked is true means that there will likely be a problem. Locks dispose. This typically adds one instance of an internal reference counter. Unlocks dispose. This typically removes one instance of an internal reference counter. Gets a value indicating whether an existing reference is requesting that the object is not disposed of. Disposes Adds one request or "reference count" for this item not to be disposed. When an owner is finished, if this is 0, then dispose should be called. For now this does not prevent Dispose from being called, it is simply for tracking purposes. Removes one reference or request to prevent an object from being automatically disposed. Finalizes an instance of the class. This is where the meat of the dispose work is done. Subclasses should call dispose on any disposable members or internal members (presuming they are not dispose locked). True if the "Dispose" method was called instead of the destructor. Gets a value indicating whether this instance has already had the Dispose method called on it. Gets a value indicating whether there are outstanding references that may be using the item that would prefer it if you did not dispose of the item while they are still using it. An EventArgs class for passing around an extent. Initializes a new instance of the ExtentArgs class. The value for this event. Gets or sets the Extents for this event. The ExtentsM class extends the regular X and Y extent to the X, Y and M case. Extent works like an envelope but is faster acting, has a minimum memory profile, only works in 2D and has no events. A very simple, 2D extent specification. Minimum in the X dimension, usually left or minimum longitude. Maximum in the x dimension, usually right or maximum longitude. Minimum in the y dimension, usually bottom or minimum latitude. Maximum in the y dimension, usually the top or maximum latitude. Gets a Boolean that is true if the Min and Max M range should be used. Gets a Boolean indicating whether the Z value should be used. Creates a new instance of Extent. This introduces no error checking and assumes that the user knows what they are doing when working with this. Creates a new extent from the specified ordinates Given a long array of doubles, this builds an extent from a small part of that xmin, ymin, xmax, ymax XMin, YMin, XMax, YMax order Creates a new extent from the specified envelope Produces a clone, rather than using this same object. Equality test Inequality test Tests if this envelope is contained by the specified envelope Tests if this envelope is contained by the specified envelope The coordinate to test. Boolean Tests if this envelope is contained by the specified envelope Copies the MinX, MaxX, MinY, MaxY values from extent. Any IExtent implementation. Allows equality testing for extents that is derived on the extent itself. Expand will adjust both the minimum and maximum by the specified sizeX and sizeY The amount to expand left and right. The amount to expand up and down. This expand the extent by the specified padding on all bounds. So the width will change by twice the padding for instance. To Expand only x and y, use the overload with those values explicitly specified. The double padding to expand the extent. Expands this extent to include the domain of the specified extent The extent to expand to include Expands this extent to include the domain of the specified point Spreads the values for the basic X, Y extents across the whole range of int. Repetition will occur, but it should be rare. Integer Calculates the intersection of this extent and the other extent. A result with a min greater than the max in either direction is considered invalid and represents no intersection. The other extent to intersect with. Returns true if the coordinate exists anywhere within this envelope Tests for intersection with the specified coordinate The double ordinate to test intersection with in the X direction The double ordinate to test intersection with in the Y direction True if a point with the specified x and y coordinates is within or on the border of this extent object. NAN values will always return false. Tests to see if the point is inside or on the boundary of this extent. Tests for an intersection with the specified extent The other extent Boolean, true if they overlap anywhere, or even touch Tests with the specified envelope for a collision If this is undefined, it will have a min that is larger than the max, or else any value is NaN. This only applies to the X and Z terms. Check HasM or HasZ higher dimensions. Boolean, true if the envelope has not had values set for it yet. This allows parsing the X and Y values from a string version of the extent as: 'X[-180|180], Y[-90|90]' Where minimum always precedes maximum. The correct M or MZ version of extent will be returned if the string has those values. The string text to parse. This reads the string and attempts to derive values from the text. This centers the X and Y aspect of the extent on the specified center location. This centers the X and Y aspect of the extent on the specified center location. The center coordinate to to set. This centers the extent on the specified coordinate, keeping the width and height the same. Sets the values for xMin, xMax, yMin and yMax. The double Minimum in the X direction. The double Minimum in the Y direction. The double Maximum in the X direction. The double Maximum in the Y direction. Creates a geometric envelope interface from this Creates a string that shows the extent. The string form of the extent. Tests if this envelope is contained by the specified envelope Tests if this envelope is contained by the specified envelope Attempts to extract the min and max from one element of text. The element should be formatted like X[1.5, 2.7] using an invariant culture. The name of the dimension, like X. The minimum that gets assigned The maximum that gets assigned Boolean, true if the parse was successful. This method converts the X and Y text into two doubles. Gets the Center of this extent. Gets or sets whether the M values are used. M values are considered optional, and not mandatory. Unused could mean either bound is NaN for some reason, or else that the bounds are invalid by the Min being less than the Max. Gets or sets whether the M values are used. M values are considered optional, and not mandatory. Unused could mean either bound is NaN for some reason, or else that the bounds are invalid by the Min being less than the Max. Max X Max Y Min X Min Y Gets MaxY - MinY. Setting this will update MinY, keeping MaxY the same. (Pinned at top left corner). Gets MaxX - MinX. Setting this will update MaxX, keeping MinX the same. (Pinned at top left corner). Gets MinX. Setting this will shift both MinX and MaxX, keeping the width the same. Gets MaxY. Setting this will shift both MinY and MaxY, keeping the height the same. Supports bounding in the M Dimension Gets or sets the minimum M value Gets or sets the maximum M value Initializes a new instance of the ExtentM class. Initializes a new instance of the ExtentM class. The double Minimum in the X direction. The double Minimum in the Y direction. The double Minimum in the Measure category. The double Maximum in the X direction. The double Maximum in the Y direction. The double Maximum in the Measure category. Initializes a new instance of the ExtentM class that is specially designed to work with shapefile formats that have a Measure value. Obviously other formats can use this as well. An extent that contains only the x and y boundaries. The minimum M. The maximum M. Initializes a new instance of the ExtentM class. This overload works from an envelope. The envelope with extent values to read. Produces a clone, rather than using this same object. Returns a copy of this object. Tests if this envelope is contained by the specified envelope The coordinate to test. Boolean. Tests if this envelope is contained by the specified envelope Tests if this envelope is contained by the specified envelope. If either element does not support M values, then only the default X and Y contains test is used. The envelope to test. Boolean. Copies from the implementation of IExtent. This checks to see if IExtentM is implemented and if not, this only sets the X and Y bounds. This expand the extent by the specified padding on all bounds. So the width will change by twice the padding for instance. To Expand only x and y, use the overload with those values explicitly specified. The double padding to expand the extent. Expands this extent to include the domain of the specified extent. If the specified case doesn't support IExtentM or HasM is false for that extent, then this test will default to the XY case. The extent to expand to include. Expands this extent to include the domain of the specified point The x ordinate to expand to. The y ordinate to expand to. The m ordinate to expand to. Calculates the intersection of this extent and the other extent. A result with a min greater than the max in either direction is considered invalid and represents no intersection. The other extent to intersect with. Returns true if the coordinate exists anywhere within this envelope. If this envelope represents a valid M extent by having a max greater than min and neither value being NaN, then this will also test the coordinate for the M range. The Coordinate to test. Boolean Tests for intersection with the specified coordinate. If the m is double.NaN then it degenerates to only testing X and Y, even if this envelope has an M range. The double ordinate to test intersection with in the X direction The double ordinate to test intersection with in the Y direction The optional double measure parameter to test. Boolean Tests for an intersection with the specified extent. Both this extent and the other must implement IExtentM and HasM must be true for both, or else just the X and Y are compared. The other extent. If the extent doesn't implement IExtentM, then this comparison simply defaults to the X Y intersect case. Boolean, true if they overlap anywhere, or even touch. Tests with the specified envelope for a collision. If any part of the M bounds are invalid, this will default to the XY Intersect comparison. The envelope to test. Boolean. Since M values are optional, they can be set to an invalid state, which will behave the same as if the M bounds did not exist. Sets the values for xMin, xMax, yMin and yMax. The double Minimum in the X direction. The double Minimum in the Y direction. The double Minimum in the Measure category. The double Maximum in the X direction. The double Maximum in the Y direction. The double Maximum in the Measure category. Tests if this envelope is contained by the specified envelope. If either party doesn't have M constraints, they will not be used for this test. implementation of IExtent to compare to. Tests if this envelope is contained by the specified envelope. If either envelope doesn't support M then only the X and Y case will be tested. The envelope to compare. Boolean. Allows equality testing for extents that is derived on the extent itself. Creates a string that shows the extent. The string form of the extent. Spreads the values for the basic X, Y extents across the whole range of int. Repetition will occur, but it should be rare. Integer Gets or sets whether the M values are used. M values are considered optional, and not mandatory. Unused could mean either bound is NaN for some reason, or else that the bounds are invalid by the Min being less than the Max. For shapefiles, the extents may or may not have M and Z values depending on the file type. These are valid IExtent implementations, but add both the M and Z extent options. For the file format, the Z values are mandatory, and so whatever the values are will be stored. This may cause issues when viewing in ArcGIS if you have entered some bad Z envelope extents. The Extent interface for Z dimension extent bounds. The minimum in the Z dimension (usually the bottom) The maximum in the Z dimension (usually the top) Initializes a new instance of the ExtentMZ class. Initializes a new instance of the ExtentMZ class. The double Minimum in the X direction. The double Minimum in the Y direction. The double Minimum in the Measure category. The double Minimum in the Z direction. The double Maximum in the X direction. The double Maximum in the Y direction. The double Maximum in the Measure category. The double Maximum in the Z direction. Initialize a new instance of the ExtentMZ class. The Envelope to read the minimum and maximum values from. Since M values are optional, they can be set to an invalid state, which will behave the same as if the M bounds did not exist. Copies from the implementation of IExtent. This checks to see if IExtentM is implemented and if not, this only sets the X and Y bounds. Sets the values for xZin, xMax, yMin and yMax. The double Minimum in the X direction. The double Minimum in the Y direction. The double Minimum in the Measure category. The double Minimum in the Z direction. The double Maximum in the X direction. The double Maximum in the Y direction. The double Maximum in the Measure category. The double Maximum in the Z direction. Tests if this envelope is contained by the specified envelope The coordinate to test. Boolean. Returns true if the coordinate exists anywhere within this envelope. If this envelope represents a valid Z extent by having a max greater than min and neither value being NaN, then this will also test the coordinate for the Z range. The Coordinate to test. Boolean Tests for intersection with the specified coordinate. If the m is double.NaN then it degenerates to only testing M, X and Y, even if this envelope has an M range. The double ordinate to test intersection with in the X direction. The double ordinate to test intersection with in the Y direction. The optional double measure parameter to test. The double ordinate to test intersection with in the Z direction. Boolean Tests for an intersection with the specified extent. Both this extent and the other must implement IExtentM and HasM must be true for both, or else just the X and Y are compared. The other extent. If the extent doesn't implement IExtentM, then this comparison simply defaults to the M, X and Y intersect case. Boolean, true if they overlap anywhere, or even touch. Tests with the specified envelope for a collision. If any part of the Z bounds are invalid, this will default to the M, X and Y Intersect comparison. The envelope to test. Boolean. Calculates the intersection of this extent and the other extent. A result with a min greater than the max in either direction is considered invalid and represents no intersection. The other extent to intersect with. Expands this extent to include the domain of the specified extent. If the specified case doesn't support IExtentM or HasM is false for that extent, then this test will default to the M, X and Y case. The extent to expand to include This expand the extent by the specified padding on all bounds. So the width will change by twice the padding for instance. To Expand only x and y, use the overload with those values explicitly specified. The double padding to expand the extent. Expands this extent to include the domain of the specified point The x ordinate to expand to. The y ordinate to expand to. The m ordinate to expand to. The z ordinate to expand to. Tests if this envelope is contained by the specified envelope. If either party doesn't have M constraints, they will not be used for this test. implementation of IExtent to compare to. Boolean. Tests if this envelope is contained by the specified envelope The extent to test. Boolean. Tests if this envelope is contained by the specified envelope. If either envelope doesn't support M then only the XY case will be tested. The envelope to compare. Boolean. Tests if this envelope is contained by the specified envelope. If either element does not support M values, then only the default XY contains test is used. The envelope to test. Boolean. Creates a string that shows the extent. The string form of the extent. Produces a clone, rather than using this same object. Returns a copy of this object. Allows equality testing for extents that is derived on the extent itself. Spreads the values for the basic X, Y extents across the whole range of int. Repetition will occur for extents that are close, but should be rare. Integer Gets or sets whether the M values are used. M values are considered optional, and not mandatory. Unused could mean either bound is NaN for some reason, or else that the bounds are invalid by the Min being less than the Max. The string template that should be used. M and Z are optional. Do use a comma to delimit terms, but the space doesn't matter. Do use square brackets to enclose numbers, and do use the | separator to separate min from max. Do place min before max in each term. The order of the terms doesn't matter. Use periods for decimals and an invariant culture. Initializes a new instance of the ExtentParseException The string message to parse. Initializes a new instance of the ExtentParseException The string message to parse. The inner exception that caused this exception. Initializes a new instance of the ExtentParseException The Serialization info class that holds the serialized object about which the exception is being thrown. The streaming context that contains contextual information about the source or destination. Gets the string expression that provoked the exception. Represents strongly named DataRow class. This interface allows access to geometries and attributes in a more cohesive package. Stores the shape to the GEOMETRY WKB. Stores the geometry to the geometry wkb. This is a cached extent. This will not reflect changes in Geometry or Shape unless they have been stored, but will reflect the most recently stored or retrieved extent from accessing either the shape or geometry. In cases where reading from WKB, this will be lazily created, but it will be cached when reading from shapefiles. A Geometry created lazily from a WKB byte structure in the GEOMETRY field preferentially or if the field is DBNull and the shape is not null, then from the Shape object. A Shape that is either created lazily from the WKB Geometry or directly from a shapefile. The rest of the attributes are stored by an indexed property. Boolean, true if the geometry has already been created, false otherwise. Boolean, true if the shape has already been created, false otherwise. Boolean, true if the extent has been created, false otherwise. Creates a new instance of the FeatureRow class. Stores the shape into the WKB for storage in a database, overwriting any existing value. Stores the goemetry as WKB, overwriting any existing value. Sets the geometry field to DBNull. Gets whether the geometry is null. Boolean, true if the column is null. A long integer representing the FID. The Byte form of the Geometry From shapefiles, this should be cached. Any other source must likely create the extent from a geometry, and possibly all the way from WKB. A lazily created and cached geometry. Boolean, true if the extent has been created, false otherwise. Boolean, true if the geometry has already been created, false otherwise. Boolean, true if the shape has already been created, false otherwise. When reading from WKB, the Shape is lazily created. When reading from sources like a shapefile, the Shape is actually pre-fetched because the value exists as a shape rather than a geometry. Row event argument class A new event argument for events in a FeatureTable. The FeatureRow of the event. The action occuring for this event. The FeatureRow for this event. The action for this event. An EventArgs specifically tailored to FeatureSet. Initializes a new instance of the FeatureSetEventArgs class. The IFeatureSet that is involved in this event. Gets the Raster associated with this event. Callback specified when calling IFeatureSource.SearchAndModifyAttributes FeatureSourceRowEditEvent arguments RowEditEvent arguments Shape geometry associated with the row Construct FeatureSourceRowEditEventArgs Represents the strongly named DataTable class. Initializes a new instance of a FeatureTable class. Initializes a new instance of a FeatureTable class. Adds the specified FeatureRow to this FeatureTable. the row to add. Generates a new feature row using only the goemetry. The byte form of the well known text to use in creating a new, otherwise empty row. The newly created FeatureRow with the specified well known text. Retrieves a newly generated row from this table cast as a FeatureRow. The FeatureRow class. Finds a FeatureRow by the FID field. The long fid to find A FeatureRow Removes the specified row from the table. The FeatureRow to remove. Generates a new feature row using only the goemetry. The byte form of the well known text to use in creating a new, otherwise empty row. The newly created FeatureRow with the specified well known text. This may or may not be required for proper functioning, but is not part of the public API. A DataTable This may not work since I stripped off the xml related auto text that seems to rely on an existing dataset Occurs while the row is changing Occurs after the row has been changed. Occurs while the row is being deleted. Occurs after the row has been deleted. The integer number of rows in this table. The Column containing the FID value. The Column containing the Geometry column. Optionally gets or sets a geometry factory to use when instantiating geometries from WKB for the rows of this table. Accesses the FeatureRow of this table based on the specified index. The integer index of the feature row to access. This FeatureRow Manage the Fields associated with a dbase Construct Fields and update the individual field data addresses Add a field Update the DataAddress of each field Retrieve field by ordinal Retrieve field by name Get number of fields An interface for specifying something has a Bounds property on it that is a raster bounds. Gets or sets the image bounds being used to define the georeferencing of the image Returns the bitmap Attempts to create a bitmap for the entire image. This may cause memory exceptions. A Bitmap of the image. The geographic envelope gives the region that the image should be created for. The window gives the corresponding pixel dimensions for the image, so that images matching the resolution of the screen can be used. The geographic extents to retrieve data for The rectangle that defines the size of the drawing area in pixels A bitmap captured from the main image The geographic envelope gives the region that the image should be created for. The window gives the corresponding pixel dimensions for the image, so that images matching the resolution of the screen can be used. The geographic extents to retrieve data for The rectangle that defines the size of the drawing area in pixels A bitmap captured from the main image An EventArgs specifically tailored to ImageData. Initializes a new instance of the ImageDataEventArgs class. The IImageData that is involved in this event. Gets the ImageData associated with this event. An enumeration for specifying the endian byte order to use. Specifies big endian like mainframe or unix system. Specifies little endian like most pc systems. A new interface for accessing database or file features to large for memory. This allows editing only for attribute content, but allows Add, Remove, AddRange, and Query functionality that covers both vector and raster content. Updates the file with an additional feature. Removes the feature with the specified index Removes the feature from the specified index location The default implementation calls the add method repeatedly. The set of features to add Select function passed with a filter expression. The string filter expression based on attributes The envelope for vector filtering. The integer start index where values should be checked. This will be updated to the last index that was checked before the return, so that paging the query can begin with that index in the next cycle. Be sure to add one before the next call. The integer maximum number of IFeature values that should be returned. A dictionary with FID keys and IFeature values. Conditionally modify attributes as searched in a single pass via client supplied callback. The envelope for vector filtering. Number of shapes to request from the ShapeSource in each chunk Callback on each feature Edits the values of the specified row in the attribute table. Since not all data formats can handle the dynamic change of attributes, updating vectors can be done with Remove and Add. The feature offest The row of new attribute values. Edits the values of the specified rows in the attribute table. Adding and removing shapes may make the bounds for the entire shapefile invalid. This triggers a check that ensures that the collective extents contain all the shapes. The geographic extent of the feature source Get the attribute table associated with the feature source An enumeration listing the types of image band interpretations supported. Alpha, Red, Green, Blue 4 bytes per pixel, 4 bands Red, Green, Blue 3 bytes per pixel, 3 bands Gray as one byte per pixel, 1 band Colors encoded 1 byte per pixel, 1 band Sets the InRamImage for this class. This is just a georeferenced .Net bitmap that also implements IGetBitmap for cross purpose use with IImageData implementations. Initializes a new instance of an InRamImage class. This class supports a basic .Net Image plus a geographic extent as a RasterBounds. This class does not feature any byte level data access or built in file access. The expectation is that this will only be used in memory. THe Bitmap image to use to create this image. Returns the internal bitmap in this case. In other cases, this may have to be constructed from the unmanaged memory content. A Bitmap that represents the entire image. The geographic envelope gives the region that the image should be created for. The window gives the corresponding pixel dimensions for the image, so that images matching the resolution of the screen can be used. The geographic extents to retrieve data for The rectangle that defines the size of the drawing area in pixels A bitmap captured from the main image The geographic envelope gives the region that the image should be created for. The window gives the corresponding pixel dimensions for the image, so that images matching the resolution of the screen can be used. The geographic extents to retrieve data for The rectangle that defines the size of the drawing area in pixels A bitmap captured from the main image Sets the bitmap for this InRamImage to use. the value to set. If byte access is required, a new class can be created that is a copy of this class for modifying values byte by byte. Gets or sets the raster bounds The Projection interface that acts as a useful tool for calculating pixel coordinates to geographic coordinates and vise-versa. The Rectangle representation of the geographic extents in image coordinates The geographic extents used for projection. This interface specifically insists on an IRasterBounds as the Bounds property. A very generic interface that is implemented by any dataset, regardless of what kinds of data that it has. This interface supports the basic Reprojection content. CanReproject tests to see if the DotSpatial.Projections library exists and will return false if it does not exist. In such a case the Reprojects all of the in-ram vertices of vectors, or else this simply updates the "Bounds" of image and raster objects This will also update the projection to be the specified projection. The projection information to reproject the coordinates to. Gets a value indicating whether the DotSpatial.Projections assembly is loaded. If not, this returns false, and neither ProjectionInfo nor the Reproject() method should be used. Boolean, true if the value can reproject. Gets or sets the projection information for this dataset Gets or sets the proj4 string for this dataset. This exists in case the Projections library is not loaded. If the projection library is loaded, this also updates the Projection property. Setting this behaves like defining the projection and will not reproject the values. This closes the data set. Many times this will simply do nothing, but in some cases this may close an open connection to a data source. Gets or sets the extent for the dataset. Usages to Envelope were replaced as they required an explicit using to DotSpatial.Topology which is not as intuitive. Extent.ToEnvelope() and new Extent(myEnvelope) convert them. True if the dispose method has been called on this dataset. Gets or sets a string name identifying this dataset Gets or sets the progress handler to use for internal actions taken by this dataset. Gets or sets the space time support for this dataset. Gets or sets a string that describes as clearly as possible what type of elements are contained in this dataset. Rendering is considered a different pathway from editing. For rendering, we can distance ourselves from the attributes all together in order to speedily grab just the indices that are within the view extent. Returns a dictionary with the FID and Shape, but only returns shapes within the envelope. The integer offset of the first shape to test. When this returns, the offset is set to the integer index of the last shape tested, regardless of whether or not it was returned. The integer count of the maximum number of shapes to return here. The geographic extents that can be used to limit the shapes. If this is null, then no envelope is used. The Dictionary with FID indices and Shape values Returns array of shapes at the specified indices Gets the integer count of the total number of shapes in the set. This may run a query, so it is better to cache the result than call this repeatedly. The integer number of shapes in the entire source. Should be called when done making repeated calls to GetShapes to free internal resources. This is most likely set once per source. LineShape Calculates the intersection of a polygon shape without relying on the NTS geometry Tests to see if any vertices from the other shape are coincident with a segment from this line shape. Returns true if any segment from a line or polygon shape interesect any segments from the line or polygon shape. A Line or Polygon shape Another line or polygon shape Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon This class is strictly the vector access code. This does not handle the attributes, which must be handled independantly. Provides common functionality for all ShapefileFeatureSource classes (Point, Line, Polygon) Sets the fileName and creates a new ShapefileFeatureSource for the specified file. The fileName to work with. Sets the fileName and creates a new PolygonshapefileFeatureSource for the specified file (and builds spatial index if requested) This deletes the files with any extension and the same base fileName. Spatial index for faster searches Create a ShapefileFeatureSource of the appropriate type Create a ShapefileFeatureSource of the appropriate type spatial indexing Update the header to include the feature extent Update the header to include the feature extent Update header extents from the geometries in a IShapeSource Select the features in an IShapeSource Conditionally modify attributes as searched in a single pass via client supplied callback. ShapeSource for this feature source The envelope for vector filtering. Number of shapes to request from the ShapeSource in each chunk Callback on each feature Append the geometry to the shapefile Create an appropriate ShapeSource for this FeatureSource Gets or sets the Filename of this polygon shapefile. The integer maximum number of records to return in a single page of results. Gets the spatial index if any Get the feature type supported by this feature source Get the shape type (without M or Z) supported by this feature source Get the shape type (with M, and no Z) supported by this feature source Get the shape type (with M and Z) supported by this feature source Gets the AttributeTable for this feature source including DeletedRows Sets the fileName and creates a new LineShapefileFeatureSource for the specified file. The fileName to work with. Sets the fileName and creates a new LineShapefileFeatureSource for the specified file (and builds spatial index if requested) Retrieves specific shapes. Common functionality for retrieving specific shapes. Cached contents of shape index file Creates a new instance of the ShapefileShapeSource with the specified shapefile as the source. Creates a new instance of the ShapefileShapeSource with the specified shapefile as the source and supplied spatial and shape indices. Cache Index File in memory so we don't have to read it in every call to GetShapes Get the shape at the specified index. Must be implemented by all shape sources derived from ShapefileShapeSource Get the shape type (without M or Z) supported by this shape source Get the shape type (with M, and no Z) supported by this shape source Get the shape type (with M and Z) supported by this shape source Creates a new instance of the LineShapefileShapeSource with the specified line shapefile as the source. The string fileName Creates a new instance of the LineShapefileShapeSource with the specified polygon shapefile as the source and provided indices General purpose Expression utilities Create a function delegate representing a unary operation The parameter type The return type Body factory Compiled function delegate Create a function delegate representing a binary operation The first parameter type The second parameter type The return type Body factory Compiled function delegate Create a function delegate representing a binary operation The first parameter type The second parameter type The return type Body factory If no matching operation is possible, attempt to convert TArg1 and TArg2 to TResult for a match? For example, there is no "decimal operator /(decimal, int)", but by converting TArg2 (int) to TResult (decimal) a match is found. Compiled function delegate The Operator class provides easy access to the standard operators (addition, etc) for generic types, using type inference to simplify usage. Indicates if the supplied value is non-null, for reference-types or Nullable<T> True for non-null values, else false Increments the accumulator only if the value is non-null. If the accumulator is null, then the accumulator is given the new value; otherwise the accumulator and value are added. The current total to be incremented (can be null) The value to be tested and added to the accumulator True if the value is non-null, else false - i.e. "has the accumulator been updated?" Evaluates unary negation (-) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates bitwise not (~) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates bitwise or (|) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates bitwise and (&) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates bitwise xor (^) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Performs a conversion between the given types; this will throw an InvalidOperationException if the type T does not provide a suitable cast, or for Nullable<TInner> if TInner does not provide this cast. Evaluates binary addition (+) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary addition (+) for the given type(s); this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary subtraction (-) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary subtraction(-) for the given type(s); this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary multiplication (*) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary multiplication (*) for the given type(s); this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary division (/) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary division (/) for the given type(s); this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary equality (==) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary inequality (!=) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary greater-than (>) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary less-than (<) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary greater-than-on-eqauls (>=) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates binary less-than-or-equal (<=) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Evaluates integer division (/) for the given type; this will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. This operation is particularly useful for computing averages and similar aggregates. Provides standard operators (such as addition) that operate over operands of different types. For operators, the return type is assumed to match the first operand. Returns a delegate to convert a value between two types; this delegate will throw an InvalidOperationException if the type T does not provide a suitable cast, or for Nullable<TInner> if TInner does not provide this cast. Returns a delegate to evaluate binary addition (+) for the given types; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary subtraction (-) for the given types; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary multiplication (*) for the given types; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary division (/) for the given types; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Provides standard operators (such as addition) over a single type Returns the zero value for value-types (even full Nullable<TInner>) - or null for reference types Returns a delegate to evaluate unary negation (-) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate bitwise not (~) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate bitwise or (|) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate bitwise and (&) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate bitwise xor (^) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary addition (+) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary subtraction (-) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary multiplication (*) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary division (/) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary equality (==) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary inequality (!=) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary greater-then (>) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary less-than (<) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary greater-than-or-equal (>=) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. Returns a delegate to evaluate binary less-than-or-equal (<=) for the given type; this delegate will throw an InvalidOperationException if the type T does not provide this operator, or for Nullable<TInner> if TInner does not provide this operator. PointShape Calculates the intersection of a polygon shape without relying on the NTS geometry Returns true if any vertices overlap Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon This class is strictly the vector access code. This does not handle the attributes, which must be handled independantly. Sets the fileName and creates a new PointShapefileFeatureSource for the specified file. The fileName to work with. Sets the fileName and creates a new PointshapefileFeatureSource for the specified file (and builds spatial index if requested) Retrieves specific shapes. Creates a new instance of the PointShapefileShapeSource with the specified point shapefile as the source. The string fileName Creates a new instance of the PointShapefileShapeSource with the specified polygon shapefile as the source and provided indices Polygon contains algorithms for the case where the current feature type is a polygon. The shape may be single or multi-part. Calculates the intersection of a polygon shape without relying on the NTS geometry This cycles through all the vertices, which are stored as {X1, Y1, X2, Y2...Xn, Yn} and tests if any of those vertices falls within the polygon shape. For each coordinate in the other part, if it falls in the extent of this polygon, a ray crossing test is used for point in polygon testing. If it is not in the extent, it is skipped. The part of the polygon to analyze polygon The other part Boolean, true if any coordinate falls inside the polygon Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon DataFormats Lines, Points and Polygons make up standard static vector formats. These are drawn dynamically based on the symbolizer. Rasters are grids of integers, doubles, floats, or other numeric value types. These can be symbolized and represented as images, but not drawn directly. Images specifically have pixels coordinates that store a color. These are drawn directly. This represents an extended format that does not have a formal definition in DotSpatial. This can be used as a component to work as a DataManager. This also provides the very important DefaultDataManager property, which is where the developer controls what DataManager should be used for their project. IDataManager This can help determine what kind of file format a file is, without actually opening the file. The string fileName to test A DataFormats enum Instead of opening the specified file, this simply determines the correct provider, and requests that the provider check the feature type for vector formats. The string fileName to test A FeatureTypes enum Checks a dialog filter and returns a list of just the extensions. The Dialog Filter to read extensions from A list of extensions Attempts to call the open fileName method for any IDataProvider plugin that matches the extension on the string. A String fileName to attempt to open. Attempts to call the open fileName method for any IDataProvider plugin that matches the extension on the string. A String fileName to attempt to open. A boolean value that if true will attempt to force a load of the data into memory. This value overrides the property on this DataManager. Attempts to call the open fileName method for any IDataProvider plugin that matches the extension on the string. A String fileName to attempt to open. A boolean value that if true will attempt to force a load of the data into memory. This value overrides the property on this DataManager. Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager. Opens the file as an Image and returns an IImageData object for interacting with the file. The string fileName An IImageData object Opens the file as an Image and returns an IImageData object The string fileName to open The progressHandler to receive progress updates An IImageData Opens the specified fileName, returning an IRaster. This will return null if a manager either returns the wrong data format. The string fileName to open An IRaster loaded from the specified file. Opens the specified fileName, returning an IRaster. This will return null if a manager either returns the wrong data format. The string fileName to open boolean, true if this should be loaded into ram a progress interface An IRaster loaded from the specified file Opens a specified file as an IFeatureSet The string fileName to open boolean, true if this should be loaded into ram a progress interface An IFeatureSet loaded from the specified file Creates a new image using an appropriate data provider The string fileName to open an image for The integer number of rows The integer number of columns The color band type. An IImageData interface allowing access to image data Creates a new image using an appropriate data provider The string fileName to open an image for The integer number of rows The integer number of columns Boolean, true if the entire file should be created in memory The color band type. An IImageData interface allowing access to image data Creates a new image using an appropriate data provider The string fileName to open an image for The integer number of rows The integer number of columns Boolean, true if the entire file should be created in memory A Progress handler The color band type. An IImageData interface allowing access to image data Creates a new class of vector that matches the given fileName. The string fileName from which to create a vector. Specifies the type of feature for this vector file An IFeatureSet that allows working with the dataset. Creates a new class of vector that matches the given fileName. The string fileName from which to create a vector. Specifies the type of feature for this vector file Overrides the default progress handler with the specified progress handler An IFeatureSet that allows working with the dataset. Creates a new raster using the specified raster provider and the Data Manager's Progress Handler, as well as its LoadInRam property. The fileName of the new file to create. The string code identifying the driver to use to create the raster The number of columns in the raster The number of rows in the raster The number of bands in the raster The data type for the raster Any additional, driver specific options for creation An IRaster representing the created raster. Gets or sets the list of IDataProviders that should be used in the project. Gets or sets the dialog read filter to use for opening data files. Gets or sets the dialog write filter to use for saving data files. Sets the default condition for how this data manager should try to load layers. This will be overridden if the inRam property is specified as a parameter. Gets or sets the dialog read filter to use for opening data files that are specifically raster formats. Gets or sets the dialog write filter to use for saving raster files. Gets or sets the dialog read filter to use for opening vector files. Gets or sets the dialog write filter to use for saving vector files. Gets or sets the dialog read filter to use for opening image files. Gets or sets the dialog write filter to use for saving image files. Gets or sets a dictionary of IDataProviders keyed by the extension. The standard order is to try to load the data using a PreferredProvider. If that fails, then it will check the list of dataProviders, and finally, if that fails, it will check the plugin Data Providers in directories. Gets or sets a progress handler for any open operations that are intiated by this DataManager. Occurs after the directory providers have been loaded into the project. Creates a new instance of the DataManager class. A data manager is more or less just a list of data providers to use. The very important DataManager.DefaultDataManager property controls which DataManager will be used to load data. By default, each DataManager sets itself as the default in its constructor. Creates a new class of vector that matches the given fileName. The string fileName from which to create a vector. Specifies the type of feature for this vector file An IFeatureSet that allows working with the dataset. Creates a new class of vector that matches the given fileName. The string fileName from which to create a vector. Specifies the type of feature for this vector file Overrides the default progress handler with the specified progress handler An IFeatureSet that allows working with the dataset. Raised when fileName is null. Raised when suitable DataProvider not found. Checks a dialog filter and returns a list of just the extensions. The Dialog Filter to read extensions from A list of extensions This can help determine what kind of file format a file is, without actually opening the file. Instead of opening the specified file, this simply determines the correct provider, and requests that the provider check the feature type for vector formats. Opens the specified fileName, returning an IRaster. This will return null if a manager either returns the wrong data format. The string fileName to open An IRaster loaded from the specified file. Opens the specified fileName, returning an IRaster. This will return null if a manager either returns the wrong data format. The string fileName to open boolean, true if this should be loaded into ram a progress interface An IRaster loaded from the specified file Opens a specified file as an IFeatureSet The string fileName to open boolean, true if this should be loaded into ram a progress interface An IFeatureSet loaded from the specified file Opens the file as an Image and returns an IImageData object for interacting with the file. The string fileName An IImageData object Opens the file as an Image and returns an IImageData object The string fileName to open The progressHandler to receive progress updates An IImageData Attempts to call the open fileName method for any IDataProvider plugin that matches the extension on the string. A String fileName to attempt to open. Attempts to call the open fileName method for any IDataProvider plugin that matches the extension on the string. A String fileName to attempt to open. A boolean value that if true will attempt to force a load of the data into memory. This value overrides the property on this DataManager. Attempts to call the open fileName method for any IDataProvider plugin that matches the extension on the string. A String fileName to attempt to open. A boolean value that if true will attempt to force a load of the data into memory. This value overrides the property on this DataManager. Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager. Creates a new image using an appropriate data provider The string fileName to open an image for The integer width in pixels The integer height in pixels The band color type An IImageData interface allowing access to image data Creates a new image using an appropriate data provider The string fileName to open an image for The integer width in pixels The integer height in pixels Boolean, true if the entire file should be created in memory The band color type An IImageData interface allowing access to image data Creates a new image using an appropriate data provider The string fileName to open an image for The integer width in pixels The integer height in pixels Boolean, true if the entire file should be created in memory A Progress handler The band color type An IImageData interface allowing access to image data Creates a new raster using the specified raster provider and the Data Manager's Progress Handler, as well as its LoadInRam property. The fileName of the new file to create. The string code identifying the driver to use to create the raster. If no code is specified the manager will attempt to match the extension with a code specified in the Dialog write filter. The number of columns in the raster The number of rows in the raster The number of bands in the raster The data type for the raster Any additional, driver specific options for creation An IRaster representing the created raster. Opens the file making sure it can be returned as an IRaster. Name of the file. if set to true [in ram]. The progress handler. Triggers the DirectoryProvidersLoaded event Gets or sets the implementation of IDataManager for the project to use when accessing data. This is THE place where the DataManager can be replaced by a different data manager. If you add this data manager to your project, this will automatically set itself as the DefaultDataManager. However, since each DM will do this, you may have to control this manually if you add more than one DataManager to the project in order to set the one that will be chosen. Gets or sets the list of IDataProviders that should be used in the project. Gets or sets the dialog read filter to use for opening data files. Gets or sets the dialog write filter to use for saving data files. Gets or sets the dialog read filter to use for opening data files that are specifically raster formats. Gets or sets the dialog write filter to use for saving data files. Gets or sets the dialog read filter to use for opening data files. Gets or sets the dialog write filter to use for saving data files. Gets or sets the dialog read filter to use for opening data files. Gets or sets the dialog write filter to use for saving data files. Sets the default condition for how this data manager should try to load layers. This will be overridden if the inRam property is specified as a parameter. Gets or sets a dictionary of IDataProviders with corresponding extensions. The standard order is to try to load the data using a PreferredProvider. If that fails, then it will check the list of dataProviders, and finally, if that fails, it will check the plugin Data Providers in directories. Gets or sets a progress handler for any open operations that are intiated by this DataManager and don't override this value with an IProgressHandler specified in the parameters. Occurs after the directory providers have been loaded into the project. DataProviders Creates a new instance of DataProviders Specifies a list of IDataProviders Gets the list of providers for this event. Clarifies how the file should be used Read will attempt to read the file if it exists and throw an exception if the file is not found Write will create a new file, overwriting it if it previously exists. This class is strictly the vector access code. This does not handle the attributes, which must be handled independantly. Sets the fileName and creates a new PolygonshapefileFeatureSource for the specified file. The fileName to work with. Sets the fileName and creates a new PolygonshapefileFeatureSource for the specified file (and builds spatial index if requested) Retrieves specific shapes. Creates a new instance of the PolygonShapefileShapeSource with the specified polygon shapefile as the source. The string fileName Creates a new instance of the PolygonShapefileShapeSource with the specified polygon shapefile as the source and provided indices This handles the methodology of progress messaging in one place to make it easier to update. Initializes a new progress meter, but doesn't support the IProgressHandler unless one is specified. A progress meter can't actually do anything without a progressHandler, which actually displays the status. An IProgressHandler that will actually handle the status messages sent by this meter. A progress meter that simply keeps track of progress and is capable of sending progress messages. This assumes a MaxValue of 100 unless it is changed later. Any valid IProgressHandler that will display progress messages A base message to use as the basic status for this progress handler. A progress meter that simply keeps track of progress and is capable of sending progress messages. Any valid implementation if IProgressHandler that will handle the progress function The message without any progress information. Percent should show a range between the MinValue and MaxValue. MinValue is assumed to be 0. Resets the progress meter to the 0 value. This sets the status message to "Ready.". This always increments the CurrentValue by one. Sends a progress message to the IProgressHandler interface with the current message and progress Gets or sets the string message (without the progress element). Gets or sets the string that does not include any mention of progress percentage, but specifies what is occurring. Gets or sets the current integer progress level from 0 to 100. If a new update is less than or equal to the previous value, then no progress will be displayed by the ProgressMeter. Values less than 0 are set to 0. Values greater than 100 are set to 100. Gets or sets the current value relative to the specified MaxValue in order to update the progress. Setting this will also update OldProgress if there is an integer change in the percentage, and send a progress message to the IProgressHandler interface. The value that defines when the meter should show as 100% complete. EndValue can be less than StartValue, but values closer to EndValue will show as being closer to 100%. Gets or sets whether the progress meter should send messages to the IProgressHandler. By default Silent is false, but setting this to true will disable the messaging portion. The minimum value defines when the meter should show as 0% complete. An integer value that is 1 by default. Ordinarily this will send a progress message only when the integer progress has changed by 1 percentage point. For example, if StepPercent were set to 5, then a progress update would only be sent out at 5%, 10% and so on. This helps reduce overhead in cases where showing status messages is actually the majority of the processing time for the function. Gets or sets the previous integer progress level from 0 to 100. If a new update is less than or equal to the previous value, then no progress will be displayed by the ProgressMeter. Values less than 0 are set to 0. Values greater than 100 are set to 100. Gets or sets the progress handler for this meter Extension methods for the IProj interface Converts a single point location into an equivalent geographic coordinate This IProj The client coordinate relative to the map control The geographic ICoordinate interface Converts a rectangle in pixel coordinates relative to the map control into a geographic envelope. This IProj The rectangle to convert An IEnvelope interface Projects all of the rectangles int the specified list of rectangles into geographic regions. This IProj The clip rectangles A List of IEnvelope geographic bounds that correspond to the specified clip rectangles. Converts a single geographic location into the equivalent point on the screen relative to the top left corner of the map. This IProj The geographic position to transform A Point with the new location. Converts a single geographic envelope into an equivalent Rectangle as it would be drawn on the screen. This IProj The geographic IEnvelope A Rectangle Translates all of the geographic regions, forming an equivalent list of rectangles. This IProj The list of geographic regions to project A list of pixel rectangles that describe the specified region Calculates an integer length distance in pixels that corresponds to the double length specified in the image. The IProj that this describes The double distance to obtain in pixels The integer distance in pixels This is an abstract base class that represents a datasets that has a RasterBounds on it, and reprojects by using the RasterBounds. This works for Image and Raster implementations. DataSet Gets whether or not projection is based on having the libraries available. Creates a new instance of DataSet This can be overridden in specific classes if necessary Reprojects all of the in-ram vertices of featuresets, or else this simply updates the "Bounds" of the image object. This will also update the projection to be the specified projection. The projection information to reproject the coordinates to. Allows overriding the dispose behavior to handle any resources in addition to what are handled in the image data class. A Boolean value that indicates whether the overriding method should dispose managed resources, or just the unmanaged ones. Gets or sets the cached extent variable. The public Extent is the virtual accessor, and should not be used from a constructor. MyExtent is protected, not virtual, and is only visible to inheriting classes, and can be safely set in the constructor. This is an internal place holder to make it easier to pass around a single progress meter between methods. This will use lazy instantiation if it is requested before one has been created. Gets or sets the raw projection string for this dataset. This handles both the case where projection is unavailable but a projection string needs to be passed around, and the case when a string is not recognized by the DotSpatial.Projections library. This is not format restricted, but should match the original data source as closely as possible. Setting this will also set the Projection if the Projection library is available and the format successfully defines a transform by either treating it as an Esri string or a proj4 string. Gets a value indicating whether the DotSpatial.Projections assembly is loaded Boolean, true if the value can reproject. Gets or sets the string name Gets or sets the extent for the dataset. Usages to Envelope were replaced as they required an explicit using to DotSpatial.Topology which is not as intuitive. Extent.ToEnvelope() and new Extent(myEnvelope) convert them. This is designed to be a virtual member to be overridden by subclasses, and should not be called directly by the constructor of inheriting classes. Gets or set the projection string Gets an enumeration specifying if this data supports time, space, both or neither. Gets or sets the string type name that identifies this dataset Gets or sets the progress handler to use for internal actions taken by this dataset. Creates a new instance of the RasterBoundData object, setting up a default RasterBounds. Occurs when the raster bounds of this data class have changed. RasterBounds datasets offer a limited sort of reproject on the fly. This tries to update the bounds by reprojecting the top left and bottom left and top right coordinates and updating the "affine" transform. This should not be used if CanReproject is false. Greater accuracy can be accomplished using the Projective transform, which is planned to be implemented as a toolbox function. The projectionInfo to project to. Disposes the managed memory objects in the ImageData class, and then forwards the Dispose operation to the internal dataset in the base class, if any. Boolean, true if both managed and unmanaged resources should be finalized. Gets or sets the image bounds being used to define the georeferencing of the image Gets or sets the Bounds.Envelope through an Extents property. An EventArgs specifically tailored to Raster. Initializes a new instance of the RasterEventArgs class. The IRaster that is involved in this event. Gets the Raster associated with this event. Callback specified to AttributeTable.Edit() overload RowEditEvent arguments Column information Actual byte content read from dbase One of the SetColumn methods or SetAllColumns has been called The row being edited Constructor Get the entire buffer as a character array Convert the byte data for a column into the appropriate data value Column information for data value being parsed Convert the all byte data into an array of data values Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert value to bytes and place in ByteContent at correct location Column information for the conversion Convert array of values to bytes and fill ByteContent ShapeFactory for singleton pattern. Creates a new multi-part polygon shape. Winding order should control holes. The list of all the lists of coordinates. A new Multi-Polygon Shape. Gets the shared instance of the shape factory; Spatial index customized for ShapefileFeatureSources. Insert the row Remove the row When a row is deleted, all other row numbers must be adjusted to compensate for the fact that the shx file gets compressed. Deprecated. Use Remove(IEnvelope, int item) instead. Deprecated. Use Insert(IEnvelope, int item) instead. Index file class for the .shx file Opens the index file of the specified fileName. If the fileName is not the .shx extension, then the fileName will be changed too that extension first. Saves the file back to the original file, or the currently specified "Filename" property. Saves the file to the specified fileName. If the extension is not a correct shx extension, it will be changed to that extensions. Reads the entire index file in order to get a breakdown of how shapes are broken up. A string fileName of the .shx file to read. A List of ShapeHeaders that give offsets and lengths so that reading can be optimized Writes the current content to the specified file. The header to write Basically the same code can be used for the shp and shx files The integer number of shapes to write to the file Gets or sets the header Gets or sets the fileName Gets or sets the list of shape headers This combines the attribute table with a shape source in order to allow easy creation of FeatureTable and FeatureRow constructs. Creates a new ShapefileReader tailored to read a particular file. Resets the count, so that reading may continue. Ensures that the files can be opened for reading. Gets or sets the name of the shapefile. Gets or sets the array of string field names to access. If this is null or empty, then all the fields are returned. Fields listed here that do not occur in the shapefile will be ignored. Gets or sets the string filter expression. This is only the "Where" criteria, and doesn't include any other advanced SQL implmenetation. Gets or sets a string fieldname to support sorting. Gets the integer number of the maximum number of results to generate from a shapefile. Gets the count of members returned so far. Gets the long row offset where reading should begin. This will advance Shapefiles don't support nested tables. Read only reader has no affect on records here. A class for cycling pages of shapes from a large dataset Creates a new reader class for paging through a shape source. The IShapeSource to cycle through. Gets or sets the integer count of shapes that should be allowed to appear on a single page of results. This is the maximum, and the actual number of shapes may be considerably smaller than this. Gets or sets the envelope. If this is null, then no envelope is used. Gets the feature type of the feature source. Creates an enumerator for pages of shapes returned as dictionaries. Creates ShapePageSet.Enumerator which can be used to cycle very large datasets. Controls whether only intersecting shapes should be used or whether all shapes should be used. All shapes will be used Only intersecting shapes will be used CulturePreferences This culture information is useful for things like Number Formatting. This defaults to CurrentCulture, but can be specified through preferences or whatever. The buffered binary reader was originally designed by Ted Dunsford to make shapefile reading more efficient, but ostensibly could be used for other binary reading exercises. To use this class, simply specify the BufferSize in bytes that you would like to use and begin reading values. Creates a new instance of BufferedBinaryReader. The string path of a file to open using this BufferedBinaryReader. Creates a new instance of BufferedBinaryReader, and specifies where to send progress messages. The string path of a file to open using this BufferedBinaryReader. Any implementation of IProgressHandler for receiving progress messages. Closes the internal binary reader and underlying file, but does not free the buffer that is in memory. For that, call the dispose method. This will not close the file, so be sure to close before calling Dispose. This will dispose the file stream and set the buffer to null. Instructs the reader to fill its buffer with data. This only does something if the buffer is not loaded yet. This method is optional since the first effort at reading the file will automatically load the buffer. This method will both assign a new maximum buffer size to the reader and force the reader to load the values into memory. This is unnecessary unless you plan on closing the file before reading values from this class. Even if values are loaded, this will assign the MaxBufferSize property so that future buffers have the specified size. An integer buffer size to assign to the maximum buffer size before reading values. Uses the seek method to quickly reach a desired location to begin reading. This will not buffer or read values. If the new position is beyond the end of the current buffer, the next read will load a new buffer. A 64 bit integer specifying where to skip to in the file. A System.IO.SeekOrigin enumeration specifying how to estimate the location. Reads a boolean form the buffer, automatcially loading the next buffer if necessary. A boolean value converted from bytes in the file. Reads a character from two bytes in the buffer, automatically loading the next buffer if necessary. Reads an array of character from two bytes in the buffer, automatically loading Reads a double-precision floating point from 8 bytes in the buffer, automatically loading the next buffer if necessary. Boolean, true if the value should be returned with little endian byte ordering. A double value converted from bytes in the file. Reads double precision X and Y values that are interwoven Reads the specified number of doubles into an array This uses Buffer.CopyBlock, and seems to work ok for little-endian in windows. The count of doubles An array of doubles Reads the specified number of integers into an array The integer count of integers to read An array of the specified integers and length equal to count By default, this will use little Endian ordering. An Int32 converted from the file. Reads an integer from the file, using the isLittleEndian argument to decide whether to flip the bits or not. Boolean, true if the value should be returned with little endian byte ordering. an Int32 value converted from bytes in the file. Reads a short, sixteen bit integer as bytes in little-endian order A short value Reads a single-precision floading point from 4 bytes in the buffer, automatically loading the next buffer if necessary. This assumes the value should be little endian. A single-precision floating point converted from four bytes Reads a single-precision floading point from 4 bytes in the buffer, automatically loading the next buffer if necessary. Boolean, true if the value should be returned with little endian byte ordering. A single-precision floating point converted from four bytes Reads the specified number of bytes. This will throw an exception if a number of bytes is specified that exeeds the file length. The integer count of the bytes. An array of bytes copies count bytes from the internal buffer to the specified buffer index as the starting point in the specified buffer. A previously dimensioned array of byte values to fill with data The index in the argument array to start pasting values to The number of values to copy into the parameter buffer Fires the FinishedReading event. Fires the FinishedBuffering event. Gets the progress meter. Gets a long integer specifying the starting position of the currently loaded buffer relative to the start of the file. A value of -1 indicates that no buffer is currently loaded. Gets an integer value specifying the size of the buffer currently loaded into memory. This will either be the MaxBufferSize, or a smaller buffer representing a smaller remainder existing in the file. Gets a boolean indicating whether there is currently any information loaded into the buffer. Gets a boolean value once the offset has reached the end of the file, and every byte value has been read from the file. Gets a boolean value once the entire file has been loaded into memory. This usually will occur before any reading even takes place. Gets the length in bytes of the file being read. Gets the current read position in the file in bytes. Gets a long value specifying how many bytes have not yet been read in the file. Gets or sets the buffer size to read in chunks. This does not describe the size of the actual Gets or sets the progress message that has no percentage as part of it. This acts like a placeholder on the buffer and indicates where reading will begin (relative to the start of the buffer) Occurs when this reader has read every byte from the file. Occurs when the end of the last portion of the file has been loaded into the file and the file has been closed. The buffered binary reader was originally designed by Ted Dunsford to make shapefile reading more efficient, but ostensibly could be used for other binary reading exercises. To use this class, simply specify the BufferSize in bytes that you would like to use and begin reading values. Creates a new instance of BufferedBinaryReader. The string path of a file to open using this BufferedBinaryReader. Creates a new instance of BufferedBinaryWriter, and specifies where to send progress messages. The string path of a file to open using this BufferedBinaryReader. Any implementation of IProgressHandler for receiving progress messages. A long specifying the number of bytes that will be written for the purposes of tracking progress Finishes writing whatever is in memory to the file, closes the internal binary writer, the underlying file, clears the memory and disposes the filestream. Forces the buffer to paste all its existing values into the file, but does not advance the buffer, or in fact do anything to the buffer. It does advance the position of the file index. This seeks both in the file AND in the buffer. This is used to write only desired portions of a buffer that is in memory to a file. A 64 bit integer specifying where to skip to in the file. A System.IO.SeekOrigin enumeration specifying how to estimate the location. Reads a boolean form the buffer, automatcially loading the next buffer if necessary. Reads a character from two bytes in the buffer, automatically loading the next buffer if necessary. A character to write to the buffer, and eventually the file Reads an array of character from two bytes in the buffer, automatically loading Reads a double from the buffer, automatically loading the next buffer if necessary. Writes a double-precision floating point to 8 bytes in the buffer, automatically loading the next buffer if necessary. A double-precision floating point decimal value to write as 8 bytes. Boolean, true if the value should be returned with little endian byte ordering. Writes the specified array of doubles to the file. The values to write. Writes the specified array of integers to the file. The values to write. By default, this will use little Endian ordering. Reads an integer from the file, using the isLittleEndian argument to decide whether to flip the bits or not. A 32-bit integer to write as 4 bytes in the buffer. Boolean, true if the value should be returned with little endian byte ordering. Writes an Int16 to the buffer. An Int16 to convert into 2 bytes to write to the buffer. Writes a single-precision floading point to 4 bytes in the buffer, automatically loading the next buffer if necessary. This assumes the value should be little endian. A Single to convert to 4 bytes to write to the buffer. Reads a single-precision floading point from 4 bytes in the buffer, automatically loading the next buffer if necessary. A single-precision floating point converted from four bytes Boolean, true if the value should be returned with little endian byte ordering. Writes the specified bytes to the buffer, advancing the buffer automatically if necessary. An array of byte values to write to the buffer. Gets or sets the actual array of bytes currently in the buffer Gets a long integer specifying the starting position of the currently loaded buffer relative to the start of the file. A value of -1 indicates that no buffer is currently loaded. Gets an integer value specifying the size of the buffer currently loaded into memory. This will either be the MaxBufferSize, or a smaller buffer representing a smaller remainder existing in the file. Gets a boolean indicating whether there is currently any information loaded into the buffer. Gets the current read position in the file in bytes. Gets or sets the buffer size to read in chunks. This does not describe the size of the actual Gets or sets the progress meter that is directly linked to the progress handler. Gets or sets the progress handler for this binary writer This acts like a placeholder on the buffer and indicates where reading will begin (relative to the start of the buffer) LogException Actually logs the exception. This happens after the message has been set in the constructors of the classes of this exception. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to The argument %S cannot be null.. Looks up a localized string similar to The argument %S cannot be negative.. Looks up a localized string similar to The argument %S was null. Try testing for the null case before calling this method.. Looks up a localized string similar to The argument %S1 was incorrect for %S2.. Looks up a localized string similar to Calculating Statistics. Looks up a localized string similar to The fileName %S cannot be copied to itself.. Looks up a localized string similar to Copying Values. Looks up a localized string similar to The current element was not defined. Before attempting to read the element, first assign the value of the current XML Element to read.. Looks up a localized string similar to Cannot read past the end of the file.. Looks up a localized string similar to The FeatureType of the feature you are trying to add does not match the feature type of this featureset.. Looks up a localized string similar to The FeatureType was not specified. Please specify a featuretype before attempting to call this method.. Looks up a localized string similar to The fileName %S already exists. Do you wish to overwrite it?. Looks up a localized string similar to The fileName %S was not found.. Looks up a localized string similar to The fileName %S contains a feature type other than lines.. Looks up a localized string similar to The fileName %S contains a feature type other than polygons.. Looks up a localized string similar to The specified file type is not supported.. Looks up a localized string similar to Attepted to set the enumeration field to the value '%s', which is not known.. Looks up a localized string similar to The specified charcter '%S' was not a known field type: 124cCesStlLfdmMbox". Looks up a localized string similar to The number of rows and number of columns must both be greater than 0, but the header for this item returned %S1 rows and %S2 columns.. Looks up a localized string similar to You must first compress the data before accessing this value.. Looks up a localized string similar to Insertion via SetInstValue() is not yet supported for pointers.. Looks up a localized string similar to There was an error while attempting to index %S. Looks up a localized string similar to The file %S could not be found.. Looks up a localized string similar to This has not yet been implemented.. Looks up a localized string similar to The value %S was too large to encode with 18 ASCII characters.. Looks up a localized string similar to The value %S was too small to be encoded with 18 ASCII characters.. Looks up a localized string similar to The value you entered could not be parsed into a %S. Make sure the value is in the valid range.. Looks up a localized string similar to The desired length of %S1 was too long. The total length was %S2 and the offset was %S3.. Looks up a localized string similar to The beginning eight bytes of the specified file did not match the png signature.. Looks up a localized string similar to The number of bytes should be 4 * rows * cols since only ARGB format is supported.. Looks up a localized string similar to The header has not been defined for the image scale you are attempting to access.. Looks up a localized string similar to The rows or columns would extend beyond the specified number of columns or rows for the specified scale.. Looks up a localized string similar to To work with anything other than an in-memory raster window, you must first cast this raster to the correct data format.. Looks up a localized string similar to The rasters must have equally sized cells to use this method.. Looks up a localized string similar to The specified raster would be too large to store in memory.. Looks up a localized string similar to Reading values from %S. Looks up a localized string similar to Writing values to %S. Box-plot: Tukey 1977 Basically it is like subdividing the data into 4 quartiles, denoted like Q1, Q2, Q3, Q4. ------- Low Outlier (less than the Quartile - 3/2 Interquartile range) Q1 (Q1 - 3/2 the Interquartile range to Q1 Q2 (Quartile 1 to Median) Q3 (Median to Quartile 3) Q4 (Q3 to Q3 + 3/2 the Interquartile range High Outlier (Greater than Q3 plus the interquartile range The median between the median and the highest value. This separates the third and fourth quartiles. The highest value that is not considered an outlier. If the values are not numeric, this will be the Maximum. The median between the lowest value and the median value. This separates the first quartile from the second. The lowest value that is not considered to be an outlier. If the values are not numeric, this will be the minimum. The Median value (the value of the middle member) CoordinateTypes X and Y coordinates only M values are available Z values are available DataTableStatisticsEM Inspects the members of the data Table, focusing on the named field. It calculates the median of the values in the named field. Used by Segment.ClosestPointTo() to detail how the input point interacts with the line segment The vertex found is on the line segment and between P1 and P2 The vertex found is beyond the end of P1 The vertex found is beyond the end of P2 P1 equals P2 so the segment cannot be extended into an infinite line the closest vertex is P1/P2 Clarifies whether a value is cached in a local variable or updated dynamically The value is cached locally, rather than calculated on the fly The value is calculated each type, rather than using a local cache Byte order Big Endian Little Endian Filetypes An unrecognized file format The Esri Shapefile format (*.shp) Comma separated values (*.csv) Google Markup Language (a variant of the Keyhole Markup Language) (*.gml) MapInfo format (*.tab) CAD format (Design) (*.dgn) S-57 published by International Hydrographic Organization (IHO). (*.000) Spatial Data Transfer Standard (*.sdts) ? Topologically Integrated Geographic Encoding and Referencing (*.tig) ? MS Excel ODBC Query File? (*.DQY) maybe ODBC Data Source file? (*.DSN) ? ArcInfo Vector Coverage Geospatial Data Abstraction Library (GDAL) File (*.VRT) Record file? (*.REC) This represents the column information for one column of a shapefile. This specifies precision as well as the typical column information. Represents the number of decimals to preserve after a 0. The length of a field in bytes Creates a new default field empty field - needed for datatable copy and clone methods. Creates a new default field given the specified DataColumn. Numeric types default to a size of 255, but will be shortened during the save opperation. The default decimal count for double and long is 0, for Currency is 2, for float is 3, and for double is 8. These can be changed by changing the DecimalCount property. A System.Data.DataColumn to create a Field from Creates a new instance of a field given only a column name The string Column Name for the new field Creates a new Field with a specific name for a specified data type The string name of the column The System.Type describing the datatype of the field Creates a new field with a specific name and using a simplified enumeration of possible types. the string column name. The type enumeration that clarifies which basic data type to use. This creates a new instance. Since the data type is Internal method that decides an appropriate decimal count, given a data column This is the single character dBase code. Only some of these are supported with Esri. C - Character (Chars, Strings, objects - as ToString(), and structs - as ) D - Date (DateTime) T - Time (DateTime) N - Number (Short, Integer, Long, Float, Double, byte) L - Logic (True-False, Yes-No) F - Float B - Double Gets or sets the number of places to keep after the 0 in number formats. As far as dbf fields are concerned, all numeric datatypes use the same database number format. The character length of the field The offset of the field on a row in the file Number Converter associated with this field. FieldDataTypes stores some very simplistic data types to help novices get started more easily. 32 Bit integer data type Double precision floating point data type String data type This is not a data class exactly, but instead is for making it easier to modify byte values of a 32 bit ARGB bitmap, but doesn't require a file. Creates a new instance of MemoryBitmapGrid Creates a blank image grid. Creates a clone of this memory bitmap grid by basically cloning the bitmap itself and then building a new BitmapGrid around the clone. Gets an enumerator for cycling through the color values. Creates a disconnected duplicate of this BitmapGrid Clears the byte values in the grid, replacing them with 0. Disposes the unmanaged aspect of the bmp Erases over any current content in the values, and copies the byte values of the specified color in its place. The color to fill the image with Tests the specified bitmap to verify that it is both a Bitmap and in ARGB pixel format. If it is anything different, then this returns a newly created bitmap with a copy drawn onto it. This will calculate the difference. The width and height of the new grid will be the larger of the rows and columns between the compare grid and this grid. Values outside the range of one of the grids will simply be filled in as the value stored in the other grid. Because byte values can't be negative, the difference will be the absolute value. A BitmapGrid with byte values calculated by taking the difference between the two grids. By default, all the bands have a difference comparison done. This may not have the desired effect because the alpha channel for most colors is actually just 255. The mathematical difference would be zero, resulting in an output image that, while being the actual difference, is essentially entirely invisibile (except where the images don't overlap.) Gets a color structure for the specified row and column. The zero based integer row index to get the color from The zero based integer column index to get the color from A System.Color structure created from the byte values in the values array Compares the bytes of this grid to the bytes of another grid. If the measurements of the other grid don't match this, then this returns false. The other BitmapGrid to test against Boolean, true if the bytes are the same in each case. Replaces all the byte values of this grid with randomly generated values. Sets the color structure by copying the byte ARGB values into the values array. The integer row index to copy values to The integer column index to copy values to The color structure to turn into bytes Setting this will automatically replace the byte array. Getting this will automatically convert the bytes back into bitmap form. Gets the integer height of the bitmap in this grid in pixels. gets the integer stride, or number of actual bytes in a single row. This is not always the same as the number of columns. Gets or sets the array of bytes directly. Setting this can be dangerous and is not recommended. Setting individual values in the array is perfectly acceptable, since it won't interfere with the stride or number of bytes expected. Gets the current width (number of columns) of the bitmap in pixels. Cycles through the values of a BitmapGrid starting at the top left corner and moving in row major fashion, (raster-scan fashion, moving across end then down.) Creates a new instance of a BitmapGridEnumerator based on the specified parentGrid. This automatically ignores any bytes in the range past the "width". The parent grid to cycle through the values of This does nothing Advances the color to the next position Boolean, false if there were no more cells in the image Resets the enumeration to the top left corner of the image. Gets the current color value from this grid DotNetImageProvider uses the standard image object to support basic image types through standard in-ram treatments. Images are not responsible for producing grid values that can be represented symbolically. IImageProvider IDataProvider is what you implement to expand the data handling methods of DotSpatial This open method is only called if this plugin has been given priority for one of the file extensions supported in the DialogReadFilter property supplied by this control. Failing to provide a DialogReadFilter will result in this plugin being added to the list of DataProviders being supplied under the Add Other Data option in the file menu. A string specifying the complete path and extension of the file to open. A List of IDataSets to be added to the Map. These can also be groups of datasets. Gets a dialog read filter that lists each of the file type descriptions and file extensions, delimited by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceded by the name provided on this object. Gets a dialog filter that lists each of the file type descriptions and extensions for a Save File Dialog. Each will appear in DotSpatial's open file dialog filter, preceded by the name provided on this object. In addition, the same extension mapping will be used in order to pair a string driver code to the extension. Gets a preferably short name that identifies this data provider. Example might be GDAL. This will be prepended to each of the DialogReadFilter members from this plugin. Gets or sets the progress handler to use. This provides a basic description of what your provider does. Creates a new instance of an Image. The string fileName to use The integer width in pixels The integer height in pixels Boolean, true if the entire contents should be stored in memory A Progress handler to use The ImageBandType clarifying how to organize the raster bands. A New IImageData object allowing access to the content of the image Opens a new Image with the specified fileName The string file to open An IImageData object Creates a new instance of an Image. The string fileName to use The integer width in pixels The integer height in pixels Boolean, true if the entire contents should be stored in memory A Progress handler to use .Net type ignores this for now. A New IImageData object allowing access to the content of the image Opens a new Image with the specified fileName The string file to open An IImageData object Gets a dialog read filter that lists each of the file type descriptions and file extensions, delimeted by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided on this object. Gets a dialog filter that lists each of the file type descriptions and extensions for a Save File Dialog. Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided on this object. Gets a prefereably short name that identifies this data provider. Example might be GDAL. This will be prepended to each of the DialogReadFilter members from this plugin. This provides a basic description of what your provider does. Gets or sets the progress handler An Image Coverage just consists of several images that can be thought of as a single image region. Queries for pixel values for a region will simply return the first value in the set that is not completely transparent. IImageSet is simple interface that gives some basic information that is common between tiled images and the more general image coverages Uses the geographic envelope and the specified pixelSize in order to calculate an appropriate bitmap for display based on the various images in this set. The geographic bounds to display The pixelSize of the bitmap to display A Bitmap showing the appropriate size and dimensions of the image This is very generic, but allows the user to cycle through the images currently in the image set, regardless of whether they are in a list or an array or other data structure. Gets the count of the images in the image set Gets or sets the list of tiles. IImageData Forces the image to read values from the graphic image format to the byte array format Copies the values from the specified source image. The source image to copy values from. Forces the image to copy values from the byte array format to the image format. Creates a color structure from the byte values in the values array that correspond to the specified position. The integer row index for the pixel. The integer column index for the pixel. A Color. Opens the file, assuming that the fileName has already been specified Saves the image and associated world file to the current fileName. Saves the image to a new fileName. The string fileName to save the image to. Sets the bitmap being used for this dataset This is only used in the palette indexed band type. This should update the palette cached and in the file. Sets the color value into the byte array based on the row and column position of the pixel. The integer row index of the pixel to set the color of. The integer column index of the pixel to set the color of The color to copy values from Gets a block of data directly, converted into a bitmap. The zero based integer column offset from the left The zero based integer row offset from the top The integer number of pixel columns in the block. The integer number of pixel rows in the block. A Bitmap that is xSize, ySize. Saves a bitmap of data as a continuous block into the specified location. The bitmap value to save. The zero based integer column offset from the left The zero based integer row offset from the top Finalizes the blocks. In the case of a pyramid image, this forces recalculation of the various overlays. For GDAL images, this may do nothing, since the overlay recalculation may be on the fly. For InRam images this does nothing. Gets or sets an integer indicating how many bytes exist for each pixel. Eg. 32 ARGB = 4, 24 RGB = 3, 16 bit GrayScale = 2 Gets or sets the fileName. Gets the image height in pixels Gets or sets the number of bands that are in the image. One band is a gray valued image, 3 bands for color RGB and 4 bands for ARGB. Gets or sets the stride in bytes. Gets a one dimensional array of byte values Gets the image width in pixels Gets or sets the world file that stores the georeferencing information for this image. Gets or sets the interpretation for the image bands. This currently is only for GDAL images. IImageSource Returns the data from the file in the form of ARGB bytes. The zero based integer index of the first row (Y) The zero based integer index of the first column (X) The number of rows to read The number of columns to read The integer overview. 0 for the original image. Each successive index divides the length and height in half. A Byte of values in ARGB order and in row-major raster-scan sequence This returns the window of data as a bitmap. The zero based integer index of the first row (Y) The zero based integer index of the first column (X) The number of rows to read The number of columns to read The integer overview. 0 for the original image. Each successive index divides the length and height in half. Gets or sets the bounds Gets the number of rows Gets the total number of columns Gets the number of overviews, not counting the original image TiledImage is a class for actually controlling the data in several tiles. This does not supply direct accessors for modifying the bytes directly, and instead expects the user to edit the image on a tile-by-tile basis. However, the GetBitmap method will produce a representation of the envelope scaled to the specified window. Creates a new instance of TiledImage Gets the bitmap for the specified geographic envelope scaled to fit on a bitmap of the specified size in pixels. Cycles through each of the images and calls the open method on each one. Cycles through each of the images and calls the save method on each one Gets or sets the Filename ImageData (not named Image because of conflicting with the Dot Net Image object) Creates a new instance of ImageData Copies the values from the specified source image. The source image to copy values from. Attempts to create a bitmap for the entire image. This may cause memory exceptions. A Bitmap of the image. Sets the bitmap being used for this dataset The geographic envelope gives the region that the image should be created for. The window gives the corresponding pixel dimensions for the image, so that images matching the resolution of the screen can be used. The geographic extents to retrieve data for The rectangle that defines the size of the drawing area in pixels A bitmap captured from the main image The geographic envelope gives the region that the image should be created for. The window gives the corresponding pixel dimensions for the image, so that images matching the resolution of the screen can be used. The geographic extents to retrieve data for The rectangle that defines the size of the drawing area in pixels A bitmap captured from the main image Opens the file, assuming that the fileName has already been specified Forces the image to read values from the graphic image format to the byte array format Saves the image and associated world file to the current fileName. Saves the image to a new fileName. The string fileName to save the image to. Forces the image to copy values from the byte array format to the image format. Creates a new image and world file, placing the default bounds at the origin, with one pixel per unit. The string fileName The integer width The integer height The color band type Opens the file with the specified fileName The string fileName to open Creates a color structure from the byte values in the values array that correspond to the specified position. The integer row index for the pixel. The integer column index for the pixel. A Color. Sets the color value into the byte array based on the row and column position of the pixel. The integer row index of the pixel to set the color of. The integer column index of the pixel to set the color of The color to copy values from Gets a block of data directly, converted into a bitmap. The zero based integer column offset from the left The zero based integer row offset from the top The integer number of pixel columns in the block. The integer number of pixel rows in the block. A Bitmap that is xSize, ySize. Saves a bitmap of data as a continuous block into the specified location. Be sure to call UpdateOverviews after writing all blocks in pyramid images. The bitmap value to save. The zero based integer column offset from the left The zero based integer row offset from the top Finalizes the blocks. In the case of a pyramid image, this forces recalculation of the various overlays. For GDAL images, this may do nothing, since the overlay recalculation may be on the fly. For InRam images this does nothing. This is only used in the palette indexed band type. This should update the palette cached and in the file. Occurs when the bounds have been set. The new bounds. Disposes the managed memory objects in the ImageData class, and then forwards the Dispose operation to the internal dataset in the base class, if any. Boolean, true if both managed and unmanaged resources should be finalized. Gets or sets the color palette Gets or sets an integer indicating how many bytes exist for each pixel. Eg. 32 ARGB = 4, 24 RGB = 3, 16 bit GrayScale = 2 Gets or sets the fileName. Gets the image height in pixels Gets or sets the number of bands that are in the image. One band is a gray valued image, 3 bands for color RGB and 4 bands for ARGB. Gets or sets the stride in bytes. Gets a one dimensional array of byte values Gets the image width in pixels Gets or sets the world file that stores the georeferencing information for this image. Gets or sets the interpretation for the image bands. This currently is only for GDAL images. ITiledImage Gets or sets the bounds for this image Gets or sets the fileName for this tiled image. Gets or sets the integer height in pixels for the combined image at its maximum resolution Gets the stride, or total width in pixels of the byte data, which might not match exactly with the visible width. Gets the tile width Gets the tile height Gets or sets the integer pixel width for the combined image at its maximum resolution. Gets or sets the WorldFile for this set of tiles. MWImageData The _my image. Initializes a new instance of the class. Creates an empty ImageData to be created or loaded Initializes a new instance of the class. Creates a new MWImageData class from the specified fileName. The string filename. Initializes a new instance of the class. Creates the bitmap from the raw image specified. The bounds should be set on this later. The raw image. Initializes a new instance of the class. Uses a bitmap and a geographic envelope in order to define a new imageData object. The raw image. The envelope bounds. Initializes a new instance of the class. Constructs a new ImageData of the specified width and height. The integer width in pixels. The integer height in pixels. Closes the image content. Forces the image to read values from the graphic image format to the byte array format Copies the values from the specified source image. The source image to copy values from. Forces the image to copy values from the byte array format to the image format. Creates a new image and world file, placing the default bounds at the origin, with one pixel per unit. The string fileName The integer width The integer height The ImageBandType that clarifies how the separate bands are layered in the image. Returns the internal bitmap in this case. In other cases, this may have to be constructed from the unmanaged memory content. A Bitmap that represents the entire image. The geographic envelope gives the region that the image should be created for. The window gives the corresponding pixel dimensions for the image, so that images matching the resolution of the screen can be used. The geographic extents to retrieve data for The rectangle that defines the size of the drawing area in pixels A bitmap captured from the main image Opens the file, assuming that the fileName has already been specified using a Dot Net Image object Saves the current image and world file. Saves the image to the specified fileName The string fileName to save this as Sets the bitmap Release any unmanaged memory objects The dispose Managed Resources. The memory setup. Gets a block of data directly, converted into a bitmap. The zero based integer column offset from the left The zero based integer row offset from the top The integer number of pixel columns in the block. The integer number of pixel rows in the block. A Bitmap that is xSize, ySize. Extends the normal bounds changing behavior to also update the world file. Updates the world file. Saves a bitmap of data as a continuous block into the specified location. The bitmap value to save. The zero based integer column offset from the left The zero based integer row offset from the top BitDepth One bit per band pixel Two bits per band pixel Four bits per band pixel Eight bits per band pixel (normal) Sixteen bits per band pixel ColorType Each pixel is a greyscale sample Each pixel is an RGB triple Each pixel is a palette index Each pixel is a greyscale sample followed by an alpha sample EAch pixel is an RGB triple followed by an alhpa sample CRC32 A table of values Calculates the CRC-32-IEEE 802.3 Checkzum for png according to: x^32 + x^26 + x^23 + x^22 + x^16 + + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 Computes the Checksum Computes the checksum bytes Creates a table of checksum values Calculates the CRC-32-IEEE 802.3 Checkzum for png according to: x^32 + x^26 + x^23 + x^22 + x^16 + + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 A UInt32 value stored in a long because UINT32 is not CLS compliant Updates the running CRC Creates the table according to the png specification Deflated data content is widely understood by gzip utilities, but this system is specifically designed to work with png data format, and so will only work with code 8 compression strategy. Compress Decompress InterlaceMethods No interlacing Adam7 interlacing mw.png provides read-write support for a png format that also can provide overviews etc. This cannot work with any possible png file, but rather provides at least one common format that can be used natively for large files that is better at compression than just storing the values directly. http://www.w3.org/TR/2003/REC-PNG-20031110/#11PLTE For testing, see if we can write a png ourself that can be opened by .Net png. The image to write to png format The string fileName Reads a fileName into the specified bitmap. If the file signature doesn't match the png file signature Writes an in Big-endian Uint format. Many rows may be evaluated by this process, but the first value in the array should be aligned with the left side of the image. The original bytes to apply the PaethPredictor to. The integer offset in the array where the filter should begin application. If this is 0, then it assumes that there is no previous scan-line to work with. The number of bytes to filter, starting at the specified offset. This should be evenly divisible by the width. The integer width of a scan-line for grabbing the c and b bytes The entire length of bytes starting with the specified offset Unfilters the data in order to reconstruct the original values. The filtered but decompressed bytes the integer offset where reconstruction should begin The integer length of bytes to deconstruct The integer width of a scan-line in bytes (not counting any filter type bytes. B C - For the current pixel X, use the best fit from B, C or A to predict X. A X PngHeader At this time, the only compression method recognized is 0 - deflate/inflate with a sliding window of at most 32768 bytes At this time, only filter method 0 is outlined in the international standards. (adaptive filtering with 5 basic filter types) Creates a new instance of PngHeader Writes the byte-format of this png image header chunk to Returns the image header in bytes. Writes an integer in Big-endian Uint format. Writes an integer in Big-endian Uint format. Reads the important content from the stream of bytes Gets or sets the bit depth. Depending on the Color Type, not all are allowed: Greyscale - 1, 2, 4, 8, 16 Truecolor - 8, 16 Indexed - 1, 2, 4, 8 Greyscale/alpha - 8, 16 TrueColor/alpha - 8, 16 Gets or sets the color type. Gets or sets the width Gets or sets the height Gets or sets the interlacing method used for this image. PngInsuficientLengthException Creates a new instance of PngInsuficientLengthException PngInvalidSignatureException Creates a new instance of PngInvalidSignatureException PyramidByteMismatch PyramidException Creates a new instance of PyramidException Creates a new instance of PyramidByteMismatch PyramidHeader Calculates the header size for this Gets or sets the array that encompasses all of the basic header content necessary for working with this image. The Pyramid Image is designed with the expectation that the image will be too big to access all at once. It is stored with multiple resolutions in a "mwi or DotSpatial Image" format. It is raw bytes in argb order. The header content is stored in xml format. Creates a new instance of PyramidImage Creates a new PyramidImage by reading in the header content for the specified fileName. Creates a new Pyramid image, and uses the raster bounds to specify the number or rows and columns. No data is written at this time. For big images this won't work, but this gets the 0 scale original image as a bitmap. For big images the scale that is just one step larger than the specified window will be used. Creates the headers using the existing RasterBounds for this image This takes an original image and calculates the header content for all the lower resolution tiles. This does not actually write the bytes for those images. The raster bounds for the original image. This takes an original image and calculates the header content for all the lower resolution tiles. This does not actually write the bytes for those images. The number of rows in the original image The number of columns in the original image the array of doubles in ABCDEF order X' = A + Bx + Cy Y' = D + Ex + Fy This assumes that the base image has been written to the file. This will now attempt to calculate the down-sampled images. This assumes that the base image has been written to the file. This will now attempt to calculate the down-sampled images. downsamples this row by selecting every other byte This is normally weighted for calculations for the middle row. If the top or bottom row is null, it will use mirror symetry by grabbing values from the other row instead. This writes a window of byte values (ARGB order) to the file. This assumes that the headers already exist. If the headers have not been created or the bounds extend beyond the header numRows and numColumns for the specified scale, this will throw an exception. The integer start row The integer start column The integer number of rows in the window The integer number of columns in the window The integer scale. 0 is the original image. The bytes created by this process Occurs when attempting to write data before the headers are defined Occurs if the range specified is outside the bounds for the specified image scale This writes a window of byte values (ARGB order) to the file. This assumes that the headers already exist. If the headers have not been created or the bounds extend beyond the header numRows and numColumns for the specified scale, this will throw an exception. The byte array The integer start row The integer start column The integer number of rows in the window The integer number of columns in the window The integer scale. 0 is the original image. Occurs when attempting to write data before the headers are defined Occurs if the range specified is outside the bounds for the specified image scale This writes a window of byte values (ARGB order) to the file. This assumes that the headers already exist. If the headers have not been created or the bounds extend beyond the header numRows and numColumns for the specified scale, this will throw an exception. The byte array The integer start row The integer start column The integer number of rows in the window The integer number of columns in the window The integer scale. 0 is the original image. The progress meter to advance by row. Calls Next() for each row. Occurs when attempting to write data before the headers are defined Occurs if the range specified is outside the bounds for the specified image scale Reads the header only from the specified mwi file. The header is in xml format. This is a test. We may have to jurry rig the thing to ensure it ignores the actual image content. Whether this is the mwi or mwh file, this reads the mwh file for the fileName. Writes the header to the specified fileName. The string fileName to write the header to. Gets a block of data directly, converted into a bitmap. This is a general implementation, so assumes you are reading and writing to the 0 scale. This is always in ARGB format. The zero based integer column offset from the left The zero based integer row offset from the top The integer number of pixel columns in the block. The integer number of pixel rows in the block. A Bitmap that is xSize, ySize. Saves a bitmap of data as a continuous block into the specified location. This is a general implementation, so assumes you are reading and writing to the 0 scale. This should be in ARGB pixel format or it will fail. The bitmap value to save. The zero based integer column offset from the left The zero based integer row offset from the top Updates overviews. In the case of a Pyramid image, this recalculates the values. Gets or sets the pyramid image header PyramidImageHeader Scale is an integer value that starts at 0 for the original image and represents the number of times the number of columns and number of rows are divided by 2. The affine array of the original, unmodified image The integer scale starting at 0 for the original image, and increasing by one for each down-sampling Sets the number of rows based on the integer scale integer starts at 0 for the original image Sets the number of columns based on the integer scale integer starts at 0 for the original image Offsets Integer number of rows Integer number of columns Gets or sets the affine coefficients for this image in ABCDEF order X' = A + BX + CY Y' = D + EX + FY PyramidOutOfBoundsException Creates a new instance of PyramidOutOfBoundsException PyramidUndefinedHeader Creates a new instance of PyramidUndefinedHeader TileCollection Creates a new instance of TileCollection Calls a method that calculates the propper image bounds for each of the extents of the tiles, given the affine coefficients for the whole image. x' = A + Bx + Cy; y' = D + Ex + Fy Gets the width of the tile Gets the height of the tile Gets the number of tiles in the X direction Gets the integer number of tiles in the Y direction Gets or sets the integer height in pixels for the combined image at its maximum resolution Gets or sets the integer pixel width for the combined image at its maximum resolution. Gets or sets the 2D array of tiles The width of the standard sized tile (not counting the remainder) The height of the standard sized tile, not counting the remainder. The total number of tiles Enumerates the collection of tiles Creates a new instance of hte TileCollectionEnumerator The parent tileCollection TiledImage is a special kind of image coverage where the images specifically form tiles that are adjacent and perfectly aligned to represent a larger image. Creates a new instance of the TiledImage where the fileName is specified. This doesn't actually open the file until the Open method is called. Creates a new instance of TiledImage This should be overridden with custom file handling Even if this TiledImage has already been constructed, we can initialize the tile collection later. Calls a method that calculates the proper image bounds for each of the extents of the tiles, given the affine coefficients for the whole image. x' = A + Bx + Cy; y' = D + Ex + Fy Not Implemented Not Implemented. Not Implemented Not implemented Not Implemented Not implemented Gets or sets the array of tiles used for this Gets or sets the number of bands Not Implemented Gets or sets the WorldFile for this set of tiles. WorldFiles complement images, giving georeference information for those images. The basic idea is to calculate everything based on the top left corner of the image. Creates a new instance of WorldFile Automatically creates a new worldfile based on the specified image fileName. Attempts to open the fileName for the world file for the image if it exists. Returns the string extensions that accompanies one of the dot net image formats. The Imaging.ImageFormat for the image itself The string extension Given the fileName of an image, this creates a new fileName with the appropriate extension. This will also set the fileName of this world file to that extension. The fileName of the image the fileName of the world file Opens the worldfile specified by the Filename property and loads the values Opens an existing worldfile based on the specified fileName Saves the current affine coordinates to the current fileName Saves the current coordinates to a file Gets or sets the fileName to use for an image Creates a Matrix that is in float coordinates that represents this world file A Matrix that transforms an image to the geographic coordinates gets the coordinates in the Affine order: X' = [0] + [1] X + [2] Y Y' = [3] + [4] X + [5] Y Gets or sets the fileName to use for this world file. Gets or sets the cellHeight Gets or sets the cellWidth Gets or sets longitude or X position corresponding to the center of the cell in the top left corner of the image Gets or sets the latitude or Y position corresponding to the center of the cell in the top left corner of the image Gets or sets how much the longitude or X position of a cell in the image depends on the row position of the cell. Gets or sets how much the latitude or Y position of a cell in the image depends on the column position of the cell. Gets a string list of file extensions that might apply to world files. Coordinate Coordinate x-value coordinate y-value Datum Creates a new instance of Datum Gets or sets the name of the datum Gets or sets the datum type Gets or sets the parameters for the Parametric datum type Gets or sets the string name of the grid file HfaDatumType The datum info is 7 doubles The datum info is a name No Datum info ERDAS Projection Codes EPT ERDAS DATA TYPES Unsigned 1 bit Unsigned 2 bit Unsigned 4 bit Unsigned 8 bit Signed 8 bit Unsigned 16 bit Signed 16 bit Unsigned 32 bit Signed 32 bit Single precisions 32 bit floating point Double precision 64 bit floating point 64 bit character? 128 bit character? Extension Methods useful for the DotSpatial.Data.Img content A common task seems to be parsing the text up to a certain delimiter starting from a certain index, and then advancing the string pointer. This advances the index, extracting the string up to the point of the specified delimeter, or the end of the string, and advancing the string past the delimeter itself. If the index is equal to the length, then you are at the end of the string. Given a string, this reads digits into a numeric value. The string to read the integer from An integer read from the string This variant of the ExtractTo algorithm effectively splits the string into teh content before the delimeter and after the delimeter, not counting the delimeter. The string input The string delimeter the string remainder This method returns a substring based on the next occurance of the specified delimeter. The string input The delimeter Hfa Gets the bitcount of a single member of the specified data type. The data type to get the byte count of An integer that represents the bit count of the specified type Reverses the byte order on Big-Endian systems like Unix to conform with the HFA standard of little endian. Return ReadType Given the byte array, this reads four bytes and converts this to a 32 bit integer. This always uses little endian byte order. Given the byte array, this reads four bytes and converts this to a 16 bit unsigned short integer. This always uses little endian byte order. Given the byte array, this reads four bytes and converts this to a 32 bit integer. This always uses little endian byte order. Given the byte array, this reads four bytes and converts this to a 32 bit floating point value This always uses little endian byte order. Given the byte array, this reads four bytes and converts this to a 64 bit floating point value This always uses little endian byte order. Given the byte array, this reads four bytes and converts this to a 32 bit unsigned integer. This always uses little endian byte order. A UInt32 value stored in a long because UInt32 is not CLS Compliant Obtains the 4 byte equivalent for 32 bit Unsigned Integer values The unsigned integer value to convert into bytes The bytes in LittleEndian standard, regardless of the system architecture Obtains the 4 byte equivalent for 32 bit Integer values The unsigned integer value to convert into bytes The bytes in LittleEndian standard, regardless of the system architecture Obtains the 4 byte equivalent for 32bit floating point values The unsigned integer value to convert into bytes The bytes in LittleEndian standard, regardless of the system architecture Obtains the 8 byte equivalent for 64 bit floating point values The unsigned integer value to convert into bytes The bytes in LittleEndian standard, regardless of the system architecture Gets the 2 byte equivalent of an unsigned short in little endian format Gets the 2 byte equivalent of a short in little endian format HfaAccess Read Only with no update access Read/Write access HfaCompress - Development on hold, commented out to reduce warnings HfaDictionary Creates a new instance of HfaDictionary Adds the type using the TypeName as the key The type to add Writes all the elements from this dictionary to the specified stream. Given a character type, this calculates a size. This was originally on the Dictionary, but I moved this to the HfaInfo instead. HfaEntry Creates a new instance of HfaEntry from the file Create a new instance of the entry with the intention that it would be written to disk later Creates a new instance of HfaEntry Loads the data bytes for this element from the file Parses a name which may have an unwanted : or multiple sub-tree names separated with periods. If this is null, then there is no further subtree This parses a complete "path" separated by periods in order to search for a specific child node. Gets or sets the HfaEntry that is the child Gets or sets a boolean indicating if this is changed Gets or sets the long integer file position Gets or sets the HFA Info Gets or sets the hfa parent Gets or sets the previous entry Gets or sets the long integer position of the next entry in the file Gets or sets the HfaEntry that is the next entry Gets or sets the long position of the child Gets or sets the 64 character name of the entry gets or sets the 32 character typestring Gets or sets the type for this entry The GUInt32 Data Position of this entry The GUInt32 Data Size of this entry Gets the data for this entry Gets or sets the collection of all the children. Gets or sets the first child belonging to this entry. HfaEnumerationNotFoundException Creates a new instance of HfaEnumerationNotFoundException HfaField This writes formatted content for this field to the specified IO stream. The stream to write to. SetInstValue Attempting to insert a pointer is not supported. Occurs if the specified value is not a valid member of the enumeration for this field. Scans through the array and estimates the byte size of the field in this case. Gets the count for a particular instance of a field. This will normally be the built in value, but for variable fields, this is extracted from the data itself. This is used in the case of 'object' pointers where the indexed object is further in the data block. Occurs if the count is less than zero for the header of a block of base data Parses the input string into a valid HfaField, or returns null if one could not be created. Gets or sets the short integer number of bytes Gets or sets the short integer item count Gets or sets '\0', '*' or 'p' Gets or sets 1|2|4|e|... If ItemType == 'o' Gets or sets the item object type Normally null unless this is an enum Gets or sets the field name HfaInfo Creates a new instance of HfaInfo Gets or sets the access type Gets or sets a dictionary for looking up types based on string type names. The directory path The string fileName sans path sans path End of file Root position The entry header length The integer version Boolean, true if the tree has changed The file stream HfaInvalidCountException Creates a new instance of HfaInvalidCountException HfaNotCompressedException Creates a new instance of HfaNotCompressedException HfaPointerInsertNotSupportedException Creates a new instance of HfaPointerInsertNotSupportedException HfaType Completes the defenition of this type based on the existing dictionary This function writes content to the file for this entire type by writing the type name and number of bytes, followed by cycling through and writing each of the fields. Triggers a dump on all the fields of this type. Extracts the value form the byte array Gets the number of bytes for this type by adding up the byte contribution from each of its fields. The array of bytes to scan. The integer index in the array where scanning should begin. The integer count. Attempts to find the specified field in the field path and extracts the size of the specified field in bytes Originally Initialize The input string that contains content for this type The remaining string content, unless this fails in which case this may return null The short integer number of bytes The short integer number of fields The type name Gets or sets the list of fields HfaTypeException Creates a new instance of HfaTypeException MapInfo Gets or sets the map coordinats of the center of the lower right pixel Gets or sets the size of a single pixel in map units Gets or sets the string Projection Name Gets or sets the map units Gets or sets the map coordinates of center of upper left pixel NAD Use the North American Datum 1927 Use the North American Datum 1983 Use the North America Datum High Accuracy Reference Network ProParameters Creates a new instance of the ProParameters class Gets or sets the string exectable name for external projectiosn Gets or sets the string projection name Gets or sets the projection number for internal projections Projection parameters array in the GCTP form Gets or sets the projection type Gets or sets the projection zone (UTM, SP only) The projection spheroid ProType Indicates that hte projection is built into the eprj package as function calls Indicates that hte projection is accessible as an exteranl executable Size pixelsize height pixelsize width Spheroid Gets or sets the semi-major axis of the ellipsoid Gets or sets the semi-minor axis of the ellipsoid Gets or sets the eccentricity squared Gets or sets the radius of the sphere Gets or sets the string name o the ellipsoid IDataLayer This should finalize the transaction, saving changes to the database or disk Creates a feature Creates a feature from a shape and some data row values. Creates a new field for this data layer in the data source Deletes the feature at the specified index location The fid Disposes any unmanaged memory objects Gets the feature at the specified index Gets the shape Gets the features Gets the name of the feature ID column Gets the string name of the geometry column Returns the field definitions as an array of fields. An array of field objects that encompass the schema Rolls back the transactions Gets the projection information associated with this projection sets the specified feature Sets the shape Sets the spatial filter by using the specified rectangular extents instead of a geometry. The minimum value in the X direction. The minimum value in the Y direction. The maximum value in the X direction. The maximum value in the Y direction. Boolean, true if hte spatial filter rectangle is set. Starts the transaction Syncrhonize to disk Test Capability Gets the extent of the data layer Gets the name of this layer Gets or sets the spatial filter so that only members that intersect with the specified geometry will be returned. PluginInfo Creates a new instance of PluginInfo Creates a new instance of a PluginInfo class with the specified parameters Settings Key AffineTransform Creates a new instance of AffineTransform Given any input row or column, this returns the appropriate geographic location for the position of the center of the cell. The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the center of the specified cell Given the row and column, this returns the geographic position of the top left corner of the cell The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the top left corner of the specified cell Given the row and column, this returns the geographic position of the top right corner of the cell The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the top right corner of the specified cell Given the row and column, this returns the geographic position of the bottom left corner of the cell The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the bottom left corner of the specified cell Given the row and column, this returns the geographic position of the bottom right corner of the cell The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the bottom right corner of the specified cell Given the row and column, this returns new affine coefficients transformed to that cell The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 Transoformed affine coefficients Returns the row and column index. Gets or sets the ICoordinate An RcIndex that shows the best row or column index for the specified coordinate. Gets or sets the array of coefficients for this transform BinaryDataProvider A DataProvider that is specific to raster formats. This create new method implies that this provider has the priority for creating a new file. An instance of the dataset should be created and then returned. By this time, the fileName will already be checked to see if it exists, and deleted if the user wants to overwrite it. The string fileName for the new instance. The string short name of the driver for creating the raster. The number of columns in the raster. The number of rows in the raster. The number of bands to create in the raster. The data type to use for the raster. The options to be used. An IRaster This open method is only called if this plugin has been given priority for one of the file extensions supported in the DialogReadFilter property supplied by this control. Failing to provide a DialogReadFilter will result in this plugin being added to the list of DataProviders being supplied under the Add Other Data option in the file menu. A string specifying the complete path and extension of the file to open. An IDataSet to be added to the Map. These can also be groups of datasets. This open method is only called if this plugin has been given priority for one of the file extensions supported in the DialogReadFilter property supplied by this control. Failing to provide a DialogReadFilter will result in this plugin being added to the list of DataProviders being supplied under the Add Other Data option in the file menu. A string specifying the complete path and extension of the file to open. An IDataSet to be added to the Map. These can also be groups of datasets. This create new method implies that this provider has the priority for creating a new file. An instance of the dataset should be created and then returned. By this time, the fileName will already be checked to see if it exists, and deleted if the user wants to overwrite it. The string fileName for the new instance The string short name of the driver for creating the raster The number of columns in the raster The number of rows in the raster The number of bands to create in the raster The data type to use for the raster The options to be used. An IRaster A Non-File based open. If no DialogReadFilter is provided, DotSpatial will call this method when this plugin is selected from the Add Other Data option in the file menu. Reads a binary header to determine the appropriate data type Gets a dialog read filter that lists each of the file type descriptions and file extensions, delimeted by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided on this object. Gets a dialog filter that lists each of the file type descriptions and extensions for a Save File Dialog. Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided on this object. Gets a prefereably short name that identifies this data provider. Example might be GDAL. This will be prepended to each of the DialogReadFilter members from this plugin. This is a basic description that will fall next to your plugin in the Add Other Data dialog. This will only be shown if your plugin does not supply a DialogReadFilter. Gets or sets the control or method that should report on progress RasterBoundsEM Calculates the area of this envelope. Because the word Area, like Volume, is dimension specific, this method only looks at the X and Y ordinates, and requires at least 2 ordinates. The IEnvelope to use with this method The 2D area as a double value. Gets the minY, which is Y - Height. The IRasterBounds that this calculation is for. Uses the specified distance to expand the envelope by that amount in all dimensions. The IRasterBounds that this calculation is for. The double distance to expand in all directions. Gets the left value for this rectangle. This should be the X coordinate, but is added for clarity. The IRasterBounds that this calculation is for. Gets the right value, which is X + Width. The IRasterBounds that this calculation is for. Gets the maxY value, which should be Y. The IRasterBounds that this calculation is for. The double value representing the Max Y value of this rectangle Use the Open method instead of this extension. This only provides a default behavior that can optionally be used by implementers of the IRasterBounds interface. The bounds to open The *.wld or *.**w world file to open Use the Save method instead of this extension. This only provides a default behavior that can optionally be used by implementers of the IRasterBounds interface. Generates a new version of the affine transform that will cover the same region, but using the specified number of rows and columns instead. The raster bounds to resample The new number of rows The new number of columns X = [0] + [1] * Column + [2] * Row Y = [3] + [4] * Column + [5] * Row Attempts to save the affine coefficients to the specified worldfile file name The bounds to save The fileName to save this bounds to Converts creates a float precisions drawing matrix from the double precision affine coordinates. The Matrix can be manipulated and then set back. Some precision will be lost, however, as only floats are supported. Re-defines the double precision affine transform values based on the specified system.Drawing.Matrix. The bounds to adjust based on the matrix The matrix to use as a guide for adjustments. Images can be skewed, so this gets the point that actually defines the bottom left corner of the data in geographic coordinates Images can be skewed, so this gets the point that actually defines the bottom right corner of the data in geographic coordinates Images can be skewed, so this gets the point that actually defines the top left corner of the data in geographic coordinates The IRasterBounds to obtain the top left of Images can be skewed, so this gets the point that actually defines the top right corner of the data in geographic coordinates Given any input row or column, this returns the appropriate geographic location for the position of the center of the cell. The raster bounds to perform the calculation on The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the center of the specified cell Given the row and column, this returns the geographic position of the top left corner of the cell The raster bounds to perform the calculation on The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the top left corner of the specified cell Given the row and column, this returns the geographic position of the top right corner of the cell The raster bounds to perform the calculation on The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the top right corner of the specified cell Given the row and column, this returns the geographic position of the bottom left corner of the cell The raster bounds to perform the calculation on The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the bottom left corner of the specified cell Given the row and column, this returns the geographic position of the bottom right corner of the cell The raster bounds to perform the calculation on The integer row index from 0 to numRows - 1 The integer column index from 0 to numColumns - 1 The geographic position of the bottom right corner of the specified cell Returns the row col index The raster bounds to perform the calculation on Gets or sets the ICoordinate An RcIndex that shows the best row or column index for the specified coordinate. The affine transform can make figuring out what rows and columns are needed from the original image in order to correctly fill a geographic extent challenging. This attempts to handle that back projection problem. It returns a System.Drawing.Rectangle in pixel (cell) coordinates that is completely contains the geographic extents, but is not larger than the bounds of the underlying image. If geographic extent fully contains extent of IRasterBounds, than returns rectangle which contains full raster image. If geographic extent partially contains extent of IRasterBounds, than returns rectangle which contains needed edges of full raster image. It back projects all four corners of the extent and returns the bounding rectangle clipped by the image rectangle. Instance of Extent to test. Rectangle in pixel (cell) coordinates. A new model, now that we support 3.5 framework and extension methods that are essentially derived characteristics away from the IRaster interface, essentially reducing it to the simplest interface possible for future implementers, while extending the most easy-to-find functionality to the users. determine if the shape is partially inside grid extents false, if the shape is completely outside grid extents true, if it's at least partially inside Gets a boolean that is true if the Window extents contain are all the information for the raster. In otherwords, StartRow = StartColumn = 0, EndRow = NumRowsInFile - 1, and EndColumn = NumColumnsInFile - 1 This doesn't change the data, but instead performs a translation where the upper left coordinate is specified in world coordinates. Moves this raster so that the upper left coordinate will match the specified position. The skew and cellsize will remain unaltered The location to move the upper left corner of the raster to in world coordinates. Rotates the geospatial reference points for this image by rotating the affine coordinates. The center for this rotation will be the center of the image. The raster to rotate The angle in degrees to rotate the image counter clockwise. Rotates the geospatial reference points for this image by rotating the affine coordinates. The center for this rotation will be the center of the image. The raster to rotate about the specified coordinate The angle in degrees to rotate the image counterclockwise. The point that marks the center of the desired rotation in geographic coordiantes. This method uses a matrix transform to adjust the scale. The precision of using a Drawing2D transform is float precision, so some accuracy may be lost. The raster to apply the scale transform to The multiplier to adjust the geographic extents of the raster in the X direction The multiplier to adjust the geographic extents of the raster in the Y direction This method uses a matrix transform to adjust the shear. The precision of using a Drawing2D transform is float precision, so some accuracy may be lost. The raster to apply the transform to The floating point horizontal shear factor The floating ponit vertical shear factor Applies a translation transform to the georeferenced coordinates on this raster. The raster to apply the translation to An ICoordinate with shear values Retrieves the data from the cell that is closest to the specified coordinates. This will return a No-Data value if the specified coordintes are outside of the grid. The raster to get the value from A valid implementation of Icoordinate specifying the geographic location. The value of type T of the cell that has a center closest to the specified coordinates Retrieves the data from the cell that is closest to the specified coordinates. This will return a No-Data value if the specified coordintes are outside of the grid. The raster to get the value from The longitude or horizontal coordinate The latitude or vertical coordinate The double value of the cell that has a center closest to the specified coordinates Retrieves the location from the cell that is closest to the specified coordinates. This will do nothing if the specified coordinates are outside of the raster. The IRaster to set the value for The longitude or horizontal coordinate The latitude or vertical coordinate The value to assign to the nearest cell to the specified location Retrieves the location from the cell that is closest to the specified coordinates. This will do nothing if the specified coordinates are outside of the raster. The IRaster to set the value for An Icoordinate specifying the location The value to assign to the nearest cell to the specified location Extends the IRaster interface to return the coordinate of the center of a row column position. The raster interface to extend The zero based integer index of the row and column of the cell to locate The geographic location of the center of the specified cell Extends the IRaster interface to return the coordinate of the center of a row column position. The raster interface to extend The zero based integer index of the row of the cell to locate The zero based integer index of the column of the cell to locate The geographic location of the center of the specified cell Extends the IRaster interface to return the zero based integer row and column indices The raster interface to extend The geographic coordinate describing the latitude and longitude The RcIndex that describes the zero based integer row and column indices Extends the IRaster interface to return the zero based integer row and column indices The raster interface to extend A double precision floating point describing the longitude A double precision floating point describing the latitude The RcIndex that describes the zero based integer row and column indices BgdRaster Raster Handles the native file functions for float grids, without relying on GDAL. A general This only works for in-ram rasters. This basically makes a new raster that has all the same in memory values An IRaster that is a duplicate of this class Creates a duplicate version of this file. If copyValues is set to false, then a raster of NoData values is created that has the same georeferencing information as the source file of this Raster, even if this raster is just a window. The string fileName specifying where to create the new file. If this is false, the same size and georeferencing values are used, but they are all set to NoData. Even if this is a window, this will cause this raster to show statistics calculated from the entire file. Most raster methods are optimized for reading in lines or blocks at a time. This one is designed to be used for scattered points. The zero based integer index that is Row * NumColumnsInFile + Column The list of double values Returns a subset from the file that includes only the specified offsets. The result is a raster, and the extents are calculated, but the row and column values are in terms of the window, not the original raster. The band can be controlled by setting the "Current Band" first. X axis or horizontal offset (0 based from left) Y axis or vertical offset (0 based from top) Number of columns Number of rows An IRaster created from the appropriate type;. This writes the values to the file, even if the IRaster has more values than the xSize or ySize stipulate, and even if the source raster has values of a different type. The IRaster that contains data values to write to the file The 0 based integer horizontal offset from the left The 0 based integer vertical offset from the top The integer number of columns to write The integer number of rows to write Saves changes from any values that are in memory to the file. This will preserve the existing structure and attempt to only write values to the parts of the file that match the loaded window. This will save whatever is specified in the startRow, endRow, startColumn, endColumn bounds to a new file with the specified fileName. The string fileName to save the current raster to. This code is required to allow a new format to save data from an old format quickly. It essentially quickly transfers the underlying data values to the new raster. Gets this raster (or its Internal Raster) as the appropriately typed raster so that strong typed access methods are available, instead of just the regular methods, or null if the type is incorrect. (Check datatype property). The type (int, short, float, etc.) The Raster<T> where T are value types like int, short and float. Returns null if the type is wrong. Instructs the raster to write only the header content. This is especially useful if you just want to update the extents or the projection of the raster, without changing the data values. A raster can contain predefined names for its categories null if raster has no category names A raster can contain predefined colors for its categories, for example NLCD GeoTIFF has a palette null if raster has no category colors Gets the integer size of each data member of the raster in bytes. Gets or sets the list of bands, which are in turn rasters. The rasters contain only one band each, instead of the list of all the bands like the parent raster. The geographic height of a cell the projected units. Setting this will automatically adjust the affine coefficient to a negative value. The geographic width of a cell in the projected units This provides a zero-based integer band index that specifies which of the internal bands is currently being used for requests for data. This does nothing unless the FileType property is set to custom. In such a case, this string allows new file types to be managed. This reveals the underlying data type Gets or sets a short string to identify which driver to use. This is primarilly used by GDAL rasters. The integer column index for the right column of this raster. Most of the time this will be NumColumns - 1. However, if this raster is a window taken from a larger raster, then it will be the index of the endColumn from the window. The integer row index for the end row of this raster. Most of the time this will be numRows - 1. However, if this raster is a window taken from a larger raster, then it will be the index of the endRow from the window. Gets the complete path and fileName of the current file Gets the file type of this grid. Gets a boolean that is true if the data for this raster is in memory. Gets the maximum data value, not counting no-data values in the grid. Gets the mean of the non-NoData values in this grid. If the data is not InRam, then the GetStatistics method must be called before these values will be correct. Gets the minimum data value that is not classified as a no data value in this raster. A float showing the no-data values For binary rasters this will get cut to only 256 characters. Gets the number of bands. In most traditional grid formats, this is 1. For RGB images, this would be 3. Some formats may have many bands. Gets the horizontal count of the cells in the raster. Gets the integer count of columns in the file, as opposed to the number represented by this raster, which might just represent a window. Gets the vertical count of the cells in the raster. Gets the number of rows in the source file, as opposed to the number represented by this raster, which might just represent part of a file. Gets the count of the cells that are not no-data. If the data is not InRam, then you will have to first call the GetStatistics() method to gain meaningul values. Gets or sets the string array of options to use when saving this raster. Gets a list of the rows in this raster that can be accessed independantly. The integer column index for the left column of this raster. Most of the time this will be 0. However, if this raster is a window taken from a file, then it will be the row index in the file for the top row of this raster. The integer row index for the top row of this raster. Most of the time this will be 0. However, if this raster is a window taken from a file, then it will be the row index in the file for the left row of this raster. Gets the standard deviation of all the Non-nodata cells. If the data is not InRam, then you will have to first call the GetStatistics() method to get meaningful values. This is provided for future developers to link this raster to other entities. It has no function internally, so it can be manipulated safely. Gets or sets the value on the CurrentBand given a row and column undex The horizontal or longitude coordinate for the lower left cell in the grid The vertical or latitude coordinate for the lower left cell in the grid This doesn't perform calculations, but is simply a place holder where sample values can be stored and retrieved as a cache. Occurs when attempting to copy or save to a fileName that already exists. A developer can tap into this event in order to display an appropriate message. A cancel property allows the developer (and ultimately the user) decide if the specified event should ultimately be cancelled. Set up the default values Creates a memberwise clone of this object. Reference types will be copied, but they will still point to the same original object. So a clone of this raster is pointing to the same underlying array of values etc. A Raster clone of this raster. Creates a new IRaster that has the identical characteristics and in-ram data to the original. A Copy of the original raster. Creates a duplicate version of this file. If copyValues is set to false, then a raster of NoData values is created that has the same georeferencing information as the source file of this Raster, even if this raster is just a window. The string fileName specifying where to create the new file. If this is false, the same size and georeferencing values are used, but they are all set to NoData. Even if this is a window, this will cause this raster to show statistics calculated from the entire file. Saves the values to a the same file that was created or loaded. Saves the curretn raster to the specified file. The current driver code and options are used. The string fileName to save the raster to. This code is empty, but can be overridden in subtypes Instructs the file to write header changes only. This is espcially useful for changing the extents without altering the actual raster values themselves. This create new method implies that this provider has the priority for creating a new file. An instance of the dataset should be created and then returned. By this time, the fileName will already be checked to see if it exists, and deleted if the user wants to overwrite it. The string fileName for the new instance. The string short name of the driver for creating the raster. The number of columns in the raster. The number of rows in the raster. The number of bands to create in the raster. The data type to use for the raster. The options to be used. Gets the no data cell count. Calls GetStatistics() internally. The number of cells which are equal to NoDataValue. Opens the specified fileName. The DefaultDataManager will determine the best type of raster to handle the specified file based on the fileName or characteristics of the file. The string fileName of the raster to open. Opens the specified fileName. The DefaultDataManager will determine the best type of raster to handle the specified file based on the fileName or characteristics of the file. Saves the current raster to the specified file, using the specified driver, but with the options currently specified in the Options property. The string fileName to save this raster as The string driver code. Saves the current raster to the specified file. The string fileName to save the current raster to. The driver code to use. the string array of options that depend on the format. By default, Raster does not have any CategoryNames, but this can be overridden By default, Raster does not have any CategoryColors, but this can be overridden Gets this raster (or its Internal Raster) as the appropriately typed raster so that strong typed access methods are available, instead of just the regular methods. The type (int, short, float, etc.) The Raster<T> where T are value types like int, short, float"/> Overrides dispose to correctly handle disposing the objects at the raster level. Fires the FileExists method. If this returns true, then the action should be cancelled. The fileName to write to Boolean, true if the user doesn't want to overwrite Gets this raster (or its Internal Raster) as the appropriately typed raster so that strong typed access methods are available, instead of just the regular methods. A Raster<short> Gets this raster (or its Internal Raster) as the appropriately typed raster so that strong typed access methods are available, instead of just the regular methods. A Raster<short> Gets this raster (or its Internal Raster) as the appropriately typed raster so that strong typed access methods are available, instead of just the regular methods. A Raster<short> This create new method implies that this provider has the priority for creating a new file. An instance of the dataset should be created and then returned. By this time, the fileName will already be checked to see if it exists, and deleted if the user wants to overwrite it. The string fileName for the new instance. The string short name of the driver for creating the raster. The number of columns in the raster. The number of rows in the raster. The number of bands to create in the raster. The data type to use for the raster. The options to be used. An IRaster For DotSpatial style binary grids, this returns the filetype The fileName with extension to test A GridFileTypes enumeration listing which file type this is This is significantly m The string full path for the fileName to open A Raster object which is actually one of the type specific rasters, like FloatRaster. Returns a native raster of the appropriate file type and data type by parsing the fileName. The string fileName to attempt to open with a native format The boolean value. An IRaster which has been opened to the specified file. Returns a native raster of the appropriate file type and data type by parsing the fileName. The string fileName to attempt to open with a native format The boolean value. An overriding progress manager for this process An IRaster which has been opened to the specified file. Occurs when attempting to copy or save to a fileName that already exists. A developer can tap into this event in order to display an appropriate message. A cancel property allows the developer (and ultimately the user) decide if the specified event should ultimately be cancelled. Gets or sets a statistical sampling. This is designed to cache a small, representative sample of no more than about 10,000 values. This property does not automatically produce the sample, and so this can be null. A parameter for accessing some GDAL data. This frequently does nothing and is usually 0. A parameter for accessing GDAL. This frequently does nothing and is usually 0. Gets the size of each raster element in bytes. Gets or sets the list of bands, which are in turn rasters. The rasters contain only one band each, instead of the list of all the bands like the parent raster. The geographic height of a cell the projected units. Setting this will automatically adjust the affine coefficient to a negative value. The geographic width of a cell in the projected units This provides a zero-based integer band index that specifies which of the internal bands is currently being used for requests for data. This does nothing unless the FileType property is set to custom. In such a case, this string allows new file types to be managed. This returns the RasterDataTypes enumeration clarifying the underlying data type for this raster. Gets or sets the driver code for this raster. The integer column index for the right column of this raster. Most of the time this will be NumColumns - 1. However, if this raster is a window taken from a larger raster, then it will be the index of the endColumn from the window. The integer row index for the end row of this raster. Most of the time this will be numRows - 1. However, if this raster is a window taken from a larger raster, then it will be the index of the endRow from the window. Gets or Sets the complete path and fileName of the current file Returns the grid file type. Only Binary or ASCII are supported natively, without GDAL. Gets or sets a boolean that is true if the data for this raster is in memory. Gets the maximum data value, not counting no-data values in the grid. Gets the mean of the non-NoData values in this grid. If the data is not InRam, then the GetStatistics method must be called before these values will be correct. Gets the minimum data value that is not classified as a no data value in this raster. A double showing the no-data value for this raster. For binary rasters this will get cut to only 256 characters. Gets the number of bands. In most traditional grid formats, this is 1. For RGB images, this would be 3. Some formats may have many bands. Gets the horizontal count of the cells in the raster. Gets the integer count of the number of columns in the source or file that this raster is a window from. (Usually this will be the same as NumColumns) Gets the vertical count of the cells in the raster. Gets the integer count of the number of rows in the source or file that this raster is a window from. (Usually this will be the same as NumColumns.) Gets the count of the cells that are not no-data. If the data is not InRam, then you will have to first call the GetStatistics() method to gain meaningul values. An extra string array of options that exist for support of some types of GDAL supported raster drivers Gets a list of the rows in this raster that can be accessed independantly. The integer column index for the left column of this raster. Most of the time this will be 0. However, if this raster is a window taken from a file, then it will be the row index in the file for the top row of this raster. The integer row index for the top row of this raster. Most of the time this will be 0. However, if this raster is a window taken from a file, then it will be the row index in the file for the left row of this raster. Gets the standard deviation of all the Non-nodata cells. If the data is not InRam, then you will have to first call the GetStatistics() method to get meaningful values. This is provided for future developers to link this raster to other entities. It has no function internally, so it can be manipulated safely. Gets or sets the value on the CurrentBand given a row and column undex Gets or sets the X position of the lower left data cell. Setting this will adjust only the _affine[0] coefficient to ensure that the lower left corner ends up in the specified location, while keeping all the other affine coefficients the same. This is like a horizontal Translate that locks into place the center of the lower left corner of the image. Gets or sets the Y position of the lower left data cell. Setting this will adjust only the _affine[0] coefficient to ensure that the lower left corner ends up in the specified location, while keeping all the other affine coefficients the same. This is like a horizontal Translate that locks into place the center of the lower left corner of the image. The actual data values, stored as a jagged array of values of type T Creates a new instance of Raster Creates an raster of data type T The number of rows in the raster The number of columns in the raster The default ValueGrid only supports standard numeric types, but if a different kind of value grid is needed, this allows it. Creates a raster of data type T. The number of rows in the raster The number of columns in the raster Used especially by the "save as" situation, this simply creates a new reference pointer for the actual data values. Calls the basic setup for the raster Creates a deep copy of this raster object so that the data values can be manipulated without interfering with the original raster. This creates a completely new raster from the windowed domain on the original raster. This new raster will not have a source file, and values like NumRowsInFile will correspond to the in memory version. All the values will be copied to the new source file. InRam must be true at this level. The 0 based integer index of the top row to copy from this raster. If this raster is itself a window, 0 represents the startRow from the file. The integer index of the bottom row to copy from this raster. The largest allowed value is NumRows - 1. The 0 based integer index of the leftmost column to copy from this raster. If this raster is a window, 0 represents the startColumn from the file. The 0 based integer index of the rightmost column to copy from this raster. The largest allowed value is NumColumns - 1 If this is true, the values are saved to the file. If this is false and the data can be loaded into Ram, no file handling is done. Otherwise, a file of NoData values is created. Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory. An implementation of IRaster Gets the statistics all the values. If the entire content is not currently in-ram, ReadRow will be used to read individual lines and performing the calculations. This creates an IN MEMORY ONLY window from the in-memory window of this raster. If, however, the requested range is outside of what is contained in the in-memory portions of this raster, an appropriate cast is required to ensure that you have the correct File handling, like a BinaryRaster etc. The 0 based integer index of the top row to get from this raster. If this raster is itself a window, 0 represents the startRow from the file. The integer index of the bottom row to get from this raster. The largest allowed value is NumRows - 1. The 0 based integer index of the leftmost column to get from this raster. If this raster is a window, 0 represents the startColumn from the file. The 0 based integer index of the rightmost column to get from this raster. The largest allowed value is NumColumns - 1 Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory. An implementation of IRaster Obtains only the statistics for the small window specified by startRow, endRow etc. this only works if the window is also InRam. Prevent the base raster "factory" style open function from working in subclasses. This saves content from memory stored in the Data field to the file using whatever file format the file already exists as. Reads a specific This method reads the values from the entire band into an array and returns the array as a single array. This assumes 0 offsets, the size of the entire image, and 0 for the pixel or line space. An array of values of type T, in row major order Most reading is optimized to read in a block at a time and process it. This method is designed for seeking through the file. It should work faster than the buffered methods in cases where an unusually arranged collection of values are required. Sorting the list before calling this should significantly improve performance. A list or array of long values that are (Row * NumRowsInFile + Column) This Method should be overrridden by classes, and provides the primary ability. The horizontal offset of the area to read values from. The vertical offset of the window to read values from. The number of values to read into the buffer. The vertical size of the window to read into the buffer. The jagged array of raster values of type T. Reads a specific The one dimensional array of values containing all the data for this particular content. The integer row to write to the raster This method reads the values from the entire band into an array and returns the array as a single array. This assumes 0 offsets, the size of the entire image, and 0 for the pixel or line space. The one dimensional array of values containing all the data for this particular content. This method reads the values from the entire band into an array and returns the array as a single array. This specifies a window where the xSize and ySize specified and 0 is used for the pixel and line space. The one dimensional array of values containing all the data for this particular content. The horizontal offset of the area to read values from. The vertical offset of the window to read values from. The number of values to read into the buffer. The vertical size of the window to read into the buffer. During a save opperation, this instructs the program to perform any writing that is not handled by the write raster content. This is the same as the "Value" member except that it is type specific. This also supports the "ToDouble" method. Gets the size of each raster element in bytes. This only works for a few numeric types, and will return 0 if it is not identifiable as one of these basic types: byte, short, int, long, float, double, decimal, sbyte, ushort, uint, ulong, bool. A BgdRaster in created this way probably expects to open a file using the "Open" method, which allows for progress handlers or other things to be set before what might be a time consuming read-value process. Creates a new instance of a BGD raster, attempting to store the entire structure in memory if possible. This creates a new BGD raster. This Method should be overrridden by classes, and provides the primary ability. The horizontal offset of the area to read values from. The vertical offset of the window to read values from. The number of values to read into the buffer. The vertical size of the window to read into the buffer. A jagged array of type T. Most reading is optimized to read in a block at a time and process it. This method is designed for seeking through the file. It should work faster than the buffered methods in cases where an unusually arranged collection of values are required. Sorting the list before calling this should significantly improve performance. A list or array of long values that are (Row * NumRowsInFile + Column) Writes the bgd content from the specified jagged array of values to the file. The data The horizontal offset The vertical offset The number of values to write horizontally The number of values to write vertically Copies the raster header, and if copyValues is true, the values to the specified file The full path of the file to copy content to to Boolean, true if this should copy values as well as just header information Opens the specified file Saves the content from this file using the current fileName and header information If no file exists, this writes the header and no-data values. If a file exists, it will assume that data already has been filled in the file and will attempt to insert the data values as a window into the file. If you want to create a copy of the file and values, just use System.IO.File.Copy, it almost certainly would be much more optimized. Writes the header to the fileName The string fileName where this will begin to write data by clearing the existing file Writes the header, regardless of which subtype of binary raster this is written for The string fileName specifying what file to load Gets the size of the header. There is one no-data value in the header. An inteface specification for any of the multiple types of IDataBlock. Gets or sets a value at the 0 row, 0 column index. The 0 based vertical row index from the top The 0 based horizontal column index from the left An object reference to the actual value in the data member. Boolean, gets or sets the flag indicating if the values have been changed since the last time this flag was set to false. Constructing an ObjectGrid this way assumes the values are not in ram and will simply buffer 3 rows. This involves boxing and unboxing as well as a convert to double, but IConvertible was not CLS Compliant, so we were always getting warnings about it. I am trying to make all the code CLS Compliant to remove warnings. Gets or sets a value at the 0 row, 0 column index. The 0 based vertical row index from the top The 0 based horizontal column index from the left An object reference to the actual value in the data member. This is just a boolean flag that is set to true when the values are updated. It is the responsibility of the user to set this value to false again when the situation warents it. This basically demonstrates how you would combine a type with a calculator in order to construct a Binary Raster for the Integer type. It is effectively the same as constructing a new BinaryRaster and specifying the parameter types int and IntCalculator. Creates a completely empty raster that can be custom configured Creates a new BinaryRaster with the specified rows and columns. If if the raster is less than 64 Million cells, it will be created only in memory, and a Save method should be called when ready to save it to a file. Otherwise, it creates a blank file with NoData values...which start out as 0. The fileName to write to Integer number of rows Integer number of columns Creates a new BinaryRaster with the specified rows and columns. If inRam is true and the raster is less than 64 Million cells, it will be created only in memory, and a Save method should be called when ready to save it to a file. Otherwise, it creates a blank file with NoData values. The fileName to write to Integer number of rows Integer number of columns If this is true and the raster is small enough, it will load this into memory and not save anything to the file. Creates a duplicate version of this file. If copyValues is set to false, then a raster of NoData values is created that has the same georeferencing information as the source file of this Raster, even if this raster is just a window. If the specified fileName exists, rather than throwing an exception or taking an "overwrite" parameter, this will throw the FileExists event, and cancel the copy if the cancel argument is set to true. The string fileName specifying where to create the new file. If this is false, the same size and georeferencing values are used, but they are all set to NoData. This creates a completely new raster from the windowed domain on the original raster. This new raster will have a separate source file, and values like NumRowsInFile will correspond to the newly created file. All the values will be copied to the new source file. If inRam = true and the new raster is small enough, the raster values will be loaded into memory. The 0 based integer index of the top row to copy from this raster. If this raster is itself a window, 0 represents the startRow from the file. The integer index of the bottom row to copy from this raster. The largest allowed value is NumRows - 1. The 0 based integer index of the leftmost column to copy from this raster. If this raster is a window, 0 represents the startColumn from the file. The 0 based integer index of the rightmost column to copy from this raster. The largest allowed value is NumColumns - 1 If this is true, the values are saved to the file. If this is false and the data can be loaded into Ram, no file handling is done. Otherwise, a file of NoData values is created. Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory. An implementation of IRaster Gets the statistics for the entire file, not just the window portion specified for this raster. This creates a window from this raster. The window will still save to the same source file, but only has access to a small window of data, so it can be loaded like a buffer. The georeferenced extents will be for the new window, not the original raster. startRow and endRow will exist in the new raster, however, so that it knows how to copy values back to the original raster. The 0 based integer index of the top row to get from this raster. If this raster is itself a window, 0 represents the startRow from the file. The integer index of the bottom row to get from this raster. The largest allowed value is NumRows - 1. The 0 based integer index of the leftmost column to get from this raster. If this raster is a window, 0 represents the startColumn from the file. The 0 based integer index of the rightmost column to get from this raster. The largest allowed value is NumColumns - 1 Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory. An implementation of IRaster Obtains only the statistics for the small window specified by startRow, endRow etc. Opens the specified file into this raster. Opens a new instance of the BinaryRaster The string fileName of the raster file to open Boolean, indicates whether or not the values for the raster should be loaded into memory This converts this object into a raster defined by the specified window dimensions. The string fileName to open The integer row index to become the first row to load into this raster. The 0 based integer row index to become the last row included in this raster. The 0 based integer column index for the first column of the raster. The 0 based integer column index for the last column to include in this raster. Boolean. If this is true and the window is small enough, this will load the window into ram. Copies the contents from the specified sourceRaster into this sourceRaster. If both rasters are InRam, this does not affect the files. The raster of values to paste into this raster. If the CellWidth and CellHeight values do not match between the files, an exception will be thrown. If the sourceRaster overlaps with the edge of this raster, only the intersecting region will be pasted. Specifies the row in this raster where the top row of the sourceRaster will be pasted Specifies the column in this raster where the left column of the sourceRaster will be pasted. Reads the the contents for the "window" specified by the start and end values for the rows and columns. Writes the header, regardless of which subtype of binary raster this is written for The string fileName specifying what file to load The string fileName where this will begin to write data by clearing the existing file a fileName to write data to This would be a horrible choice for any kind of serious process, but is provided as a way to write values directly to the file. The 0 based integer row index for the file to write to. The 0 based column index for the file to write to. The actual value to write. Saves the values in memory to the disk. If no file exists, this writes the header and no-data values. If a file exists, it will assume that data already has been filled in the file and will attempt to insert the data values as a window into the file. If you want to create a copy of the file and values, just use System.IO.File.Copy, it almost certainly would be much more optimized. The string fileName to write values to. Returns the size of T in bytes. This should be overridden, but exists as a "just-in-case" implementation that works for structs, but definitely won't work correctly for objects. All the binary rasters use the Binary file type This is always 1 band Gets the size of the header. There is one no-data value in the header. RasterEnumerator Creates a new instance of RasterEnumerator The list to build an enumarator for Disposes any unmanaged memory objects Advances the enumerator to the next member. A boolean which is false if there are no more members in the list. Resets the enumerator to the position before the start of the list. Retrieves the current IntRaster from this calculator. IRasterBounds Returns a deep copy of this raster bounds object. An IRasterBounds interface. This is the overridable open method that should be used. The OpenWorldFile method is called by our RasterBounds class, but this allows custom files to be loaded and saved. This is the overridable save method that should be used. The OpenWorldFile method is called by our RasterBounds class, but this allows custom files to be loaded and saved. Gets or sets the double affine coefficients that control the world-file positioning of this image. X' and Y' are real world coords. X' = [0] + [1] * Column + [2] * Row Y' = [3] + [4] * Column + [5] * Row Gets or sets the desired width per cell. This will keep the skew the same, but will adjust both the column based and row based width coefficients in order to match the specified cell width. This can be thought of as the width of a bounding box that contains an entire grid cell, no matter if it is skewed. Gets or sets the desired height per cell. This will keep the skew the same, but will adjust both the column based and row based height coefficients in order to match the specified cell height. This can be thought of as the height of a bounding box that contains an entire grid cell, no matter if it is skewed. Gets or sets the rectangular confines for this envelope. The skew will remain the same when setting this, but the image will be translated and stretched to fit in the specified envelope. Gets the number of rows in the raster. Gets the number of columns in the raster. Gets or sets the world file name. This won't do anything until the "Load" or "Save" methods are called. A public interface definition for a single row of values that should be supported by any of the generic data row types. Gets or sets the value in the position of column. The 0 based integer column index to access on this row. An object reference to the actual data value, which can be many types. RasterBounds Creates a new RasterBounds Attempts to read the very simple 6 number world file associated with an image The number of rows in this raster The number of columns in this raster A world file to attempt to read Creates a new instance of the RasterBounds class The number of rows for this raster The number of columns for this raster The affine coefficients describing the location of this raster. Creates a new raster bounds that is georeferenced to the specified envelope. The number of rows The number of columns The bounding envelope Attempts to load the data from the file listed in WorldFile Attempts to save the data to the file listed in WorldFile Returns a duplicate of this object as an object. A duplicate of this object as an object. Creates a duplicate of this RasterBounds class. A RasterBounds that has the same properties but does not point to the same internal array. Gets or sets the double affine coefficients that control the world-file positioning of this image. X' and Y' are real world coords. X' = [0] + [1] * Column + [2] * Row Y' = [3] + [4] * Column + [5] * Row Gets or sets the desired width per cell. This will keep the skew the same, but will adjust both the column based and row based width coefficients in order to match the specified cell width. This can be thought of as the width of a bounding box that contains an entire grid cell, no matter if it is skewed. Gets or sets the desired height per cell. This will keep the skew the same, but will adjust both the column based and row based height coefficients in order to match the specified cell height. This can be thought of as the height of a bounding box that contains an entire grid cell, no matter if it is skewed. Gets or sets the rectangular bounding box for this raster. Gets or sets the height of the entire bounds. This is derived by considering both the column and row based contributions to the overall height. Changing this will keep the skew ratio the same, but adjust both portions so that the overall height will match the specified height. Gets the number of rows in the raster. Gets the number of columns in the raster. Gets or sets the geographic width of this raster. This will include the skew term in the width estimate, so it will adjust both the width and the skew coefficient, but preserve the ratio of skew to cell width. Gets or sets the fileName of the wordfile that describes the geographic coordinates of this raster. Gets or sets the horizontal placement of the upper left corner of this bounds. Because of the skew, this upper left position may not actually be the same as the upper left corner of the image itself (_affine[0]). Instead, this is the top left corner of the rectangular extent for this raster. Gets or sets the vertical placement of the upper left corner of this bounds, which is the same as the top. The top left corner of the actual image may not be in this position because of skew, but this represents the maximum Y value of the rectangular extents that contains the image. Data types specific to grids An invalid data type Short 16 Bit integers 32 Bit Integers (old style long) Float or Single Double Unknown Byte Specified as the CustomType string Signed 64 Bit Integers Unsigned short 16 Bit Integers Unsigned 32 Bit Integers Unsigned 64 Bit Integers Signed 8-bit Integers: -128 to 127 Booleans: True(1) or False(0). RasterFileTypes Ascii Binary interlaced Layers BGD (Original DotSpatial format) DTED Wavelet format ArcGIS format FLT GeoTiff SID AUX PCIDsk SDTS Custom - specified as string A Row, Column indexer for some return types. The zero based integer column index The zero based integer row index Creates a new RcIndex structure with the specified coordinates The integer row index The integer column index Gets a boolean that is true if either row or column index has no value Boolean, true if either row or column has no value Implements the operator ==. A. The b. The result of the operator. Implements the operator !=. A. The b. The result of the operator. Returns a new RcIndex that is defined as empty when both indices are int. Creates a new instance of Smoother Creates a new instance of Smoother with IntPtr for input array Calculates the smoothing by cycling through the values ScaleBarInfo Gets or sets the backcolor Gets or sets the forecolor Gets or sets what position that the scalebar should load in Gets or sets the unit for the scalebar. Gets or sets whether to show the scale bar. ScaleBarPositions The scalebar should appear in the lower left corner The scalebar should appear in the lower right corner The scalebar should appear in the upper left corner The scalebar should apepar int eh upper right corner SpaceTimeSupport Spatial (X, Y, Z or M information only) Temporal (time information only) SpatioTemporal (time and space information) Other (no temporal or spatial information) StatusBarInfo Gets or sets the alternate string to show in the event that GetFromProjection is false. Gets or sets a boolean indicating whether or not status bar coordinates should display the unites derived from the projection string. Stream extensions Attempts to read count of bytes from stream. Input stream. Count of bytes. Bytes array. Attempts to read the specified T. If this system is doesn't match the specified endian, then this will reverse the array of bytes, so that it corresponds with the big-endian format. The stream to read the value from Specifies what endian property should be used. The integer value Reads the specified number of integers. If a value other than the systems endian format is specified the values will be reversed. The stream to read from The integer count of integers to read The endian order of the bytes. The array of integers that will have count integers. Reads a double precision value from the stream. If this system is not little endian, it will reverse the individual memebrs. The stream to read the values from. A double precision value Reads the specified number of double precision values. If this system does not match the specified endian, the bytes will be reversed. The stream to read the values from. The integer count of doubles to read. The endian to use. Writes the integer as big endian The IO stream Writes the endian as little endian Checks that the endian order is ok for integers and then writes the entire array to the stream. Writes the specified double value to the stream as little endian Checks that the endian order is ok for doubles and then writes the entire array to the stream. The stream to write to The double values to write in little endian form The integer start index in the double array to begin writing The integer count of doubles to write. ByteBlock The block size of the arrays All the blocks The current block index The offset Creates a new instance of ByteBlock Reads the number of bytes using the specified reader. This handles copying across blocks if necessary. The integer number of bytes to read The file or data stream to read from. Reads the number of bytes using the specified reader. This handles copying across blocks if necessary. If the bytes were converted to a single, contiguous integer array, this returns the current offset in that array. If the bytes were converted to a single contiguous double array, this returns the offset in that array. Resets the indices Combines all the blocks into a single array of the specified datatype Combines all the blocks into a single array of the specified datatype A generic vector feature that has the geometry and data components but no drawing information A feature doesn't need to be abstract because the geometry is generic and the other properties are all the same. It supports IRenderable so that even if you don't know what type of feature this is, you can still tell it to draw itself. You won't be able to specify any drawing characteristics from this object however. Creates a deep copy of this feature. the new datarow created will not be connected to a data Table, so it should be added to one. Returns a deep copy of this feature as an IFeature Creates a new shape based on this feature by itself. A Shape object This uses the field names to copy attribute values from the source to this feature. Even if columns are missing or if there are extra columns, this method should work. The IFeature source to copy attributes from. Gets the datarow containing all the attributes related to this geometry Gets or sets a valid IBasicGeometry associated with the data elements of this feature. This will be enough geometry information to cast into a full fledged geometry that can be used in coordination with DotSpatial.Analysis Gets or sets the content length. If the geometry for this shape was loaded from a file, this contains the size of this shape in 16-bit words as per the Esri Shapefile specification. Gets or sets a DotSpatial.Data.CacheTypes enumeration specifying whether the Envelope property returns a cached value in this object or is retrieved directly from the geometry. The initial case for Shapefiles is to use a cache. Setting the envelope assumes that you are going to use a cached value and will set this to Cached. Setting this to Dynamic will cause the Envelope property to reference the geometry. Gets the key that is associated with this feature. This returns -1 if this feature is not a member of a feature layer. Gets a reference to the IFeatureLayer that contains this item. An index value that is saved in some file formats. When a shape is loaded from a Shapefile, this will identify whether M or Z values are used and whether or not the shape is null. This is simply a quick access to the Vertices list for this specific feature. If the Vertices have not yet been defined, this will be null. Gets or sets the column to use when sorting lists of features. If this is set to a column not in the field, the FID is used instead. This should be assigned before attempting to sort features. Because this is static, it only has to be set once, and will affect all the individual comparisions until it is set differently. Creates a feature from the specified shape. This will not handle the attribute content, which should be handles separately, with full knowledge of the desired schema. The shape to read the vertices from in order to build a proper geometry. Creates a complete geometric feature based on a single point. The attribute datarow is null. The vertex Creates a single point feature from a new point. Creates a feature from a geometry The geometry to turn into a feature This constructor allows the creation of a feature but will automatically add the feature to the parent featureset. The IBasicGeometry to use for this feature The IFeatureSet to add this feature to. Constructs a new Feature Creates a new instance of a feature, by specifying the feature type enumeration and a set of coordinates that can be either a list or an array as long as it is enumerable. The feature type The coordinates to pass The FID comparison will be very slow, so this should only be used if the ComparisonField property is set. This will allow sorting features based on their data-row attributes. The data rows do not have to be identical, as long as both contain a column with the comparison field. The other IFeature to compare to. An integer that controls the sorting based on the values for the specified field name. This returns itself as the first geometry An IBasicGeometry interface Index cannot be less than 0 or greater than 1 Test if a point is in a list of coordinates. TestPoint the point to test for. PointList the list of points to look through. true if testPoint is a point in the pointList list. Creates a deep copy of this feature. Returns a deep copy of this feature as an IFeature This uses the field names to copy attribute values from the source to this feature. Even if columns are missing or if there are extra columns, this method should work. The IFeature source to copy attributes from. Creates a deep copy of this feature. Returns a deep copy of this feature as an object Forces the geometry to update its envelope, and then updates the cached envelope of the feature. Creates a new GML string describing the location of this point A String representing the Geographic Markup Language version of this point Returns the Well-known Binary representation of this Geometry. For a definition of the Well-known Binary format, see the OpenGIS Simple Features Specification. The Well-known Binary representation of this Geometry. Creates a new shape based on this feature by itself. A Shape object Copies this feature, creating an independant, but identical feature. Occurs during the cloning process and this method also duplicates the envelope and basic geometry. The feature being copied Gets or sets the integer number of parts associated with this feature. Setting this will set a cached value on the feature that is separate from the geometry and set the NumParts to Cached. Gets or sets a DotSpatial.Data.CacheTypes enumeration. If the value is dynamic, then NumParts will be read from the geometry on this feature. If it is cached, then the value is separate from the geometry. This specifies the offset, if any in the data file Gets or sets a valid IBasicGeometry associated with the data elements of this feature. This will be enough geometry information to cast into a full fledged geometry that can be used in coordination with DotSpatial.Analysis If the geometry for this shape was loaded from a file, this contains the size of this shape in 16-bit words as per the Esri Shapefile specification. Returns an array of coordinates corresponding to the basic feature. Gets the datarow containing all the attributes related to this geometry. This will query the parent feature layer's data Table by FID and then cache the value locally. If no parent feature layer exists, then this is meaningless. You should create a new Feature by doing FeatureLayer.Features.Add(), which will return a new Feature. This is an envelope, but specified by the file, not by calculating from the geometry. To obtain a calculated envelope, calling the DynamicEnvelope() Gets or sets a DotSpatial.Data.CacheTypes enumeration specifying whether the Envelope property returns a cached value in this object or is retrieved directly from the geometry. The initial case for Shapefiles is to use a cache. Setting the envelope assumes that you are going to use a cached value and will set this to Cached. Setting this to Dynamic will cause the Envelope property to reference the geometry. Returns either Point, Polygon or Line Gets the key that is associated with this feature. This returns -1 if this feature is not a member of a feature layer. Shows the type of geometry for this feature Returns the NumGeometries in the BasicGeometry of this feature Gets the integer number of points associated with features. An index value that is saved in some file formats. Gets a reference to the IFeatureLayer that contains this item. When a shape is loaded from a Shapefile, this will identify whether M or Z values are used and whether or not the shape is null. This is simply a quick access to the Vertices list for this specific feature. If the Vertices have not yet been defined, this will be null. Extension Methods for the Features Calculates the area of the geometric portion of this feature. This is 0 unless the feature is a polygon, or multi-polygon. The feature to test The double valued area Generates a new feature from the buffer of this feature. The DataRow of the new feature will be null. This feature The double distance An IFeature representing the output from the buffer operation Generates a new feature from the buffer of this feature. The DataRow of the new feature will be null. This feature The double distance The end cap style to use An IFeature representing the output from the buffer operation Generates a new feature from the buffer of this feature. The DataRow of the new feature will be null. This feature The double distance The number of segments to use to approximate a quadrant of a circle An IFeature representing the output from the buffer operation Generates a new feature from the buffer of this feature. The DataRow of the new feature will be null. This feature The double distance The number of segments to use to approximate a quadrant of a circle The end cap style to use An IFeature representing the output from the buffer operation Generates a buffer, but also adds the newly created feature to the specified output featureset. This will also compare the field names of the input featureset with the destination featureset. If a column name exists in both places, it will copy those values to the destination featureset. The feature to calcualate the buffer for. The double distance to use for calculating the buffer The output featureset to add this feature to and use as a reference for determining which data columns to copy. The IFeature that represents the buffer feature. Generates a buffer, but also adds the newly created feature to the specified output featureset. This will also compare the field names of the input featureset with the destination featureset. If a column name exists in both places, it will copy those values to the destination featureset. The feature to calcualate the buffer for. The double distance to use for calculating the buffer The end cap style to use The output featureset to add this feature to and use as a reference for determining which data columns to copy. The IFeature that represents the buffer feature. Generates a buffer, but also adds the newly created feature to the specified output featureset. This will also compare the field names of the input featureset with the destination featureset. If a column name exists in both places, it will copy those values to the destination featureset. The feature to calcualate the buffer for. The double distance to use for calculating the buffer The number of segments to use to approximate a quadrant of a circle The output featureset to add this feature to and use as a reference for determining which data columns to copy. The IFeature that represents the buffer feature. Generates a buffer, but also adds the newly created feature to the specified output featureset. This will also compare the field names of the input featureset with the destination featureset. If a column name exists in both places, it will copy those values to the destination featureset. The feature to calcualate the buffer for. The double distance to use for calculating the buffer The number of segments to use to approximate a quadrant of a circle The end cap style to use The output featureset to add this feature to and use as a reference for determining which data columns to copy. The IFeature that represents the buffer feature. Returns a feature constructed from the centroid of this feature This feature An IFeature that is also a point geometry Gets a boolean that is true if this feature contains the specified feature This feature The other feature to test Boolean, true if this feature contains the other feature Gets a boolean that is true if this feature contains the specified feature This feature The other feature to test Boolean, true if this feature contains the other feature Calculates a new feature that has a geometry that is the convex hull of this feature. This feature A new feature that is the convex hull of this feature. Calculates a new feature that has a geometry that is the convex hull of this feature. This also copies the attributes that are shared between this featureset and the specified destination featureset, and adds this feature to the destination featureset. This feature The destination featureset to add this feature to The newly created IFeature Gets a boolean that is true if the geometry of this feature is covered by the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature is covered by the specified feature Gets a boolean that is true if the geometry of this feature is covered by the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature is covered by the specified feature Gets a boolean that is true if the geometry of this feature covers the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature covers the specified feature Gets a boolean that is true if the geometry of this feature covers the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature covers the specified feature Gets a boolean that is true if the geometry of this feature crosses the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature crosses the specified feature Gets a boolean that is true if the geometry of this feature crosses the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature crosses the specified feature Creates a new Feature that has a geometry that is the difference between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric difference between this feature and the specified feature. Creates a new Feature that has a geometry that is the difference between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric difference between this feature and the specified feature. Creates a new Feature that has a geometry that is the difference between this feature and the specified feature. This also copies the attributes that are shared between this featureset and the specified destination featureset, and adds this feature to the destination featureset. This feature The other feature to compare to. The featureset to add the new feature to. This clarifies the overall join strategy being used with regards to attribute fields. A new feature that is the geometric difference between this feature and the specified feature. Gets a boolean that is true if the geometry of this feature is disjoint with the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature is disjoint with the specified feature Gets a boolean that is true if the geometry of this feature is disjoint with the geometry of the specified feature. This feature The feature to compare this feature to Boolean, true if this feature is disjoint with the specified feature Distance between features. This feature The feature to compare this feature to Gets a boolean that is true if the geometry of this feature is disjoint with the geometry of the specified feature This feature The feature to compare this feature to Boolean, true if this feature is disjoint with the specified feature Creates a new Feature that has a geometry that is the intersection between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric intersection between this feature and the specified feature. Creates a new Feature that has a geometry that is the intersection between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric intersection between this feature and the specified feature. Creates a new Feature that has a geometry that is the intersection between this feature and the specified feature. This also copies the attributes that are shared between this featureset and the specified destination featureset, and adds this feature to the destination featureset. This feature The other feature to compare to. The featureset to add the new feature to. This clarifies the overall join strategy being used with regards to attribute fields. A new feature that is the geometric intersection between this feature and the specified feature. Gets a boolean that is true if this feature intersects the other feature. This feature The other feature to test Boolean, true if the two IFeatures intersect Gets a boolean that is true if this feature intersects the other feature. This feature The other feature to test Boolean, true if the two IFeatures intersect This tests the current feature to see if the geometry intersects with the specified coordinate. This feature The coordinate Boolean if the coordinate intersects with this feature Gets a boolean that is true if this feature is within the specified distance of the other feature. This feature The other feature to test The double distance criteria Boolean, true if the other feature is within the specified distance of this feature Gets a boolean that is true if this feature is within the specified distance of the other feature. This feature The other feature to test The double distance criteria Boolean, true if the other feature is within the specified distance of this feature Gets a boolean that is true if this feature overlaps the specified feature This feature The other feature to test Boolean, true if the two IFeatures overlap Gets a boolean that is true if this feature overlaps the specified feature This feature The other feature to test Boolean, true if the two IFeatures overlap Gets a boolean that is true if the relationship between this feature and the other feature matches the relationship matrix specified by other This feature The other feature to test The string relationship pattern to test Boolean, true if the other feature's relationship to this feature matches the relate expression. Gets a boolean that is true if the relationship between this feature and the other feature matches the relationship matrix specified by other This feature The other feature to test The string relationship pattern to test Boolean, true if the other feature's relationship to this feature matches the relate expression. Rotates the BasicGeometry of the feature by the given radian angle around the given Origin. This feature. The coordinate the feature gets rotated around. The rotation angle in radian. Creates a new Feature that has a geometry that is the symmetric difference between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric symmetric difference between this feature and the specified feature. Creates a new Feature that has a geometry that is the symmetric difference between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric symmetric difference between this feature and the specified feature. Creates a new Feature that has a geometry that is the symmetric difference between this feature and the specified feature. This also copies the attributes that are shared between this featureset and the specified destination featureset, and adds this feature to the destination featureset. This feature The other feature to compare to. The featureset to add the new feature to. This clarifies the overall join strategy being used with regards to attribute fields. A new feature that is the geometric symmetric difference between this feature and the specified feature. Gets a boolean that is true if this feature touches the specified feature This feature The other feature to test Boolean, true if the two IFeatures touch Gets a boolean that is true if this feature touches the specified feature This feature The other feature to test Boolean, true if the two IFeatures touch Creates a new Feature that has a geometry that is the union between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric union between this feature and the specified feature. Creates a new Feature that has a geometry that is the union between this feature and the specified feature. This feature The other feature to compare to. A new feature that is the geometric union between this feature and the specified feature. Creates a new Feature that has a geometry that is the union between this feature and the specified feature. This also copies the attributes that are shared between this featureset and the specified destination featureset, and adds this feature to the destination featureset. This feature The other feature to compare to. The featureset to add the new feature to. Clarifies how the attributes should be handled during the union A new feature that is the geometric symmetric difference between this feature and the specified feature. Gets a boolean that is true if this feature is within the specified feature This feature The other feature to test Boolean, true if this feature is within the specified feature Gets a boolean that is true if this feature is within the specified feature This feature The other feature to test Boolean, true if this feature is within the specified feature FeatureEvent Creates a new instance of FeatureEvent Gets the feature being referenced by this event. A list that keeps track of a "parent" body that is also of type IFeature. Whenever a member is added to the list, it sets the parent property. IFeatureList Resumes events Temporarilly disables events This is a re-expression of the features using a strong typed list. This may be the inner list or a copy depending on implementation. The features as a List of IFeature. Occurs when a new feature is added to the list Occurs when a feature is removed from the list. Gets or sets whether or not the events have been suspended If this is false, then features will be added to the list without copying over attribute Table information. This will allow the attributes to be loaded in a more on-demand later. Gets the parent featureset for this list. Instantiates a new instance of a FeatureList where no parent is specified. This will basically simply act as a list and will not allow the features to be aware of the parent featureset. Instantiates a new instance of a FeatureList where the ParentFeatureSet is specified so that each feature will be aware of its parent. The ParentFeatureSet of the specified item Removes all elements from the EventList<IFeature>. Unable to clear while the ReadOnly property is set to true. Determines whether an element is in the System.Collections.Generic.List<IFeature>. The object to locate in the System.Collections.Generic.List<IFeature>. The value can be null for reference types. true if item is found in the System.Collections.Generic.List<IFeature> otherwise, false. Returns an enumerator that iterates through this list Resumes events Temporarilly disables events Gets the internal list of features. This is quite fast in this case because the actual internal data store is a list. This does not create a new collection. The internal list. Reverses the order of the elements in the specified range. The zero-based starting index of the range to reverse. The number of elements in the range to reverse. index and count do not denote a valid range of elements in the EventList<IFeature>. index is less than 0.-or-count is less than 0. Unable to reverse while the ReadOnly property is set to true. Reverses the order of the elements in the entire EventList<IFeature>. Unable to reverse while the ReadOnly property is set to true. Sorts the elements in the entire EventList<IFeature> using the specified System.Comparison<IFeature>. The System.Comparison<IFeature> to use when comparing elements. The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself. comparison is null. Unable to sort while the ReadOnly property is set to true. Sorts the elements in a range of elements in EventList<IFeature> using the specified comparer. The zero-based starting index of the range to sort. The length of the range to sort. The System.Collections.Generic.IComparer<IFeature> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<IFeature>.Default. index and count do not specify a valid range in the EventList<IFeature>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. index is less than 0.-or-count is less than 0. comparer is null, and the default comparer System.Collections.Generic.Comparer<IFeature>.Default cannot find implementation of the System.IComparable<IFeature> generic interface or the System.IComparable interface for type IFeature. Unable to sort while the ReadOnly property is set to true. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<IFeature> using the specified comparer. The System.Collections.Generic.IComparer<IFeature> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<IFeature>.Default. The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. comparer is null, and the default comparer System.Collections.Generic.Comparer<IFeature>.Default cannot find implementation of the System.IComparable<IFeature> generic interface or the System.IComparable interface for type IFeature. Unable to sort while the ReadOnly property is set to true. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<IFeature> using the default comparer. The default comparer System.Collections.Generic.Comparer<IFeature>.Default cannot find an implementation of the System.IComparable<IFeature> generic interface or the System.IComparable interface for type IFeature. Unable to sort while the ReadOnly property is set to true. Copies the entire System.Collections.Generic.List<IFeature> to a compatible one-dimensional array, starting at the specified index of the target array. The one-dimensional System.Array that is the destination of the elements copied from System.Collections.Generic.List<IFeature>. The System.Array must have zero-based indexing. The zero-based index in array at which copying begins. System.ArgumentException: arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source System.Collections.Generic.List<T> is greater than the available space from arrayIndex to the end of the destination array. arrayIndex is less than 0 array is null Copies a range of elements from the EventList<IFeature> to a compatible one-dimensional array, starting at the specified index of the target array. The zero-based index in the source EventList<T> at which copying begins The one-dimensional System.Array that is the destination of the elements copied from EventList<IFeature>. The System.Array must have zero-based indexing. The zero-based index in array at which copying begins. The number of elements to copy. array is null. index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0. index is equal to or greater than the EventList<IFeature>.Count of the source EventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source EventList<IFeature> is greater than the available space from arrayIndex to the end of the destination array. Copies the entire EventList<IFeature> to a compatible one-dimensional array, starting at the beginning of the target array. The one-dimensional System.Array that is the destination of the elements copied from EventList<IFeature>. The System.Array must have zero-based indexing. The number of elements in the source EventList<IFeature> is greater than the number of elements that the destination array can contain. array is null. Includes the Feature in the parents DataTable at the given index and raises the FeatureAdded event. Feature that gets included. Index, where the feature gets included. (-1 = add at the end) Removes the given Feature from the parents DataTable and raises the FeatureRemoved event. Feature that gets excluded. Converts the elements in the current EventList<IFeature> to another type, and returns a list containing the converted elements. The output type to convert to A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type. A List<T> of the target type containing the converted elements from the current EventList<T>. converter is null. Determines whether the EventList<IFeature> contains elements that match the conditions defined by the specified predicate. The System.Predicate<IFeature> delegate that defines the conditions of the elements to search for. true if the EventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false. match is null. Creates a shallow copy of a range of elements in the source EventList<IFeature>. The zero-based EventList<IFeature> index at which the range starts. The number of elements in the range. A shallow copy of a range of elements in the source EventList<IFeature>. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the EventList<IFeature>. Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<IFeature> to a new array. An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<IFeature>. Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<IFeature>, if that number is less than a threshold value. Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<IFeature> matches the conditions defined by the specified predicate. The System.Predicate<IFeature> delegate that defines the conditions to check against the elements. true if every element in the DotSpatial.Interfaces.Framework.IEventList<IFeature> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true. match is null. Searches for the specified object and returns the zero-based index of the first occurrence within the entire System.Collections.Generic.List<IFeature>. The object to locate in the System.Collections.Generic.List<IFeature>. The value can be null for reference types. The zero-based index of the first occurrence of item within the entire System.Collections.Generic.List<IFeature>, if found; otherwise, –1. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<IFeature> that starts at the specified index and contains the specified number of elements. The object to locate in the EventList<IFeature>. The value can be null for reference types. The zero-based starting index of the search. The number of elements in the section to search. The zero-based index of the first occurrence of item within the range of elements in the EventList<IFeature> that starts at index and contains count number of elements, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<IFeature>. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<IFeature> that extends from the specified index to the last element. The object to locate in the EventList<IFeature>. The value can be null for reference types. The zero-based starting index of the search. The zero-based index of the first occurrence of item within the range of elements in the EventList<IFeature> that extends from index to the last element, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<IFeature>. Inserts an element into the System.Collections.Generic.List<IFeature> at the specified index. The zero-based index at which item should be inserted. The object to insert. The value can be null for reference types. index is less than 0.-or-index is greater than System.Collections.Generic.List<IFeature>.Count. Unable to insert while the ReadOnly property is set to true. Inserts the elements of a collection into the EventList<IFeature> at the specified index. The zero-based index at which the new elements should be inserted. The collection whose elements should be inserted into the EventList<IFeature>. The collection itself cannot be null, but it can contain elements that are null, if type IFeature is a reference type. index is less than 0.-or-index is greater than EventList<IFeature>.Count. collection is null. Unable to insert while the ReadOnly property is set to true. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<IFeature> that contains the specified number of elements and ends at the specified index. The object to locate in the EventList<IFeature>. The value can be null for reference types. The zero-based starting index of the backward search. The number of elements in the section to search. The zero-based index of the last occurrence of item within the range of elements in the EventList<IFeature> that contains count number of elements and ends at index, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<IFeature>. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<IFeature> that extends from the first element to the specified index. The object to locate in the EventList<IFeature>. The value can be null for reference types. The zero-based starting index of the backward search. The zero-based index of the last occurrence of item within the range of elements in the EventList<IFeature> that extends from the first element to index, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<IFeature>. Searches for the specified object and returns the zero-based index of the last occurrence within the entire EventList<IFeature>. The object to locate in the EventList<IFeature>. The value can be null for reference types. The zero-based index of the last occurrence of item within the entire the EventList<IFeature>, if found; otherwise, –1. Removes the first occurrence of a specific object from the System.Collections.Generic.List<IFeature>. The object to remove from the System.Collections.Generic.List<IFeature>. The value can be null for reference types. true if item is successfully removed; otherwise, false. This method also returns false if item was not found in the System.Collections.Generic.List<IFeature>. Unable to remove while the ReadOnly property is set to true. Removes the element at the specified index of the System.Collections.Generic.List<IFeature>. The zero-based index of the element to remove. Unable to remove while the ReadOnly property is set to true. Removes the all the elements that match the conditions defined by the specified predicate. The System.Predicate<IFeature> delegate that defines the conditions of the elements to remove. The number of elements removed from the EventList<IFeature> match is null. Unable to remove while the ReadOnly property is set to true. Removes a range of elements from the EventList<IFeature>. The zero-based starting index of the range of elements to remove. The number of elements to remove. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the EventList<IFeature>. Unable to remove while the ReadOnly property is set to true. Retrieves all the elements that match the conditions described by the specified predicate The System.Predicate that defines the conditions to search for A List of matches 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 EventList<IFeature> that starts at the specified index and contains the specified number of elements. The zero-based starting index of the search. The number of elements in the section to search. The System.Predicate<IFeature> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1 startIndex is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<IFeature>. match is null 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 EventList<IFeature> that extends from the specified index to the last element. The zero-based starting index of the search. The System.Predicate<IFeature> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. startIndex is outside the range of valid indexes for the EventList<IFeature>. match is null. 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 EventList<IFeature>. The System.Predicate<IFeature> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire EventList<IFeature>. The System.Predicate<IFeature> delegate that defines the conditions of the element to search for. The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type IFeature. match is null." 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 EventList<IFeature> that contains the specified number of elements and ends at the specified index. The zero-based starting index of the backward search. The number of elements in the section to search. The System.Predicate<IFeature> delegate that defines the conditions of the element to search for. startIndex is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<IFeature>. match is null. 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 EventList<IFeature> that extends from the first element to the specified index. The zero-based starting index of the backward search. The System.Predicate<IFeature> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. : startIndex is outside the range of valid indexes for the EventList<IFeature>. 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 EventList<IFeature>. The System.Predicate<IFeature> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. Adds the item to the list, setting the parent to be the list's parent Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T> collection: The collection whose elements should be added to the end of the System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. Unable to add while the ReadOnly property is set to true. Searches the entire sorted System.Collections.Generic.List<IFeature> for an element using the default comparer and returns the zero-based index of the element. The object to locate. The value can be null for reference types. The zero-based index of item in the sorted System.Collections.Generic.List<IFeature>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<IFeature>.Count. The default comparer System.Collections.Generic.Comparer<IFeature>.Default cannot find an implementation of the System.IComparable<IFeature> generic interface or the System.IComparable interface for type IFeature. Occurs each time a feature is added to the list. This should only be called if suspend events is false. The feature that was added. Occurs each time a feature is removed from the list. This should only be called if suspend events is false. he feature that was removed Occurs when a new feature is added to the list Occurs when a feature is removed from the list. Gets or sets whether or not the events have been suspended Gets or sets the total number of elements the internal data structure can hold without resizing. The number of elements that the DotSpatial.Interfaces.Framework.IEventList<IFeature> can contain before resizing is required. DotSpatial.Interfaces.Framework.IEventList<IFeature>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<IFeature>.Count. Gets the count of the members in the list The default, indexed value of type IFeature The numeric index An object of type IFeature corresponding to the index value specified Gets a boolean property indicating whether this list can be written to. If this is false, then features will be added to the list without copying over attribute Table information. This will allow the attributes to be loaded in a more on-demand later. Gets the parent featureset for this list of features. FeatureListEm adding a single coordinate will assume that the feature type should be point for this featureset, even if it has not already been specified. This IFeatureList The point to add to the featureset Thrown when the feature type already exists, there are already features in the featureset and the featuretype is not equal to point. This adds the coordinates and specifies what sort of feature type should be added. This IFeatureList The list or array of coordinates to be added after it is built into the appropriate feature. The feature type. If the feature type is specified, then this will automatically generate a new feature from the specified coordinates. This will not work unless the featuretype is specified. This IFeatureList The list or array of coordinates to build into a new feature. If the feature type is point, then this will create separate features for each coordinate. For polygons, all the points will be assumed to be in the shell. Thrown if the current FeatureType for the shapefile is unspecified. This method will attempt to add the specified geometry to the list. If the feature type is currently unspecified, this will specify the feature type. This feature list The geometry to create a new feature from. Thrown if the new geometry does not match the currently specified feature type. Rather than being an abstract base class, this is a "router" class that will make decisions based on the file extension or whatever being used and decide the best IFeatureSet that matches the specifications. A layer contains a list of features of a specific type that matches the geometry type. While this supports IRenderable, this merely forwards the drawing instructions to each of its members, but does not allow the control of any default layer properties here. Calling FeatureDataSource.Open will create a number of layers of the appropriate specific type and also create a specific layer type that is derived from this class that does expose default "layer" properties, as well as the symbology elements. IDataPageRetriever Supplies a page of content in the form of a data Table. The integer lower page boundary The integer number of rows to return for the page A DataTable made up with the virtual row content. Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView The integer lower page boundary The integer number of attribute values to return for the page The list or array of fieldnames to return. A DataTable populated with data rows with only the specified values. Converts a page of content from a DataTable format, saving it back to the source. The 0 based integer index representing the first row in the file (corresponding to the 0 row of the data table) The DataTable representing the rows to set. If the row count is larger than the dataset, this will add the rows instead. The number of rows Gets the column with the specified name the name to search the Field matching the specified name Gets a copy of the fields used to build the data structure. This is useful for learning about the existing fields, but doesn't allow direct changes to the underlying data structure. Saves the new row to the data source and updates the file with new content. The values organized against the dictionary of field names. saves a single row to the data source. the integer row (or FID) index The dictionary of object values by string field name holding the new values to store. Saves the new row to the data source and updates the file with new content. The values organized against the dictionary of field names. saves a single row to the data source. the integer row (or FID) index The dictionary of object values by string field name holding the new values to store. Given a string expression, this returns the count of the members that satisfy that expression. The array of string expressions to test The progress handler that might also instruct this step to be canceled. The integer maximum sample size from which to draw counts. If this is negative, it will not be used. An array of integer counts of the members that match the expression Gets the list of string names available as columns from the specified excel file. For attributes that are small enough to be loaded into a data table, this will join attributes from a foreign table (from an excel file). This method won't create new rows in this table, so only matching members are brought in, but no rows are removed either, so not all rows will receive data. The complete path of the file to join The field name to join on in this table The field in the foreign table. If this featureset is in index mode, this will append the vertices and shapeindex of the shape. Otherwise, this will add a new feature based on this shape. If the attributes of the shape are not null, this will attempt to append a new datarow It is up to the developer to ensure that the object array of attributes matches the this featureset. If the Attributes of this feature are loaded, this will add the attributes in ram only. Otherwise, this will attempt to insert the attributes as a new record using the "AddRow" method. The schema of the object array should match this featureset's column schema. The shape to add to this featureset. Adds any type of list or array of shapes. If this featureset is not in index moded, it will add the features to the featurelist and suspend events for faster copying. An enumerable collection of shapes. Gets the specified feature by constructing it from the vertices, rather than requiring that all the features be created. (which takes up a lot of memory). The integer index Gets a shape at the specified shape index. If the featureset is in indexmode, this returns a copy of the shape. If not, it will create a new shape based on the specified feature. The zero based integer index of the shape. If getAttributes is true, then this also try to get attributes for that shape. If attributes are loaded, then it will use the existing datarow. Otherwise, it will read the attributes from the file. (This second option is not recommended for large repeats. In such a case, the attributes can be set manually from a larger bulk query of the data source.) The Shape object Given a datarow, this will return the associated feature. This FeatureSet uses an internal dictionary, so that even if the items are re-ordered or have new members inserted, this lookup will still work. The DataRow for which to obtaind the feature The feature to obtain that is associated with the specified data row. Generates a new feature, adds it to the features and returns the value. The feature that was added to this featureset Adds the FID values as a field called FID, but only if the FID field does not already exist Copies all the features from the specified featureset. The source IFeatureSet to copy features from. Boolean, true if the attributes should be copied as well. If this is true, and the attributes are not loaded, a FillAttributes call will be made. Retrieves a subset using exclusively the features matching the specified values. An integer list of indices to copy into the new FeatureSet A FeatureSet with the new items. Copies the subset of specified features to create a new featureset that is restricted to just the members specified. The string expression to test. A FeatureSet that has members that only match the specified members. Copies only the names and types of the attribute fields, without copying any of the attributes or features. The source featureSet to obtain the schema from. Copies the Table schema (column names/data types) from a DatatTable, but doesn't copy any values. The Table to obtain schema from. Instructs the shapefile to read all the attributes from the file. This may also be a cue to read values from a database. Instructs the shapefile to read all the attributes from the file. This may also be a cue to read values from a database. Obtains the list of feature indices that match the specified filter expression. The filter expression to find features for. The list of integers that are the FIDs of the specified values. This forces the vertex initialization so that Vertices, ShapeIndices, and the ShapeIndex property on each feature will no longer be null. Switches a boolean so that the next time that the vertices are requested, they must be re-calculated from the feature coordinates. This only affects reading values from the Vertices cache Attempts to remove the specified shape. The integer index of the shape to remove. Boolean, true if the remove was successful. Attempts to remove a range of shapes by index. This is optimized to work better for large numbers. For one or two, using RemoveShapeAt might be faster. The enumerable set of indices to remove. Skips the features themselves and uses the shapeindicies instead. The region to select members from A list of integer valued shape indices that are selected. Saves the information in the Layers provided by this datasource onto its existing file location Saves a datasource to the file. The string fileName location to save to Boolean, if this is true then it will overwrite a file of the existing name. returns only the features that have envelopes that intersect with the specified envelope. The specified region to test for intersect with A List of the IFeature elements that are contained in this region returns only the features that have envelopes that intersect with the specified envelope. The specified region to test for intersect with This returns the geographic extents for the entire selected area. A List of the IFeature elements that are contained in this region The string filter expression to use in order to return the desired features. The features to return. The list of desired features. This version is more tightly integrated to the DataTable and returns the row indices, rather than attempting to link the results to features themselves, which may not even exist. The filter expression The list of indices After changing coordinates, this will force the re-calculation of envelopes on a feature level as well as on the featureset level. Occurs when the vertices are invalidated, encouraging a re-draw Occurs when a new feature is added to the list Occurs when a feature is removed from the list. Gets whether or not the attributes have all been loaded into the data table. Gets or sets the coordinate type across the entire featureset. Gets the DataTable associated with this specific feature. Gets the list of all the features that are included in this layer. This is an optional GeometryFactory that can be set to control how the geometries on features are created. if this is not specified, the default from DotSptaial.Topology is used. Gets the feature lookup Table itself. Gets an enumeration indicating the type of feature represented in this dataset, if any. Gets the string fileName for this feature layer, if any These specifically allow the user to make sense of the Vertices array. These are fast acting sealed classes and are not meant to be overridden or support clever new implementations. If this is true, then the ShapeIndices and Vertex values are used, and features are created on demand. Otherwise the list of Features is used directly. Gets an array of Vertex structures with X and Y coordinates Z coordinates M coordinates Gets a boolean that indicates whether or not the InvalidateVertices has been called more recently than the cached vertex array has been built. The _data table. The _feature lookup. The _features. The _m. The _shape indices. The _vertices. The _vertices are valid. The _z. Initializes a new instance of the class. This doesn't do anything exactly because there is no file-specific information yet Initializes a new instance of the class. Creates a new FeatureSet The Feature type like point, line or polygon Initializes a new instance of the class. This creates a new featureset by checking each row of the table. If the WKB feature type matches the specified featureTypes, then it will copy that. Initializes a new instance of the class. Creates a new FeatureSet using a given list of IFeatures. This will copy the existing features, rather than removing them from their parent feature set. The list of IFeatures Generates a new feature, adds it to the features and returns the value. The geometry. The feature that was added to this featureset The data table row deleted. The sender. The e. The features feature added. The sender. The e. The features feature removed. The object sender. The FeatureEventArgs. Adds the FID values as a field called FID, but only if the FID field does not already exist. The copy subset. The indices. The copy subset. The filter expression. Gets the list of string names available as columns from the specified excel file. Warning. This method should be moved outside of FeatureSet. For attributes that are small enough to be loaded into a data table, this will join attributes from a foreign table (from an excel file). This method won't create new rows in this table, so only matching members are brought in, but no rows are removed either, so not all rows will receive data. The complete path of the file to join The field name to join on in this table The field in the foreign table. A modified featureset with the changes. Selects using a string filter expression to obtain the desired features. Field names should be in square brackets. Alternately, if the field name of [FID] is used, then it will use the row index instead if no FID field is found. The features to return. The list of desired features. This version is more tightly integrated to the DataTable and returns the row indices, rather than attempting to link the results to features themselves, which may not even exist. The filter expression The list of indices Retrieves a subset using exclusively the features matching the specified values. An integer list of indices to copy into the new FeatureSet. A FeatureSet with the new items. This attempts to open the specified file as a valid IFeatureSet. This will require that the default data manager can work with the file format at runtime. The string fileName for this featureset. This will return the correct feature type by reading the fileName. A string specifying the file with the extension .shp to open. A correct featureSet which is exclusively for reading the .shp data Generates a new FeatureSet, if possible, from the specified fileName. The string fileName to attempt to load into a new FeatureSet. An IProgressHandler for progress messages Gets the line for the specified index Returns a single multipoint feature for the shape at the specified index Gets the point for the shape at the specified index If the FeatureType is polygon, this is the code for converting the vertex array into a feature. handles the attributes while adding a shape A data row, but only if attributes are populated Copies the subset of specified features to create a new featureset that is restricted to just the members specified. The string expression to test. A FeatureSet that has members that only match the specified members. Test if a point is in a list of coordinates. TestPoint the point to test for. PointList the list of points to look through. true if testPoint is a point in the pointList list. Attempts to remove the specified shape. If in memory, this will also remove the corresponding database row. This has no affect on the underlying datasets. To impact those, use the The integer index o the shape to remove. Boolean, true if the remove was successful. Attempts to remove a range of shapes by index. This is optimized to work better for large numbers. For one or two, using RemoveShapeAt might be faster. The enumerable set of indices to remove. Reprojects all of the in-ram vertices of this featureset. This will also update the projection to be the specified projection. The projection information to reproject the coordinates to. After changing coordinates, this will force the re-calculation of envelopes on a feature level or test the shapes in index mode to rebuild an Extent. Creates a relative path from one file or folder to another. Contains the path that defines the endpoint of the relative path. The relative path from the start directory to the end path. Occurs when the toPath is NULL Creates a relative path from one file or folder to another. Contains the directory that defines the start of the relative path. Contains the path that defines the endpoint of the relative path. The relative path from the start directory to the end path. Calculates the features from the shape indices and vertex array. Allows the un-wiring of event handlers related to the data Table. Allows the wiring of event handlers related to the data Table. Occurs when removing the feature list, allowing events to be disconnected Occurs when setting the feature list, allowing events to be connected Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView The integer lower page boundary. The integer number of attribute rows to return for the page. The list or array of fieldnames to return. A DataTable populated with data rows with only the specified values. Occurs when the vertices are being re-calculated. Fires the VerticesInvalidated event This forces the cached vertices array to be copied back to the individual X and Y values of the coordinates themselves. Disposes the unmanaged memory objects. If this is true, managed resources are set to null. Occurs when a new feature is added to the list Occurs when a feature is removed from the list. Occurs when the vertices are invalidated, encouraging a re-draw Gets or sets the current file path. This is the relative path relative to the current project folder. For feature sets coming from a database or a web service, the FilePath property is NULL. The relative file path. This property is used when saving source file information to a DSPX project. Gets whether or not the attributes have all been loaded into the data table. Gets or sets the coordinate type across the entire featureset. DataTable is the System.Data.DataTable for all the attributes of this FeatureSet. This will call FillAttributes if it is accessed and that has not yet been called. This is the envelope in Extent form. This may be cached. This is an optional GeometryFactory that can be set to control how the geometries on features are created. The "Feature" prefix allows us to access the static Default instance on GeometryFactory. Gets the feature lookup Table itself. Gets or sets an enumeration specifying whether this featureset contains Lines, Points, Polygons or an unspecified type. A list of the features in this layer Gets or sets the file name of a file based feature set. The file name should be the absolute path including the file extension. For feature sets coming from a database or a web service, the Filename property is NULL. If this is true, then the ShapeIndices and Vertex values are used, and features are created on demand. Otherwise the list of Features is used directly. These specifically allow the user to make sense of the Vertices array. These are fast acting sealed classes and are not meant to be overridden or support clever new implementations. Gets a Boolean that indicates whether or not the InvalidateVertices has been called more recently than the cached vertex array has been built. FeatureSetEM contains extension methods that should work for any IFeatureSet Creates a new polygon featureset that is created by buffering each of the individual shapes. The IFeatureSet to buffer The double distance to buffer Boolean, if this is true, then the new featureset will have the same attributes as the original. The newly created IFeatureSet Generates an empty featureset that has the combined fields from this featureset and the specified featureset. This featureset The other featureset to combine fields with. Calculates a union of any features that have a common value in the specified field. The output will only contain the specified field. Example: Disolving a county shapefile based on state name to produce a single polygon shaped like the state. The original featureSet to disolve the features of The string field name to use for the disolve operation A featureset where the geometries of features with the same attribute in the specified field have been combined. Tests to see if this feature intersects with the specified envelope This feature The envelope to test Boolean, true if the intersection occurs This method will create a new IFeatureSet with the the shapes that intersect merged into single shapes, or else it will return a new featureset where EVERY shape is unioned into a single, multi-part shape. The source of features to union This controls whether intersecting or all features are unioned An IFeatureSet with the unioned shapes. This tests each feature of the input This featureSet The featureSet to perform intersection with The attribute join type A progress handler for status messages An IFeatureSet with the intersecting features, broken down based on the join Type FeatureTypeMismatchException Creates a new instance of FeatureTypeMismatchException FieldJoinType Output datasets have all fields from both input and output sets. Fields with duplicate field names will be appended with a number. Features from this dataset may appear more than once if more than one valid intersection occurs with the features from the other featureset. The fields will be created from the fields in the other featureset. All the fields from this FeatureSet are used, and all of the features from the other featureset are considered to be a single geometry so that features from this set will appear no more than once in the output set. No fields will be copied, but features from this featureset will be considered independantly and added as separate features to the output featureset. The row being edited The pages currently stored in the cache Constructs a new Cache object that can create data tables by using a DataPageRetriever Any structure that implements IDataPageRetriever The rows per page Saves the changes in the edit row to the tabular cache as well as the underlying database Obtains the element at the specified index Obtains the element at the specified index The integer index of the row being edited The number of rows in the data supply Enumerates the dictionaries that represent row content stored by field name. Creates a new AttributeCacheEnumerator Represents one page of data. The data Table A Data page representing one page of data-row values The DataTable that controls the content The integer row index Tests to see if the specified index is in this page. Given an arbitrary row index, this calculates what the lower boundary would be for the page containing the index Given an arbitrary row index, this calculates the upper boundary for the page containing the index The integer lowest index of the page The integer highest index of the page AttributePager Creates a new instance of AttributePager Does nothing Advances to the next attribute reset the attribute pager The integer number of pages the number of pages Gets the number of rows on the specified page. The page index The number of rows that should be on that page. Loads the appropriate page if it isn't loaded already and returns the DataRow that matches the specified index The integer row index The DataRow Returns the page that the specified row is on The integer row index The page of the row in question Gets the current table Gets the starting row index of the current page. Gets the pages size as a count of the number of rows each data table page should hold This returns the data table for the corresponding page index, but also sets the Pager so that it is sitting on the specified page index. A class for controlling the attribute Table related information for a shapefile. Indicates that the Fill methode is called from inside itself. Creates a new instance of an attribute Table with no file reference Creates a new AttributeTable with the specified fileName, or opens an existing file with that name. Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView Reads just the content requested. starting row number of rows to return field for which data is to be returned Reads just the contents requested. Faster than returning the entire record if you have lots of attributes but only want a few. starting row number of rows to return fields for which data is to be returned Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView The 0 based integer index of the start row The DataTable with the 0 row corresponding to the start row. If this exceeds the size of the data table, it will add rows. Get a DataTable containing the specified rows Accounts for deleted rows and returns the index as it appears in the file Accounts for deleted rows and adjusts a file index to a row index Saves the new row to the data source and updates the file with new content. The values organized against the dictionary of field names. Removes the row at the specified row index from both the table in memory and by marking it as deleted in the file. This should work even in cases where the file is very large and working as an AttributeSource. Saves the new row to the data source and updates the file with new content. The values organized against the dictionary of field names. saves a single row to the data source. the integer row (or FID) index The object array holding the new values to store. saves a single row to the data source. the integer row (or FID) index The object array holding the new values to store. saves a collection of rows to the data source Edit the specified rows via a client supplied callback rows to edit client supplied callback Setup before calls to OverwriteDataRow Cleanup after finished calling OverwriteDataRow Common code for editing an existing row in the data source Read a single dbase record Returns an IFeature with information appropriate for the current row in the Table Reads all the information from the file, including the vector shapes and the database component. Reads the header and if deletedRows is null, searches file for deletedRows if file size indicates possibility of deleted rows. This populates the Table with data from the file. In the event that the dbf file is not found, this indicates how many blank rows should exist in the attribute Table. Attempts to save the file to the path specified by the Filename property. This should be the .shp extension. Saves this Table to the specified fileName The string fileName to save to A boolean indicating whether or not to write over the file if it exists. Tests to see if the list of columns contains the specified name or not. Name of the column we're looking for. True, if the column exists. This appends the content of one datarow to a dBase file. The columnValues parameter was null Header records need to be written first. Table property of columnValues parameter cannot be null. Writes a number of spaces equal to numspaces The integer number of spaces to write Writes an integer so that it is formatted for dbf. This is still buggy since it is possible to lose info here. The long value The length of the field. The number of digits after the decimal Write the header data to the DBF file. Read a single dbase record Returns an IFeature with information appropriate for the current row in the Table Parse the character data for one column into an object ready for insertion into a data row Read the header data from the DBF file. BinaryReader containing the header. This systematically copies all the existing values to a new data column with the same properties, but with a new data type. Values that cannot convert will be set to null. The old data column to update The new data type that the column should become The row up to which values should be changed for The column index of the field being changed The Table to apply this strategy to. An integer list showing the index values of the rows where the conversion failed. Fires the AttributesFilled event Occurs after content has been loaded into the attribute data. gets or sets whether the Attributes have been populated. If data was "opened" from a file, and a query is made to the DataTable while _attributesPopulated is false, then a Fill method will be called automatically The byte length of the header The columns The file type The fileName of the dbf file Number of records Gets or sets the progress handler for this Attribute Table. Gets or sets the progress meter that is directly tied to the progress handler The byte length of each record Gets the language driver ID (LDID) for this file Gets the encoding used for text-based data and column names (based on LDID) DataSet Last date written to Gets the list of raw row numbers that have been marked for deletion A shapefile class that handles the special case where the vectors are lines This is a generic shapefile that is inherited by other specific shapefile types. When creating a new shapefile, this simply prevents the basic values from being null. Creates a new shapefile that has a specific feature type Creates a new instance of a shapefile based on a fileName Gets the count of members that match the expression The string expression to test THe progress handler that can also cancel the counting The integer maximum sample size from which to draw counts. If this is negative, it will not be used. The integer count of the members that match the expression. This makes the assumption that the organization of the feature list has not changed since loading the attribute content. This will return the correct shapefile type by reading the fileName. A string specifying the file with the extension .shp to open. A correct shapefile object which is exclusively for reading the .shp data This will return the correct shapefile type by reading the fileName. A string specifying the file with the extension .shp to open. receives progress messages and overrides the ProgressHandler on the DataManager.DefaultDataManager A correct shapefile object which is exclusively for reading the .shp data saves a single row to the data source. the integer row (or FID) index The object array holding the new values to store. saves a single row to the data source. the integer row (or FID) index The object array holding the new values to store. Saves the new row to the data source and updates the file with new content. The values organized against the dictionary of field names. Saves the new row to the data source and updates the file with new content. The values organized against the dictionary of field names. Converts a page of content from a DataTable format, saving it back to the source. The 0 based integer index representing the first row in the file (corresponding to the 0 row of the data table) The DataTable representing the rows to set. If the row count is larger than the dataset, this will add the rows instead. Reads the attributes from the specified attribute Table. Sets up the feature lookup, if it has not been already. This doesn't rewrite the entire header or erase the existing content. This simply replaces the file length in the file with the new file length. This is generally because we want to write the header first, but don't know the total length of a new file until cycling through the entire file. It is easier, therefore to update the length after editing. A string fileName The integer length of the file in 16-bit words Reads 4 bytes from the specified byte array starting with offset. If IsBigEndian = true, then this flips the order of the byte values. An array of bytes that is at least 4 bytes in length from the startIndex A 0 based integer index where the double value begins If this is true, then the order of the bytes is reversed before being converted to a double A double created from reading the byte array Reads 8 bytes from the specified byte array starting with offset. If IsBigEndian = true, then this flips the order of the byte values. An array of bytes that is at least 8 bytes in length from the startIndex A 0 based integer index where the double value begins If this is true, then the order of the bytes is reversed before being converted to a double A double created from reading the byte array Converts the double value into bytes and inserts them starting at startIndex into the destArray A byte array where the values should be written The starting index where the values should be inserted The double value to convert Specifies whether the value should be written as big or little endian Converts the double value into bytes and inserts them starting at startIndex into the destArray. This will correct this system's natural byte order to reflect what is required to match the shapefiles specification. A byte array where the values should be written The starting index where the values should be inserted The integer value to convert Specifies whether the value should be written as big or little endian Reads the entire index file in order to get a breakdown of how shapes are broken up. A string fileName of the .shx file to read. A List of ShapeHeaders that give offsets and lengths so that reading can be optimized Ensures that the attribute Table will have information that matches the current Table of attribute information This uses the fileName of this shapefile to read the prj file of the same name and stores the result in the Projection class. Automatically uses the fileName of this shapefile to save the projection Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView The integer lower page boundary The integer number of attribute rows to return for the page The list or array of fieldnames to return. A DataTable populated with data rows with only the specified values. The number of rows This gets a copy of the actual internal list of columns. This should never be used to make changes to the column collection. Checks that shape file can be saved to given fileName. File name to save. Overwrite file or not. Saves header File to save. The buffer size is an integer value in bytes specifying how large a piece of memory can be used at any one time. Reading and writing from the disk is faster when done all at once. The larger this number the more effective the disk management, but the more ram will be required (and the more likely to trip an out of memory error). Gets whether or not the attributes have all been loaded into the data table. This re-directs the DataTable to work with the attribute Table instead. A general header structure that stores some basic information about the shapefile. Gets or sets the attribute Table used by this shapefile. Creates a new instance of a LineShapefile for in-ram handling only. Creates a new instance of a LineShapefile that is loaded from the supplied fileName. The string fileName of the polygon shapefile to load Opens a shapefile The string fileName of the line shapefile to load Any valid implementation of the DotSpatial.Data.IProgressHandler Gets the specified feature by constructing it from the vertices, rather than requiring that all the features be created. (which takes up a lot of memory). The integer index Saves the file to a new location The fileName to save Boolean that specifies whether or not to overwrite the existing file A shapefile class that handles the special case where each features has multiple points Creates a new instance of a MultiPointShapefile for in-ram handling only. Creates a new instance of a MultiPointShapefile that is loaded from the supplied fileName. The string fileName of the polygon shapefile to load Gets the feature at the specified index offset the integer index An IFeature created from the shape at the specified offset Opens a shapefile The string fileName of the point shapefile to load Any valid implementation of the DotSpatial.Data.IProgressHandler Saves the file to a new location The fileName to save Boolean that specifies whether or not to overwrite the existing file Numbers are based on the old school dbf definitions of data formats, and so can only store a very limited range of values. Numbers can contain ASCII text up till 18 characters long, but no longer Format provider to use to convert DBF numbers to strings and characters Creates a new instance of NumberConverter where the length and decimal count are known. Cycles through the numeric values in the specified column and determines a selection of length and decimal count can accurately store the data. Creates a new, random double that is constrained by the specified length and decimal count. Creates a new, random float that is constrained by the specified length and decimal count. A new float. Floats can only store about 8 digits of precision, so specifying a high Creates a new, random decimal that is constrained by the specified length and decimal count. Creates a new random array of characters that represents a number and is constrained by the specified length and decimal count The integer number of significant (non-zero) digits that should be created as part of the number. A character array of that matches the length and decimal count specified by this properties on this number converter Converts from a string, or 0 if the parse failed The string value to parse Converts the specified double value to a string that can be used for the number field The double precision floating point value to convert to a string A string version of the specified number Converts the specified decimal value to a string that can be used for the number field The decimal value to convert to a string A string version of the specified number Converts the specified float value to a string that can be used for the number field The floating point value to convert to a string A string version of the specified number Converts the specified decimal value to a string that can be used for the number field The decimal value to convert to a string A string version of the specified number Converts the specified decimal value to a string that can be used for the number field The decimal value to convert to a string A string version of the specified number Converts the specified decimal value to a string that can be used for the number field The decimal value to convert to a string A string version of the specified number Compute and update the DecimalFormatString from the precision specifier Gets or set the length Gets or sets the decimal count to use for this number converter Gets or sets the format string used to convert doubles, floats, and decimals to strings NumberException An exception that is specifically fo the NumberConverter class The message for the exception A shapefile class that handles the special case where the data type is point Creates a new instance of a PointShapefile for in-ram handling only. Creates a new instance of a PointShapefile that is loaded from the supplied fileName. The string fileName of the polygon shapefile to load Opens a shapefile The string fileName of the point shapefile to load Any valid implementation of the DotSpatial.Data.IProgressHandler Obtains a typed list of ShapefilePoint structures with double values associated with the various coordinates. A string fileName Progress handler Saves the shapefile to a different fileName, but still as a shapefile. This method does not support saving to any other file format. The string fileName to save as A boolean that is true if the file should be overwritten A shapefile class that handles the special case where the data is made up of polygons Creates a new instance of a PolygonShapefile for in-ram handling only. Creates a new instance of a PolygonShapefile that is loaded from the supplied fileName. The string fileName of the polygon shapefile to load Opens a shapefile The string fileName of the polygon shapefile to load Any valid implementation of the DotSpatial.Data.IProgressHandler Gets the specified feature by constructing it from the vertices, rather than requiring that all the features be created. (which takes up a lot of memory). The integer index Saves the file to a new location The fileName to save Boolean that specifies whether or not to overwrite the existing file The header for the .shp file and the .shx file that support shapefiles Creates a new, blank ShapeHeader Opens the specified fileName directly The string fileName to open as a header. Resets all the extent values to 0 Parses the first 100 bytes of a shapefile into the important values The fileName to read Saves changes to the .shp file will also automatically update the .shx file. Saves changes to the .shp file and will also automatically create the header for the .shx file. This will no longer automatically delete an existing shapefile. The string fileName to create. Writes the current content to the specified file. The string fileName to write to The only difference between the shp header and the shx header is the file length parameter. Generates a new envelope based on the extents of this shapefile. An Envelope Generates a new extent from the shape header. This will infer the whether the ExtentMZ, ExtentM or Extent class is the best implementation. Casting is required to access the higher values from the Extent return type. Extent, which can be Extent, ExtentM, or ExtentMZ The shape type is assumed to be fixed, and will control how the input extent is treated as far as M and Z values, rather than updating the shape type based on the extent. Gets or sets the integer file code that should always be 9994. Gets or sets the integer file length in bytes Gets or sets the string fileName to use for this header Gets or sets the DotSpatial.Data.Shapefiles.ShapeType enumeration specifying whether the shapes are points, lines, polygons etc. Changes the extension of the fileName to .shx instead of .shp Gets or sets the version, which should be 1000 The minimum X coordinate for the values in the shapefile The maximum X coordinate for the shapes in the shapefile The minimum Y coordinate for the values in the shapefile The maximum Y coordinate for the shapes in the shapefile The minimum Z coordinate for the values in the shapefile The maximum Z coordinate for the shapes in the shapefile The minimum M coordinate for the values in the shapefile The maximum M coordinate for the shapes in the shapefile Gets or sets the length of the shx file in 16 bit words. A simple structure that contains the elements of a shapefile that must exist The content length The offset in 16-bit words The offset in bytes The length in bytes The FeatureSetPack contains a MultiPoint, Line and Polygon FeatureSet which can handle the various types of geometries that can arrive from a mixed geometry. The featureset with all the lines The featureset with all the points The featureset with all the polygons Stores the raw vertices from the different shapes in a list while being created. That way, the final array can be created one time. Creates a new instance of the FeatureSetPack Clears the vertices and sets up new featuresets. Adds the shape. Assumes that the "part" indices are created with a 0 base, and the number of vertices is specified. The start range of each part will be updated with the new shape range. The vertices array itself iwll be updated during hte stop editing step. Finishes the featuresets by converting the lists Combines the vertices, finalizing the creation Enuemratres the FeatureSetPack in Polygon, Line, Point order. If any member is null, it skips that member. Creates the FeatureSetPackEnumerator based on the specified FeaturSetPack The Pack WKBPointReader Given the array of bytes, this reverses the bytes based on size. So if size if 4, the reversal will flip uints of 4 bytes at a time. The raw byte data. The raw byte data. The count of integers, not bytes. Reads the specified number of doubles Since WKB can in fact store different kinds of shapes, this will split out each type of shape into a different featureset. If all the shapes are the same kind of feature, thre will only be one list of feature types. Gets a FeatureSetPack from the wkb Reads only a single geometry into a feature. This may be a multi-part geometry. Reads only a single geometry into a feature. This may be a multi-part geometry, but cannot be a mixed part geometry. Anything that registers as "geometryCollection" will trigger an exception. Attempts to read in an entry to the specified feature type. If the feature type does not match the geometry type, this will return null. (A Point geometry will be accepted by MultiPoint feature type, but not the other way arround. Either way, this will advance the reader through the shape feature. Using the Unspecified will always return the shape it reads, or null in the case of mixed feature collections which are not supported. This assumes that the byte order and shapetype have already been read. This assumes that the byte order and shapetype have already been read. Reads one multipoint shape from a data stream. (this assumes that the two bytes (endian and type) have already been read. Fix introduced by JamesP@esdm.co.uk. 3/11/2010 Using Array.Reverse does not work because it has the unwanted effect of flipping the X and Y values. The double precision XY coordinate array of vertices The double array in reverse order. Calculates the area and if the area is negative, this is considered a hole. Boolean, true if this has a negative area and should be thought of as a hole Vertices require methods to work quickly with data. These are not designed to be inherited, overridden or equiped with interfaces and properties. RangeIndex Creates an empty vertex range that can have the vertices and number of vertices assigned later Creates a new instance of RangeIndex An array of all the vertex locations Gets an enumerator. This exists to make it easier to cycle values, but in truth should not be used because it re-adds the property accessor which slows down the data access, which is the whole point of putting all the vertices into a jagged array of doubles in the first place. For parts, controlling the part offset is perhaps more useful that controlling the shape offset. The StartIndex is the sum of the shape offset and the part offset. Controlling them separately allows the entire shape offset to be adjusted independantly after the part is created. The integer index of the first vertex included in this range. This is overridden in the case of part ranges to also take into account the shape start index. the integer index of the last vertex included in this range Gets or sets the number of vertices. This will also set the EndIndex relative to the start position. Gets or sets the vertices The enumerator is here to provide an easy method for cycling vertex values in each range. This sort of defeats the point because it adds two method calls for advancing each step (one to MoveNext and one to access the property. The whole point of loading everything into a single array of vertices in the first place is to avoid property accessors slowing down the process. However, it's here if someone wants it. Creates a new instance of the VertexRangeEnumerator The vertices to create The integer index of the first included vertex The integer index of the last included vertex This does nothing Advances the enumerator to the next position Resets this enumerator to the beginning of the range of vertices Gets the current value. StartRange, count and vertices will be declared later. Creates a new instance of Part An array of all the vertex locations The point index of the shape. The ponit index of the part. The type of features. This returns a shallow copy, and expects any resetting of the vertex arrays to occur at a higher level. Calculates the area and if the area is negative, this is considered a hole. Boolean, true if this has a negative area and should be thought of as a hole This creates a new extent and cylces through the coordinates to calculate what it is. Since the vertices may change so easilly, this is not cached. Gets a segment range enumerator. Segment The start point of the segment the end point of the segment Creates a segment from double valued ordinates. Creates a new instance of Segment Uses the intersection count to detect if there is an intersection Calculates the shortest distance to this line segment from the specified MapWinGIS.Point A MapWinGIS.Point specifing the location to find the distance to the line A double value that is the shortest distance from the given Point to this line segment Returns a vertex representing the closest point on this line segment from a given vertex The point we want to be close to The point on this segment that is closest to the given point Returns a vertex representing the closest point on this line segment from a given vertex The point we want to be close to If true treat the line as infinitly long Outputs 0 if the vertex is on the line segment, 1 if beyond P0, 2 if beyong P1 and -1 if P1=P2 The point on this segment or infinite line that is closest to the given point Casts this to a vector Determines the shortest distance between two segments Segment, The line segment to test against this segment Double, the shortest distance between two segments Returns 0 if no intersections occur, 1 if an intersection point is found, and 2 if the segments are colinear and overlap. Tests to see if the specified segment contains the point within Epsilon tollerance. Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon SegmentSet Creates a new instance of SegmentSet Gets the feature type Gets the part Cycles through the points, creating segments. If the feature type is a polygon, then this will loop around again at the end of the part to create a segment from the first and last vertex. Creates a new enumerator given the SegmentRange Does nothing Advances the enumerator to the next member True if a member is found, false if there are no more members Gets the current segment The shape caries information about the raw vertices as well as a shapeRange. It is effectively away to move around a single shape. Creates a new instance of Shape Creates a new shape type where the shaperange exists and has a type specified Creates a shape based on the specified feature. This shape will be standing alone, all by itself. The fieldnames and field types will be null. Creates a shape based on the specified geometry. This shape will be standing alone, all by itself. The attributes will be null. The geometry to create a shape from. Creates a point shape from a coordinate Creates a point shape from a vertex Creates a clockwise polygon shape from an extent Creates a clockwise polygon shape from an envelope Converts this shape into a Geometry using the default factory. The geometry version of this shape. Converts this shape into a Geometry. The geometry version of this shape. Get the point for this shape if this is a point shape. Creates a new MultiPoint geometry from a MultiPoint shape The IGeometryFactory to use to create the new shape. Gets the line for the specified index A LineString or MultiLineString geometry created from this shape. Creates a Polygon or MultiPolygon from this Polygon shape. The IGeometryFactory to use to create the new IGeometry. The IPolygon or IMultiPolygon created from this shape. Test if a point is in a list of coordinates. TestPoint the point to test for. PointList the list of points to look through. true if testPoint is a point in the pointList list. Copies the field names and types from the parent feature set if they are currently null. Attempts to copy the members of the feature's datarow. This assumes the features have been loaded into memory and are available on the feature's DataRow property. An IFeature to copy the attributes from. If the schema is null, this will try to use the parent featureset schema. Create a ShapeRange from a Geometry to use in constructing a Shape offset into vertices array where this feature starts Create a ShapeRange from a Feature to use in constructing a Shape offset into vertices array where this feature starts Create a ShapeRange from a Feature to use in constructing a Shape Without changing the feature type or anything else, simply update the local coordinates to include the new coordinates. All the new coordinates will be considered one part. Since point and multi-point shapes don't have parts, they will just be appended to the original part. This creates a duplicate shape, also copying the vertex array to a new array containing just this shape, as well as duplicating the attribute array. The FieldNames and FieldTypes are a shallow copy since this shouldn't change. Gets or sets the minimum M Gets or sets the maximum M Gets or sets the minimum Z Gets or sets the maximum Z Gives a way to cycle through the vertices of this shape. The double vertices in X1, Y1, X2, Y2, ..., Xn, Yn order. The Z values if any The M values if any, organized in order. Gets or sets the attributes. Since the most likely use is to copy values from one source to another, this should be an independant array in each shape and be deep-copied. ShapefileDataProvider IFeatureProvider This create new method implies that this provider has the priority for creating a new file. An instance of the dataset should be created and then returned. By this time, the fileName will already be checked to see if it exists, and deleted if the user wants to overwrite it. The string fileName for the new instance Point, Line, Polygon etc. Sometimes this will be specified, sometimes it will be "Unspecified" Boolean, true if the dataset should attempt to store data entirely in ram An IProgressHandler for status messages. An IRaster This tests the specified file in order to determine what type of vector the file contains. This returns unspecified if the file format is not supported by this provider. The string fileName to test A FeatureType clarifying what sort of features are stored on the data type. This tests the specified file in order to determine what type of vector the file contains. This returns unspecified if the file format is not supported by this provider. The string fileName to test A FeatureType clarifying what sort of features are stored on the data type. This create new method implies that this provider has the priority for creating a new file. An instance of the dataset should be created and then returned. By this time, the fileName will already be checked to see if it exists, and deleted if the user wants to overwrite it. The string fileName for the new instance Point, Line, Polygon etc. Sometimes this will be specified, sometimes it will be "Unspecified" Boolean, true if the dataset should attempt to store data entirely in ram An IProgressHandler for status messages. An IRaster This open method is only called if this plugin has been given priority for one of the file extensions supported in the DialogReadFilter property supplied by this control. Failing to provide a DialogReadFilter will result in this plugin being added to the list of DataProviders being supplied under the Add Other Data option in the file menu. A string specifying the complete path and extension of the file to open. A List of IDataSets to be added to the Map. These can also be groups of datasets. Gets a dialog read filter that lists each of the file type descriptions and file extensions, delimeted by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceded by the name provided on this object. Gets a dialog filter that lists each of the file type descriptions and extensions for a Save File Dialog. Each will appear in DotSpatial's open file dialog filter, preceded by the name provided on this object. Gets a preferably short name that identifies this data provider. Example might be GDAL. This will be prepended to each of the DialogReadFilter members from this plugin. This is a basic description that will fall next to your plugin in the Add Other Data dialog. This will only be shown if your plugin does not supply a DialogReadFilter. Gets or sets the progress handler Control the epsilon to use for the intersect calculations Creates a shallow copy of everything except the parts list and extent, which are deep copies. Considers the ShapeType and upgrades the extent class to accommodate M and Z. This is automatically called form the setter of ShapeType. Creates a blank instance of a shaperange where vertices can be assigned later. the feature type clarifies point, line, or polygon. The coordinate type clarifies whether M or Z values exist. Creates a new "point" shape that has only the one point. Initializes a new instance of the ShapeRange class. The envelope to turn into a shape range. This creates a polygon shape from an extent. The extent to turn into a polygon shape. Forces each of the parts to adopt an extent equal to a calculated extents. The extents for the shape will expand to include those. Gets the first vertex from the first part. Tests the intersection with an extents Tests the intersection using an envelope Tests the intersection with a coordinate Tests the intersection with a vertex Tests the intersection with a shape This calculations processes the intersections The shape to do intersection calculations with. This sets the vertex array by cycling through each part index and updates. The double array of vertices that should be referenced by the parts. Given a vertex, this will determine the part that the vertex is within. gets the integer end index as calculated from the number of points and the start index The feature type The content length If this is null, then there is only one part for this ShapeIndex. The record number (for .shp files usually 1-based) The starting index for the entire shape range. Gets or sets the extent of this shape range. Setting this will prevent the automatic calculations. The shape type for the header of this shape The number of points in the entire shape If this is set, then it will cache an integer count that is independant from Parts.Count. If this is not set, (or set to a negative value) then getting this will return Parts.Count An enumeration listing the various valid shape types supported by Esri Shapefile formats 0 - No shape type specified, or the shapetype is invalid 1 - Each shape is a single point 3 - Each shape is a collection of vertices that should be connected to form a striaght line 5 - Each shape is a closed linestring 8 - Each shape consists of severel, unconnected points 11 - Each shape is a point with a Z value 13 - Each shape is a linestring with each vertex having a z value 15 - Each shape is a closed linestring with each vertex having a z value 18 - Each shape has several unconnected points, each of which has a z value 21 - Each shape has several unconnected points, each of which has an m and z value 23 - Each shape is made up of several points connected to form a line, each vertex having an m and z value 25 - Each shape is a closed linestring with each vertex having a z value and m value 28 - Each shape has several unconnected points, each of which has a z value and m value 31 - Not sure what this does UnspecifiedFeaturetypeException Creates a new instance of UnspecifiedFeaturetypeException A vertex is a two dimensional structure with an X and a Y value. This is deliberately kept as small as possibl.e The tolerance for testing equality An X coordinate The Y coordinate Creates a new instance of Vertex Casts this vertex to a coordinate This class handles some extension methods that also require System.Drawing. This method assumes that there was a direct correlation between this envelope and the original rectangle. This reproportions this window to match the specified newRectangle. The original envelope The original rectangle The new rectangle A new IEnvelope This allows the creation of the correct kind of Extent class from an Envelope, which can contain M or Z values. The Envelope to convert into an Extent. Contains various extensions for Rectangle Calculates the intersection by casting the floating point values to integer values. This rectangle The floating point rectangle to calculate against Tests the location of the point. If the point is outside of the current rectangle, then the bounds of the rectangle are adjusted to include the new point. Expands the rectangle by the specified integer distance in all directions. The rectangle to expand The distance NullExceptioncs Creates a new instance of the NullLogException, but does not set the message or log the exception. Creates a new instance of NullException A list that also includes several events during its existing activities. List is fussy about inheritance, unfortunately, so this wraps a list and then makes this class much more inheritable A Copy list is something that is specifically designed to allow internal items to be cloned. Returns a duplicate of this entire list, where each item has been cloned if it implements ICloneable. Otherwise, the values will be a shallow copy. This copies any individual members of the list. If the item can be cloned, then it copies the cloned item. Otherwise it copies the regular item. This method can be overridden to handle special behavior in sub-classes. IChangeEventList IChangeEvent Resumes event sending and fires a ListChanged event if any changes have taken place. This will not track all the individual changes that may have fired in the meantime. Temporarilly suspends notice events, allowing a large number of changes. Gets whether or not the list is currently suspended IChangeItem Occurs when internal properties or characteristics of this member change. The member should send itself as the sender of the event. An instruction has been sent to remove the specified item from its container. Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T> collection: The collection whose elements should be added to the end of the System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. Unable to add while the ReadOnly property is set to true. Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T> collection: The collection whose elements should be added to the end of the System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. Unable to add while the ReadOnly property is set to true. Resumes event sending and fires a ListChanged event if any changes have taken place. This will not track all the individual changes that may have fired in the meantime. Temporarilly suspends notice events, allowing a large number of changes. An overriding event handler so that we can signfiy the list has changed when the inner list has been set to a new list. Overrides the normal clear situation so that we only update after all the members are cleared. Occurs during the copy process and overrides the base behavior so that events are suspended. Occurs when ResumeEvents has been called enough times so that events are re-enabled. Reverses the order of the elements in the specified range. The zero-based starting index of the range to reverse. The number of elements in the range to reverse. index and count do not denote a valid range of elements in the EventList<T>. index is less than 0.-or-count is less than 0. Unable to reverse while the ReadOnly property is set to true. Reverses the order of the elements in the entire EventList<T>. Unable to reverse while the ReadOnly property is set to true. Inserts the elements of a collection into the EventList<T> at the specified index. The zero-based index at which the new elements should be inserted. The collection whose elements should be inserted into the EventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. index is less than 0.-or-index is greater than EventList<T>.Count. collection is null. Unable to insert while the ReadOnly property is set to true. Removes a range of elements from the EventList<T>. The zero-based starting index of the range of elements to remove. The number of elements to remove. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the EventList<T>. Unable to remove while the ReadOnly property is set to true. Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element. The object to locate. The value can be null for reference types. The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count. The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. This is a notification that characteristics of one of the members of the list may have changed, requiring a refresh, but may not involve a change to the the list itself Occurs when the item is changed. If this list is not suspended, it will forward the change event on. Otherwise, it will ensure that when resume events is called that the on change method is fired at that time. Fires the ListChanged Event This is either a layer collection or a colorbreak collection, and so this won't be called by us, but someone might want to override this for their own reasons. Occurs when wiring events on a new item Occurs when unwiring events on new items This event is for when it is necessary to do something if any of the internal members changes. It will also forward the original item calling the message. Occurs when this list should be removed from its container Gets whether or not the list is currently suspended Carries event arguments for the generic IEventList Creates a new instance of a ListEventArgs class The IEnumerable<T> specified during the event"/> Gets the list item being referenced by this event The same as a ListEventArgs, but provides an option to cancel the event Creates a new instance of a ListEventArgs class the IEnumerable<T> responsible for the event Gets the list item being referenced by this event Carries event arguments for the generic IEventList Creates a new instance of a ListEventArgs class The IEnumerable<T> specified during the event"/> The integer index associated with this event Gets the IEnumerable<T> collection of items involved in this event Gets the index in the list where the event is associated The same as a ListEventArgs, but provides an option to cancel the event Creates a new instance of a ListEventArgs class the IEnumerable<T> responsible for the event the Integer index associated with this event Gets the IEnumerable<T> collection involved in this event Gets the integer index in the IEventList where this event occured The same as a ListEventArgs, but provides an option to cancel the event Creates a new instance of a ListEventArgs class. the IEnumerable<T> responsible for the event. The System.Collections.Generic.IComparer<T> being used by this action. the Integer index associated with this event. Gets the IEnumerable<T> collection involved in this event Gets the integer index in the IEventList where this event occured The System.Collections.Generic.IComparer<T> being used by this action The same as a ListEventArgs, but provides an option to cancel the event Creates a new instance of a ListEventArgs class. the IEnumerable<T> responsible for the event. The System.Collections.Generic.IComparer<T> being used by this action. the Integer index associated with this event. Gets the IEnumerable<T> collection involved in this event Gets the integer index in the IEventList where this event occured The System.Collections.Generic.IComparer<T> being used by this action Carries event arguments for the generic IEventList Creates a new instance of a ListEventArgs class The System.Collections.Generic.IComparer<T> being used by this action Gets the System.Collections.Generic.IComparer<T> being referenced by this event The same as a ListEventArgs, but provides an option to cancel the event Creates a new instance of a ListEventArgs class The System.Collections.Generic.IComparer<T> being used by this action Gets the comparer being used in this action Carries event arguments for the generic IEventList Creates a new instance of a ListEventArgs class The System.Comparison<T> being used by this action Gets System.Comparison being referenced by this event The same as a ListEventArgs, but provides an option to cancel the event The protected System.Collections.Generic.IComparer<T> being used by this action Creates a new instance of a ListEventArgs class The System.Collections.Generic.IComparer<T> being used by this action Gets the comparer being used in this action A list that also includes several events during its existing activities. List is fussy about inheritance, unfortunately, so this wraps a list and then makes this class much more inheritable This describes a generic tool to help with keeping track of strong typed lists. The usual list, however, provides no event handling whatsoever. This list also provides an event for each of the major actions. The type of the members in the list. Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T> collection: The collection whose elements should be added to the end of the System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. Searches the entire sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element. The object to locate. The value can be null for reference types. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements.-or-null to use the default comparer System.Collections.Generic.Comparer<T>.Default. The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T>generic interface or the System.IComparable interface for type T. Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element. The object to locate. The value can be null for reference types. The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count. The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Searches a range of elements in the sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element. The zero-based starting index of the range to search. The length of the range to search. The object to locate. The value can be null for reference types. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. Converts the elements in the current DotSpatial.Interfaces.Framework.IEventList<T> to another type, and returns a list containing the converted elements. The output type to convert to A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type. A DotSpatial.Interfaces.Framework.IEventList<T> of the target type containing the converted elements from the current DotSpatial.Interfaces.Framework.IEventList<T>. converter is null. Determines whether the DotSpatial.Interfaces.Framework.IEventList<T> contains elements that match the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions of the elements to search for. true if the DotSpatial.Interfaces.Framework.IEventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false. match is null. Performs the specified action on each element of the DotSpatial.Interfaces.Framework.IEventList<T>. The System.Action<T> delegate to perform on each element of the DotSpatial.Interfaces.Framework.IEventList<T>. action is null. Creates a shallow copy of a range of elements in the source DotSpatial.Interfaces.Framework.IEventList<T>. The zero-based DotSpatial.Interfaces.Framework.IEventList<T> index at which the range starts. The number of elements in the range. A shallow copy of a range of elements in the source DotSpatial.Interfaces.Framework.IEventList<T>. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the DotSpatial.Interfaces.Framework.IEventList<T>. Reverses the order of the elements in the specified range. The zero-based starting index of the range to reverse. The number of elements in the range to reverse. index and count do not denote a valid range of elements in the DotSpatial.Interfaces.Framework.IEventList<T>. index is less than 0.-or-count is less than 0. Reverses the order of the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T>. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified System.Comparison<T>. The System.Comparison<T> to use when comparing elements. The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself. comparison is null. Sorts the elements in a range of elements in DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer. The zero-based starting index of the range to sort. The length of the range to sort. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. index and count do not specify a valid range in the DotSpatial.Interfaces.Framework.IEventList<T>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. index is less than 0.-or-count is less than 0. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the default comparer. The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<T> to a new array. An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<T>. Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<T>, if that number is less than a threshold value. Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions to check against the elements. true if every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true. match is null. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that starts at the specified index and contains the specified number of elements. The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types. The zero-based starting index of the search. The number of elements in the section to search. The zero-based index of the first occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that starts at index and contains count number of elements, if found; otherwise, –1. index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the specified index to the last element. The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types. The zero-based starting index of the search. The zero-based index of the first occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from index to the last element, if found; otherwise, –1. index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>. Inserts the elements of a collection into the DotSpatial.Interfaces.Framework.IEventList<T> at the specified index. The zero-based index at which the new elements should be inserted. The collection whose elements should be inserted into the DotSpatial.Interfaces.Framework.IEventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. index is less than 0.-or-index is greater than DotSpatial.Interfaces.Framework.IEventList<T>.Count. collection is null. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that contains the specified number of elements and ends at the specified index. The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types. The zero-based starting index of the backward search. The number of elements in the section to search. The zero-based index of the last occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that contains count number of elements and ends at index, if found; otherwise, –1. index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the first element to the specified index. The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types. The zero-based starting index of the backward search. The zero-based index of the last occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the first element to index, if found; otherwise, –1. index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>. Searches for the specified object and returns the zero-based index of the last occurrence within the entire DotSpatial.Interfaces.Framework.IEventList<T>. The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types. The zero-based index of the last occurrence of item within the entire the DotSpatial.Interfaces.Framework.IEventList<T>, if found; otherwise, –1. Removes the all the elements that match the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions of the elements to remove. The number of elements removed from the DotSpatial.Interfaces.Framework.IEventList<T> match is null. Removes a range of elements from the DotSpatial.Interfaces.Framework.IEventList<T>. The zero-based starting index of the range of elements to remove. The number of elements to remove. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the DotSpatial.Interfaces.Framework.IEventList<T>. 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 DotSpatial.Interfaces.Framework.IEventList<T> that starts at the specified index and contains the specified number of elements. The zero-based starting index of the search. The number of elements in the section to search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1 startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>. match is null 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 DotSpatial.Interfaces.Framework.IEventList<T> that extends from the specified index to the last element. The zero-based starting index of the search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>. match is null. 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 DotSpatial.Interfaces.Framework.IEventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire DotSpatial.Interfaces.Framework.IEventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T. match is null." 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 DotSpatial.Interfaces.Framework.IEventList<T> that contains the specified number of elements and ends at the specified index. The zero-based starting index of the backward search. The number of elements in the section to search. The System.Predicate<T> delegate that defines the conditions of the element to search for. startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>. match is null. 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 DotSpatial.Interfaces.Framework.IEventList<T> that extends from the first element to the specified index. The zero-based starting index of the backward search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. : startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>. 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 DotSpatial.Interfaces.Framework.IEventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. Copies a range of elements from the DotSpatial.Interfaces.Framework.IEventList<T> to a compatible one-dimensional array, starting at the specified index of the target array. The zero-based index in the source DotSpatial.Interfaces.Framework.IEventList<T> at which copying begins The one-dimensional System.Array that is the destination of the elements copied from DotSpatial.Interfaces.Framework.IEventList<T>. The System.Array must have zero-based indexing. The zero-based index in array at which copying begins. The number of elements to copy. array is null. index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0. index is equal to or greater than the DotSpatial.Interfaces.Framework.IEventList<T>.Count of the source DotSpatial.Interfaces.Framework.IEventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source DotSpatial.Interfaces.Framework.IEventList<T> is greater than the available space from arrayIndex to the end of the destination array. Copies the entire DotSpatial.Interfaces.Framework.IEventList<T> to a compatible one-dimensional array, starting at the beginning of the target array. The one-dimensional System.Array that is the destination of the elements copied from DotSpatial.Interfaces.Framework.IEventList<T>. The System.Array must have zero-based indexing. The number of elements in the source DotSpatial.Interfaces.Framework.IEventList<T> is greater than the number of elements that the destination array can contain. array is null. Gets or sets the total number of elements the internal data structure can hold without resizing. The number of elements that the DotSpatial.Interfaces.Framework.IEventList<T> can contain before resizing is required. DotSpatial.Interfaces.Framework.IEventList<T>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<T>.Count. Occurs before an item is added to the List. There is no index yet specified because it will be added to the end of the list. Occurs before a range of items is added to the list. There is no index yet, but this event can be cancelled. Occurs after an item has already been added to the list. The index where the item was added is specified. Occurs after a range has already been added to the list. This reveals the index where the beginning of the range was added, but cannot be canceled. Occurs before an item is inserted. The index of the requested insertion as well as the item being inserted and an option to cancel the event are specified Occurs before a range is inserted. The index of the requested insertion location as well as the item being inserted and an option to cancel the event are provided in the event arguments Occurs after an item is inserted. Shows the true index of the item after it was actually added. Occurs after an item is inserted. Shows the true index of the item after it was actually added. Occurs before an item is removed from the List. Specifies the item, the current index and an option to cancel. Occurs before a range is removed from the List. Specifies the range, the current index and an option to cancel. Occurs after an item is removed from the List. Gives a handle to the item that was removed, but it no longer has a meaningful index value or an option to cancel. Occurs after an item is removed from the List. Gives a handle to the range that was removed, but it no longer has a meaningful index value or an option to cancel. Occurs before all the elements that match a predicate are removed. Supplies an IEnumerable list in the event args of all the items that will match the expression. This action can be cancelled. Occurs after all the elements that matched a predicate were removed. The values are the items that were successfully removed. The action has already happened, and so cannot be cancelled here. Occurs before the list is cleared and can cancel the event. Occurs after the list is cleared and this cannot be canceled. Occurs after a method that sorts or reorganizes the list Occurs before a specific range is reversed Occurs after a specific range is reversed Occurs before the entire list is reversed Occurs after the entire list is reversed Occurs just after the list or any sub portion of the list is sorted. This event occurs in addition to the specific reversal case. Occurs just before the list or any sub portion of the list is sorted. This event occurs in addition to the specific reversal case. Occurs just before any of the specific sorting methodsin addition to the event associated with the specific method. Occurs after any of the specific sorting methods in addition to the event associated with the specific method. Occurs just before the entire list is sorted Occurs after the entire list has been sorted Occurs just before the Sort method that uses a System.Comparison<T> This event can cancel the action. Occurs just after the Sort method that uses a System.Comparison<T> Occurs just before the Sort method that only sorts a specified range. This event can cancel the action. Occurs just after the Sort method that only sorts a specified range. Decides whether or not this list can be changed. This characteristic can be set, so that once it becomes readonly, methods that would normally change the sequence or number of members will be prevented and throw an Application error. The internal list of items Initializes a new instance of the EventList<T> class that is empty and has the default initial capacity. Initializes a new instance of the EventList<T> class that is empty and has the specified initial capacity. The number of elements that the new list can initially store. capacity is less than 0. Initializes a new instance of the EventList<T> class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied. The collection whose elements are copied to the new list. collection is null. Adds an object to the end of the System.Collections.Generic.List<T>. The object to be added to the end of the System.Collections.Generic.List<T>. The value can be null for reference types. Unable to add while the ReadOnly property is set to true. Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T> collection: The collection whose elements should be added to the end of the System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. Unable to add while the ReadOnly property is set to true. Searches the entire sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element. The object to locate. The value can be null for reference types. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements.-or-null to use the default comparer System.Collections.Generic.Comparer<T>.Default. The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T>generic interface or the System.IComparable interface for type T. Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element. The object to locate. The value can be null for reference types. The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count. The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Searches a range of elements in the sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element. The zero-based starting index of the range to search. The length of the range to search. The object to locate. The value can be null for reference types. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. Removes all elements from the EventList<T>. Unable to clear while the ReadOnly property is set to true. Determines whether an element is in the System.Collections.Generic.List<T>. The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types. true if item is found in the System.Collections.Generic.List<T> otherwise, false. Determines whether the EventList<T> contains elements that match the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions of the elements to search for. true if the EventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false. match is null. Performs the specified action on each element of the EventList<T>. The System.Action<T> delegate to perform on each element of the EventList<T>. action is null. Returns an enumerator that iterates through this list Creates a shallow copy of a range of elements in the source EventList<T>. The zero-based EventList<T> index at which the range starts. The number of elements in the range. A shallow copy of a range of elements in the source EventList<T>. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the EventList<T>. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that starts at the specified index and contains the specified number of elements. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the search. The number of elements in the section to search. The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that starts at index and contains count number of elements, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that extends from the specified index to the last element. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the search. The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that extends from index to the last element, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>. Searches for the specified object and returns the zero-based index of the first occurrence within the entire System.Collections.Generic.List<T>. The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types. The zero-based index of the first occurrence of item within the entire System.Collections.Generic.List<T>, if found; otherwise, –1. Inserts the elements of a collection into the EventList<T> at the specified index. The zero-based index at which the new elements should be inserted. The collection whose elements should be inserted into the EventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. index is less than 0.-or-index is greater than EventList<T>.Count. collection is null. Unable to insert while the ReadOnly property is set to true. Inserts an element into the System.Collections.Generic.List<T> at the specified index. The zero-based index at which item should be inserted. The object to insert. The value can be null for reference types. index is less than 0.-or-index is greater than System.Collections.Generic.List<T>.Count. Unable to insert while the ReadOnly property is set to true. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that contains the specified number of elements and ends at the specified index. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the backward search. The number of elements in the section to search. The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that contains count number of elements and ends at index, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that extends from the first element to the specified index. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the backward search. The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that extends from the first element to index, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>. Searches for the specified object and returns the zero-based index of the last occurrence within the entire EventList<T>. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based index of the last occurrence of item within the entire the EventList<T>, if found; otherwise, –1. Removes the first occurrence of a specific object from the System.Collections.Generic.List<T>. The object to remove from the System.Collections.Generic.List<T>. The value can be null for reference types. true if item is successfully removed; otherwise, false. This method also returns false if item was not found in the System.Collections.Generic.List<T>. Unable to remove while the ReadOnly property is set to true. Removes the all the elements that match the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions of the elements to remove. The number of elements removed from the EventList<T> match is null. Unable to remove while the ReadOnly property is set to true. Removes the element at the specified index of the System.Collections.Generic.List<T>. The zero-based index of the element to remove. Unable to remove while the ReadOnly property is set to true. Removes a range of elements from the EventList<T>. The zero-based starting index of the range of elements to remove. The number of elements to remove. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the EventList<T>. Unable to remove while the ReadOnly property is set to true. Reverses the order of the elements in the specified range. The zero-based starting index of the range to reverse. The number of elements in the range to reverse. index and count do not denote a valid range of elements in the EventList<T>. index is less than 0.-or-count is less than 0. Unable to reverse while the ReadOnly property is set to true. Reverses the order of the elements in the entire EventList<T>. Unable to reverse while the ReadOnly property is set to true. Sorts the elements in the entire EventList<T> using the specified System.Comparison<T>. The System.Comparison<T> to use when comparing elements. The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself. comparison is null. Unable to sort while the ReadOnly property is set to true. Sorts the elements in a range of elements in EventList<T> using the specified comparer. The zero-based starting index of the range to sort. The length of the range to sort. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. index and count do not specify a valid range in the EventList<T>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. index is less than 0.-or-count is less than 0. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Unable to sort while the ReadOnly property is set to true. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Unable to sort while the ReadOnly property is set to true. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the default comparer. The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Unable to sort while the ReadOnly property is set to true. Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<T> to a new array. An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<T>. Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<T>, if that number is less than a threshold value. Unable to trim while the ReadOnly property is set to true. Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions to check against the elements. true if every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true. match is null. 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 EventList<T> that starts at the specified index and contains the specified number of elements. The zero-based starting index of the search. The number of elements in the section to search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1 startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>. match is null 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 EventList<T> that extends from the specified index to the last element. The zero-based starting index of the search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. startIndex is outside the range of valid indexes for the EventList<T>. match is null. 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 EventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire EventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T. match is null." 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 EventList<T> that contains the specified number of elements and ends at the specified index. The zero-based starting index of the backward search. The number of elements in the section to search. The System.Predicate<T> delegate that defines the conditions of the element to search for. startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>. match is null. 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 EventList<T> that extends from the first element to the specified index. The zero-based starting index of the backward search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. : startIndex is outside the range of valid indexes for the EventList<T>. 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 EventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. Copies a range of elements from the EventList<T> to a compatible one-dimensional array, starting at the specified index of the target array. The zero-based index in the source EventList<T> at which copying begins The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing. The zero-based index in array at which copying begins. The number of elements to copy. array is null. index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0. index is equal to or greater than the EventList<T>.Count of the source EventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source EventList<T> is greater than the available space from arrayIndex to the end of the destination array. Copies the entire System.Collections.Generic.List<T> to a compatible one-dimensional array, starting at the specified index of the target array. The one-dimensional System.Array that is the destination of the elements copied from System.Collections.Generic.List<T>. The System.Array must have zero-based indexing. The zero-based index in array at which copying begins. System.ArgumentException: arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source System.Collections.Generic.List<T> is greater than the available space from arrayIndex to the end of the destination array. arrayIndex is less than 0 array is null Copies the entire EventList<T> to a compatible one-dimensional array, starting at the beginning of the target array. The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing. The number of elements in the source EventList<T> is greater than the number of elements that the destination array can contain. array is null. Converts the elements in the current EventList<T> to another type, and returns a list containing the converted elements. The output type to convert to A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type. A EventList<T> of the target type containing the converted elements from the current EventList<T>. converter is null. Fires the AfterItemAdded Event Fires the AfterRangeAdded method Fires the BeforeItemAdded Event Fires the BeforeRangeAdded Event Fires the AfterListCleared event Fires the BeforeListCleared event Fires the AfterItemInserted event Fires the AfterRangeInserted event Fires the BeforeItemInserted event Fires the BeforeRangeInserted event Fires the ListChanged Event fires the AfterReversed event Fires the BeforeReversed event Fires the BeforeRangeReversed event Fires the AfterRangeReversed event Fires the BeforeLiestReversed event fires the AfterListReversed Event Fires the BeforeItemRemoved event Fires the BeforeRangeRemoved event Fires the BeforeAllMatchingRemoved event Fires the AfterAllMatchingRemoved event Fires the AfterItemRemoved event Fires the AfterRangeRemoved Event Fires the BeforeSort event Fires the AfterSort event Fires the BeforeListSorted event Fires the AfterListSorted event Fires the BeforeSortByComparison Fires the AfterSortByComparison event Fires the BeforeRangeSorted event Fires the AfterRangeSorted event Converts between one output an another Gets an Enumerator Gets or sets the total number of elements the internal data structure can hold without resizing. The number of elements that the DotSpatial.Interfaces.Framework.IEventList<T> can contain before resizing is required. DotSpatial.Interfaces.Framework.IEventList<T>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<T>.Count. The default, indexed value of type T The numeric index An object of type T corresponding to the index value specified Integer, the total number of items currently stored in the list Gets a boolean property indicating whether this list can be written to. Occurs after an item has already been added to the list. The index where the item was added is specified. Occurs after a range has already been added to the list. This reveals the index where the beginning of the range was added, but cannot be canceled. Occurs before an item is added to the List. There is no index yet specified because it will be added to the end of the list. Occurs before a range of items is added to the list. There is no index yet, but this event can be cancelled. Occurs after the the list is cleared. Occurs before the list is cleared and can cancel the event. Occurs after an item is inserted. Shows the true index of the item after it was actually added. Occurs after an item is inserted. Shows the true index of the item after it was actually added. Occurs before an item is inserted. The index of the requested insertion as well as the item being inserted and an option to cancel the event are specified Occurs before a range is inserted. The index of the requested insertion location as well as the item being inserted and an option to cancel the event are provided in the event arguments Occurs after a method that sorts or reorganizes the list Occurs just after the list or any sub portion of the list is sorted. This event occurs in addition to the specific reversal case. Occurs just before the list or any sub portion of the list is sorted. This event occurs in addition to the specific reversal case. Occurs before a specific range is reversed Occurs after a specific range is reversed Occurs before the entire list is reversed Occurs after the entire list is reversed Occurs before an item is removed from the List. Specifies the item, the current index and an option to cancel. Occurs before a range is removed from the List. Specifies the range, the current index and an option to cancel. Occurs before all the elements that match a predicate are removed. Supplies an IEnumerable list in the event args of all the items that will match the expression. This action can be cancelled. Occurs after all the elements that matched a predicate were removed. The values are the items that were successfully removed. The action has already happened, and so cannot be cancelled here. Occurs after an item is removed from the List. Gives a handle to the item that was removed, but it no longer has a meaningful index value or an option to cancel. Occurs after an item is removed from the List. Gives a handle to the range that was removed, but it no longer has a meaningful index value or an option to cancel. Occurs just before any of the specific sorting methodsin addition to the event associated with the specific method. Occurs after any of the specific sorting methods in addition to the event associated with the specific method. Occurs just before the entire list is sorted Occurs after the entire list has been sorted Occurs just before the Sort method that uses a System.Comparison<T> This event can cancel the action. Occurs just after the Sort method that uses a System.Comparison<T> Occurs just before the Sort method that only sorts a specified range. This event can cancel the action. Occurs just after the Sort method that only sorts a specified range. Global has some basic methods that may be useful in lots of places. TODO: This class needs to be removed and these methods relocated to easier to find places. Converts a double numeric value into the appropriate T data type using a ChangeType process. The numeric output type created from the double value. The double value to retrieve the equivalent numeric value for. A variable of type T with the value of the value parameter. This involves boxing and unboxing as well as a convert to double, but IConvertible was not CLS Compliant, so we were always getting warnings about it. Ted was trying to make all the code CLS Compliant to remove warnings. For numeric types, this will return the maximum value. The type of the numeric range to find the maximum for. The maximum value for the numeric type specified by T. For Numeric types, this will return the minimum value. The type of the numeric range to return the minimum for. The the minimum value possible for a numeric value of type T. A Generic Safe Casting method that should simply exist as part of the core framework The type of the member to attempt to cast to. The original object to attempt to System.Convert. An output variable of type T. Uses the standard enum parsing, but returns it cast as the specified T parameter The type of the enum to use The string to parse into a copy of the enumeration an enumeration of the specified type This attempts to convert a value into a byte. If it fails, the byte will be 0. The expression (like a string) to System.Convert. A byte that is 0 if the test fails. This attempts to convert a value into a double. If it fails, the double will be double.NaN. The expression (like a string) to System.Convert. A double that is double.NAN if the test fails. This attempts to convert a value into a float. If it fails, the float will be 0. The expression (like a string) to System.Convert. A float that is 0 if the test fails. This attempts to convert a value into an integer. If it fails, it returns 0. The expression to test true if the value could be cast as a double, false otherwise This attempts to convert a value into a short. If it fails, it returns 0. The expression (like a string) to System.Convert. A short that is 0 if the test fails. Gets the string form of the number using culture settings The expression to obtain the string for A string Tests an expression to see if it can be converted into a byte. The expression to test true if the value could be cast as a double, false otherwise Tests an expression to see if it can be converted into a double. The expression to test true if the value could be cast as a double, false otherwise Tests an expression to see if it can be converted into a float. The expression to test true if the value could be cast as a double, false otherwise Tests an expression to see if it can be converted into an integer. The expression to test true if the value could be cast as an integer, false otherwise Tests an expression to see if it can be converted into a short. The expression to test true if the value could be cast as a double, false otherwise a IProgressHandler that carries a boolean property allowing the process using the handler to know if you should cancelled An interface for sending progress messages. Percent is an integer from 0 to 100. Progress is the method that should receive a progress message. The message string without any information about the status of completion. An integer from 0 to 100 that indicates the condition for a status bar etc. A string containing both information on what the process is, as well as its completion status. Returns true if the progress handler has been notified that the running process should be cancelled Represents a nongeneric collection of key/value pairs. Determines whether the IEventDictionary<TKey, TValue> contains a specific value. The value to locate in the IEventDictionary<TKey, TValue>. The value can be null for reference types. true if the IEventDictionary<TKey, TValue> contains an element with the specified value; otherwise, false. Two separate forms of count exist and are ambiguous so this provides a single new count Gets or sets the specific KeyValuePair for the specified index The integer index representing the order in the list A KeyValuePair that is currently stored at the specified index Occurs before an item is added to the List. There is no index yet specified because it will be added to the end of the list. Occurs before a range of items is added to the list. There is no index yet, but this event can be cancelled. Occurs after an item has already been added to the list. The index where the item was added is specified. Occurs after a range has already been added to the list. This reveals the index where the beginning of the range was added, but cannot be canceled. Occurs before a clear action, allowing the event to be canceled. Occurs after a clear action, allowing the event to be cancled Occurs after a method that changes either the order or the members of this EventDictionary Occurs before an item is inserted. The index of the requested insertion as well as the item being inserted and an option to cancel the event are specified Occurs before a range is inserted. The index of the requested insertion location as well as the item being inserted and an option to cancel the event are provided in the event arguments Occurs after an item is inserted. Shows the true index of the item after it was actually added. Occurs after an item is inserted. Shows the true index of the item after it was actually added. Occurs before an item is removed from the List. Specifies the item, the current index and an option to cancel. Occurs before a range is removed from the List. Specifies the range, the current index and an option to cancel. Occurs after an item is removed from the List. Gives a handle to the item that was removed, but it no longer has a meaningful index value or an option to cancel. Occurs after an item is removed from the List. Gives a handle to the range that was removed, but it no longer has a meaningful index value or an option to cancel. Occurs before all the elements that match a predicate are removed. Supplies an IEnumerable list in the event args of all the items that will match the expression. This action can be cancelled. Occurs after all the elements that matched a predicate were removed. The values are the items that were successfully removed. The action has already happened, and so cannot be cancelled here. Occurs before an item is set. This event can cancel the set opperation. Occurs after an item is successfully set IListEM This extension method helps by simply increasing the index value of the specified item by one. The generic type of this list This list The item to increase the index of Decreases the index of the specified item by one. The type of the list This list the item of type T to decrease the index of. INamedList Re-orders the list so that the index of the specifeid item is lower, and threfore will be drawn earlier, and therefore should appear in a lower position on the list. The name of the item to demote Gets the item with the specified name as an object. This enables the INamedList to work with items even if it doesn't know the strong type. The string name of the item to retrieve The actual item cast as an object. Gets the name of the specified item, even if the strong type of the item is not known. The item to get the name of cast as an object The string name of the specified object. Gets the list of names for the items currently stored in the list, in the sequence defined by the list of items. Re-orders the list so that the index of the specified item is higher, and therefore will be drawn later, and therefore should appear in a higher position on the list. Updates the names to match the current set of actual items. Removes the item with the specified name from the list. The string name of the item to remove Gets or sets the base name to use for naming items Gets the count of the items in the list. Carries event arguments for the generic IEventList Creates a new instance of a ListEventArgs class an object that is being interacted with in the list Gets the list item being referenced by this event The same as a ListEventArgs, but provides an option to cancel the event The protected object internal to this list event args class Creates a new instance of a ListEventArgs class an object that is being interacted with in the list Gets the list item being referenced by this event Carries event arguments for the generic IEventList Creates a new instance of a ListEventArgs class The key of type <TKey> being referenced an object of type <TValue> that is being referenced Gets the key of the item being referenced by this event Gets the actual item being referenced by this event Contains properties for both a specified item and an integer index as well as the option to cancel. Creates a new instance of a ListEventArgs class The key that provides direct access to the value member being interacted with an object that is being interacted with in the list Gets the key for the member referenced by this event Gets the specific item being accessed Carries event arguments for the generic IEventList The protected object internal to this list event args class Creates a new instance of a ListEventArgs class an object that is being interacted with in the list Creates a new instance of a ListEventArgs class The list item that the event belongs to The list index, if any, that is specified. Gets the list item being referenced by this event Gets the index for the ListItem Contains properties for both a specified item and an integer index as well as the option to cancel. Creates a new instance of a ListEventArgs class an object that is being interacted with in the list Creates a new instance of a ListEventArgs class The list item that the event belongs to The list index, if any, that is specified. Gets the list item being referenced by this event Gets the index for the ListItem This has the indexing and ordering capabilities, but without all the events of an EventDictionary Determines whether the IEventDictionary<TKey, TValue> contains a specific value. The value to locate in the IEventDictionary<TKey, TValue>. The value can be null for reference types. true if the IEventDictionary<TKey, TValue> contains an element with the specified value; otherwise, false. Obtains a value in the dictionary based on a key. This happens without consulting the index at all. The Tkey key to search for. The TValue to obtain a value for. Sets the value associated with a key that is already in the dictionary. The key currently found in the index the value to be changed Gets a pair based on the index value Sets a pair based on the index value Two separate forms of count exist and are ambiguous so this provides a single new count For ordered dictionaries, the default accessor returns the Key Value Pair associated with the index. Any item which can be contained by a parent item The type class of the potential parent Gets the parent item relative to this item. Sets teh parent legend item for this item IReadOnlyList Tests to see if the specified item is contained in the list. This returns true if the item is contained in the list. The item to test for. Boolean, true if the item is found in the list Copies the specified memebers into the array, starting at the specified index. The array to copy values to. The array index where the 0 member of this list should be copied to. Obtains the index of the specified item The item to find the index of An integer representing the index of the specified item Gets the integer count of items in this list. Return true because this is a read-only list. Gets the item at the specified index. Ideally, this ReadOnlyList is used with value types, or else this gives the user considerable power over the core content. The item to obtain from this list The item at the specified index. An all purpose item A set of PaintEventArgs that can be used before a drawing function in order to cancel an event. Creates a new instance of the MessageCancel Event Arguments A string message to convey with this event. Returns a boolean specifying whether the action that caused this event should be canceled. The message allowing someone to decide whether or not the process should be cancelled. For instance, when writing a new file, a message might show "The file C:\bob.txt already exists, overwrite it?" A named list preserves a 1:1 mapping between names and items. It can be used to reference information in either direction. It essentially provides a string handle for working with generic typed ILists. This cannot instantiate new items. (Creating a default T would not work, for instance, for an interface). Creates a new instance of NamedList Creates a new instance of a named list. The values to use for the content. Creates a new instance of a named list. The values to use for the content. The string that should preceed the numbering to describe the individual items. Re-orders the list so that the index of the specifeid item is lower, and threfore will be drawn earlier, and therefore should appear in a lower position on the list. Gets the name of the item corresponding The item cast as an object. The string name of the specified object, or null if the cast fails. Gets the item with the specified name as an object. This enables the INamedList to work with items even if it doesn't know the strong type. The string name of the item to retrieve The actual item cast as an object. Gets the list of names for the items currently stored in the list, in the sequence defined by the list of items. Re-orders the list so that the index of the specified item is higher, and therefore will be drawn later, and therefore should appear in a higher position on the list. Updates the names to match the current set of actual items. Removes the item with the specified name from the list. The string name of the item to remove Re-orders the list so that this item appears closer to the 0 index. Gets the string name for the specified item The item of type T to find the name for The string name corresponding to the specified item. Re-orders the list so that the index of the specified item is higher, and therefore will be drawn later, and therefore should appear in a higher position on the list. Removes the specified item The item to remove. Gets or sets the item corresponding to the specified name. Setting this will re-use the same name and position in the list, but set a new object. The string name of the item to obtain The item of type T corresponding to the specified name Gets the list of actual items. This is basically a reference copy of the actual collection of items to be contained in this named list. Gets or sets the base name to use for naming items Gets the count of the items in the list. NonNumericException Creates a new instance of NonNumericException The string name of the variable, or value that cannot be parsed as a number. NumberFormat Creates a value from an object A numeric value that is, or can be parsed to a numeric value. Not Numeric Creates a number to fit the specified double value. A double Creates a number to fit the specified int value An integer Creates a number to fit the specified float value The value to work with Creates a number from a short A short Compares this with the specified value. Returns 1 if the other item is greater than this value, 0 if they are equal and -1 if the other value is less than this value. The value to be tested. An integer: 1 if the other item is greater than this value, 0 if they are equal and -1 if the other value is less than this value. Compares this with the specified value. Returns 1 if the other item is greater than this value, 0 if they are equal and -1 if the other value is less than this value. The value to be tested. An integer: 1 if the other item is greater than this value, 0 if they are equal and -1 if the other value is less than this value. Compares this with the specified value. Returns 1 if the other item is greater than this value, 0 if they are equal and -1 if the other value is less than this value. The value to be tested. An integer: 1 if the other item is greater than this value, 0 if they are equal and -1 if the other value is less than this value. Returns this Number as a string. The string created using the specified number format and precision. Returns this Number as a string. An IFormatProvider that provides culture specific formatting information. A string with the formatted number. Returns this Number as a string. A string that controls how this value should be formatted. A string with the formatted number. Returns this Number as a string. A string that controls how this value should be formatted. An IFormatProvider that provides culture specific formatting information. A string with the formatted number. Gets this number as an int 32 An integer Gets this number as a short, or a short.MaxValue/short.MinValue A short Gets this number as a float A float Gets the alphabetical letter code for ToString(-Code-) A NumberFormats enumeration giving the various formatting options Tests to see if a value has been assigned to this Number Gets or sets the number of digits that folow the decimal when converting this value to string notation. Gets the precision (determined by the data type) which effectively describes how many significant figures there are. Gets this number as a double a double NumberFormats Currency - C Scientific Notation Exponential - E Fixed point - F The number is converted to a string of the form "-ddd.ddd…" where each 'd' indicates a digit (0-9). The string starts with a minus sign if the number is negative. Shortest text - G Number - N, The number is converted to a string of the form "-d, ddd, ddd.ddd…", where '-' indicates a negative number symbol if required, 'd' indicates a digit (0-9), ',' indicates a thousand separator between number groups, and '.' indicates a decimal point symbol Percent, value is multiplied by 100 and shown with a % symbol (cultural specific) No format specified. In cases where we want to allow some basic cycling or checking of values, but we don't want the user to change the values directly, we can wrap the values in this read-only list, which restricts what the user can do. Creates a new instance of ReadOnlyList Tests to see if the specified item is contained in the list. This returns true if the item is contained in the list. The item to test for. Boolean, true if the item is found in the list Copies the specified memebers into the array, starting at the specified index. The array to copy values to. The array index where the 0 member of this list should be copied to. Obtains an enumerator for cycling through the values in this list. An enumerator for the items in this list. Obtains the index of the specified item The item to find the index of An integer representing the index of the specified item Gets the integer count of items in this list. Return true because this is a read-only list. Gets the item at the specified index. Ideally, this ReadOnlyList is used with value types, or else this gives the user considerable power over the core content. The item to obtain from this list The item at the specified index. SubclassList is brilliant if I do say so myself. Let's say you have a list of IPointCategory, which is a subclass of IFeatureCategory. You can't have a strong typed List that is both without creating a special class that can deal with the specific implementations of each. So I was writing all of the stupid type specific collection classes, when in reality, I just needed a class like this that could handle the business logic. Then specific instances can just inherit from this class, but specify the two types. The base type that is inherited The sub type that inherits from the base type Allows adding of the sub type Adds the entire range of enumerable elements. The items to add Tests to see if the list contains the specified item. The item to check the list for. Boolean, true if the item is contained in the list. Copies each of the members to the specified array. The array to copy items to. The zero based integer index in the destination array where the first item should be saved. Gets an enumerator of type TSub for cycling through the list. Gets the zero based integer index of the specified item of type TSub The item to obtain the index of The zero based integer index of the specified item inserts the specified item into the specified index The zero based integer index where insertion can take place The item to insert of type TSub Removes the specified item from the list. The item to remove Boolean, true if the item was found in the list and removed Gets or sets the specific item in the list I can't simply return the enumerator of the internal list because it would be the wrong type. Furthermore, I need to know both types so that I can cast them appropriately. The base type that is inherited The sub type that inherits from the base type Creates a new instance of the enumerator of the sub-type given an enumerator of the base type. The internal enumerator. Disposes any unmanaged memory objects Advances the enumerator to the next position Boolean, false at the end of the list. Resets the enumerator to the beginning of the list Gets the current member returned as type TSub. A list that keeps track of a "parent" body that is also of type T. Whenever a member is added to the list, it sets the parent property. Initializes a new instance of list with no parent Instantiates a new instance of a TreeList of type T, where the specified parent will be used as the parent for each of the items of type T in the list. The ParentItem of the specified item Adds the item to the list, setting the parent to be the list's parent Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T> collection: The collection whose elements should be added to the end of the System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. Unable to add while the ReadOnly property is set to true. Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element. The object to locate. The value can be null for reference types. The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count. The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Removes all elements from the EventList<T>. Unable to clear while the ReadOnly property is set to true. Determines whether an element is in the System.Collections.Generic.List<T>. The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types. true if item is found in the System.Collections.Generic.List<T>; otherwise, false. Returns an enumerator that iterates through this list Copies the entire System.Collections.Generic.List<T> to a compatible one-dimensional array, starting at the specified index of the target array. The one-dimensional System.Array that is the destination of the elements copied from System.Collections.Generic.List<T>. The System.Array must have zero-based indexing. The zero-based index in array at which copying begins. System.ArgumentException: arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source System.Collections.Generic.List<T> is greater than the available space from arrayIndex to the end of the destination array. arrayIndex is less than 0 array is null Copies a range of elements from the EventList<T> to a compatible one-dimensional array, starting at the specified index of the target array. The zero-based index in the source EventList<T> at which copying begins The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing. The zero-based index in array at which copying begins. The number of elements to copy. array is null. index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0. index is equal to or greater than the EventList<T>.Count of the source EventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source EventList<T> is greater than the available space from arrayIndex to the end of the destination array. Copies the entire EventList<T> to a compatible one-dimensional array, starting at the beginning of the target array. The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing. The number of elements in the source EventList<T> is greater than the number of elements that the destination array can contain. array is null. Converts the elements in the current EventList<T> to another type, and returns a list containing the converted elements. The output type to convert to A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type. A List<T> of the target type containing the converted elements from the current EventList<T>. converter is null. Determines whether the EventList<T> contains elements that match the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions of the elements to search for. true if the EventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false. match is null. Creates a shallow copy of a range of elements in the source EventList<T>. The zero-based EventList<T> index at which the range starts. The number of elements in the range. A shallow copy of a range of elements in the source EventList<T>. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the EventList<T>. Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<T> to a new array. An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<T>. Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<T>, if that number is less than a threshold value. Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions to check against the elements. true if every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true. match is null. Searches for the specified object and returns the zero-based index of the first occurrence within the entire System.Collections.Generic.List<T>. The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types. The zero-based index of the first occurrence of item within the entire System.Collections.Generic.List<T>, if found; otherwise, –1. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that starts at the specified index and contains the specified number of elements. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the search. The number of elements in the section to search. The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that starts at index and contains count number of elements, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that extends from the specified index to the last element. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the search. The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that extends from index to the last element, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>. Inserts an element into the System.Collections.Generic.List<T> at the specified index. The zero-based index at which item should be inserted. The object to insert. The value can be null for reference types. index is less than 0.-or-index is greater than System.Collections.Generic.List<T>.Count. Unable to insert while the ReadOnly property is set to true. Inserts the elements of a collection into the EventList<T> at the specified index. The zero-based index at which the new elements should be inserted. The collection whose elements should be inserted into the EventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. index is less than 0.-or-index is greater than EventList<T>.Count. collection is null. Unable to insert while the ReadOnly property is set to true. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that contains the specified number of elements and ends at the specified index. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the backward search. The number of elements in the section to search. The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that contains count number of elements and ends at index, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that extends from the first element to the specified index. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based starting index of the backward search. The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that extends from the first element to index, if found; otherwise, –1. index is outside the range of valid indexes for the EventList<T>. Searches for the specified object and returns the zero-based index of the last occurrence within the entire EventList<T>. The object to locate in the EventList<T>. The value can be null for reference types. The zero-based index of the last occurrence of item within the entire the EventList<T>, if found; otherwise, –1. Removes the first occurrence of a specific object from the System.Collections.Generic.List<T>. The object to remove from the System.Collections.Generic.List<T>. The value can be null for reference types. true if item is successfully removed; otherwise, false. This method also returns false if item was not found in the System.Collections.Generic.List<T>. Unable to remove while the ReadOnly property is set to true. Removes the element at the specified index of the System.Collections.Generic.List<T>. The zero-based index of the element to remove. Unable to remove while the ReadOnly property is set to true. Removes the all the elements that match the conditions defined by the specified predicate. The System.Predicate<T> delegate that defines the conditions of the elements to remove. The number of elements removed from the EventList<T> match is null. Unable to remove while the ReadOnly property is set to true. Removes a range of elements from the EventList<T>. The zero-based starting index of the range of elements to remove. The number of elements to remove. index is less than 0.-or-count is less than 0. index and count do not denote a valid range of elements in the EventList<T>. Unable to remove while the ReadOnly property is set to true. Reverses the order of the elements in the specified range. The zero-based starting index of the range to reverse. The number of elements in the range to reverse. index and count do not denote a valid range of elements in the EventList<T>. index is less than 0.-or-count is less than 0. Unable to reverse while the ReadOnly property is set to true. Reverses the order of the elements in the entire EventList<T>. Unable to reverse while the ReadOnly property is set to true. Sorts the elements in the entire EventList<T> using the specified System.Comparison<T>. The System.Comparison<T> to use when comparing elements. The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself. comparison is null. Unable to sort while the ReadOnly property is set to true. Sorts the elements in a range of elements in EventList<T> using the specified comparer. The zero-based starting index of the range to sort. The length of the range to sort. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. index and count do not specify a valid range in the EventList<T>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. index is less than 0.-or-count is less than 0. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Unable to sort while the ReadOnly property is set to true. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer. The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default. The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself. comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Unable to sort while the ReadOnly property is set to true. Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the default comparer. The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T. Unable to sort while the ReadOnly property is set to true. Retrieves all the elements that match the conditions described by the specified predicate The System.Predicate that defines the conditions to search for A List of matches 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 EventList<T> that starts at the specified index and contains the specified number of elements. The zero-based starting index of the search. The number of elements in the section to search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1 startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>. match is null 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 EventList<T> that extends from the specified index to the last element. The zero-based starting index of the search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. startIndex is outside the range of valid indexes for the EventList<T>. match is null. 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 EventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire EventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T. match is null." 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 EventList<T> that contains the specified number of elements and ends at the specified index. The zero-based starting index of the backward search. The number of elements in the section to search. The System.Predicate<T> delegate that defines the conditions of the element to search for. startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>. match is null. 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 EventList<T> that extends from the first element to the specified index. The zero-based starting index of the backward search. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. : startIndex is outside the range of valid indexes for the EventList<T>. 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 EventList<T>. The System.Predicate<T> delegate that defines the conditions of the element to search for. The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. match is null. This sets the parent item of the item being added to this treelist. The item being included This reverts the parent item of an item when it is removed from this treelist The item being removed from the list Gets or sets the total number of elements the internal data structure can hold without resizing. The number of elements that the DotSpatial.Interfaces.Framework.IEventList<T> can contain before resizing is required. DotSpatial.Interfaces.Framework.IEventList<T>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<T>.Count. Gets the count of the members in the list The default, indexed value of type T The numeric index An object of type T corresponding to the index value specified Gets a boolean property indicating whether this list can be written to. ValidationType No validation will be performed Any string value, including null will be accepted Only values that can be parsed to byte values will be accepted Only values that can be parsed to short values will be accepted Only values that can be parsed to integer values will be accepted Only values that can be parsed to float values will be accepted Only values that can be parsed to double values will be accepted Only values that can be parsed to positive short values will be accepted Only values that can be parsed to positive integer values will be accepted Only values that can be parsed to positive float values will be accepted Only values that can be parsed to positive double values will be accepted This class converts an IProgressHandler to an ICancelProgressHandler. It wraps the IProgressHandler so that it can be used by a class that requires an ICancelProgressHandler. Cancel will always return false. Initializes a new instance of the class. The progress handler. Progress is the method that should receive a progress message. The message string without any information about the status of completion. An integer from 0 to 100 that indicates the condition for a status bar etc. A string containing both information on what the process is, as well as its completion status. Returns true if the running process should be cancelled