10 #define _USE_MATH_DEFINES
13 #define MAX_VERTICES 1000
27 DtIntMatrix(
int x = 0,
int y = 0) : mCountX(0), mCountY(0), mBuffer(NULL) { SetDimensions(x, y); }
29 size_t Size()
const {
return mCountX * mCountY; }
30 size_t CountX()
const {
return mCountX; }
31 size_t CountY()
const {
return mCountY; }
32 void SetDimensions(
int x,
int y);
33 void Set(
int x,
int y,
int value);
34 int Get(
int x,
int y)
const;
45 int Get(
int ind)
const;
46 int Size()
const {
return mSize; }
64 for (i = 0, j = polygon.
nvert - 1; i < polygon.
nvert; j = i++) {
65 if (((polygon.
verty[i] > testy) != (polygon.
verty[j] > testy)) &&
66 (testx < (polygon.
vertx[j] - polygon.
vertx[i]) * (testy - polygon.
verty[i]) /
75 for (i = 0; i < polygon1.
nvert; i++) {
76 if (IsPointInsidePolygon(polygon2, polygon1.
vertx[i], polygon1.
verty[i]))
79 for (i = 0; i < polygon2.
nvert; i++) {
80 if (IsPointInsidePolygon(polygon1, polygon2.
vertx[i], polygon2.
verty[i]))
88 int j = polygon.
nvert - 1;
89 for (
int i = 0; i < polygon.
nvert; i++)
94 return (
float)fabs(area / 2.0);
98 minx = polygon.
vertx[0];
99 miny = polygon.
verty[0];
100 maxx = polygon.
vertx[0];
101 maxy = polygon.
verty[0];
102 for (
int i = 1; i < polygon.
nvert; i++) {
103 if (minx > polygon.
vertx[i])
104 minx = polygon.
vertx[i];
105 if (miny > polygon.
verty[i])
106 miny = polygon.
verty[i];
107 if (maxx < polygon.
vertx[i])
108 maxx = polygon.
vertx[i];
109 if (maxy < polygon.
verty[i])
110 maxy = polygon.
verty[i];
113 static double Distance(
double x1,
double y1,
double x2,
double y2)
117 return sqrt(dx * dx + dy * dy);
119 static double DegreeBetween(
double x1,
double y1,
double x2,
double y2);
120 static void PointFromPointDistanceDegree(
double originX,
double originY,
double distance,
double degree,
121 double& pointX,
double& pointY);
#define MAX_VERTICES
Definition: terrainUtility.h:13
size_t mCountX
Definition: terrainUtility.h:37
float verty[MAX_VERTICES]
Definition: terrainUtility.h:20
static bool IsPointInsidePolygon(const DtArea &polygon, float testx, float testy)
Definition: terrainUtility.h:61
Definition: terrainUtility.h:58
int nvert
Definition: terrainUtility.h:18
float vertx[MAX_VERTICES]
Definition: terrainUtility.h:19
static float polygonArea(const DtArea &polygon)
Definition: terrainUtility.h:85
size_t CountX() const
Definition: terrainUtility.h:30
~DtIntMatrix()
Definition: terrainUtility.h:28
int mX
Definition: terrainUtility.h:49
static bool PolygonsOverlap(const DtArea &polygon1, const DtArea &polygon2)
Definition: terrainUtility.h:72
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:38
static double Distance(double x1, double y1, double x2, double y2)
Definition: terrainUtility.h:113
int Size() const
Definition: terrainUtility.h:46
DtIntMatrix(int x=0, int y=0)
Definition: terrainUtility.h:27
int * mBuffer
Definition: terrainUtility.h:36
Definition: terrainUtility.h:15
size_t CountY() const
Definition: terrainUtility.h:31
static void PolygonBoundaries(const DtArea &polygon, float &minx, float &miny, float &maxx, float &maxy)
Definition: terrainUtility.h:96
size_t Size() const
Definition: terrainUtility.h:29
int mDx
Definition: terrainUtility.h:51
const DtIntMatrix & mSource
Definition: terrainUtility.h:48
Definition: terrainUtility.h:41
Definition: terrainUtility.h:24
int mDy
Definition: terrainUtility.h:52
int mSize
Definition: terrainUtility.h:53
int mY
Definition: terrainUtility.h:50