5 #include <grass/raster.h> 6 #include <grass/calc.h> 23 for (i = 0; i <= argc; i++)
29 int f_graph(
int argc,
const int *argt,
void **args)
31 DCELL **argz = (DCELL **) args;
33 int n = (argc - 1) / 2;
42 if (argt[0] != DCELL_TYPE)
45 for (i = 1; i <= argc; i++)
46 if (argt[i] != DCELL_TYPE)
50 #define X(j) (argz[2 + 2 * (j) + 0][i]) 51 #define Y(j) (argz[2 + 2 * (j) + 1][i]) 52 #define x (argz[1][i]) 57 for (j = 0; j < n; j++)
61 for (j = 0; j < n - 1; j++)
73 if (IS_NULL_D(&
Y(n - 1)))
79 for (j = 0; j < n - 1; j++) {
83 if (IS_NULL_D(&
Y(j)) || IS_NULL_D(&
Y(j + 1)))
87 Y(j) + (
x -
X(j)) * (
Y(j + 1) -
Y(j)) / (
X(j + 1) -
X(j));
104 int f_graph2(
int argc,
const int *argt,
void **args)
106 DCELL **argz = (DCELL **) args;
107 DCELL *res = argz[0];
108 int n = (argc - 1) / 2;
117 if (argt[0] != DCELL_TYPE)
120 for (i = 1; i <= argc; i++)
121 if (argt[i] != DCELL_TYPE)
124 for (i = 0; i <
columns; i++) {
125 #define X(j) (argz[2 + (j) + 0][i]) 126 #define Y(j) (argz[2 + (j) + n][i]) 127 #define x (argz[1][i]) 132 for (j = 0; j < n; j++)
133 if (IS_NULL_D(&
X(j)))
136 for (j = 0; j < n - 1; j++)
137 if (
X(j + 1) <=
X(j))
141 if (IS_NULL_D(&
Y(0)))
148 if (IS_NULL_D(&
Y(n - 1)))
154 for (j = 0; j < n - 1; j++) {
158 if (IS_NULL_D(&
Y(j)) || IS_NULL_D(&
Y(j + 1)))
162 Y(j) + (
x -
X(j)) * (
Y(j + 1) -
Y(j)) / (
X(j + 1) -
X(j));
int f_graph2(int argc, const int *argt, void **args)
int c_graph(int argc, int *argt)
int f_graph(int argc, const int *argt, void **args)