[Liblas-commits] laszip: i always forget one

liblas-commits at liblas.org liblas-commits at liblas.org
Wed Mar 23 18:17:09 EDT 2011


details:   http://hg.liblas.orglaszip/rev/647334988f9c
changeset: 198:647334988f9c
user:      isenburg
date:      Wed Mar 23 15:29:02 2011 -0700
description:
i always forget one

diffstat:

 src/mydefs.hpp |  34 ++++++++++++++++++++++++++--------
 1 files changed, 26 insertions(+), 8 deletions(-)

diffs (53 lines):

diff -r 0e51d121331b -r 647334988f9c src/mydefs.hpp
--- a/src/mydefs.hpp	Wed Mar 23 02:40:29 2011 -0700
+++ b/src/mydefs.hpp	Wed Mar 23 15:29:02 2011 -0700
@@ -60,8 +60,8 @@
 typedef union U32I32F32 { U32 u32; I32 i32; F32 f32; } U32I32F32;
 typedef union U64I64F64 { U64 u64; I64 i64; F64 f64; } U64I64F64;
 
-#define F32_MAX            +1.0e+30f
-#define F32_MIN            -1.0e+30f
+#define F32_MAX            +2.0e+37f
+#define F32_MIN            -2.0e+37f
 
 #define U8_MIN             ((U8)0x0)  // 0
 #define U8_MAX             ((U8)0xFF) // 255
@@ -88,14 +88,32 @@
 #define I32_MIN            ((I32)0x80000000) // -2147483648
 #define I32_MAX            ((I32)0x7FFFFFFF) //  2147483647
 
-#define I8_CLAMP(n)     ((n <= I8_MIN) ? I8_MIN : ((n >= I8_MAX) ? I8_MAX : ((I8)n)))
-#define U8_CLAMP(n)     ((n <= U8_MIN) ? U8_MIN : ((n >= U8_MAX) ? U8_MAX : ((U8)n)))
+#define U8_FOLD(n)      (((n) < U8_MIN) ? (n+U8_MAX_PLUS_ONE) : (((n) > U8_MAX) ? (n-U8_MAX_PLUS_ONE) : (n)))
+
+#define I8_CLAMP(n)     (((n) <= I8_MIN) ? I8_MIN : (((n) >= I8_MAX) ? I8_MAX : ((I8)(n))))
+#define U8_CLAMP(n)     (((n) <= U8_MIN) ? U8_MIN : (((n) >= U8_MAX) ? U8_MAX : ((U8)(n))))
 
-#define I16_CLAMP(n)    ((n <= I16_MIN) ? I16_MIN : ((n >= I16_MAX) ? I16_MAX : ((I16)n)))
-#define U16_CLAMP(n)    ((n <= U16_MIN) ? U16_MIN : ((n >= U16_MAX) ? U16_MAX : ((U16)n)))
+#define I16_CLAMP(n)    (((n) <= I16_MIN) ? I16_MIN : (((n) >= I16_MAX) ? I16_MAX : ((I16)(n))))
+#define U16_CLAMP(n)    (((n) <= U16_MIN) ? U16_MIN : (((n) >= U16_MAX) ? U16_MAX : ((U16)(n))))
 
-#define I32_CLAMP(n)    ((n <= I32_MIN) ? I32_MIN : ((n >= I32_MAX) ? I32_MAX : ((I32)n)))
-#define U32_CLAMP(n)    ((n <= U32_MIN) ? U32_MIN : ((n >= U32_MAX) ? U32_MAX : ((U32)n)))
+#define I32_CLAMP(n)    (((n) <= I32_MIN) ? I32_MIN : (((n) >= I32_MAX) ? I32_MAX : ((I32)(n))))
+#define U32_CLAMP(n)    (((n) <= U32_MIN) ? U32_MIN : (((n) >= U32_MAX) ? U32_MAX : ((U32)(n))))
+
+#define I16_QUANTIZE(n) (((n) >= 0) ? (I16)((n)+0.5f) : (I16)((n)-0.5f))
+#define U16_QUANTIZE(n) (((n) >= 0) ? (U16)((n)+0.5f) : (U16)(0))
+
+#define I32_QUANTIZE(n) (((n) >= 0) ? (I32)((n)+0.5f) : (I32)((n)-0.5f))
+#define U32_QUANTIZE(n) (((n) >= 0) ? (U32)((n)+0.5f) : (U32)(0))
+
+#define I16_FLOOR(n) ((((I16)(n)) < (n)) ? (I16)(n) : (((I16)(n))-1))
+#define I32_FLOOR(n) ((((I32)(n)) < (n)) ? (I32)(n) : (((I32)(n))-1))
+#define I64_FLOOR(n) ((((I64)(n)) < (n)) ? (I64)(n) : (((I64)(n))-1))
+
+#define I16_CEIL(n) ((((I16)(n)) > (n)) ? (I16)(n) : (((I16)(n))+1))
+#define I32_CEIL(n) ((((I32)(n)) > (n)) ? (I32)(n) : (((I32)(n))+1))
+#define I64_CEIL(n) ((((I64)(n)) > (n)) ? (I64)(n) : (((I64)(n))+1))
+
+#define U32_ZERO_BIT_0(n) (((n)&(U32)0xFFFFFFFE))
 
 #ifndef FALSE
 #define FALSE   0


More information about the Liblas-commits mailing list