D:/usuarios/rodrigof/svn/tdk/src/peer/components/core/TdkTecGAlg.cpp File Reference

#include <math.h>
#include <float.h>
#include "TeGeometry.h"
#include "TeException.h"
#include "TeGeometryAlgorithms.h"
#include "TdkTecGAlg.h"

Defines

#define TE_LEFT   1
#define TE_RIGHT   2
#define TE_BOTTON   4
#define TE_TOP   8

Functions

static int RegionCode (double x, double y, double xmin, double ymin, double xmax, double ymax)
static bool IsDisjointLC (double x0, double y0, double x1, double y1, double x, double y, double r)
 Retuns true if the given line and circle are disjoint.
bool TeTecIsDisjoint (TeLine2D &polyline, double xmin, double ymin, double xmax, double ymax)
 Check if the given geometry object is disjoint from the given box.
bool TeTecIsDisjoint (TeLinearRing &ring, double xc, double yc, double r)
bool TeTecIsDisjoint (TeLinearRing &ring, double xmin, double ymin, double xmax, double ymax)
bool TeTecIsInside (double xmin, double ymin, double xmax, double ymax, TeLinearRing &ring)
bool TeTecIsDisjoint (TePolygon &poly, double xmin, double ymin, double xmax, double ymax)
bool TeTecIsDisjoint (TeLine2D &polyline, double xc, double yc, double r)
bool TeTecIsDisjoint (double xc, double yc, double r, double xmin, double ymin, double xmax, double ymax)
bool TeTecIsDisjoint (TePolygon &poly, double xc, double yc, double r)
void TeDistanceAndAzimuth (double x0, double y0, double x1, double y1, double *d, double *a)
 Computes the distance and the azimuth between two given points.

Define Documentation

#define TE_BOTTON   4

#define TE_LEFT   1

Tecgraf - GIS development team

Tdk Framework

@(#) TdkTecAlg.h

#define TE_RIGHT   2

#define TE_TOP   8


Function Documentation

static bool IsDisjointLC ( double  x0,
double  y0,
double  x1,
double  y1,
double  x,
double  y,
double  r 
) [static]

Retuns true if the given line and circle are disjoint.

static int RegionCode ( double  x,
double  y,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
) [static]

void TeDistanceAndAzimuth ( double  x0,
double  y0,
double  x1,
double  y1,
double *  d,
double *  a 
)

Computes the distance and the azimuth between two given points.

Parameters:
x0,y0 coordinates of the first point
y1,y1 coordinates of the second point
Return values:
d computed distance
a computed azimuth in degrees

bool TeTecIsDisjoint ( TePolygon &  poly,
double  xc,
double  yc,
double  r 
)

Actualy this function doesn't work correctely for polygons with holes. There is missing the implementation of the function for checking if the given circle is completely inside the given polygon.

bool TeTecIsDisjoint ( double  xc,
double  yc,
double  r,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

bool TeTecIsDisjoint ( TeLine2D &  polyline,
double  xc,
double  yc,
double  r 
)

bool TeTecIsDisjoint ( TePolygon &  poly,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

bool TeTecIsDisjoint ( TeLinearRing &  ring,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

bool TeTecIsDisjoint ( TeLinearRing &  ring,
double  xc,
double  yc,
double  r 
)

bool TeTecIsDisjoint ( TeLine2D &  polyline,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

Check if the given geometry object is disjoint from the given box.

As the set of geometries algoritms provided by the Terralib kernel is incomplete and some of them are even wrong, this set of functions were made in order to complement those algoritms.

bool TeTecIsInside ( double  xmin,
double  ymin,
double  xmax,
double  ymax,
TeLinearRing &  ring 
)


Generated on Fri Jun 15 16:54:18 2007 for TDK by  doxygen 1.5.2