PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ rt_pixtype_compare_clamped_values()

rt_errorstate rt_pixtype_compare_clamped_values ( rt_pixtype  pixtype,
double  val,
double  refval,
int *  isequal 
)

Returns 1 if clamped values are equal, 0 if not equal, -1 if error.

Test to see if two values are equal when clamped.

Parameters
pixtype: the pixel type to clamp the provided values
val: value to compare to reference value
refval: reference value to be compared with
isequal: non-zero if clamped values are equal, 0 otherwise
Returns
ES_NONE on success, ES_ERROR on error

Definition at line 211 of file rt_pixel.c.

215 {
216 assert(isequal != NULL);
217 *isequal = 0;
218
219 switch (pixtype) {
220 case PT_1BB:
221 if (rt_util_clamp_to_1BB(val) == rt_util_clamp_to_1BB(refval))
222 *isequal = 1;
223 break;
224 case PT_2BUI:
226 *isequal = 1;
227 break;
228 case PT_4BUI:
230 *isequal = 1;
231 break;
232 case PT_8BSI:
234 *isequal = 1;
235 break;
236 case PT_8BUI:
238 *isequal = 1;
239 break;
240 case PT_16BSI:
242 *isequal = 1;
243 break;
244 case PT_16BUI:
246 *isequal = 1;
247 break;
248 case PT_16BF:
250 *isequal = 1;
251 break;
252 case PT_32BSI:
254 *isequal = 1;
255 break;
256 case PT_32BUI:
258 *isequal = 1;
259 break;
260 case PT_32BF:
262 *isequal = 1;
263 break;
264 case PT_64BF:
265 if (FLT_EQ(val, refval))
266 *isequal = 1;
267 break;
268 default:
269 rterror("rt_pixtype_compare_clamped_values: Unknown pixeltype %d", pixtype);
270 return ES_ERROR;
271 }
272
273 return ES_NONE;
274}
void rterror(const char *fmt,...) __attribute__((format(printf
Wrappers used for reporting errors and info.
int8_t rt_util_clamp_to_8BSI(double value)
Definition rt_util.c:51
uint8_t rt_util_clamp_to_1BB(double value)
Definition rt_util.c:36
float rt_util_clamp_to_16F(double value)
Definition rt_util.c:88
int32_t rt_util_clamp_to_32BSI(double value)
Definition rt_util.c:71
@ PT_32BUI
Definition librtcore.h:197
@ PT_16BF
Definition librtcore.h:198
@ PT_2BUI
Definition librtcore.h:190
@ PT_32BSI
Definition librtcore.h:196
@ PT_4BUI
Definition librtcore.h:191
@ PT_32BF
Definition librtcore.h:199
@ PT_1BB
Definition librtcore.h:189
@ PT_16BUI
Definition librtcore.h:195
@ PT_8BSI
Definition librtcore.h:192
@ PT_16BSI
Definition librtcore.h:194
@ PT_64BF
Definition librtcore.h:200
@ PT_8BUI
Definition librtcore.h:193
#define FLT_EQ(x, y)
Definition librtcore.h:2436
uint8_t rt_util_clamp_to_2BUI(double value)
Definition rt_util.c:41
uint8_t rt_util_clamp_to_8BUI(double value)
Definition rt_util.c:56
@ ES_NONE
Definition librtcore.h:182
@ ES_ERROR
Definition librtcore.h:183
int16_t rt_util_clamp_to_16BSI(double value)
Definition rt_util.c:61
uint8_t rt_util_clamp_to_4BUI(double value)
Definition rt_util.c:46
uint16_t rt_util_clamp_to_16BUI(double value)
Definition rt_util.c:66
uint32_t rt_util_clamp_to_32BUI(double value)
Definition rt_util.c:76
float rt_util_clamp_to_32F(double value)
Definition rt_util.c:81

References ES_ERROR, ES_NONE, FLT_EQ, PT_16BF, PT_16BSI, PT_16BUI, PT_1BB, PT_2BUI, PT_32BF, PT_32BSI, PT_32BUI, PT_4BUI, PT_64BF, PT_8BSI, PT_8BUI, rt_util_clamp_to_16BSI(), rt_util_clamp_to_16BUI(), rt_util_clamp_to_16F(), rt_util_clamp_to_1BB(), rt_util_clamp_to_2BUI(), rt_util_clamp_to_32BSI(), rt_util_clamp_to_32BUI(), rt_util_clamp_to_32F(), rt_util_clamp_to_4BUI(), rt_util_clamp_to_8BSI(), rt_util_clamp_to_8BUI(), and rterror().

Referenced by rt_band_clamped_value_is_nodata(), rt_band_get_pixel_of_value(), and test_pixtype_compare_clamped_values().

Here is the call graph for this function:
Here is the caller graph for this function: