Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenlib/BLI_math_vec_types.hh')
-rw-r--r--source/blender/blenlib/BLI_math_vec_types.hh150
1 files changed, 75 insertions, 75 deletions
diff --git a/source/blender/blenlib/BLI_math_vec_types.hh b/source/blender/blenlib/BLI_math_vec_types.hh
index 9ba29d41684..ae8cb0056bb 100644
--- a/source/blender/blenlib/BLI_math_vec_types.hh
+++ b/source/blender/blenlib/BLI_math_vec_types.hh
@@ -93,22 +93,22 @@ template<typename T, int Size> struct vec_base : public vec_struct_base<T, Size>
}
/* Workaround issue with template. */
-#define BLI_VEC_ENABLE_IF(_size, _test) int S = _size, BLI_ENABLE_IF((S _test))
+#define BLI_ENABLE_IF_VEC(_size, _test) int S = _size, BLI_ENABLE_IF((S _test))
- template<BLI_VEC_ENABLE_IF(Size, == 2)> vec_base(T _x, T _y)
+ template<BLI_ENABLE_IF_VEC(Size, == 2)> vec_base(T _x, T _y)
{
(*this)[0] = _x;
(*this)[1] = _y;
}
- template<BLI_VEC_ENABLE_IF(Size, == 3)> vec_base(T _x, T _y, T _z)
+ template<BLI_ENABLE_IF_VEC(Size, == 3)> vec_base(T _x, T _y, T _z)
{
(*this)[0] = _x;
(*this)[1] = _y;
(*this)[2] = _z;
}
- template<BLI_VEC_ENABLE_IF(Size, == 4)> vec_base(T _x, T _y, T _z, T _w)
+ template<BLI_ENABLE_IF_VEC(Size, == 4)> vec_base(T _x, T _y, T _z, T _w)
{
(*this)[0] = _x;
(*this)[1] = _y;
@@ -118,52 +118,52 @@ template<typename T, int Size> struct vec_base : public vec_struct_base<T, Size>
/** Mixed scalar-vector constructors. */
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 3)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 3)>
constexpr vec_base(const vec_base<U, 2> &xy, T z)
: vec_base(static_cast<T>(xy.x), static_cast<T>(xy.y), z)
{
}
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 3)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 3)>
constexpr vec_base(T x, const vec_base<U, 2> &yz)
: vec_base(x, static_cast<T>(yz.x), static_cast<T>(yz.y))
{
}
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 4)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 4)>
vec_base(vec_base<U, 3> xyz, T w)
: vec_base(
static_cast<T>(xyz.x), static_cast<T>(xyz.y), static_cast<T>(xyz.z), static_cast<T>(w))
{
}
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 4)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 4)>
vec_base(T x, vec_base<U, 3> yzw)
: vec_base(
static_cast<T>(x), static_cast<T>(yzw.x), static_cast<T>(yzw.y), static_cast<T>(yzw.z))
{
}
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 4)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 4)>
vec_base(vec_base<U, 2> xy, vec_base<U, 2> zw)
: vec_base(
static_cast<T>(xy.x), static_cast<T>(xy.y), static_cast<T>(zw.x), static_cast<T>(zw.y))
{
}
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 4)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 4)>
vec_base(vec_base<U, 2> xy, T z, T w)
: vec_base(static_cast<T>(xy.x), static_cast<T>(xy.y), static_cast<T>(z), static_cast<T>(w))
{
}
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 4)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 4)>
vec_base(T x, vec_base<U, 2> yz, T w)
: vec_base(static_cast<T>(x), static_cast<T>(yz.x), static_cast<T>(yz.y), static_cast<T>(w))
{
}
- template<typename U, BLI_VEC_ENABLE_IF(Size, == 4)>
+ template<typename U, BLI_ENABLE_IF_VEC(Size, == 4)>
vec_base(T x, T y, vec_base<U, 2> zw)
: vec_base(static_cast<T>(x), static_cast<T>(y), static_cast<T>(zw.x), static_cast<T>(zw.y))
{
@@ -171,17 +171,17 @@ template<typename T, int Size> struct vec_base : public vec_struct_base<T, Size>
/** Masking. */
- template<BLI_VEC_ENABLE_IF(Size, >= 3)> explicit operator vec_base<T, 2>() const
+ template<BLI_ENABLE_IF_VEC(Size, >= 3)> explicit operator vec_base<T, 2>() const
{
return vec_base<T, 2>(UNPACK2(*this));
}
- template<BLI_VEC_ENABLE_IF(Size, >= 4)> explicit operator vec_base<T, 3>() const
+ template<BLI_ENABLE_IF_VEC(Size, >= 4)> explicit operator vec_base<T, 3>() const
{
return vec_base<T, 3>(UNPACK3(*this));
}
-#undef BLI_VEC_ENABLE_IF
+#undef BLI_ENABLE_IF_VEC
/** Conversion from pointers (from C-style vectors). */
@@ -235,16 +235,16 @@ template<typename T, int Size> struct vec_base : public vec_struct_base<T, Size>
/** Internal Operators Macro. */
-#define VEC_INT_OP(_T) template<typename U = _T, BLI_ENABLE_IF((std::is_integral_v<U>))>
+#define BLI_INT_OP(_T) template<typename U = _T, BLI_ENABLE_IF((std::is_integral_v<U>))>
-#define BLI_VEC_OP(_result, _i, _op) \
+#define BLI_VEC_OP_IMPL(_result, _i, _op) \
vec_base _result; \
for (int _i = 0; _i < Size; _i++) { \
_op; \
} \
return _result;
-#define BLI_VEC_OP_SELF(_i, _op) \
+#define BLI_VEC_OP_IMPL_SELF(_i, _op) \
for (int _i = 0; _i < Size; _i++) { \
_op; \
} \
@@ -254,12 +254,12 @@ template<typename T, int Size> struct vec_base : public vec_struct_base<T, Size>
friend vec_base operator+(const vec_base &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] + b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] + b[i]);
}
friend vec_base operator+(const vec_base &a, const T &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] + b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] + b);
}
friend vec_base operator+(const T &a, const vec_base &b)
@@ -269,52 +269,52 @@ template<typename T, int Size> struct vec_base : public vec_struct_base<T, Size>
vec_base &operator+=(const vec_base &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] += b[i]);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] += b[i]);
}
vec_base &operator+=(const T &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] += b);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] += b);
}
friend vec_base operator-(const vec_base &a)
{
- BLI_VEC_OP(ret, i, ret[i] = -a[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = -a[i]);
}
friend vec_base operator-(const vec_base &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] - b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] - b[i]);
}
friend vec_base operator-(const vec_base &a, const T &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] - b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] - b);
}
friend vec_base operator-(const T &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a - b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a - b[i]);
}
vec_base &operator-=(const vec_base &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] -= b[i]);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] -= b[i]);
}
vec_base &operator-=(const T &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] -= b);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] -= b);
}
friend vec_base operator*(const vec_base &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] * b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] * b[i]);
}
friend vec_base operator*(const vec_base &a, T b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] * b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] * b);
}
friend vec_base operator*(T a, const vec_base &b)
@@ -324,146 +324,146 @@ template<typename T, int Size> struct vec_base : public vec_struct_base<T, Size>
vec_base &operator*=(T b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] *= b);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] *= b);
}
vec_base &operator*=(const vec_base &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] *= b[i]);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] *= b[i]);
}
friend vec_base operator/(const vec_base &a, const vec_base &b)
{
BLI_assert(!b.is_any_zero());
- BLI_VEC_OP(ret, i, ret[i] = a[i] / b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] / b[i]);
}
friend vec_base operator/(const vec_base &a, T b)
{
BLI_assert(b != T(0));
- BLI_VEC_OP(ret, i, ret[i] = a[i] / b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] / b);
}
friend vec_base operator/(T a, const vec_base &b)
{
BLI_assert(!b.is_any_zero());
- BLI_VEC_OP(ret, i, ret[i] = a / b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a / b[i]);
}
vec_base &operator/=(T b)
{
BLI_assert(b != T(0));
- BLI_VEC_OP_SELF(i, (*this)[i] /= b);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] /= b);
}
vec_base &operator/=(const vec_base &b)
{
BLI_assert(!b.is_any_zero());
- BLI_VEC_OP_SELF(i, (*this)[i] /= b[i]);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] /= b[i]);
}
/** Binary operators. */
- VEC_INT_OP(T) friend vec_base operator&(const vec_base &a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator&(const vec_base &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] & b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] & b[i]);
}
- VEC_INT_OP(T) friend vec_base operator&(const vec_base &a, T b)
+ BLI_INT_OP(T) friend vec_base operator&(const vec_base &a, T b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] & b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] & b);
}
- VEC_INT_OP(T) friend vec_base operator&(T a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator&(T a, const vec_base &b)
{
return b & a;
}
- VEC_INT_OP(T) vec_base &operator&=(T b)
+ BLI_INT_OP(T) vec_base &operator&=(T b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] &= b);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] &= b);
}
- VEC_INT_OP(T) vec_base &operator&=(const vec_base &b)
+ BLI_INT_OP(T) vec_base &operator&=(const vec_base &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] &= b[i]);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] &= b[i]);
}
- VEC_INT_OP(T) friend vec_base operator|(const vec_base &a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator|(const vec_base &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] | b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] | b[i]);
}
- VEC_INT_OP(T) friend vec_base operator|(const vec_base &a, T b)
+ BLI_INT_OP(T) friend vec_base operator|(const vec_base &a, T b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] | b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] | b);
}
- VEC_INT_OP(T) friend vec_base operator|(T a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator|(T a, const vec_base &b)
{
return b | a;
}
- VEC_INT_OP(T) vec_base &operator|=(T b)
+ BLI_INT_OP(T) vec_base &operator|=(T b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] |= b);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] |= b);
}
- VEC_INT_OP(T) vec_base &operator|=(const vec_base &b)
+ BLI_INT_OP(T) vec_base &operator|=(const vec_base &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] |= b[i]);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] |= b[i]);
}
- VEC_INT_OP(T) friend vec_base operator^(const vec_base &a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator^(const vec_base &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] ^ b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] ^ b[i]);
}
- VEC_INT_OP(T) friend vec_base operator^(const vec_base &a, T b)
+ BLI_INT_OP(T) friend vec_base operator^(const vec_base &a, T b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] ^ b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] ^ b);
}
- VEC_INT_OP(T) friend vec_base operator^(T a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator^(T a, const vec_base &b)
{
return b ^ a;
}
- VEC_INT_OP(T) vec_base &operator^=(T b)
+ BLI_INT_OP(T) vec_base &operator^=(T b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] ^= b);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] ^= b);
}
- VEC_INT_OP(T) vec_base &operator^=(const vec_base &b)
+ BLI_INT_OP(T) vec_base &operator^=(const vec_base &b)
{
- BLI_VEC_OP_SELF(i, (*this)[i] ^= b[i]);
+ BLI_VEC_OP_IMPL_SELF(i, (*this)[i] ^= b[i]);
}
- VEC_INT_OP(T) friend vec_base operator~(const vec_base &a)
+ BLI_INT_OP(T) friend vec_base operator~(const vec_base &a)
{
- BLI_VEC_OP(ret, i, ret[i] = ~a[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = ~a[i]);
}
/** Modulo operators. */
- VEC_INT_OP(T) friend vec_base operator%(const vec_base &a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator%(const vec_base &a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] % b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] % b[i]);
}
- VEC_INT_OP(T) friend vec_base operator%(const vec_base &a, T b)
+ BLI_INT_OP(T) friend vec_base operator%(const vec_base &a, T b)
{
- BLI_VEC_OP(ret, i, ret[i] = a[i] % b);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a[i] % b);
}
- VEC_INT_OP(T) friend vec_base operator%(T a, const vec_base &b)
+ BLI_INT_OP(T) friend vec_base operator%(T a, const vec_base &b)
{
- BLI_VEC_OP(ret, i, ret[i] = a % b[i]);
+ BLI_VEC_OP_IMPL(ret, i, ret[i] = a % b[i]);
}
-#undef VEC_INT_OP
-#undef BLI_VEC_OP
-#undef BLI_VEC_OP_SELF
+#undef BLI_INT_OP
+#undef BLI_VEC_OP_IMPL
+#undef BLI_VEC_OP_IMPL_SELF
/** Compare. */