units.c 827 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include <string.h>
  2. #include "global.h"
  3. int conv_units()
  4. {
  5. int i, rad;
  6. double f, sq_f;
  7. rad = 0;
  8. f = G_meters_to_units_factor(options.units);
  9. sq_f = G_meters_to_units_factor_sq(options.units);
  10. if (options.units == U_RADIANS)
  11. rad = 1;
  12. switch (options.option) {
  13. case O_LENGTH:
  14. case O_PERIMETER:
  15. for (i = 0; i < vstat.rcat; i++)
  16. Values[i].d1 *= f;
  17. break;
  18. case O_AREA:
  19. for (i = 0; i < vstat.rcat; i++)
  20. Values[i].d1 *= sq_f;
  21. break;
  22. case O_COMPACT:
  23. case O_FD:
  24. for (i = 0; i < vstat.rcat; i++) {
  25. Values[i].d1 *= sq_f;
  26. Values[i].d2 *= f;
  27. }
  28. break;
  29. case O_AZIMUTH:
  30. if (rad == 0) {
  31. for (i = 0; i < vstat.rcat; i++) {
  32. if (Values[i].d1 > 0)
  33. Values[i].d1 = Values[i].d1*(180/M_PI);
  34. }
  35. }
  36. break;
  37. }
  38. return 0;
  39. }