Within test
[Topological operators]


Detailed Description

   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.


Function Documentation

TL_DLL bool TeWithin ( const TePoint point,
const TeCell cell 
)

Definition at line 1081 of file TeGeometryAlgorithms.cpp.

References TeGeometry::box(), TeGeomSingle< T >::location(), and TeWithin().

01082 {
01083         return TeWithin(point.location(), cell.box());
01084 }

TL_DLL bool TeWithin ( const TeCell cell,
const TePolygon poly 
)

Definition at line 1076 of file TeGeometryAlgorithms.cpp.

References TeGeometry::box(), TeMakePolygon(), and TeWithin().

01077 {
01078         return TeWithin(TeMakePolygon(cell.box()), poly);
01079 }

TL_DLL bool TeWithin ( const TeLine2D line,
const TeCell cell 
)

Definition at line 1070 of file TeGeometryAlgorithms.cpp.

References TeGeometry::box(), TeMakePolygon(), and TeWithin().

01071 {
01072         return TeWithin(line, TeMakePolygon(cell.box()));
01073 }

TL_DLL bool TeWithin ( const TeCell cell1,
const TeCell cell2 
)

Definition at line 1065 of file TeGeometryAlgorithms.cpp.

References TeGeometry::box(), and TeWithin().

01066 {
01067         return TeWithin(cell1.box(), cell2.box());
01068 }

TL_DLL bool TeWithin ( const TeBox bx1,
const TeBox bx2 
)

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 }

TL_DLL bool TeWithin ( const TePolygon redPol,
const TePolygon bluePol 
)

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 }

TL_DLL bool TeWithin ( const TeLine2D l,
const TePolygon pol 
)

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 }

TL_DLL bool TeWithin ( const TeLine2D redLine,
const TeLine2D blueLine 
)

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 }

TL_DLL bool TeWithin ( const TePoint p,
const TePolygon pol 
)

Definition at line 1014 of file TeGeometryAlgorithms.cpp.

References TeGeomSingle< T >::location(), and TeWithin().

01015 {
01016         return TeWithin(p.location(), pol);
01017 }

TL_DLL bool TeWithin ( const TePoint p,
const TeLine2D l 
)

Definition at line 1009 of file TeGeometryAlgorithms.cpp.

References TeGeomSingle< T >::location(), and TeWithin().

01010 {
01011         return TeWithin(p.location(), l);
01012 }

TL_DLL bool TeWithin ( const TePoint p1,
const TePoint p2 
)

Definition at line 1004 of file TeGeometryAlgorithms.cpp.

References TeGeomSingle< T >::location(), and TeWithin().

01005 {
01006         return TeWithin(p1.location(), p2.location());
01007 }

TL_DLL bool TeWithin ( const TeCoord2D c,
const TePolygon pol 
)

Definition at line 999 of file TeGeometryAlgorithms.cpp.

References TeINSIDE, and TeRelation().

01000 {
01001         return TeRelation(c, pol) == TeINSIDE;
01002 }

TL_DLL bool TeWithin ( const TeCoord2D c,
const TeLine2D l 
)

Definition at line 994 of file TeGeometryAlgorithms.cpp.

References TeINSIDE, and TeRelation().

00995 {
00996         return TeRelation(c, l) == TeINSIDE;
00997 }

TL_DLL bool TeWithin ( const TeCoord2D c,
const TeBox b 
)

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 }

TL_DLL bool TeWithin ( const TeCoord2D c1,
const TeCoord2D c2 
)

Definition at line 982 of file TeGeometryAlgorithms.cpp.

References TeEquals().

00983 {
00984         return TeEquals(c1, c2);
00985 }


Generated on Sun Jul 29 04:04:39 2012 for TerraLib - Development Source by  doxygen 1.5.3