Promoted extension

This commit is contained in:
Christophe Riccio 2010-11-12 16:30:16 +00:00
parent 833ef6bcc6
commit d56da3b541
2 changed files with 121 additions and 0 deletions

View File

@ -0,0 +1,62 @@
///////////////////////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
///////////////////////////////////////////////////////////////////////////////////////////////////
// Created : 2005-12-27
// Updated : 2010-11-12
// Licence : This source is under MIT License
// File : glm/gtc/matrix_access.hpp
///////////////////////////////////////////////////////////////////////////////////////////////////
// Dependency:
// - GLM core
///////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_matrix_access
#define glm_gtc_matrix_access
// Dependency:
#include "../glm.hpp"
namespace glm{
namespace gtc{
//! GLM_GTC_matrix_access extension: Set a column or a row of a matrix
namespace matrix_access
{
//! Get a specific row of a matrix.
//! From GLM_GTC_matrix_access extension.
template <typename genType>
typename genType::row_type row(
genType const & m,
int index);
//! Set a specific row to a matrix.
//! From GLM_GTC_matrix_access extension.
template <typename genType>
genType row(
genType const & m,
int index,
typename genType::row_type const & x);
//! Get a specific column of a matrix.
//! From GLM_GTC_matrix_access extension.
template <typename genType>
typename genType::col_type column(
genType const & m,
int index);
//! Set a specific column to a matrix.
//! From GLM_GTC_matrix_access extension.
template <typename genType>
genType column(
genType const & m,
int index,
typename genType::col_type const & x);
}//namespace matrix_access
}//namespace gtc
}//namespace glm
#include "matrix_access.inl"
namespace glm{using namespace gtc::matrix_access;}
#endif//glm_gtc_matrix_access

View File

@ -0,0 +1,59 @@
///////////////////////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
///////////////////////////////////////////////////////////////////////////////////////////////////
// Created : 2005-12-27
// Updated : 2010-11-12
// Licence : This source is under MIT License
// File : glm/gtc/matrix_access.inl
///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace gtc{
namespace matrix_access
{
template <typename genType>
inline genType row(
genType const & m,
int index,
typename genType::row_type const & x)
{
genType Result = m;
for(typename genType::size_type i = 0; i < genType::row_size(); ++i)
Result[i][index] = x[i];
return Result;
}
template <typename genType>
inline typename genType::row_type row(
genType & const m,
int index)
{
typename genType::row_type Result;
for(typename genType::size_type i = 0; i < genType::row_size(); ++i)
Result[i] = m[i][index];
return Result;
}
template <typename genType>
inline genType column(
genType const & m,
int index,
typename genType::col_type const & x)
{
genType Result = m;
Result[index] = x;
return Result;
}
template <typename genType>
inline typename genType::col_type column(
genType const & m,
int index)
{
return m[index];
}
}//namespace matrix_access
}//namespace gtc
}//namespace glm