1
2 /*!
3 * \file lib/gis/wind_limits.c
4 *
5 * \brief GIS Library - Projection limit functions.
6 *
7 * (C) 2001-2014 by the GRASS Development Team
8 *
9 * This program is free software under the GNU General Public License
10 * (>=v2). Read the file COPYING that comes with GRASS for details.
11 *
12 * \author GRASS GIS Development Team
13 *
14 * \date 1999-2014
15 */
16
17 #include <grass/gis.h>
18
19
20 /**
21 * \brief Function not yet implemented...
22 *
23 * If the projection has absolute limits (like lat/lon), then
24 * this routine modifies the input coordinate to be within the
25 * limit.<br>
26 *
27 * <b>Note:</b> Function not yet implemented.
28 *
29 * \param[in] east
30 * \param[in] proj
31 * \return 1 no change
32 * \return 0 changed
33 */
34
G_limit_east(double * east,int proj)35 int G_limit_east(double *east, int proj)
36 {
37 return 1;
38 }
39
40
41 /**
42 * \brief Function not yet implemented...
43 *
44 * If the projection has absolute limits (like lat/lon), then
45 * this routine modifies the input coordinate to be within the
46 * limit.<br>
47 *
48 * <b>Note:</b> Function not yet implemented.
49 *
50 * \param[in] west
51 * \param[in] proj
52 * \return 1 no change
53 * \return 0 changed
54 */
55
G_limit_west(double * west,int proj)56 int G_limit_west(double *west, int proj)
57 {
58 return 1;
59 }
60
61
62 /**
63 * \brief Limit north (y) coordinate
64 *
65 * If the projection has absolute limits (like lat/lon), then
66 * this routine modifies the input coordinate to be within the
67 * limit.<br>
68 *
69 * \param[in,out] north north coordinate
70 * \param[in] proj projection id
71 * \return 1 no change
72 * \return 0 changed
73 */
74
G_limit_north(double * north,int proj)75 int G_limit_north(double *north, int proj)
76 {
77 if (proj == PROJECTION_LL) {
78 if (*north > 90.0) {
79 *north = 90.0;
80 return 0;
81 }
82 if (*north < -90) {
83 *north = -90;
84 return 0;
85 }
86 }
87
88 return 1;
89 }
90
91
92 /**
93 * \brief Limit south (y) coordinate
94 *
95 * If the projection has absolute limits (like lat/lon), then
96 * this routine modifies the input coordinate to be within the
97 * limit.<br>
98 *
99 * \param[in] south south coordinate
100 * \param[in] proj projection id
101 * \return 1 no change
102 * \return 0 changed
103 */
104
G_limit_south(double * south,int proj)105 int G_limit_south(double *south, int proj)
106 {
107 if (proj == PROJECTION_LL) {
108 if (*south > 90.0) {
109 *south = 90.0;
110 return 0;
111 }
112 if (*south < -90) {
113 *south = -90;
114 return 0;
115 }
116 }
117
118 return 1;
119 }
120