[Bf-blender-cvs] [988b3d7] master: Add utility macros to clamp all elements of 2, 3, 4 component vectors

Sergey Sharybin noreply at git.blender.org
Tue Nov 4 12:57:20 CET 2014


Commit: 988b3d718835c1474353ff3aa04fce5e17ed2f2e
Author: Sergey Sharybin
Date:   Tue Nov 4 16:31:42 2014 +0500
Branches: master
https://developer.blender.org/rB988b3d718835c1474353ff3aa04fce5e17ed2f2e

Add utility macros to clamp all elements of 2,3,4 component vectors

===================================================================

M	source/blender/blenlib/BLI_utildefines.h

===================================================================

diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h
index 7365783..f318ae0 100644
--- a/source/blender/blenlib/BLI_utildefines.h
+++ b/source/blender/blenlib/BLI_utildefines.h
@@ -335,6 +335,60 @@
 	if      ((a) < (b)) (a) = (b);  \
 } (void)0
 
+#define CLAMP2(vec, b, c) { \
+	CLAMP((vec)[0], b, c); \
+	CLAMP((vec)[1], b, c); \
+} (void)0
+
+#define CLAMP2_MIN(vec, b) { \
+	CLAMP_MIN((vec)[0], b); \
+	CLAMP_MIN((vec)[1], b); \
+} (void)0
+
+#define CLAMP2_MAX(vec, b) { \
+	CLAMP_MAX((vec)[0], b); \
+	CLAMP_MAX((vec)[1], b); \
+} (void)0
+
+#define CLAMP3(vec, b, c) { \
+	CLAMP((vec)[0], b, c); \
+	CLAMP((vec)[1], b, c); \
+	CLAMP((vec)[2], b, c); \
+} (void)0
+
+#define CLAMP3_MIN(vec, b) { \
+	CLAMP_MIN((vec)[0], b); \
+	CLAMP_MIN((vec)[1], b); \
+	CLAMP_MIN((vec)[2], b); \
+} (void)0
+
+#define CLAMP3_MAX(vec, b) { \
+	CLAMP_MAX((vec)[0], b); \
+	CLAMP_MAX((vec)[1], b); \
+	CLAMP_MAX((vec)[2], b); \
+} (void)0
+
+#define CLAMP4(vec, b, c) { \
+	CLAMP((vec)[0], b, c); \
+	CLAMP((vec)[1], b, c); \
+	CLAMP((vec)[2], b, c); \
+	CLAMP((vec)[3], b, c); \
+} (void)0
+
+#define CLAMP4_MIN(vec, b) { \
+	CLAMP_MIN((vec)[0], b); \
+	CLAMP_MIN((vec)[1], b); \
+	CLAMP_MIN((vec)[2], b); \
+	CLAMP_MIN((vec)[3], b); \
+} (void)0
+
+#define CLAMP4_MAX(vec, b) { \
+	CLAMP_MAX((vec)[0], b); \
+	CLAMP_MAX((vec)[1], b); \
+	CLAMP_MAX((vec)[2], b); \
+	CLAMP_MAX((vec)[3], b); \
+} (void)0
+
 #define IS_EQ(a, b)  ( \
 	CHECK_TYPE_INLINE(a, double), CHECK_TYPE_INLINE(b, double), \
 	((fabs((double)((a) - (b))) >= (double) FLT_EPSILON) ? false : true))




More information about the Bf-blender-cvs mailing list