summaryrefslogtreecommitdiff
path: root/src/glm/gtc/matrix_access.inl
blob: a53ef91c6b621511c5a3b4092b35f87151c38aa0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
///////////////////////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2011 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>
    GLM_FUNC_QUALIFIER 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>
    GLM_FUNC_QUALIFIER 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>
    GLM_FUNC_QUALIFIER genType column(
		genType const & m, 
		int index, 
		typename genType::col_type const & x)
    {
        genType Result = m;
        Result[index] = x;
        return Result;
    }

    template <typename genType>
    GLM_FUNC_QUALIFIER typename genType::col_type column(
		genType const & m, 
		int index)
    {
        return m[index];
    }

}//namespace matrix_access
}//namespace gtc
}//namespace glm