GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-d6dec75dd4
|
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "index.h"
#include <float.h>
#include <math.h>
#include <grass/gis.h>
Go to the source code of this file.
Macros | |
#define | BIG_NUM (FLT_MAX / 4.0) |
#define | Undefined(x, t) ((x)->boundary[0] > (x)->boundary[t->ndims_alloc]) |
#define | UnitSphereVolume UnitSphereVolumes[NUMDIMS] |
Functions | |
struct RTree_Rect * | RTreeAllocRect (struct RTree *t) |
Create a new rectangle for a given tree. More... | |
void | RTreeFreeRect (struct RTree_Rect *r) |
Delete a rectangle. More... | |
RectReal * | RTreeAllocBoundary (struct RTree *t) |
Allocate the boundary array of a rectangle for a given tree. More... | |
void | RTreeFreeBoundary (struct RTree_Rect *r) |
Delete the boundary of a rectangle. More... | |
void | RTreeInitRect (struct RTree_Rect *r, struct RTree *t) |
Initialize a rectangle to have all 0 coordinates. More... | |
void | RTreeSetRect1D (struct RTree_Rect *r, struct RTree *t, double x_min, double x_max) |
Set one dimensional coordinates of a rectangle for a given tree. More... | |
void | RTreeSetRect2D (struct RTree_Rect *r, struct RTree *t, double x_min, double x_max, double y_min, double y_max) |
Set two dimensional coordinates of a rectangle for a given tree. More... | |
void | RTreeSetRect3D (struct RTree_Rect *r, struct RTree *t, double x_min, double x_max, double y_min, double y_max, double z_min, double z_max) |
Set three dimensional coordinates of a rectangle for a given tree. More... | |
void | RTreeSetRect4D (struct RTree_Rect *r, struct RTree *t, double x_min, double x_max, double y_min, double y_max, double z_min, double z_max, double t_min, double t_max) |
Set 4 dimensional coordinates of a rectangle for a given tree. More... | |
void | RTreeNullRect (struct RTree_Rect *r, struct RTree *t) |
void | RTreePrintRect (struct RTree_Rect *R, int depth, struct RTree *t) |
RectReal | RTreeRectVolume (struct RTree_Rect *R, struct RTree *t) |
RectReal | RTreeRectSphericalVolume (struct RTree_Rect *r, struct RTree *t) |
RectReal | RTreeRectSurfaceArea (struct RTree_Rect *r, struct RTree *t) |
RectReal | RTreeRectMargin (struct RTree_Rect *r, struct RTree *t) |
void | RTreeCombineRect (struct RTree_Rect *r1, struct RTree_Rect *r2, struct RTree_Rect *r3, struct RTree *t) |
int | RTreeExpandRect (struct RTree_Rect *r1, struct RTree_Rect *r2, struct RTree *t) |
int | RTreeCompareRect (struct RTree_Rect *r, struct RTree_Rect *s, struct RTree *t) |
int | RTreeOverlap (struct RTree_Rect *r, struct RTree_Rect *s, struct RTree *t) |
int | RTreeContained (struct RTree_Rect *r, struct RTree_Rect *s, struct RTree *t) |
int | RTreeContains (struct RTree_Rect *r, struct RTree_Rect *s, struct RTree *t) |
Variables | |
const double | UnitSphereVolumes [] |
#define UnitSphereVolume UnitSphereVolumes[NUMDIMS] |
Allocate the boundary array of a rectangle for a given tree.
This method allocated the boundary coordinates array in provided rectangle. It does not release previously allocated memory.
r | The pointer to rectangle to initialize the boundary coordinates. This is usually a rectangle that was created on the stack or self allocated. |
t | The pointer to a RTree struct |
Definition at line 81 of file rect.c.
References assert, RTree_Rect::boundary, malloc(), and t.
Referenced by RTreeAllocNode(), RTreeAllocRect(), and RTreeCreateTree().
struct RTree_Rect* RTreeAllocRect | ( | struct RTree * | t | ) |
Create a new rectangle for a given tree.
This method allocates a new rectangle and initializes the internal boundary coordinates based on the tree dimension.
Hence a call to RTreeNewBoundary() is not necessary.
t | The pointer to a RTree struct |
Definition at line 42 of file rect.c.
References assert, malloc(), r, RTreeAllocBoundary(), and t.
void RTreeCombineRect | ( | struct RTree_Rect * | r1, |
struct RTree_Rect * | r2, | ||
struct RTree_Rect * | r3, | ||
struct RTree * | t | ||
) |
int RTreeCompareRect | ( | struct RTree_Rect * | r, |
struct RTree_Rect * | s, | ||
struct RTree * | t | ||
) |
int RTreeContained | ( | struct RTree_Rect * | r, |
struct RTree_Rect * | s, | ||
struct RTree * | t | ||
) |
int RTreeContains | ( | struct RTree_Rect * | r, |
struct RTree_Rect * | s, | ||
struct RTree * | t | ||
) |
int RTreeExpandRect | ( | struct RTree_Rect * | r1, |
struct RTree_Rect * | r2, | ||
struct RTree * | t | ||
) |
Definition at line 536 of file rect.c.
References RTree_Rect::boundary, t, and Undefined.
Referenced by RTreeNodeCover().
void RTreeFreeBoundary | ( | struct RTree_Rect * | r | ) |
Delete the boundary of a rectangle.
This method deletes (free) the memory of the boundary of a rectangle and sets the boundary pointer to NULL.
r | The pointer to the rectangle to delete the boundary from. |
Definition at line 98 of file rect.c.
References assert, free(), NULL, and r.
Referenced by RTreeDestroyTree(), RTreeFreeListBranch(), RTreeFreeNode(), and RTreeFreeRect().
void RTreeFreeRect | ( | struct RTree_Rect * | r | ) |
void RTreeInitRect | ( | struct RTree_Rect * | r, |
struct RTree * | t | ||
) |
Initialize a rectangle to have all 0 coordinates.
Definition at line 109 of file rect.c.
Referenced by RTreeSetRect1D(), RTreeSetRect2D(), RTreeSetRect3D(), and RTreeSetRect4D().
void RTreeNullRect | ( | struct RTree_Rect * | r, |
struct RTree * | t | ||
) |
int RTreeOverlap | ( | struct RTree_Rect * | r, |
struct RTree_Rect * | s, | ||
struct RTree * | t | ||
) |
void RTreePrintRect | ( | struct RTree_Rect * | R, |
int | depth, | ||
struct RTree * | t | ||
) |
RectReal RTreeRectMargin | ( | struct RTree_Rect * | r, |
struct RTree * | t | ||
) |
RectReal RTreeRectSphericalVolume | ( | struct RTree_Rect * | r, |
struct RTree * | t | ||
) |
RectReal RTreeRectSurfaceArea | ( | struct RTree_Rect * | r, |
struct RTree * | t | ||
) |
RectReal RTreeRectVolume | ( | struct RTree_Rect * | R, |
struct RTree * | t | ||
) |
void RTreeSetRect1D | ( | struct RTree_Rect * | r, |
struct RTree * | t, | ||
double | x_min, | ||
double | x_max | ||
) |
Set one dimensional coordinates of a rectangle for a given tree.
All coordinates of the rectangle will be initialized to 0 before the x coordinates are set.
r | The pointer to the rectangle |
t | The pointer to the RTree |
x_min | The lower x coordinate |
x_max | The higher x coordinate |
Definition at line 128 of file rect.c.
References r, RTreeInitRect(), and t.
void RTreeSetRect2D | ( | struct RTree_Rect * | r, |
struct RTree * | t, | ||
double | x_min, | ||
double | x_max, | ||
double | y_min, | ||
double | y_max | ||
) |
Set two dimensional coordinates of a rectangle for a given tree.
All coordinates of the rectangle will be initialized to 0 before the x and y coordinates are set.
r | The pointer to the rectangle |
t | The pointer to the RTree |
x_min | The lower x coordinate |
x_max | The higher x coordinate |
y_min | The lower y coordinate |
y_max | The higher y coordinate |
Definition at line 149 of file rect.c.
References r, RTreeInitRect(), and t.
void RTreeSetRect3D | ( | struct RTree_Rect * | r, |
struct RTree * | t, | ||
double | x_min, | ||
double | x_max, | ||
double | y_min, | ||
double | y_max, | ||
double | z_min, | ||
double | z_max | ||
) |
Set three dimensional coordinates of a rectangle for a given tree.
All coordinates of the rectangle will be initialized to 0 before the x,y and z coordinates are set.
r | The pointer to the rectangle |
t | The pointer to the RTree |
x_min | The lower x coordinate |
x_max | The higher x coordinate |
y_min | The lower y coordinate |
y_max | The higher y coordinate |
z_min | The lower z coordinate |
z_max | The higher z coordinate |
Definition at line 174 of file rect.c.
References r, RTreeInitRect(), and t.
void RTreeSetRect4D | ( | struct RTree_Rect * | r, |
struct RTree * | t, | ||
double | x_min, | ||
double | x_max, | ||
double | y_min, | ||
double | y_max, | ||
double | z_min, | ||
double | z_max, | ||
double | t_min, | ||
double | t_max | ||
) |
Set 4 dimensional coordinates of a rectangle for a given tree.
All coordinates of the rectangle will be initialized to 0 before the x,y,z and t coordinates are set.
r | The pointer to the rectangle |
t | The pointer to the RTree |
x_min | The lower x coordinate |
x_max | The higher x coordinate |
y_min | The lower y coordinate |
y_max | The higher y coordinate |
z_min | The lower z coordinate |
z_max | The higher z coordinate |
t_min | The lower t coordinate |
t_max | The higher t coordinate |
Definition at line 204 of file rect.c.
References assert, r, RTreeInitRect(), and t.
const double UnitSphereVolumes[] |
Definition at line 368 of file rect.c.
Referenced by RTreeRectSphericalVolume().