xrowcol.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include <grass/gis.h>
  2. #include <grass/raster.h>
  3. #include "globals.h"
  4. #include "expression.h"
  5. #include "func_proto.h"
  6. /**********************************************************************
  7. col() column number
  8. row() row number
  9. depth() depth number
  10. **********************************************************************/
  11. int f_col(int argc, const int *argt, void **args)
  12. {
  13. CELL *res = args[0];
  14. int i;
  15. if (argc > 0)
  16. return E_ARG_HI;
  17. if (argt[0] != CELL_TYPE)
  18. return E_RES_TYPE;
  19. for (i = 0; i < columns; i++)
  20. res[i] = i + 1;
  21. return 0;
  22. }
  23. int f_row(int argc, const int *argt, void **args)
  24. {
  25. CELL *res = args[0];
  26. int row = current_row + 1;
  27. int i;
  28. if (argc > 0)
  29. return E_ARG_HI;
  30. if (argt[0] != CELL_TYPE)
  31. return E_RES_TYPE;
  32. for (i = 0; i < columns; i++)
  33. res[i] = row;
  34. return 0;
  35. }
  36. int f_depth(int argc, const int *argt, void **args)
  37. {
  38. CELL *res = args[0];
  39. int depth = current_depth + 1;
  40. int i;
  41. if (argc > 0)
  42. return E_ARG_HI;
  43. if (argt[0] != CELL_TYPE)
  44. return E_RES_TYPE;
  45. for (i = 0; i < columns; i++)
  46. res[i] = depth;
  47. return 0;
  48. }