TeWithin(x, y) => (x inter y = x) ^ (I(x) inter I(y) = true)
Case 1: P/P, P/L and P/A
=> (I(x) inter I(y) = true)
Case 2: L/L and A/A
=> (I(x) inter I(y) = true) ^ (I(x) inter E(y) = false) ^ (B(x) inter E(y) = false) ^ (B(x) inter B(y) = false)
Case 3: L/A
=> (I(x) inter I(y) = true) ^ (I(x) inter E(y) = false) ^ (B(x) inter E(y) = false) ^ (B(x) inter B(y) = false) ^ (I(x) inter B(y) = false)
Functions | |
| TL_DLL bool | TeWithin (const TePoint &point, const TeCell &cell) |
| Check if point is within cell. | |
| TL_DLL bool | TeWithin (const TeCell &cell, const TePolygon &poly) |
| Check if cell is within polygon. | |
| TL_DLL bool | TeWithin (const TeLine2D &line, const TeCell &cell) |
| Check if line is within cell. | |
| TL_DLL bool | TeWithin (const TeCell &cell1, const TeCell &cell2) |
| Check if cell1 is within cell2. | |
| TL_DLL bool | TeWithin (const TeBox &bx1, const TeBox &bx2) |
| Check if box1 is within box2. | |
| TL_DLL bool | TeWithin (const TePolygon &redPol, const TePolygon &bluePol) |
| Check if red polygon is within blue polygon. | |
| TL_DLL bool | TeWithin (const TeLine2D &l, const TePolygon &pol) |
| Check if line is within polygon. | |
| TL_DLL bool | TeWithin (const TeLine2D &redLine, const TeLine2D &blueLine) |
| Check if red line is within blue line. | |
| TL_DLL bool | TeWithin (const TePoint &p, const TePolygon &pol) |
| Check if point is within object. | |
| TL_DLL bool | TeWithin (const TePoint &p, const TeLine2D &l) |
| Check if point is within object. | |
| TL_DLL bool | TeWithin (const TePoint &p1, const TePoint &p2) |
| Check if point 1 is within point 2. | |
| TL_DLL bool | TeWithin (const TeCoord2D &c, const TePolygon &pol) |
| Check if a cordinate is within a polygon. | |
| TL_DLL bool | TeWithin (const TeCoord2D &c, const TeLine2D &l) |
| Check if a cordinate is within a line. | |
| TL_DLL bool | TeWithin (const TeCoord2D &c, const TeBox &b) |
| Check if coordinate is within a box. | |
| TL_DLL bool | TeWithin (const TeCoord2D &c1, const TeCoord2D &c2) |
| Check if coordinate 1 is within coordinate 2. | |
Definition at line 1081 of file TeGeometryAlgorithms.cpp.
References TeGeometry::box(), TeGeomSingle< T >::location(), and TeWithin().
Definition at line 1076 of file TeGeometryAlgorithms.cpp.
References TeGeometry::box(), TeMakePolygon(), and TeWithin().
01077 { 01078 return TeWithin(TeMakePolygon(cell.box()), poly); 01079 }
Definition at line 1070 of file TeGeometryAlgorithms.cpp.
References TeGeometry::box(), TeMakePolygon(), and TeWithin().
01071 { 01072 return TeWithin(line, TeMakePolygon(cell.box())); 01073 }
Definition at line 1065 of file TeGeometryAlgorithms.cpp.
References TeGeometry::box(), and TeWithin().
Definition at line 1044 of file TeGeometryAlgorithms.cpp.
References TeGeometryAlgorithmsPrecision::IsGreaterEqual(), TeBox::x1(), TeBox::x2(), TeBox::y1(), and TeBox::y2().
01045 { 01046 // bx1 left wall is left of or on bx2 left wall 01047 if(TeGeometryAlgorithmsPrecision::IsGreaterEqual(bx2.x1(), bx1.x1())) 01048 return false; 01049 01050 // bx1 right wall is right of or on bx2 right wall 01051 if(TeGeometryAlgorithmsPrecision::IsGreaterEqual(bx1.x2(), bx2.x2())) 01052 return false; 01053 01054 // bx1 is below bx2 or on. 01055 if(TeGeometryAlgorithmsPrecision::IsGreaterEqual(bx2.y1(), bx1.y1())) 01056 return false; 01057 01058 // bx1 is above bx2 or on 01059 if(TeGeometryAlgorithmsPrecision::IsGreaterEqual(bx1.y2(), bx2.y2())) 01060 return false; 01061 01062 return true; 01063 }
Definition at line 1036 of file TeGeometryAlgorithms.cpp.
References TeGeometry::box(), TeRelation(), TeWITHIN, and TeWithinOrCoveredByOrEquals().
01037 { 01038 if(TeWithinOrCoveredByOrEquals(redPol.box(), bluePol.box())) 01039 return TeRelation(redPol, bluePol) == TeWITHIN; 01040 else 01041 return false; 01042 }
Definition at line 1027 of file TeGeometryAlgorithms.cpp.
References TeGeometry::box(), TeRelation(), TeWITHIN, and TeWithinOrCoveredByOrEquals().
01028 { 01029 if(TeWithinOrCoveredByOrEquals(l.box(), pol.box())) 01030 return TeRelation(l, pol) == TeWITHIN; 01031 01032 01033 return false; 01034 }
Definition at line 1019 of file TeGeometryAlgorithms.cpp.
References TeGeometry::box(), TeRelation(), TeWITHIN, and TeWithinOrCoveredByOrEquals().
01020 { 01021 if(TeWithinOrCoveredByOrEquals(redLine.box(), blueLine.box())) 01022 return TeRelation(redLine, blueLine, TeWITHIN) == TeWITHIN; 01023 else 01024 return false; 01025 }
Definition at line 1014 of file TeGeometryAlgorithms.cpp.
References TeGeomSingle< T >::location(), and TeWithin().
Definition at line 1009 of file TeGeometryAlgorithms.cpp.
References TeGeomSingle< T >::location(), and TeWithin().
Definition at line 1004 of file TeGeometryAlgorithms.cpp.
References TeGeomSingle< T >::location(), and TeWithin().
Definition at line 999 of file TeGeometryAlgorithms.cpp.
References TeINSIDE, and TeRelation().
01000 { 01001 return TeRelation(c, pol) == TeINSIDE; 01002 }
Definition at line 994 of file TeGeometryAlgorithms.cpp.
References TeINSIDE, and TeRelation().
00995 { 00996 return TeRelation(c, l) == TeINSIDE; 00997 }
Definition at line 987 of file TeGeometryAlgorithms.cpp.
References TeGeometryAlgorithmsPrecision::IsGreater(), TeCoord2D::x(), TeBox::x1(), TeBox::x2(), TeCoord2D::y(), TeBox::y1(), and TeBox::y2().
00988 { 00989 // c to the right of b left wall AND c to the left of b right wall 00990 // AND c below b top wall AND c above b bottom wall => then c is on b interior. 00991 return (TeGeometryAlgorithmsPrecision::IsGreater(c.x(), b.x1()) && TeGeometryAlgorithmsPrecision::IsGreater(b.x2(), c.x()) && TeGeometryAlgorithmsPrecision::IsGreater(b.y2(), c.y()) && TeGeometryAlgorithmsPrecision::IsGreater(c.y(), b.y1())); 00992 }
Definition at line 982 of file TeGeometryAlgorithms.cpp.
References TeEquals().
00983 { 00984 return TeEquals(c1, c2); 00985 }
1.5.3