|
|
|
@ -176,84 +176,30 @@ namespace detail |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, float, lowp> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, float, lowp> call(vec<L, float, lowp> const& Min, vec<L, float, lowp> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, float, lowp>(compute_rand<L, uint8, lowp>::call()) / static_cast<float>(std::numeric_limits<uint8>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, float, mediump> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, float, mediump> call(vec<L, float, mediump> const& Min, vec<L, float, mediump> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, float, mediump>(compute_rand<L, uint16, mediump>::call()) / static_cast<float>(std::numeric_limits<uint16>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, float, highp> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, float, highp> call(vec<L, float, highp> const& Min, vec<L, float, highp> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, float, highp>(compute_rand<L, uint32, highp>::call()) / static_cast<float>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, double, lowp> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, double, lowp> call(vec<L, double, lowp> const& Min, vec<L, double, lowp> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, double, lowp>(compute_rand<L, uint16, lowp>::call()) / static_cast<double>(std::numeric_limits<uint16>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, double, mediump> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, double, mediump> call(vec<L, double, mediump> const& Min, vec<L, double, mediump> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, double, mediump>(compute_rand<L, uint32, mediump>::call()) / static_cast<double>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, double, highp> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, double, highp> call(vec<L, double, highp> const& Min, vec<L, double, highp> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, double, highp>(compute_rand<L, uint64, highp>::call()) / static_cast<double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, long double, lowp> |
|
|
|
|
template<length_t L, qualifier Q> |
|
|
|
|
struct compute_linearRand<L, float, Q> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, long double, lowp> call(vec<L, long double, lowp> const& Min, vec<L, long double, lowp> const& Max) |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, float, Q> call(vec<L, float, Q> const& Min, vec<L, float, Q> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, long double, lowp>(compute_rand<L, uint32, lowp>::call()) / static_cast<long double>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min; |
|
|
|
|
return vec<L, float, Q>(compute_rand<L, uint32, Q>::call()) / static_cast<float>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, long double, mediump> |
|
|
|
|
template<length_t L, qualifier Q> |
|
|
|
|
struct compute_linearRand<L, double, Q> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, long double, mediump> call(vec<L, long double, mediump> const& Min, vec<L, long double, mediump> const& Max) |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, double, Q> call(vec<L, double, Q> const& Min, vec<L, double, Q> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, long double, mediump>(compute_rand<L, uint64, mediump>::call()) / static_cast<long double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min; |
|
|
|
|
return vec<L, double, Q>(compute_rand<L, uint64, Q>::call()) / static_cast<double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template<length_t L> |
|
|
|
|
struct compute_linearRand<L, long double, highp> |
|
|
|
|
template<length_t L, qualifier Q> |
|
|
|
|
struct compute_linearRand<L, long double, Q> |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, long double, highp> call(vec<L, long double, highp> const& Min, vec<L, long double, highp> const& Max) |
|
|
|
|
GLM_FUNC_QUALIFIER static vec<L, long double, Q> call(vec<L, long double, Q> const& Min, vec<L, long double, Q> const& Max) |
|
|
|
|
{ |
|
|
|
|
return vec<L, long double, highp>(compute_rand<L, uint64, highp>::call()) / static_cast<long double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min; |
|
|
|
|
return vec<L, long double, Q>(compute_rand<L, uint64, Q>::call()) / static_cast<long double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}//namespace detail |
|
|
|
|