Remove value_size() from vectors

This commit is contained in:
Christophe Riccio 2011-11-22 16:36:09 +00:00
parent 464e5cbb30
commit 64da6d3da3
10 changed files with 19 additions and 41 deletions

View file

@ -39,9 +39,10 @@ namespace glm
"Invalid template instantiation of 'lessThan', GLM vector types required");
GLM_STATIC_ASSERT(detail::is_bool<T>::_NO,
"Invalid template instantiation of 'lessThan', GLM vector types required floating-point or integer value types vectors");
assert(x.length() == y.length());
typename vecType<bool>::bool_type Result(vecType<bool>::null);
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] < y[i];
return Result;
@ -58,9 +59,10 @@ namespace glm
"Invalid template instantiation of 'lessThanEqual', GLM vector types required");
GLM_STATIC_ASSERT(detail::is_bool<T>::_NO,
"Invalid template instantiation of 'lessThanEqual', GLM vector types required floating-point or integer value types vectors");
assert(x.length() == y.length());
typename vecType<bool>::bool_type Result(vecType<bool>::null);
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] <= y[i];
return Result;
}
@ -76,9 +78,10 @@ namespace glm
"Invalid template instantiation of 'greaterThan', GLM vector types required");
GLM_STATIC_ASSERT(detail::is_bool<T>::_NO,
"Invalid template instantiation of 'greaterThan', GLM vector types required floating-point or integer value types vectors");
assert(x.length() == y.length());
typename vecType<bool>::bool_type Result(vecType<bool>::null);
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] > y[i];
return Result;
}
@ -94,9 +97,10 @@ namespace glm
"Invalid template instantiation of 'greaterThanEqual', GLM vector types required");
GLM_STATIC_ASSERT(detail::is_bool<T>::_NO,
"Invalid template instantiation of 'greaterThanEqual', GLM vector types required floating-point or integer value types vectors");
assert(x.length() == y.length());
typename vecType<bool>::bool_type Result(vecType<bool>::null);
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] >= y[i];
return Result;
}
@ -110,9 +114,10 @@ namespace glm
{
GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES,
"Invalid template instantiation of 'equal', GLM vector types required");
assert(x.length() == y.length());
typename vecType<bool>::bool_type Result(vecType<bool>::null);
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] == y[i];
return Result;
}
@ -126,9 +131,10 @@ namespace glm
{
GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES,
"Invalid template instantiation of 'notEqual', GLM vector types required");
assert(x.length() == y.length());
typename vecType<bool>::bool_type Result(vecType<bool>::null);
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] != y[i];
return Result;
}
@ -140,7 +146,7 @@ namespace glm
"Invalid template instantiation of 'any', GLM boolean vector types required");
bool Result = false;
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < v.length(); ++i)
Result = Result || v[i];
return Result;
}
@ -152,7 +158,7 @@ namespace glm
"Invalid template instantiation of 'all', GLM boolean vector types required");
bool Result = true;
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < v.length(); ++i)
Result = Result && v[i];
return Result;
}
@ -164,7 +170,7 @@ namespace glm
"Invalid template instantiation of 'not_', GLM vector types required");
typename vecType<bool>::bool_type Result(vecType<bool>::null);
for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
for(typename vecType<bool>::size_type i = 0; i < v.length(); ++i)
Result[i] = !v[i];
return Result;
}

View file

@ -55,7 +55,6 @@ namespace detail
typedef T value_type;
typedef std::size_t size_type;
GLM_FUNC_DECL size_type length() const;
static GLM_FUNC_DECL size_type value_size();
typedef tvec1<T> type;
typedef tvec1<bool> bool_type;

View file

@ -35,12 +35,6 @@ namespace detail
return 1;
}
template <typename T>
GLM_FUNC_QUALIFIER typename tvec1<T>::size_type tvec1<T>::value_size()
{
return 1;
}
//////////////////////////////////////
// Accesses

View file

@ -54,7 +54,6 @@ namespace detail
typedef T value_type;
typedef std::size_t size_type;
GLM_FUNC_DECL size_type length() const;
static GLM_FUNC_DECL size_type value_size();
typedef tvec2<T> type;
typedef tvec2<bool> bool_type;

View file

@ -35,12 +35,6 @@ namespace detail
return 2;
}
template <typename T>
GLM_FUNC_QUALIFIER typename tvec2<T>::size_type tvec2<T>::value_size()
{
return 2;
}
//////////////////////////////////////
// Accesses

View file

@ -54,7 +54,6 @@ namespace detail
typedef T value_type;
typedef std::size_t size_type;
GLM_FUNC_DECL size_type length() const;
static GLM_FUNC_DECL size_type value_size();
typedef tvec3<T> type;
typedef tvec3<bool> bool_type;

View file

@ -35,12 +35,6 @@ namespace detail
return 3;
}
template <typename T>
GLM_FUNC_QUALIFIER typename tvec3<T>::size_type tvec3<T>::value_size()
{
return 3;
}
//////////////////////////////////////
// Accesses

View file

@ -54,7 +54,6 @@ namespace detail
typedef T value_type;
typedef std::size_t size_type;
GLM_FUNC_DECL size_type length() const;
static GLM_FUNC_DECL size_type value_size();
typedef tvec4<T> type;
typedef tvec4<bool> bool_type;

View file

@ -35,12 +35,6 @@ namespace detail
return 4;
}
template <typename T>
GLM_FUNC_QUALIFIER typename tvec4<T>::size_type tvec4<T>::value_size()
{
return 4;
}
//////////////////////////////////////
// Accesses

View file

@ -13,7 +13,7 @@ namespace glm
GLM_FUNC_QUALIFIER typename genType::value_type compAdd(genType const & v)
{
typename genType::size_type result = typename genType::value_type(0);
for(typename genType::size_type i = 0; i < genType::value_size(); ++i)
for(typename genType::size_type i = 0; i < v.length(); ++i)
result += v[i];
return result;
}
@ -22,7 +22,7 @@ namespace glm
GLM_FUNC_QUALIFIER typename genType::value_type compMul(genType const & v)
{
typename genType::value_type result = typename genType::value_type(1);
for(typename genType::size_type i = 0; i < genType::value_size(); ++i)
for(typename genType::size_type i = 0; i < v.length(); ++i)
result *= v[i];
return result;
}
@ -31,7 +31,7 @@ namespace glm
GLM_FUNC_QUALIFIER typename genType::value_type compMin(genType const & v)
{
typename genType::value_type result = typename genType::value_type(v[0]);
for(typename genType::size_type i = 1; i < genType::value_size(); ++i)
for(typename genType::size_type i = 1; i < v.length(); ++i)
result = min(result, v[i]);
return result;
}
@ -40,7 +40,7 @@ namespace glm
GLM_FUNC_QUALIFIER typename genType::value_type compMax(genType const & v)
{
typename genType::value_type result = typename genType::value_type(v[0]);
for(typename genType::size_type i = 1; i < genType::value_size(); ++i)
for(typename genType::size_type i = 1; i < v.length(); ++i)
result = max(result, v[i]);
return result;
}