9 #define _USE_MATH_DEFINES
12 #define MAX_VERTICES 1000
26 DtIntMatrix(
int x = 0,
int y = 0) : mCountX(0), mCountY(0), mBuffer(NULL) { SetDimensions(x, y); }
28 size_t Size()
const {
return mCountX * mCountY; }
29 size_t CountX()
const {
return mCountX; }
30 size_t CountY()
const {
return mCountY; }
31 void SetDimensions(
int x,
int y);
32 void Set(
int x,
int y,
int value);
33 int Get(
int x,
int y)
const;
44 int Get(
int ind)
const;
45 int Size()
const {
return mSize; }
63 for (i = 0, j = polygon.
nvert - 1; i < polygon.
nvert; j = i++) {
64 if (((polygon.
verty[i] > testy) != (polygon.
verty[j] > testy)) &&
65 (testx < (polygon.
vertx[j] - polygon.
vertx[i]) * (testy - polygon.
verty[i]) /
74 for (i = 0; i < polygon1.
nvert; i++) {
75 if (IsPointInsidePolygon(polygon2, polygon1.
vertx[i], polygon1.
verty[i]))
78 for (i = 0; i < polygon2.
nvert; i++) {
79 if (IsPointInsidePolygon(polygon1, polygon2.
vertx[i], polygon2.
verty[i]))
87 int j = polygon.
nvert - 1;
88 for (
int i = 0; i < polygon.
nvert; i++)
93 return (
float)fabs(area / 2.0);
97 minx = polygon.
vertx[0];
98 miny = polygon.
verty[0];
99 maxx = polygon.
vertx[0];
100 maxy = polygon.
verty[0];
101 for (
int i = 1; i < polygon.
nvert; i++) {
102 if (minx > polygon.
vertx[i])
103 minx = polygon.
vertx[i];
104 if (miny > polygon.
verty[i])
105 miny = polygon.
verty[i];
106 if (maxx < polygon.
vertx[i])
107 maxx = polygon.
vertx[i];
108 if (maxy < polygon.
verty[i])
109 maxy = polygon.
verty[i];
112 static double Distance(
double x1,
double y1,
double x2,
double y2)
116 return sqrt(dx * dx + dy * dy);
118 static double DegreeBetween(
double x1,
double y1,
double x2,
double y2);
119 static void PointFromPointDistanceDegree(
double originX,
double originY,
double distance,
double degree,
120 double& pointX,
double& pointY);
#define MAX_VERTICES
Definition: terrainUtility.h:12
size_t mCountX
Definition: terrainUtility.h:36
float verty[MAX_VERTICES]
Definition: terrainUtility.h:19
static bool IsPointInsidePolygon(const DtArea &polygon, float testx, float testy)
Definition: terrainUtility.h:60
Definition: terrainUtility.h:57
int nvert
Definition: terrainUtility.h:17
float vertx[MAX_VERTICES]
Definition: terrainUtility.h:18
static float polygonArea(const DtArea &polygon)
Definition: terrainUtility.h:84
size_t CountX() const
Definition: terrainUtility.h:29
~DtIntMatrix()
Definition: terrainUtility.h:27
int mX
Definition: terrainUtility.h:48
static bool PolygonsOverlap(const DtArea &polygon1, const DtArea &polygon2)
Definition: terrainUtility.h:71
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
size_t mCountY
Definition: terrainUtility.h:37
static double Distance(double x1, double y1, double x2, double y2)
Definition: terrainUtility.h:112
int Size() const
Definition: terrainUtility.h:45
DtIntMatrix(int x=0, int y=0)
Definition: terrainUtility.h:26
int * mBuffer
Definition: terrainUtility.h:35
Definition: terrainUtility.h:14
size_t CountY() const
Definition: terrainUtility.h:30
static void PolygonBoundaries(const DtArea &polygon, float &minx, float &miny, float &maxx, float &maxy)
Definition: terrainUtility.h:95
size_t Size() const
Definition: terrainUtility.h:28
int mDx
Definition: terrainUtility.h:50
const DtIntMatrix & mSource
Definition: terrainUtility.h:47
Definition: terrainUtility.h:40
Definition: terrainUtility.h:23
int mDy
Definition: terrainUtility.h:51
int mSize
Definition: terrainUtility.h:52
int mY
Definition: terrainUtility.h:49