19#ifndef GEOS_GEOM_INTERSECTIONMATRIX_H
20#define GEOS_GEOM_INTERSECTIONMATRIX_H
22#include <geos/export.h>
25#include <geos/inline.h>
92 bool matches(
const std::string& requiredDimensionSymbols)
const;
107 char requiredDimensionSymbol);
121 static bool matches(
const std::string& actualDimensionSymbols,
122 const std::string& requiredDimensionSymbols);
146 void set(
int row,
int column,
int dimensionValue);
156 void set(
const std::string& dimensionSymbols);
170 void setAtLeast(
int row,
int column,
int minimumDimensionValue);
229 int get(
int row,
int column)
const;
259 bool isTouches(
int dimensionOfGeometryA,
int dimensionOfGeometryB)
279 bool isCrosses(
int dimensionOfGeometryA,
int dimensionOfGeometryB)
305 bool isEquals(
int dimensionOfGeometryA,
int dimensionOfGeometryB)
321 bool isOverlaps(
int dimensionOfGeometryA,
int dimensionOfGeometryB)
366 static const int firstDim;
368 static const int secondDim;
Implementation of Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.
Definition IntersectionMatrix.h:51
void setAll(int dimensionValue)
Changes the elements of this IntersectionMatrix to dimensionValue.
bool isCovers() const
Returns true if this IntersectionMatrix is T*****FF* or T****FF or ***T**FF* or ****T*FF*.
int get(int row, int column) const
Returns the value of one of this IntersectionMatrixs elements.
bool isWithin() const
Returns true if this IntersectionMatrix is T*F**F***.
bool isCoveredBy() const
Returns true if this IntersectionMatrix is T*F**F*** *TF**F*** or **FT*F*** or **F*TF***.
bool isIntersects() const
Returns true if isDisjoint returns false.
bool isTouches(int dimensionOfGeometryA, int dimensionOfGeometryB) const
Returns true if this IntersectionMatrix is FT*******, F**T***** or F***T****.
void setAtLeast(int row, int column, int minimumDimensionValue)
Changes the specified element to minimumDimensionValue if the element is less.
bool isEquals(int dimensionOfGeometryA, int dimensionOfGeometryB) const
Returns true if this IntersectionMatrix is T*F**FFF*.
void set(int row, int column, int dimensionValue)
Changes the value of one of this IntersectionMatrixs elements.
IntersectionMatrix * transpose()
Transposes this IntersectionMatrix.
bool isCrosses(int dimensionOfGeometryA, int dimensionOfGeometryB) const
Returns true if this IntersectionMatrix is:
void setAtLeast(std::string minimumDimensionSymbols)
For each element in this IntersectionMatrix, changes the element to the corresponding minimum dimensi...
void setAtLeastIfValid(int row, int column, int minimumDimensionValue)
If row >= 0 and column >= 0, changes the specified element to minimumDimensionValue if the element is...
void set(const std::string &dimensionSymbols)
Changes the elements of this IntersectionMatrix to the dimension symbols in dimensionSymbols.
void add(IntersectionMatrix *other)
Adds one matrix to another.
IntersectionMatrix()
Default constructor.
bool isDisjoint() const
Returns true if this IntersectionMatrix is FF*FF****.
static bool matches(const std::string &actualDimensionSymbols, const std::string &requiredDimensionSymbols)
Returns true if each of the actual dimension symbols satisfies the corresponding required dimension s...
bool matches(const std::string &requiredDimensionSymbols) const
Returns whether the elements of this IntersectionMatrix satisfies the required dimension symbols.
IntersectionMatrix(const IntersectionMatrix &other)
Copy constructor.
bool isContains() const
Returns true if this IntersectionMatrix is T*****FF*.
static bool matches(int actualDimensionValue, char requiredDimensionSymbol)
Tests if given dimension value satisfies the dimension symbol.
std::string toString() const
Returns a nine-character String representation of this IntersectionMatrix.
bool isOverlaps(int dimensionOfGeometryA, int dimensionOfGeometryB) const
Returns true if this IntersectionMatrix is:
IntersectionMatrix(const std::string &elements)
Overriden constructor.
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
GEOS_DLL std::ostream & operator<<(std::ostream &os, const Coordinate &c)
Output function.
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25