| TerraLib 4.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

Classes | Namespaces | Typedefs | Functions
E:/Projetos_Primeiro_Semestre_2012/TerraView/terralib/src/terralib/kernel/TeOverlayUtils.h File Reference

This file contains support algorithms for set operations. These data structures and algorithms MUST BE USED ONLY BY TerraLib kernel and should NOT be used by anyone. THIS IS FOR INTERNAL USE ONLY. More...

`#include <map>`
`#include <vector>`
`#include <algorithm>`
`#include "TeGeometry.h"`
`#include "TeIntersector.h"`

Go to the source code of this file.

## Classes

struct | TeOVERLAY::xyOrder
| Defines a functor for coordinate order during map insert and retrival: lexicograpgical order (xy) More...
struct | TeOVERLAY::segOrder
| Defines a functor for ordering segments during point in poly tests. More...

## Namespaces

namespace | TeOVERLAY

| Contains structures and definitions needed to execute Set Operations for polygons and lines (union, intersection e difference).

## Typedefs

typedef multimap< TeCoord2D, pair< unsigned int, TeLine2D > , xyOrder > | TeOVERLAY::TeLineIndex
| Type to index fragments end points: used during merge fase.

## Functions

TL_DLL void | TeOVERLAY::TeFixOrientation (TePolygonSet &polSet, const short &outerOrientationToReverse, const short &innerOrientationToReverse)
| Verifies orientation for each line of polygon set, and reverse the orientation if need.
TL_DLL void | TeOVERLAY::TeChooseBoundaryLocation (const short &operation, short &locationRedFragments, short &locationBlueFragments)
| For each operation (union, intersection and difference) defines location for retrieval of fragments.
TL_DLL void | TeOVERLAY::TeRemoveOpositeBoundaryFragments (TeLineIndex &fragmentsIndex)
| Erases from fragmentsIndex boundary fragments that are in oposite direction: each fragment must have a unique identifier in the pair first field (pair<unsigned int, TeLine2D>)
TL_DLL void | TeOVERLAY::TeRemoveSameBoundaryFragments (TeLineIndex &fragmentsIndex)
| Erases from fragmentsIndex boundary fragments that are equals to another boundary fragment.
TL_DLL void | TeOVERLAY::TeJoinFragments (TeLineIndex &fragmentsIndex, TeLineIndex &boundaryFragmentsIndex)
| Merge fragments ito first index (fragmentsIndex)
TL_DLL void | TeOVERLAY::TeFindAndMoveClosedRings (TeLineIndex &fragmentsIndex, vector< TeLinearRing > &rings)
| Moves closed rings from fragmentsIndex to rins vector.
TL_DLL bool | TeOVERLAY::TeMountTopology (TePolygonSet &polysOut, vector< TeLinearRing > &holes)
| Gets a polygonset with outer rings and a vector with holes and try to find to what polygon the hole belongs to.
TL_DLL bool | TeOVERLAY::TeMergeFragments (TeLineIndex &fragmentsIndex, vector< TeLinearRing > &rings, const bool &doExaustive=false)
| Make polygons from fragments.
TL_DLL bool | TeOVERLAY::TeClassifyRings (vector< TeLinearRing > &rings, TePolygonSet &polsOut, vector< TeLinearRing > &holes)
| For each linear ring, see it's orientation and classify in outer or inner ring.
TL_DLL void | TeOVERLAY::TeRtreeGetFragments (const TePolygonSet &bluePolygons, TeINTERSECTOR2::TeSegmentRTree &blueTree, TeLineSet &redFragments, const short &locationFragments, short &mask, TeLineIndex &redFragmentsIndex, vector< TeLinearRing > &rings)
| Find fragments in the red set that satisfies locationFragments using blue set as reference.
TL_DLL void | TeOVERLAY::TeRtreeGetFragments (const TePolygonSet &polygons, TeINTERSECTOR2::TeSegmentRTree &tree, TeLineSet &fragments, vector< pair< unsigned int, unsigned int > > &fragmentsIds, const short &locationFragments, short &mask, TeLineIndex &fragmentsIndex, vector< TeLinearRing > &rings)
| Find fragments in the same set that satisfies locationFragments.
TL_DLL void | TeOVERLAY::TeRtreeRemoveFragments (const TePolygonSet &polygons, TeINTERSECTOR2::TeSegmentRTree &tree, TeLineIndex &lineIndex, vector< pair< unsigned int, unsigned int > > &fragmentsIds, const short &locationFragments, short &mask, vector< TeLinearRing > &rings)
| Removes fragments that may overlap with others: used in special cases during union process.
TL_DLL bool | TeOVERLAY::TeSplitRing (TeLinearRing &ring, TeLineSet &ringsOut)
| Split rings if they have commom end points.
TL_DLL bool | TeOVERLAY::TeSplitRings (vector< TeLinearRing > &rings, vector< TeLinearRing > &ringsOut)
| Split rings if they have commom end points.
TL_DLL bool | TeOVERLAY::TeCloneLine (const TeLine2D &lineIn, TeLine2D &lineOut, const unsigned int &minPts)
| Clone line point removing duplicated coordinates.
TL_DLL bool | TeOVERLAY::TeClonePolygon (const TePolygon &polIn, TePolygon &polOut)
| Clone polygon lines and try to remove duplicated coordinates from lines.
TL_DLL bool | TeOVERLAY::TeClonePolygonSet (const TePolygonSet &polsIn, TePolygonSet &polsOut)
| Clone polygons lines and try to remove duplicated coordinates from lines.

## Detailed Description

This file contains support algorithms for set operations. These data structures and algorithms MUST BE USED ONLY BY TerraLib kernel and should NOT be used by anyone. THIS IS FOR INTERNAL USE ONLY.

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines