diff --git a/ChangeProjectReferencesMacro/SolutionReferences.vsmacros b/ChangeProjectReferencesMacro/SolutionReferences.vsmacros
new file mode 100644
index 00000000..d20f04b1
Binary files /dev/null and b/ChangeProjectReferencesMacro/SolutionReferences.vsmacros differ
diff --git a/Common.msbuild b/Common.msbuild
index 3cee60d2..82fd6ed2 100644
--- a/Common.msbuild
+++ b/Common.msbuild
@@ -1,15 +1,15 @@
- false
+ True
- false
+ True
- false
+ True
- false
+ True
\ No newline at end of file
diff --git a/ExternalReferences/Debug_Net20/GeoAPI.XML b/ExternalReferences/Debug_Net20/GeoAPI.XML
index 47827c90..4fdbce62 100644
--- a/ExternalReferences/Debug_Net20/GeoAPI.XML
+++ b/ExternalReferences/Debug_Net20/GeoAPI.XML
@@ -81,6 +81,13 @@
to swap the bytes of.
Byte order swapped .
+
+
+ Swaps the byte order of a .
+
+ to swap the bytes of.
+ Byte order swapped .
+
Swaps the byte order of a (double precision IEEE 754)
@@ -1478,6 +1485,32 @@
Gets the count of items in this node and all subnodes.
+
+
+ The inherent dimension of this geometric object, which must be
+ less than or equal to the coordinate dimension.
+
+
+
+
+ Returns if this geometry is the empty geometry.
+ If true, then this geometry represents the empty point set, ∅, for the
+ coordinate space.
+
+
+
+
+ Returns if the geometry has no anomalous geometric
+ points, such as self intersection or self tangency. The description of each
+ instantiable geometric class will include the specific conditions that cause
+ an instance of that class to be classified as not simple.
+
+
+
+
+ Gets the spatial reference system associated with the geometry.
+
+
A set of quantities from which other quantities are calculated.
@@ -1533,32 +1566,6 @@
Characters that are not whitespace, numbers, etc...
-
-
- The inherent dimension of this geometric object, which must be
- less than or equal to the coordinate dimension.
-
-
-
-
- Returns if this geometry is the empty geometry.
- If true, then this geometry represents the empty point set, ∅, for the
- coordinate space.
-
-
-
-
- Returns if the geometry has no anomalous geometric
- points, such as self intersection or self tangency. The description of each
- instantiable geometric class will include the specific conditions that cause
- an instance of that class to be classified as not simple.
-
-
-
-
- Gets the spatial reference system associated with the geometry.
-
-
Gets the spatial reference system associated with the geometry.
@@ -2085,6 +2092,21 @@
+
+
+ Expands the given Envelope to include the coordinates in the sequence.
+
+
+ Allows implementing classes to optimize access to coordinate values.
+
+
+ The instance to expand.
+
+
+ An envelope which minimally encompasses all the coordinates in this
+ .
+
+
Creates an array of all the
@@ -2106,21 +2128,6 @@
An array of instances.
-
-
- Expands the given Envelope to include the coordinates in the sequence.
-
-
- Allows implementing classes to optimize access to coordinate values.
-
-
- The instance to expand.
-
-
- An envelope which minimally encompasses all the coordinates in this
- .
-
-
Determines which orientation of the
@@ -3584,7 +3591,7 @@
A <Geometry Tagged Text> String (see the OpenGIS Simple
Features Specification)
-
+
Converts a Geometry to its Well-Known Text representation.
@@ -3595,7 +3602,7 @@
Simple Features Specification).
-
+
Converts a Geometry to <Geometry Tagged Text > format, then Appends it to the writer.
@@ -3649,7 +3656,7 @@
The MultiPolygon to process
The output stream writer to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Tagged
Text> format, then Appends it to the writer.
@@ -3718,7 +3725,7 @@
The MultiPolygon to process.
The output stream to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Text > format, then Appends it to the writer.
@@ -4585,7 +4592,7 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
@@ -4596,32 +4603,13 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
Linear unit.
An instance with the given parameters.
-
-
- Creates a coordinate system object from an XML String.
-
- XML representation for the spatial reference.
- The resulting spatial reference object.
-
-
-
- Creates a spatial reference object given its Well-Known Text representation.
- The output object may be either a
- or
- a .
-
-
- The Well-Known Text representation for the spatial reference.
-
- The resulting spatial reference object.
-
Creates a , which
@@ -4836,11 +4824,24 @@
Type of datum.
Vertical datum.
-
+
- Creates a geocentric coordinate system based on the WGS84 ellipsoid,
- suitable for GPS measurements.
+ Creates a coordinate system object from an XML String.
+ XML representation for the spatial reference.
+ The resulting spatial reference object.
+
+
+
+ Creates a spatial reference object given its Well-Known Text representation.
+ The output object may be either a
+ or
+ a .
+
+
+ The Well-Known Text representation for the spatial reference.
+
+ The resulting spatial reference object.
diff --git a/ExternalReferences/Debug_Net20/GeoAPI.dll b/ExternalReferences/Debug_Net20/GeoAPI.dll
index 9724b859..0d9978a5 100644
Binary files a/ExternalReferences/Debug_Net20/GeoAPI.dll and b/ExternalReferences/Debug_Net20/GeoAPI.dll differ
diff --git a/ExternalReferences/Debug_Net20/GeoAPI.pdb b/ExternalReferences/Debug_Net20/GeoAPI.pdb
index 3eec0d88..98e107f5 100644
Binary files a/ExternalReferences/Debug_Net20/GeoAPI.pdb and b/ExternalReferences/Debug_Net20/GeoAPI.pdb differ
diff --git a/ExternalReferences/Debug_Net20/NPack.XML b/ExternalReferences/Debug_Net20/NPack.XML
index 7348f682..9e6e842b 100644
--- a/ExternalReferences/Debug_Net20/NPack.XML
+++ b/ExternalReferences/Debug_Net20/NPack.XML
@@ -883,6 +883,29 @@
Gets the multiplicative identity as a Single: 1F.
+
+
+ Every class that defines a * operation
+ like TProduct operator * (IMultipliable a, TFactor b) should consider
+ implementing this interface.
+
+
+ Type which multiplies the instance.
+
+ Result type of the multiplication operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the product of the Object and .
+ It must not modify the value of the Object.
+
+ The factor to multiply by.
+ The product.
+
Provides an interface for a factorization of a matrix.
@@ -984,6 +1007,43 @@
The index of the column of the element.
The value of the element at the specified row and column.
+
+
+ Defines a type which has typical numerically computable properties.
+
+ Input type of argument.
+ Result type of computation.
+
+
+
+ Every class that defines a / operation
+ like T operator / (T a, T b) should consider
+ implementing this interface.
+
+
+ Type which divides the instance.
+
+ Result type of the division operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the quotient of the Object and .
+ It must not modify the value of the Object.
+
+ The second operand.
+ The quotient.
+
+
+
+ Sets the value of the IComputable value.
+
+ Value used to set the IComputable.
+ The value of the IComputable converted from .
+
Creates a component-by-component copy of the vector.
@@ -1590,7 +1650,7 @@
-
+
Construct a QR decomposition.
@@ -1652,7 +1712,7 @@
-
+
Create a new LU decomposition.
@@ -2275,49 +2335,6 @@
Thrown if is null.
-
-
- Defines a type which has typical numerically computable properties.
-
- Input type of argument.
- Result type of computation.
-
-
-
- Every class that defines a / operation
- like T operator / (T a, T b) should consider
- implementing this interface.
-
-
- Type which divides the instance.
-
- Result type of the division operation.
-
- Adapted from an article on lambda-computing.com:
- http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
-
-
-
-
- Returns the quotient of the Object and .
- It must not modify the value of the Object.
-
- The second operand.
- The quotient.
-
-
-
- Computes the absolute value of the value.
-
- The absolute value of the IComputable value.
-
-
-
- Sets the value of the IComputable value.
-
- Value used to set the IComputable.
- The value of the IComputable converted from .
-
Represents a column-major convention affine transform matrix.
@@ -3255,7 +3272,7 @@
A submatrix with rows given by and columns
through .
-
+
Returns the transpose of the matrix. Returns a clone for Vector{T}, since vectors are storage agnostic.
@@ -3295,7 +3312,7 @@
Thrown when accessed.
-
+
Gets the format of the matrix, either row-major or column-major.
@@ -4076,7 +4093,7 @@
The type of vector to store.
The type of component in the vector.
-
+
Creates a new
for vectors of size , including space
@@ -4092,7 +4109,7 @@
A factory used to create vectors of type .
-
+
Creates a new with
initial capacity for vectors of size
diff --git a/ExternalReferences/Debug_Net20/NPack.dll b/ExternalReferences/Debug_Net20/NPack.dll
index 22c47b28..a3648522 100644
Binary files a/ExternalReferences/Debug_Net20/NPack.dll and b/ExternalReferences/Debug_Net20/NPack.dll differ
diff --git a/ExternalReferences/Debug_Net20/NPack.pdb b/ExternalReferences/Debug_Net20/NPack.pdb
index 42bef66a..6ea958e2 100644
Binary files a/ExternalReferences/Debug_Net20/NPack.pdb and b/ExternalReferences/Debug_Net20/NPack.pdb differ
diff --git a/ExternalReferences/Debug_Net35/GeoAPI.XML b/ExternalReferences/Debug_Net35/GeoAPI.XML
index 47827c90..4fdbce62 100644
--- a/ExternalReferences/Debug_Net35/GeoAPI.XML
+++ b/ExternalReferences/Debug_Net35/GeoAPI.XML
@@ -81,6 +81,13 @@
to swap the bytes of.
Byte order swapped .
+
+
+ Swaps the byte order of a .
+
+ to swap the bytes of.
+ Byte order swapped .
+
Swaps the byte order of a (double precision IEEE 754)
@@ -1478,6 +1485,32 @@
Gets the count of items in this node and all subnodes.
+
+
+ The inherent dimension of this geometric object, which must be
+ less than or equal to the coordinate dimension.
+
+
+
+
+ Returns if this geometry is the empty geometry.
+ If true, then this geometry represents the empty point set, ∅, for the
+ coordinate space.
+
+
+
+
+ Returns if the geometry has no anomalous geometric
+ points, such as self intersection or self tangency. The description of each
+ instantiable geometric class will include the specific conditions that cause
+ an instance of that class to be classified as not simple.
+
+
+
+
+ Gets the spatial reference system associated with the geometry.
+
+
A set of quantities from which other quantities are calculated.
@@ -1533,32 +1566,6 @@
Characters that are not whitespace, numbers, etc...
-
-
- The inherent dimension of this geometric object, which must be
- less than or equal to the coordinate dimension.
-
-
-
-
- Returns if this geometry is the empty geometry.
- If true, then this geometry represents the empty point set, ∅, for the
- coordinate space.
-
-
-
-
- Returns if the geometry has no anomalous geometric
- points, such as self intersection or self tangency. The description of each
- instantiable geometric class will include the specific conditions that cause
- an instance of that class to be classified as not simple.
-
-
-
-
- Gets the spatial reference system associated with the geometry.
-
-
Gets the spatial reference system associated with the geometry.
@@ -2085,6 +2092,21 @@
+
+
+ Expands the given Envelope to include the coordinates in the sequence.
+
+
+ Allows implementing classes to optimize access to coordinate values.
+
+
+ The instance to expand.
+
+
+ An envelope which minimally encompasses all the coordinates in this
+ .
+
+
Creates an array of all the
@@ -2106,21 +2128,6 @@
An array of instances.
-
-
- Expands the given Envelope to include the coordinates in the sequence.
-
-
- Allows implementing classes to optimize access to coordinate values.
-
-
- The instance to expand.
-
-
- An envelope which minimally encompasses all the coordinates in this
- .
-
-
Determines which orientation of the
@@ -3584,7 +3591,7 @@
A <Geometry Tagged Text> String (see the OpenGIS Simple
Features Specification)
-
+
Converts a Geometry to its Well-Known Text representation.
@@ -3595,7 +3602,7 @@
Simple Features Specification).
-
+
Converts a Geometry to <Geometry Tagged Text > format, then Appends it to the writer.
@@ -3649,7 +3656,7 @@
The MultiPolygon to process
The output stream writer to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Tagged
Text> format, then Appends it to the writer.
@@ -3718,7 +3725,7 @@
The MultiPolygon to process.
The output stream to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Text > format, then Appends it to the writer.
@@ -4585,7 +4592,7 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
@@ -4596,32 +4603,13 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
Linear unit.
An instance with the given parameters.
-
-
- Creates a coordinate system object from an XML String.
-
- XML representation for the spatial reference.
- The resulting spatial reference object.
-
-
-
- Creates a spatial reference object given its Well-Known Text representation.
- The output object may be either a
- or
- a .
-
-
- The Well-Known Text representation for the spatial reference.
-
- The resulting spatial reference object.
-
Creates a , which
@@ -4836,11 +4824,24 @@
Type of datum.
Vertical datum.
-
+
- Creates a geocentric coordinate system based on the WGS84 ellipsoid,
- suitable for GPS measurements.
+ Creates a coordinate system object from an XML String.
+ XML representation for the spatial reference.
+ The resulting spatial reference object.
+
+
+
+ Creates a spatial reference object given its Well-Known Text representation.
+ The output object may be either a
+ or
+ a .
+
+
+ The Well-Known Text representation for the spatial reference.
+
+ The resulting spatial reference object.
diff --git a/ExternalReferences/Debug_Net35/GeoAPI.dll b/ExternalReferences/Debug_Net35/GeoAPI.dll
index 9d317e7c..a2e8d112 100644
Binary files a/ExternalReferences/Debug_Net35/GeoAPI.dll and b/ExternalReferences/Debug_Net35/GeoAPI.dll differ
diff --git a/ExternalReferences/Debug_Net35/GeoAPI.pdb b/ExternalReferences/Debug_Net35/GeoAPI.pdb
index 999e163a..40f612ef 100644
Binary files a/ExternalReferences/Debug_Net35/GeoAPI.pdb and b/ExternalReferences/Debug_Net35/GeoAPI.pdb differ
diff --git a/ExternalReferences/Debug_Net35/NPack.XML b/ExternalReferences/Debug_Net35/NPack.XML
index 7348f682..9e6e842b 100644
--- a/ExternalReferences/Debug_Net35/NPack.XML
+++ b/ExternalReferences/Debug_Net35/NPack.XML
@@ -883,6 +883,29 @@
Gets the multiplicative identity as a Single: 1F.
+
+
+ Every class that defines a * operation
+ like TProduct operator * (IMultipliable a, TFactor b) should consider
+ implementing this interface.
+
+
+ Type which multiplies the instance.
+
+ Result type of the multiplication operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the product of the Object and .
+ It must not modify the value of the Object.
+
+ The factor to multiply by.
+ The product.
+
Provides an interface for a factorization of a matrix.
@@ -984,6 +1007,43 @@
The index of the column of the element.
The value of the element at the specified row and column.
+
+
+ Defines a type which has typical numerically computable properties.
+
+ Input type of argument.
+ Result type of computation.
+
+
+
+ Every class that defines a / operation
+ like T operator / (T a, T b) should consider
+ implementing this interface.
+
+
+ Type which divides the instance.
+
+ Result type of the division operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the quotient of the Object and .
+ It must not modify the value of the Object.
+
+ The second operand.
+ The quotient.
+
+
+
+ Sets the value of the IComputable value.
+
+ Value used to set the IComputable.
+ The value of the IComputable converted from .
+
Creates a component-by-component copy of the vector.
@@ -1590,7 +1650,7 @@
-
+
Construct a QR decomposition.
@@ -1652,7 +1712,7 @@
-
+
Create a new LU decomposition.
@@ -2275,49 +2335,6 @@
Thrown if is null.
-
-
- Defines a type which has typical numerically computable properties.
-
- Input type of argument.
- Result type of computation.
-
-
-
- Every class that defines a / operation
- like T operator / (T a, T b) should consider
- implementing this interface.
-
-
- Type which divides the instance.
-
- Result type of the division operation.
-
- Adapted from an article on lambda-computing.com:
- http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
-
-
-
-
- Returns the quotient of the Object and .
- It must not modify the value of the Object.
-
- The second operand.
- The quotient.
-
-
-
- Computes the absolute value of the value.
-
- The absolute value of the IComputable value.
-
-
-
- Sets the value of the IComputable value.
-
- Value used to set the IComputable.
- The value of the IComputable converted from .
-
Represents a column-major convention affine transform matrix.
@@ -3255,7 +3272,7 @@
A submatrix with rows given by and columns
through .
-
+
Returns the transpose of the matrix. Returns a clone for Vector{T}, since vectors are storage agnostic.
@@ -3295,7 +3312,7 @@
Thrown when accessed.
-
+
Gets the format of the matrix, either row-major or column-major.
@@ -4076,7 +4093,7 @@
The type of vector to store.
The type of component in the vector.
-
+
Creates a new
for vectors of size , including space
@@ -4092,7 +4109,7 @@
A factory used to create vectors of type .
-
+
Creates a new with
initial capacity for vectors of size
diff --git a/ExternalReferences/Debug_Net35/NPack.dll b/ExternalReferences/Debug_Net35/NPack.dll
index 22c47b28..efd82ba9 100644
Binary files a/ExternalReferences/Debug_Net35/NPack.dll and b/ExternalReferences/Debug_Net35/NPack.dll differ
diff --git a/ExternalReferences/Debug_Net35/NPack.pdb b/ExternalReferences/Debug_Net35/NPack.pdb
index 42bef66a..bfe46ce7 100644
Binary files a/ExternalReferences/Debug_Net35/NPack.pdb and b/ExternalReferences/Debug_Net35/NPack.pdb differ
diff --git a/ExternalReferences/Release_Net20/GeoAPI.XML b/ExternalReferences/Release_Net20/GeoAPI.XML
index 47827c90..4fdbce62 100644
--- a/ExternalReferences/Release_Net20/GeoAPI.XML
+++ b/ExternalReferences/Release_Net20/GeoAPI.XML
@@ -81,6 +81,13 @@
to swap the bytes of.
Byte order swapped .
+
+
+ Swaps the byte order of a .
+
+ to swap the bytes of.
+ Byte order swapped .
+
Swaps the byte order of a (double precision IEEE 754)
@@ -1478,6 +1485,32 @@
Gets the count of items in this node and all subnodes.
+
+
+ The inherent dimension of this geometric object, which must be
+ less than or equal to the coordinate dimension.
+
+
+
+
+ Returns if this geometry is the empty geometry.
+ If true, then this geometry represents the empty point set, ∅, for the
+ coordinate space.
+
+
+
+
+ Returns if the geometry has no anomalous geometric
+ points, such as self intersection or self tangency. The description of each
+ instantiable geometric class will include the specific conditions that cause
+ an instance of that class to be classified as not simple.
+
+
+
+
+ Gets the spatial reference system associated with the geometry.
+
+
A set of quantities from which other quantities are calculated.
@@ -1533,32 +1566,6 @@
Characters that are not whitespace, numbers, etc...
-
-
- The inherent dimension of this geometric object, which must be
- less than or equal to the coordinate dimension.
-
-
-
-
- Returns if this geometry is the empty geometry.
- If true, then this geometry represents the empty point set, ∅, for the
- coordinate space.
-
-
-
-
- Returns if the geometry has no anomalous geometric
- points, such as self intersection or self tangency. The description of each
- instantiable geometric class will include the specific conditions that cause
- an instance of that class to be classified as not simple.
-
-
-
-
- Gets the spatial reference system associated with the geometry.
-
-
Gets the spatial reference system associated with the geometry.
@@ -2085,6 +2092,21 @@
+
+
+ Expands the given Envelope to include the coordinates in the sequence.
+
+
+ Allows implementing classes to optimize access to coordinate values.
+
+
+ The instance to expand.
+
+
+ An envelope which minimally encompasses all the coordinates in this
+ .
+
+
Creates an array of all the
@@ -2106,21 +2128,6 @@
An array of instances.
-
-
- Expands the given Envelope to include the coordinates in the sequence.
-
-
- Allows implementing classes to optimize access to coordinate values.
-
-
- The instance to expand.
-
-
- An envelope which minimally encompasses all the coordinates in this
- .
-
-
Determines which orientation of the
@@ -3584,7 +3591,7 @@
A <Geometry Tagged Text> String (see the OpenGIS Simple
Features Specification)
-
+
Converts a Geometry to its Well-Known Text representation.
@@ -3595,7 +3602,7 @@
Simple Features Specification).
-
+
Converts a Geometry to <Geometry Tagged Text > format, then Appends it to the writer.
@@ -3649,7 +3656,7 @@
The MultiPolygon to process
The output stream writer to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Tagged
Text> format, then Appends it to the writer.
@@ -3718,7 +3725,7 @@
The MultiPolygon to process.
The output stream to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Text > format, then Appends it to the writer.
@@ -4585,7 +4592,7 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
@@ -4596,32 +4603,13 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
Linear unit.
An instance with the given parameters.
-
-
- Creates a coordinate system object from an XML String.
-
- XML representation for the spatial reference.
- The resulting spatial reference object.
-
-
-
- Creates a spatial reference object given its Well-Known Text representation.
- The output object may be either a
- or
- a .
-
-
- The Well-Known Text representation for the spatial reference.
-
- The resulting spatial reference object.
-
Creates a , which
@@ -4836,11 +4824,24 @@
Type of datum.
Vertical datum.
-
+
- Creates a geocentric coordinate system based on the WGS84 ellipsoid,
- suitable for GPS measurements.
+ Creates a coordinate system object from an XML String.
+ XML representation for the spatial reference.
+ The resulting spatial reference object.
+
+
+
+ Creates a spatial reference object given its Well-Known Text representation.
+ The output object may be either a
+ or
+ a .
+
+
+ The Well-Known Text representation for the spatial reference.
+
+ The resulting spatial reference object.
diff --git a/ExternalReferences/Release_Net20/GeoAPI.dll b/ExternalReferences/Release_Net20/GeoAPI.dll
index 9885fafd..98638c09 100644
Binary files a/ExternalReferences/Release_Net20/GeoAPI.dll and b/ExternalReferences/Release_Net20/GeoAPI.dll differ
diff --git a/ExternalReferences/Release_Net20/GeoAPI.pdb b/ExternalReferences/Release_Net20/GeoAPI.pdb
index f055825e..242c458a 100644
Binary files a/ExternalReferences/Release_Net20/GeoAPI.pdb and b/ExternalReferences/Release_Net20/GeoAPI.pdb differ
diff --git a/ExternalReferences/Release_Net20/NPack.XML b/ExternalReferences/Release_Net20/NPack.XML
index 7348f682..9e6e842b 100644
--- a/ExternalReferences/Release_Net20/NPack.XML
+++ b/ExternalReferences/Release_Net20/NPack.XML
@@ -883,6 +883,29 @@
Gets the multiplicative identity as a Single: 1F.
+
+
+ Every class that defines a * operation
+ like TProduct operator * (IMultipliable a, TFactor b) should consider
+ implementing this interface.
+
+
+ Type which multiplies the instance.
+
+ Result type of the multiplication operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the product of the Object and .
+ It must not modify the value of the Object.
+
+ The factor to multiply by.
+ The product.
+
Provides an interface for a factorization of a matrix.
@@ -984,6 +1007,43 @@
The index of the column of the element.
The value of the element at the specified row and column.
+
+
+ Defines a type which has typical numerically computable properties.
+
+ Input type of argument.
+ Result type of computation.
+
+
+
+ Every class that defines a / operation
+ like T operator / (T a, T b) should consider
+ implementing this interface.
+
+
+ Type which divides the instance.
+
+ Result type of the division operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the quotient of the Object and .
+ It must not modify the value of the Object.
+
+ The second operand.
+ The quotient.
+
+
+
+ Sets the value of the IComputable value.
+
+ Value used to set the IComputable.
+ The value of the IComputable converted from .
+
Creates a component-by-component copy of the vector.
@@ -1590,7 +1650,7 @@
-
+
Construct a QR decomposition.
@@ -1652,7 +1712,7 @@
-
+
Create a new LU decomposition.
@@ -2275,49 +2335,6 @@
Thrown if is null.
-
-
- Defines a type which has typical numerically computable properties.
-
- Input type of argument.
- Result type of computation.
-
-
-
- Every class that defines a / operation
- like T operator / (T a, T b) should consider
- implementing this interface.
-
-
- Type which divides the instance.
-
- Result type of the division operation.
-
- Adapted from an article on lambda-computing.com:
- http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
-
-
-
-
- Returns the quotient of the Object and .
- It must not modify the value of the Object.
-
- The second operand.
- The quotient.
-
-
-
- Computes the absolute value of the value.
-
- The absolute value of the IComputable value.
-
-
-
- Sets the value of the IComputable value.
-
- Value used to set the IComputable.
- The value of the IComputable converted from .
-
Represents a column-major convention affine transform matrix.
@@ -3255,7 +3272,7 @@
A submatrix with rows given by and columns
through .
-
+
Returns the transpose of the matrix. Returns a clone for Vector{T}, since vectors are storage agnostic.
@@ -3295,7 +3312,7 @@
Thrown when accessed.
-
+
Gets the format of the matrix, either row-major or column-major.
@@ -4076,7 +4093,7 @@
The type of vector to store.
The type of component in the vector.
-
+
Creates a new
for vectors of size , including space
@@ -4092,7 +4109,7 @@
A factory used to create vectors of type .
-
+
Creates a new with
initial capacity for vectors of size
diff --git a/ExternalReferences/Release_Net20/NPack.dll b/ExternalReferences/Release_Net20/NPack.dll
index 22c47b28..50ffb73e 100644
Binary files a/ExternalReferences/Release_Net20/NPack.dll and b/ExternalReferences/Release_Net20/NPack.dll differ
diff --git a/ExternalReferences/Release_Net20/NPack.pdb b/ExternalReferences/Release_Net20/NPack.pdb
index 42bef66a..84abe715 100644
Binary files a/ExternalReferences/Release_Net20/NPack.pdb and b/ExternalReferences/Release_Net20/NPack.pdb differ
diff --git a/ExternalReferences/Release_Net35/GeoAPI.XML b/ExternalReferences/Release_Net35/GeoAPI.XML
index 47827c90..4fdbce62 100644
--- a/ExternalReferences/Release_Net35/GeoAPI.XML
+++ b/ExternalReferences/Release_Net35/GeoAPI.XML
@@ -81,6 +81,13 @@
to swap the bytes of.
Byte order swapped .
+
+
+ Swaps the byte order of a .
+
+ to swap the bytes of.
+ Byte order swapped .
+
Swaps the byte order of a (double precision IEEE 754)
@@ -1478,6 +1485,32 @@
Gets the count of items in this node and all subnodes.
+
+
+ The inherent dimension of this geometric object, which must be
+ less than or equal to the coordinate dimension.
+
+
+
+
+ Returns if this geometry is the empty geometry.
+ If true, then this geometry represents the empty point set, ∅, for the
+ coordinate space.
+
+
+
+
+ Returns if the geometry has no anomalous geometric
+ points, such as self intersection or self tangency. The description of each
+ instantiable geometric class will include the specific conditions that cause
+ an instance of that class to be classified as not simple.
+
+
+
+
+ Gets the spatial reference system associated with the geometry.
+
+
A set of quantities from which other quantities are calculated.
@@ -1533,32 +1566,6 @@
Characters that are not whitespace, numbers, etc...
-
-
- The inherent dimension of this geometric object, which must be
- less than or equal to the coordinate dimension.
-
-
-
-
- Returns if this geometry is the empty geometry.
- If true, then this geometry represents the empty point set, ∅, for the
- coordinate space.
-
-
-
-
- Returns if the geometry has no anomalous geometric
- points, such as self intersection or self tangency. The description of each
- instantiable geometric class will include the specific conditions that cause
- an instance of that class to be classified as not simple.
-
-
-
-
- Gets the spatial reference system associated with the geometry.
-
-
Gets the spatial reference system associated with the geometry.
@@ -2085,6 +2092,21 @@
+
+
+ Expands the given Envelope to include the coordinates in the sequence.
+
+
+ Allows implementing classes to optimize access to coordinate values.
+
+
+ The instance to expand.
+
+
+ An envelope which minimally encompasses all the coordinates in this
+ .
+
+
Creates an array of all the
@@ -2106,21 +2128,6 @@
An array of instances.
-
-
- Expands the given Envelope to include the coordinates in the sequence.
-
-
- Allows implementing classes to optimize access to coordinate values.
-
-
- The instance to expand.
-
-
- An envelope which minimally encompasses all the coordinates in this
- .
-
-
Determines which orientation of the
@@ -3584,7 +3591,7 @@
A <Geometry Tagged Text> String (see the OpenGIS Simple
Features Specification)
-
+
Converts a Geometry to its Well-Known Text representation.
@@ -3595,7 +3602,7 @@
Simple Features Specification).
-
+
Converts a Geometry to <Geometry Tagged Text > format, then Appends it to the writer.
@@ -3649,7 +3656,7 @@
The MultiPolygon to process
The output stream writer to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Tagged
Text> format, then Appends it to the writer.
@@ -3718,7 +3725,7 @@
The MultiPolygon to process.
The output stream to Append to.
-
+
Converts a GeometryCollection to <GeometryCollection Text > format, then Appends it to the writer.
@@ -4585,7 +4592,7 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
@@ -4596,32 +4603,13 @@
Creates an from an major radius, and inverse flattening.
-
+
Name of ellipsoid.
Semi major-axis.
Inverse flattening.
Linear unit.
An instance with the given parameters.
-
-
- Creates a coordinate system object from an XML String.
-
- XML representation for the spatial reference.
- The resulting spatial reference object.
-
-
-
- Creates a spatial reference object given its Well-Known Text representation.
- The output object may be either a
- or
- a .
-
-
- The Well-Known Text representation for the spatial reference.
-
- The resulting spatial reference object.
-
Creates a , which
@@ -4836,11 +4824,24 @@
Type of datum.
Vertical datum.
-
+
- Creates a geocentric coordinate system based on the WGS84 ellipsoid,
- suitable for GPS measurements.
+ Creates a coordinate system object from an XML String.
+ XML representation for the spatial reference.
+ The resulting spatial reference object.
+
+
+
+ Creates a spatial reference object given its Well-Known Text representation.
+ The output object may be either a
+ or
+ a .
+
+
+ The Well-Known Text representation for the spatial reference.
+
+ The resulting spatial reference object.
diff --git a/ExternalReferences/Release_Net35/GeoAPI.dll b/ExternalReferences/Release_Net35/GeoAPI.dll
index 04a1c354..d5be2928 100644
Binary files a/ExternalReferences/Release_Net35/GeoAPI.dll and b/ExternalReferences/Release_Net35/GeoAPI.dll differ
diff --git a/ExternalReferences/Release_Net35/GeoAPI.pdb b/ExternalReferences/Release_Net35/GeoAPI.pdb
index 9b63342d..97b650cd 100644
Binary files a/ExternalReferences/Release_Net35/GeoAPI.pdb and b/ExternalReferences/Release_Net35/GeoAPI.pdb differ
diff --git a/ExternalReferences/Release_Net35/NPack.XML b/ExternalReferences/Release_Net35/NPack.XML
index 7348f682..9e6e842b 100644
--- a/ExternalReferences/Release_Net35/NPack.XML
+++ b/ExternalReferences/Release_Net35/NPack.XML
@@ -883,6 +883,29 @@
Gets the multiplicative identity as a Single: 1F.
+
+
+ Every class that defines a * operation
+ like TProduct operator * (IMultipliable a, TFactor b) should consider
+ implementing this interface.
+
+
+ Type which multiplies the instance.
+
+ Result type of the multiplication operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the product of the Object and .
+ It must not modify the value of the Object.
+
+ The factor to multiply by.
+ The product.
+
Provides an interface for a factorization of a matrix.
@@ -984,6 +1007,43 @@
The index of the column of the element.
The value of the element at the specified row and column.
+
+
+ Defines a type which has typical numerically computable properties.
+
+ Input type of argument.
+ Result type of computation.
+
+
+
+ Every class that defines a / operation
+ like T operator / (T a, T b) should consider
+ implementing this interface.
+
+
+ Type which divides the instance.
+
+ Result type of the division operation.
+
+ Adapted from an article on lambda-computing.com:
+ http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
+
+
+
+
+ Returns the quotient of the Object and .
+ It must not modify the value of the Object.
+
+ The second operand.
+ The quotient.
+
+
+
+ Sets the value of the IComputable value.
+
+ Value used to set the IComputable.
+ The value of the IComputable converted from .
+
Creates a component-by-component copy of the vector.
@@ -1590,7 +1650,7 @@
-
+
Construct a QR decomposition.
@@ -1652,7 +1712,7 @@
-
+
Create a new LU decomposition.
@@ -2275,49 +2335,6 @@
Thrown if is null.
-
-
- Defines a type which has typical numerically computable properties.
-
- Input type of argument.
- Result type of computation.
-
-
-
- Every class that defines a / operation
- like T operator / (T a, T b) should consider
- implementing this interface.
-
-
- Type which divides the instance.
-
- Result type of the division operation.
-
- Adapted from an article on lambda-computing.com:
- http://www.lambda-computing.com/publications/articles/generics/IArithmetic.cs.
-
-
-
-
- Returns the quotient of the Object and .
- It must not modify the value of the Object.
-
- The second operand.
- The quotient.
-
-
-
- Computes the absolute value of the value.
-
- The absolute value of the IComputable value.
-
-
-
- Sets the value of the IComputable value.
-
- Value used to set the IComputable.
- The value of the IComputable converted from .
-
Represents a column-major convention affine transform matrix.
@@ -3255,7 +3272,7 @@
A submatrix with rows given by and columns
through .
-
+
Returns the transpose of the matrix. Returns a clone for Vector{T}, since vectors are storage agnostic.
@@ -3295,7 +3312,7 @@
Thrown when accessed.
-
+
Gets the format of the matrix, either row-major or column-major.
@@ -4076,7 +4093,7 @@
The type of vector to store.
The type of component in the vector.
-
+
Creates a new
for vectors of size , including space
@@ -4092,7 +4109,7 @@
A factory used to create vectors of type .
-
+
Creates a new with
initial capacity for vectors of size
diff --git a/ExternalReferences/Release_Net35/NPack.dll b/ExternalReferences/Release_Net35/NPack.dll
index 22c47b28..a0e03a9c 100644
Binary files a/ExternalReferences/Release_Net35/NPack.dll and b/ExternalReferences/Release_Net35/NPack.dll differ
diff --git a/ExternalReferences/Release_Net35/NPack.pdb b/ExternalReferences/Release_Net35/NPack.pdb
index 42bef66a..39932a89 100644
Binary files a/ExternalReferences/Release_Net35/NPack.pdb and b/ExternalReferences/Release_Net35/NPack.pdb differ
diff --git a/Proj.Net/ProjNet/ProjNet.csproj b/Proj.Net/ProjNet/ProjNet.csproj
index d4e195de..96f02fd7 100644
--- a/Proj.Net/ProjNet/ProjNet.csproj
+++ b/Proj.Net/ProjNet/ProjNet.csproj
@@ -104,11 +104,11 @@
False
- ..\ExternalReferences\$(Configuration)\NPack.dll
+ ..\..\ExternalReferences\$(Configuration)\NPack.dll
False
- ..\ExternalReferences\$(Configuration)\GeoAPI.dll
+ ..\..\ExternalReferences\$(Configuration)\GeoAPI.dll
@@ -116,7 +116,7 @@
False
- ..\ExternalReferences\$(Configuration)\NPack.dll
+ ..\..\ExternalReferences\$(Configuration)\NPack.dll
@@ -140,7 +140,6 @@
-
-
\ No newline at end of file
+
diff --git a/SharpMap.Rendering.Gdi.Tests/BasicGeometryRenderer2DWithGdiVectorRenderer.cs b/SharpMap.Rendering.Gdi.Tests/BasicGeometryRenderer2DWithGdiVectorRenderer.cs
index 24cfa525..051cbeea 100644
--- a/SharpMap.Rendering.Gdi.Tests/BasicGeometryRenderer2DWithGdiVectorRenderer.cs
+++ b/SharpMap.Rendering.Gdi.Tests/BasicGeometryRenderer2DWithGdiVectorRenderer.cs
@@ -9,6 +9,7 @@
using SharpMap.Data;
using SharpMap.Data.Providers.FeatureProvider;
using SharpMap.Rendering.Rendering2D;
+using SharpMap.SimpleGeometries;
using SharpMap.Tests;
namespace SharpMap.Rendering.Gdi.Tests
@@ -17,6 +18,7 @@ namespace SharpMap.Rendering.Gdi.Tests
public class BasicGeometryRenderer2DWithGdiVectorRenderer
{
private static readonly Single _e = 0.0001f;
+ private IGeometryFactory _geoFactory = new GeometryFactory();
[Test]
public void CreatingBasicGeometryRenderer2DWithGdiVectorRendererSucceeds()
@@ -36,7 +38,7 @@ public void RenderingPolygonsWithGdiVectorRendererProducesCorrectGdiPaths()
BasicGeometryRenderer2D geometryRenderer
= new BasicGeometryRenderer2D(vectorRenderer);
- FeatureProvider provider = DataSourceHelper.CreateFeatureDatasource();
+ FeatureProvider provider = DataSourceHelper.CreateFeatureDatasource(_geoFactory);
foreach (IFeatureDataRecord record in provider.ExecuteIntersectionQuery(provider.GetExtents()))
{
@@ -141,7 +143,7 @@ public void RenderingLinesWithGdiVectorRendererProducesCorrectGdiPaths()
BasicGeometryRenderer2D geometryRenderer
= new BasicGeometryRenderer2D(vectorRenderer);
- FeatureProvider provider = DataSourceHelper.CreateFeatureDatasource();
+ FeatureProvider provider = DataSourceHelper.CreateFeatureDatasource(_geoFactory);
foreach (IFeatureDataRecord record in provider.ExecuteIntersectionQuery(provider.GetExtents()))
{
@@ -203,7 +205,7 @@ public void RenderingPointsGeometriesWithGdiVectorRendererProducesCorrectGdiBitm
BasicGeometryRenderer2D geometryRenderer
= new BasicGeometryRenderer2D(vectorRenderer);
- FeatureProvider provider = DataSourceHelper.CreateFeatureDatasource();
+ FeatureProvider provider = DataSourceHelper.CreateFeatureDatasource(_geoFactory);
foreach (IFeatureDataRecord record in provider.ExecuteIntersectionQuery(provider.GetExtents()))
{
diff --git a/SharpMap.Rendering.Gdi.Tests/SharpMap.Rendering.Gdi.Tests.csproj b/SharpMap.Rendering.Gdi.Tests/SharpMap.Rendering.Gdi.Tests.csproj
index fce5d4f7..eb713a64 100644
--- a/SharpMap.Rendering.Gdi.Tests/SharpMap.Rendering.Gdi.Tests.csproj
+++ b/SharpMap.Rendering.Gdi.Tests/SharpMap.Rendering.Gdi.Tests.csproj
@@ -86,6 +86,10 @@
{EC29E6E4-CE31-4989-BAA7-0125F1F8910A}
SharpMap.Rendering.Gdi
+
+ {7F258589-6452-4B7B-8884-8965A42C1D9E}
+ SharpMap.SimpleGeometries
+
{C83777FC-AABB-47D9-911F-D76255D4D541}
SharpMap
diff --git a/SharpMap.Rendering.Gdi/GdiRenderObject.cs b/SharpMap.Rendering.Gdi/GdiRenderObject.cs
index a8d0148b..33de4b85 100644
--- a/SharpMap.Rendering.Gdi/GdiRenderObject.cs
+++ b/SharpMap.Rendering.Gdi/GdiRenderObject.cs
@@ -19,6 +19,7 @@
using System.Drawing;
using System.Drawing.Drawing2D;
using GdiColorMatrix = System.Drawing.Imaging.ColorMatrix;
+using SharpMap.Layers;
namespace SharpMap.Rendering.Gdi
{
@@ -64,7 +65,7 @@ public GdiRenderObject(GraphicsPath path, Brush fill, Brush highlightFill, Brush
Pen line, Pen highlightLine, Pen selectLine,
Pen outline, Pen highlightOutline, Pen selectOutline)
{
- _state = RenderState.Normal;
+ _state = RenderState.Normal;
GdiPath = path;
Fill = fill;
HighlightFill = highlightFill;
@@ -94,7 +95,7 @@ public GdiRenderObject(GraphicsPath path, Brush fill, Brush highlightFill, Brush
/// The color transform applied to the symbol before drawing.
public GdiRenderObject(Bitmap image, RectangleF imageBounds, Matrix transform, GdiColorMatrix colorTransform)
{
- _state = RenderState.Normal;
+ _state = RenderState.Normal;
Image = image;
Bounds = imageBounds;
AffineTransform = transform;
@@ -142,7 +143,7 @@ public GdiRenderObject(Bitmap image, RectangleF imageBounds, Matrix transform, G
public GdiRenderObject(String text, Font font, RectangleF bounds, Brush fill, Brush highlightFill, Brush selectFill,
Pen outline, Pen highlightOutline, Pen selectOutline)
{
- _state = RenderState.Normal;
+ _state = RenderState.Normal;
GdiPath = null;
Image = null;
@@ -249,10 +250,10 @@ public GdiRenderObject(String text, Font font, RectangleF bounds, Brush fill, Br
///
/// Gets or sets the render object state of visual appearance.
///
- public RenderState State
- {
- get { return _state; }
- set { _state = value; }
- }
- }
+ public RenderState State
+ {
+ get { return _state; }
+ set { _state = value; }
+ }
+ }
}
\ No newline at end of file
diff --git a/SharpMap.Rendering.Gdi/SharpMap.Rendering.Gdi.csproj b/SharpMap.Rendering.Gdi/SharpMap.Rendering.Gdi.csproj
index 2a36f684..28a138a1 100644
--- a/SharpMap.Rendering.Gdi/SharpMap.Rendering.Gdi.csproj
+++ b/SharpMap.Rendering.Gdi/SharpMap.Rendering.Gdi.csproj
@@ -65,8 +65,7 @@
-
+
@@ -96,4 +95,4 @@
-->
-
\ No newline at end of file
+
diff --git a/SharpMap.SimpleGeometries/Extents.cs b/SharpMap.SimpleGeometries/Extents.cs
index 9d7e8549..643eeef9 100644
--- a/SharpMap.SimpleGeometries/Extents.cs
+++ b/SharpMap.SimpleGeometries/Extents.cs
@@ -1765,6 +1765,11 @@ public void Translate(params Double[] vector)
throw new NotImplementedException();
}
+ public void TranslateRelative(params Double[] vector)
+ {
+ throw new NotImplementedException();
+ }
+
public IExtents Union(IExtents box)
{
throw new NotImplementedException();
diff --git a/SharpMap.SimpleGeometries/GeometryFactory.cs b/SharpMap.SimpleGeometries/GeometryFactory.cs
new file mode 100644
index 00000000..877fdeca
--- /dev/null
+++ b/SharpMap.SimpleGeometries/GeometryFactory.cs
@@ -0,0 +1,262 @@
+using System;
+using System.Collections.Generic;
+using GeoAPI.Coordinates;
+using GeoAPI.CoordinateSystems;
+using GeoAPI.Geometries;
+
+namespace SharpMap.SimpleGeometries
+{
+ public class GeometryFactory : IGeometryFactory
+ {
+ #region IGeometryFactory Members
+
+ public ICoordinateFactory CoordinateFactory
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public ICoordinateSequenceFactory CoordinateSequenceFactory
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public int? Srid
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public ICoordinateSystem SpatialReference
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public IPrecisionModel PrecisionModel
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public IGeometry BuildGeometry(IEnumerable geometryList)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents CreateExtents()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents CreateExtents(ICoordinate min, ICoordinate max)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IGeometry CreateGeometry(IGeometry g)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IGeometry CreateGeometry(ICoordinateSequence coordinates, OgcGeometryType type)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint CreatePoint()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint CreatePoint(ICoordinate coordinate)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint CreatePoint(ICoordinateSequence coordinates)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint2D CreatePoint2D()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint2D CreatePoint2D(double x, double y)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint2DM CreatePoint2DM(double x, double y, double m)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint3D CreatePoint3D()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint3D CreatePoint3D(double x, double y, double z)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint3D CreatePoint3D(IPoint2D point2D, double z)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPoint3DM CreatePoint3DM(double x, double y, double z, double m)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ILineString CreateLineString()
+ {
+ throw new NotImplementedException();
+ }
+
+ public ILineString CreateLineString(IEnumerable coordinates)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ILineString CreateLineString(ICoordinateSequence coordinates)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ILinearRing CreateLinearRing()
+ {
+ throw new NotImplementedException();
+ }
+
+ public ILinearRing CreateLinearRing(IEnumerable coordinates)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ILinearRing CreateLinearRing(ICoordinateSequence coordinates)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPolygon CreatePolygon()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPolygon CreatePolygon(IEnumerable shell)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPolygon CreatePolygon(ILinearRing shell)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IPolygon CreatePolygon(ILinearRing shell, IEnumerable holes)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiPoint CreateMultiPoint()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiPoint CreateMultiPoint(IEnumerable coordinates)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiPoint CreateMultiPoint(IEnumerable point)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiPoint CreateMultiPoint(ICoordinateSequence coordinates)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiLineString CreateMultiLineString()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiLineString CreateMultiLineString(IEnumerable lineStrings)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiPolygon CreateMultiPolygon()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IMultiPolygon CreateMultiPolygon(IEnumerable polygons)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IGeometryCollection CreateGeometryCollection()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IGeometryCollection CreateGeometryCollection(IEnumerable geometries)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IGeometry ToGeometry(IExtents envelopeInternal)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents CreateExtents(IExtents first, IExtents second)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents CreateExtents(IExtents first, IExtents second, IExtents third)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents CreateExtents(params IExtents[] extents)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents2D CreateExtents2D(double left, double bottom, double right, double top)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents2D CreateExtents2D(GeoAPI.DataStructures.Pair lowerLeft, GeoAPI.DataStructures.Pair upperRight)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents3D CreateExtents3D(double left, double bottom, double front, double right, double top, double back)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IExtents3D CreateExtents3D(GeoAPI.DataStructures.Triple lowerLeft, GeoAPI.DataStructures.Triple upperRight)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/SharpMap.SimpleGeometries/Point.cs b/SharpMap.SimpleGeometries/Point.cs
index 3795aac3..dd2f934c 100644
--- a/SharpMap.SimpleGeometries/Point.cs
+++ b/SharpMap.SimpleGeometries/Point.cs
@@ -35,6 +35,7 @@ public class Point : Geometry, IPoint, IComparable, IVector
- ///// Returns the number of ordinates for this point
- /////
- //public virtual Int32 NumOrdinates
- //{
- // get { return 2; }
- //}
-
- /////
- ///// Transforms the point to image coordinates, based on the map
- /////
- ///// Map to base coordinates on
- ///// point in image coordinates
- //public System.Drawing.PointF TransformToImage(Map map)
- //{
- // return SharpMap.Utilities.Transform.WorldToMap(this, map);
- //}
+ #region IPoint Members
+
+ public ICoordinate Coordinate
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public Double this[Ordinates ordinate]
+ {
+ get
+ {
+ switch (ordinate)
+ {
+ case Ordinates.X:
+ return X;
+ case Ordinates.Y:
+ return Y;
+ case Ordinates.Z:
+ case Ordinates.M:
+ default:
+ return Double.NaN;
+ }
+ }
+ }
+
+ public Int32 OrdinateCount
+ {
+ get { return ComponentCount; }
+ }
+
+ #endregion
#region Operators
///
@@ -270,6 +285,11 @@ public virtual Double this[UInt32 index]
#endregion
+ public override Int32 PointCount
+ {
+ get { return 1; }
+ }
+
#region "Inherited methods from abstract class Geometry"
///
@@ -609,6 +629,15 @@ protected void SetNotEmpty()
_hasValue = true;
}
+ #region IEnumerable Members
+
+ public IEnumerator GetEnumerator()
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+
#region IVector Members
IVector IVector.Clone()
@@ -636,11 +665,6 @@ public virtual DoubleComponent[] Components
}
}
- public IVector Negative()
- {
- return new Point(-_x, -_y);
- }
-
public DoubleComponent this[Int32 index]
{
get
@@ -743,18 +767,27 @@ public IMatrix Transpose()
#endregion
+ #region INegatable> Members
+
+ IVector INegatable>.Negative()
+ {
+ return new Point(-_x, -_y);
+ }
+
+ #endregion
+
#region INegatable> Members
IMatrix INegatable>.Negative()
{
- return Negative();
+ return new Point(-_x, -_y);
}
#endregion
#region ISubtractable> Members
- public IMatrix Subtract(IMatrix b)
+ IMatrix ISubtractable>.Subtract(IMatrix b)
{
throw new NotImplementedException();
}
@@ -772,7 +805,7 @@ IMatrix IHasZero>.Zero
#region IAddable> Members
- public IMatrix Add(IMatrix b)
+ IMatrix IAddable>.Add(IMatrix b)
{
throw new NotImplementedException();
}
@@ -781,7 +814,7 @@ public IMatrix Add(IMatrix b)
#region IDivisible> Members
- public IMatrix Divide(IMatrix b)
+ IMatrix IDivisible>.Divide(IMatrix b)
{
throw new NotImplementedException();
}
@@ -792,14 +825,14 @@ public IMatrix Divide(IMatrix b)
IMatrix IHasOne>.One
{
- get { return One; }
+ get { return _one; }
}
#endregion
#region IMultipliable> Members
- public IMatrix Multiply(IMatrix b)
+ IMatrix IMultipliable>.Multiply(IMatrix b)
{
throw new NotImplementedException();
}
@@ -808,25 +841,7 @@ public IMatrix Multiply(IMatrix b)
#region IEquatable> Members
- public Boolean Equals(IMatrix other)
- {
- throw new NotImplementedException();
- }
-
- #endregion
-
- #region IEnumerable Members
-
- public IEnumerator GetEnumerator()
- {
- throw new NotImplementedException();
- }
-
- #endregion
-
- #region IEnumerable Members
-
- System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+ Boolean IEquatable>.Equals(IMatrix other)
{
throw new NotImplementedException();
}
@@ -871,9 +886,9 @@ public IVector Divide(IVector b)
#region IHasOne> Members
- public IVector One
+ IVector IHasOne>.One
{
- get { return new Point(1, 1); }
+ get { return _one; }
}
#endregion
@@ -887,33 +902,6 @@ public IVector Multiply(IVector b)
#endregion
- #region IPoint Members
-
- public ICoordinate Coordinate
- {
- get { throw new NotImplementedException(); }
- }
-
- public Double this[Ordinates ordinate]
- {
- get
- {
- switch (ordinate)
- {
- case Ordinates.X:
- return X;
- case Ordinates.Y:
- return Y;
- case Ordinates.Z:
- case Ordinates.M:
- default:
- return Double.NaN;
- }
- }
- }
-
- #endregion
-
#region IVector Members
Int32 IVector.ComponentCount
@@ -1024,278 +1012,403 @@ IMatrix IMatrix.Transpose()
#endregion
- #region IEquatable> Members
+ #region IComparable> Members
- Boolean IEquatable>.Equals(IMatrix other)
+ Int32 IComparable>.CompareTo(IMatrix other)
{
throw new NotImplementedException();
}
#endregion
- #region IComparable> Members
+ #region IComputable> Members
- Int32 IComparable>.CompareTo(IMatrix other)
+ IMatrix IComputable>.Abs()
+ {
+ throw new NotImplementedException();
+ }
+
+ IMatrix IComputable>.Set(Double value)
{
throw new NotImplementedException();
}
#endregion
- #region IComputable> Members
+ #region IBooleanComparable> Members
- IMatrix IComputable>.Abs()
+ Boolean IBooleanComparable>.GreaterThan(IMatrix value)
{
throw new NotImplementedException();
}
- IMatrix IComputable>.Set(Double value)
+ Boolean IBooleanComparable>.GreaterThanOrEqualTo(IMatrix value)
+ {
+ throw new NotImplementedException();
+ }
+
+ Boolean IBooleanComparable>.LessThan(IMatrix value)
+ {
+ throw new NotImplementedException();
+ }
+
+ Boolean IBooleanComparable>.LessThanOrEqualTo(IMatrix value)
{
throw new NotImplementedException();
}
#endregion
- #region ISubtractable> Members
+ #region IExponential> Members
- IMatrix ISubtractable>.Subtract(IMatrix b)
+ IMatrix IExponential>.Exp()
+ {
+ throw new NotImplementedException();
+ }
+
+ IMatrix IExponential>.Log()
+ {
+ throw new NotImplementedException();
+ }
+
+ IMatrix IExponential>.Log(Double newBase)
+ {
+ throw new NotImplementedException();
+ }
+
+ IMatrix IExponential>.Power(Double exponent)
+ {
+ throw new NotImplementedException();
+ }
+
+ IMatrix IExponential>.Sqrt()
{
throw new NotImplementedException();
}
#endregion
- #region IAddable> Members
+ #region IEnumerable Members
- IMatrix IAddable>.Add(IMatrix b)
+ IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
#endregion
- #region IDivisible> Members
+ #region ISubtractable> Members
- IMatrix IDivisible>.Divide(IMatrix b)
+ IVector ISubtractable>.Subtract(IVector b)
{
throw new NotImplementedException();
}
#endregion
- #region IMultipliable> Members
+ #region IAddable> Members
- IMatrix IMultipliable>.Multiply(IMatrix b)
+ IVector IAddable>.Add(IVector b)
{
throw new NotImplementedException();
}
#endregion
- #region IBooleanComparable> Members
+ #region IDivisible> Members
- Boolean IBooleanComparable>.GreaterThan(IMatrix value)
+ IVector IDivisible>.Divide(IVector b)
{
throw new NotImplementedException();
}
- Boolean IBooleanComparable>.GreaterThanOrEqualTo(IMatrix value)
+ #endregion
+
+ #region IMultipliable> Members
+
+ IVector IMultipliable>.Multiply(IVector b)
{
throw new NotImplementedException();
}
- Boolean IBooleanComparable>.LessThan(IMatrix value)
+ #endregion
+
+ #region IBooleanComparable> Members
+
+ Boolean IBooleanComparable>.GreaterThan(IVector value)
{
throw new NotImplementedException();
}
- Boolean IBooleanComparable>.LessThanOrEqualTo(IMatrix value)
+ Boolean IBooleanComparable>.GreaterThanOrEqualTo(IVector value)
+ {
+ throw new NotImplementedException();
+ }
+
+ Boolean IBooleanComparable>.LessThan(IVector value)
+ {
+ throw new NotImplementedException();
+ }
+
+ Boolean IBooleanComparable>.LessThanOrEqualTo(IVector value)
{
throw new NotImplementedException();
}
#endregion
- #region IExponential> Members
+ #region IExponential> Members
- IMatrix IExponential>.Exp()
+ IVector IExponential>.Exp()
{
throw new NotImplementedException();
}
- IMatrix IExponential>.Log()
+ IVector IExponential>.Log()
{
throw new NotImplementedException();
}
- IMatrix IExponential>.Log(Double newBase)
+ IVector IExponential>.Log(Double newBase)
{
throw new NotImplementedException();
}
- IMatrix IExponential>.Power(Double exponent)
+ IVector IExponential>.Power(Double exponent)
{
throw new NotImplementedException();
}
- IMatrix IExponential>.Sqrt()
+ IVector IExponential>.Sqrt()
{
throw new NotImplementedException();
}
#endregion
- #region IEnumerable Members
+ #region IEquatable> Members
- IEnumerator IEnumerable.GetEnumerator()
+ Boolean IEquatable>.Equals(IVector other)
{
throw new NotImplementedException();
}
#endregion
- #region IComputable> Members
+ #region IComparable> Members
- IVector IComputable>.Abs()
+ Int32 IComparable>.CompareTo(IVector other)
{
throw new NotImplementedException();
}
- IVector IComputable>.Set(Double value)
+ #endregion
+
+ #region IEnumerable Members
+
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
#endregion
- #region INegatable> Members
+ #region IComputable Members
- IVector INegatable>.Negative()
+ IPoint IComputable.Set(Double value)
{
throw new NotImplementedException();
}
#endregion
- #region ISubtractable> Members
+ #region IComputable Members
- IVector ISubtractable>.Subtract(IVector b)
+ IPoint IComputable.Abs()
+ {
+ throw new NotImplementedException();
+ }
+
+ IPoint IComputable.Set(Double value)
{
throw new NotImplementedException();
}
#endregion
- #region IAddable> Members
+ #region INegatable Members
- IVector