changes for nix

This commit is contained in:
2026-04-13 08:31:17 -04:00
parent f2b113351c
commit a6d1ffc765
1675 changed files with 94 additions and 220993 deletions

View File

@@ -1,304 +1,69 @@
# 3.6 is the actual minimun. 3.14 as the upper policy limit avoids CMake deprecation warnings.
cmake_minimum_required(VERSION 3.6...3.14 FATAL_ERROR)
cmake_policy(VERSION 3.6...3.14)
file(GLOB ROOT_SOURCE *.cpp)
file(GLOB ROOT_INLINE *.inl)
file(GLOB ROOT_HEADER *.hpp)
file(GLOB ROOT_TEXT ../*.txt)
file(GLOB ROOT_MD ../*.md)
file(GLOB ROOT_NAT ../util/glm.natvis)
file(READ "glm/detail/setup.hpp" GLM_SETUP_FILE)
string(REGEX MATCH "#define[ ]+GLM_VERSION_MAJOR[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
set(GLM_VERSION_MAJOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define[ ]+GLM_VERSION_MINOR[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
set(GLM_VERSION_MINOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define[ ]+GLM_VERSION_PATCH[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
set(GLM_VERSION_PATCH "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define[ ]+GLM_VERSION_REVISION[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
set(GLM_VERSION_REVISION "${CMAKE_MATCH_1}")
file(GLOB_RECURSE CORE_SOURCE ./detail/*.cpp)
file(GLOB_RECURSE CORE_INLINE ./detail/*.inl)
file(GLOB_RECURSE CORE_HEADER ./detail/*.hpp)
set(GLM_VERSION ${GLM_VERSION_MAJOR}.${GLM_VERSION_MINOR}.${GLM_VERSION_PATCH})
project(glm VERSION ${GLM_VERSION} LANGUAGES CXX)
message(STATUS "GLM: Version " ${GLM_VERSION})
file(GLOB_RECURSE EXT_SOURCE ./ext/*.cpp)
file(GLOB_RECURSE EXT_INLINE ./ext/*.inl)
file(GLOB_RECURSE EXT_HEADER ./ext/*.hpp)
set(GLM_IS_MASTER_PROJECT OFF)
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
set(GLM_IS_MASTER_PROJECT ON)
endif()
file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp)
file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl)
file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp)
option(GLM_BUILD_LIBRARY "Build dynamic/static library" ON)
option(GLM_BUILD_TESTS "Build the test programs" OFF)
option(GLM_BUILD_INSTALL "Generate the install target" ${GLM_IS_MASTER_PROJECT})
file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp)
file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl)
file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp)
include(GNUInstallDirs)
file(GLOB_RECURSE SIMD_SOURCE ./simd/*.cpp)
file(GLOB_RECURSE SIMD_INLINE ./simd/*.inl)
file(GLOB_RECURSE SIMD_HEADER ./simd/*.h)
option(GLM_ENABLE_CXX_98 "Enable C++ 98" OFF)
option(GLM_ENABLE_CXX_11 "Enable C++ 11" OFF)
option(GLM_ENABLE_CXX_14 "Enable C++ 14" OFF)
option(GLM_ENABLE_CXX_17 "Enable C++ 17" OFF)
option(GLM_ENABLE_CXX_20 "Enable C++ 20" OFF)
source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD})
source_group("Core Files" FILES ${CORE_SOURCE})
source_group("Core Files" FILES ${CORE_INLINE})
source_group("Core Files" FILES ${CORE_HEADER})
source_group("EXT Files" FILES ${EXT_SOURCE})
source_group("EXT Files" FILES ${EXT_INLINE})
source_group("EXT Files" FILES ${EXT_HEADER})
source_group("GTC Files" FILES ${GTC_SOURCE})
source_group("GTC Files" FILES ${GTC_INLINE})
source_group("GTC Files" FILES ${GTC_HEADER})
source_group("GTX Files" FILES ${GTX_SOURCE})
source_group("GTX Files" FILES ${GTX_INLINE})
source_group("GTX Files" FILES ${GTX_HEADER})
source_group("SIMD Files" FILES ${SIMD_SOURCE})
source_group("SIMD Files" FILES ${SIMD_INLINE})
source_group("SIMD Files" FILES ${SIMD_HEADER})
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_library(glm-header-only INTERFACE)
add_library(glm::glm-header-only ALIAS glm-header-only)
if(GLM_ENABLE_CXX_20)
set(CMAKE_CXX_STANDARD 20)
add_definitions(-DGLM_FORCE_CXX20)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "GLM: Disable -Wc++98-compat warnings")
add_compile_options(-Wno-c++98-compat)
add_compile_options(-Wno-c++98-compat-pedantic)
add_compile_options(-Wno-switch-default)
endif()
if(NOT GLM_QUIET)
message(STATUS "GLM: Build with C++20 features")
endif()
elseif(GLM_ENABLE_CXX_17)
set(CMAKE_CXX_STANDARD 17)
add_definitions(-DGLM_FORCE_CXX17)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "GLM: Disable -Wc++98-compat warnings")
add_compile_options(-Wno-c++98-compat)
add_compile_options(-Wno-c++98-compat-pedantic)
add_compile_options(-Wno-switch-default)
endif()
if(NOT GLM_QUIET)
message(STATUS "GLM: Build with C++17 features")
endif()
elseif(GLM_ENABLE_CXX_14)
set(CMAKE_CXX_STANDARD 14)
add_definitions(-DGLM_FORCE_CXX14)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "GLM: Disable -Wc++98-compat warnings")
add_compile_options(-Wno-c++98-compat)
add_compile_options(-Wno-c++98-compat-pedantic)
add_compile_options(-Wno-switch-default)
endif()
if(NOT GLM_QUIET)
message(STATUS "GLM: Build with C++14 features")
endif()
elseif(GLM_ENABLE_CXX_11)
set(CMAKE_CXX_STANDARD 11)
add_definitions(-DGLM_FORCE_CXX11)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "GLM: Disable -Wc++98-compat warnings")
add_compile_options(-Wno-c++98-compat)
add_compile_options(-Wno-c++98-compat-pedantic)
add_compile_options(-Wno-switch-default)
endif()
if(NOT GLM_QUIET)
message(STATUS "GLM: Build with C++11 features")
endif()
elseif(GLM_ENABLE_CXX_98)
set(CMAKE_CXX_STANDARD 98)
add_definitions(-DGLM_FORCE_CXX98)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wno-switch-default)
endif()
if(NOT GLM_QUIET)
message(STATUS "GLM: Build with C++98 features")
endif()
target_include_directories(glm-header-only INTERFACE
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
if (GLM_BUILD_LIBRARY)
add_library(glm
${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
${EXT_SOURCE} ${EXT_INLINE} ${EXT_HEADER}
${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}
${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER}
)
add_library(glm::glm ALIAS glm)
target_link_libraries(glm PUBLIC glm-header-only)
else()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "GLM: Disable -Wc++98-compat warnings")
add_compile_options(-Wno-c++98-compat)
add_compile_options(-Wno-c++98-compat-pedantic)
add_compile_options(-Wno-switch-default)
endif()
if(NOT GLM_QUIET)
message(STATUS "GLM: Build with C++ features auto detection")
endif()
endif()
option(GLM_ENABLE_LANG_EXTENSIONS "Enable language extensions" OFF)
option(GLM_DISABLE_AUTO_DETECTION "Disable platform, compiler, arch and C++ language detection" OFF)
if(GLM_DISABLE_AUTO_DETECTION)
add_definitions(-DGLM_FORCE_PLATFORM_UNKNOWN -DGLM_FORCE_COMPILER_UNKNOWN -DGLM_FORCE_ARCH_UNKNOWN -DGLM_FORCE_CXX_UNKNOWN)
endif()
if(GLM_ENABLE_LANG_EXTENSIONS)
set(CMAKE_CXX_EXTENSIONS ON)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU"))
add_compile_options(-fms-extensions)
endif()
message(STATUS "GLM: Build with C++ language extensions")
else()
set(CMAKE_CXX_EXTENSIONS OFF)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/Za)
if(MSVC15)
add_compile_options(/permissive-)
endif()
endif()
endif()
option(GLM_ENABLE_FAST_MATH "Enable fast math optimizations" OFF)
if(GLM_ENABLE_FAST_MATH)
if(NOT GLM_QUIET)
message(STATUS "GLM: Build with fast math optimizations")
endif()
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU"))
add_compile_options(-ffast-math)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/fp:fast)
endif()
else()
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/fp:precise)
endif()
endif()
option(GLM_ENABLE_SIMD_SSE2 "Enable SSE2 optimizations" OFF)
option(GLM_ENABLE_SIMD_SSE3 "Enable SSE3 optimizations" OFF)
option(GLM_ENABLE_SIMD_SSSE3 "Enable SSSE3 optimizations" OFF)
option(GLM_ENABLE_SIMD_SSE4_1 "Enable SSE 4.1 optimizations" OFF)
option(GLM_ENABLE_SIMD_SSE4_2 "Enable SSE 4.2 optimizations" OFF)
option(GLM_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF)
option(GLM_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF)
option(GLM_ENABLE_SIMD_NEON "Enable ARM NEON optimizations" OFF)
option(GLM_FORCE_PURE "Force 'pure' instructions" OFF)
if(GLM_FORCE_PURE)
add_definitions(-DGLM_FORCE_PURE)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
add_compile_options(-mfpmath=387)
endif()
message(STATUS "GLM: No SIMD instruction set")
elseif(GLM_ENABLE_SIMD_AVX2)
add_definitions(-DGLM_FORCE_INTRINSICS)
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_compile_options(-mavx2)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_compile_options(/QxAVX2)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/arch:AVX2)
endif()
message(STATUS "GLM: AVX2 instruction set")
elseif(GLM_ENABLE_SIMD_AVX)
add_definitions(-DGLM_FORCE_INTRINSICS)
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_compile_options(-mavx)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_compile_options(/QxAVX)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/arch:AVX)
endif()
message(STATUS "GLM: AVX instruction set")
elseif(GLM_ENABLE_SIMD_SSE4_2)
add_definitions(-DGLM_FORCE_INTRINSICS)
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_compile_options(-msse4.2)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_compile_options(/QxSSE4.2)
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
add_compile_options(/arch:SSE4.2)
endif()
message(STATUS "GLM: SSE4.2 instruction set")
elseif(GLM_ENABLE_SIMD_SSE4_1)
add_definitions(-DGLM_FORCE_INTRINSICS)
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_compile_options(-msse4.1)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_compile_options(/QxSSE4.1)
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
add_compile_options(/arch:SSE2) # VC doesn't support SSE4.1
endif()
message(STATUS "GLM: SSE4.1 instruction set")
elseif(GLM_ENABLE_SIMD_SSSE3)
add_definitions(-DGLM_FORCE_INTRINSICS)
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_compile_options(-mssse3)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_compile_options(/QxSSSE3)
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
add_compile_options(/arch:SSE2) # VC doesn't support SSSE3
endif()
message(STATUS "GLM: SSSE3 instruction set")
elseif(GLM_ENABLE_SIMD_SSE3)
add_definitions(-DGLM_FORCE_INTRINSICS)
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_compile_options(-msse3)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_compile_options(/QxSSE3)
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
add_compile_options(/arch:SSE2) # VC doesn't support SSE3
endif()
message(STATUS "GLM: SSE3 instruction set")
elseif(GLM_ENABLE_SIMD_SSE2)
add_definitions(-DGLM_FORCE_INTRINSICS)
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_compile_options(-msse2)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_compile_options(/QxSSE2)
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
add_compile_options(/arch:SSE2)
endif()
message(STATUS "GLM: SSE2 instruction set")
elseif(GLM_ENABLE_SIMD_NEON)
add_definitions(-DGLM_FORCE_INTRINSICS)
message(STATUS "GLM: ARM NEON instruction set")
endif()
add_subdirectory(glm)
if (GLM_BUILD_TESTS)
include(CTest)
add_subdirectory(test)
endif()
if (GLM_BUILD_INSTALL)
include(CPack)
install(TARGETS glm-header-only glm EXPORT glm)
install(
DIRECTORY glm
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
PATTERN "CMakeLists.txt" EXCLUDE
)
install(
EXPORT glm
NAMESPACE glm::
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/glm"
FILE glmConfig.cmake
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake"
COMPATIBILITY AnyNewerVersion
)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/glm"
)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY
)
add_custom_target(
uninstall
"${CMAKE_COMMAND}" -P
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
)
add_library(glm INTERFACE)
add_library(glm::glm ALIAS glm)
target_link_libraries(glm INTERFACE glm-header-only)
endif()

View File

@@ -1,21 +0,0 @@
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
endif()
file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
exec_program(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
if(NOT "${rm_retval}" STREQUAL 0)
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
endif()
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
endif()
endforeach()

View File

@@ -1,54 +0,0 @@
================================================================================
OpenGL Mathematics (GLM)
--------------------------------------------------------------------------------
GLM is licensed under The Happy Bunny License or MIT License
================================================================================
The Happy Bunny License (Modified MIT License)
--------------------------------------------------------------------------------
Copyright (c) 2005 - G-Truc Creation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
Restrictions:
By making use of the Software for military purposes, you choose to make a
Bunny unhappy.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================================================
The MIT License
--------------------------------------------------------------------------------
Copyright (c) 2005 - G-Truc Creation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -1,249 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: common.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">common.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00002_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga439e60a72eadecfeda2df5449c613a64"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga439e60a72eadecfeda2df5449c613a64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga439e60a72eadecfeda2df5449c613a64">abs</a> (genType x)</td></tr>
<tr class="memdesc:ga439e60a72eadecfeda2df5449c613a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x. <a href="a00812.html#ga439e60a72eadecfeda2df5449c613a64">More...</a><br /></td></tr>
<tr class="separator:ga439e60a72eadecfeda2df5449c613a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x. <a href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">More...</a><br /></td></tr>
<tr class="separator:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:gafb9d2a645a23aca12d4d6de0104b7657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is greater than or equal to x. <a href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">More...</a><br /></td></tr>
<tr class="separator:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7cd77683da6361e297c56443fc70806d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga7cd77683da6361e297c56443fc70806d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga7cd77683da6361e297c56443fc70806d">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
<tr class="memdesc:ga7cd77683da6361e297c56443fc70806d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00812.html#ga7cd77683da6361e297c56443fc70806d">More...</a><br /></td></tr>
<tr class="separator:ga7cd77683da6361e297c56443fc70806d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafba2e0674deb5953878d89483cd6323d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gafba2e0674deb5953878d89483cd6323d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gafba2e0674deb5953878d89483cd6323d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, T minVal, T maxVal)</td></tr>
<tr class="memdesc:gafba2e0674deb5953878d89483cd6323d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00812.html#gafba2e0674deb5953878d89483cd6323d">More...</a><br /></td></tr>
<tr class="separator:gafba2e0674deb5953878d89483cd6323d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</td></tr>
<tr class="memdesc:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">More...</a><br /></td></tr>
<tr class="separator:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#ga8a23e454d8ae48b8f6dfdaea4b756072">floatBitsToInt</a> (float v)</td></tr>
<tr class="memdesc:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00812.html#ga8a23e454d8ae48b8f6dfdaea4b756072">More...</a><br /></td></tr>
<tr class="separator:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
<tr class="memitem:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, int, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
<tr class="memdesc:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">More...</a><br /></td></tr>
<tr class="separator:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#ga1bbdafd513ece71856e66a8ab0ea10d1">floatBitsToUint</a> (float v)</td></tr>
<tr class="memdesc:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00812.html#ga1bbdafd513ece71856e66a8ab0ea10d1">More...</a><br /></td></tr>
<tr class="separator:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
<tr class="memitem:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, uint, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
<tr class="memdesc:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">More...</a><br /></td></tr>
<tr class="separator:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is less then or equal to x. <a href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">More...</a><br /></td></tr>
<tr class="separator:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
<tr class="memdesc:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns a * b + c. <a href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">More...</a><br /></td></tr>
<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
<tr class="memdesc:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x). <a href="a00812.html#ga8ba89e40e55ae5cdf228548f9b7639c7">More...</a><br /></td></tr>
<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2df623004f634b440d61e018d62c751b"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga2df623004f634b440d61e018d62c751b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga2df623004f634b440d61e018d62c751b">fract</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:ga2df623004f634b440d61e018d62c751b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x). <a href="a00812.html#ga2df623004f634b440d61e018d62c751b">More...</a><br /></td></tr>
<tr class="separator:ga2df623004f634b440d61e018d62c751b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddf5ef73283c171730e0bcc11833fa81"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaddf5ef73283c171730e0bcc11833fa81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a> (genType x, int &amp;exp)</td></tr>
<tr class="memdesc:gaddf5ef73283c171730e0bcc11833fa81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) <a href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">More...</a><br /></td></tr>
<tr class="separator:gaddf5ef73283c171730e0bcc11833fa81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad780bbd088b64d823ad7049c42b157da"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#gad780bbd088b64d823ad7049c42b157da">intBitsToFloat</a> (int v)</td></tr>
<tr class="memdesc:gad780bbd088b64d823ad7049c42b157da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00812.html#gad780bbd088b64d823ad7049c42b157da">More...</a><br /></td></tr>
<tr class="separator:gad780bbd088b64d823ad7049c42b157da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
<tr class="memitem:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a> (vec&lt; L, int, Q &gt; const &amp;v)</td></tr>
<tr class="memdesc:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">More...</a><br /></td></tr>
<tr class="separator:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2885587c23a106301f20443896365b62"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga2885587c23a106301f20443896365b62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga2885587c23a106301f20443896365b62">isinf</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:ga2885587c23a106301f20443896365b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. <a href="a00812.html#ga2885587c23a106301f20443896365b62">More...</a><br /></td></tr>
<tr class="separator:ga2885587c23a106301f20443896365b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29ef934c00306490de837b4746b4e14d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga29ef934c00306490de837b4746b4e14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga29ef934c00306490de837b4746b4e14d">isnan</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:ga29ef934c00306490de837b4746b4e14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. <a href="a00812.html#ga29ef934c00306490de837b4746b4e14d">More...</a><br /></td></tr>
<tr class="separator:ga29ef934c00306490de837b4746b4e14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a> (genType const &amp;x, int const &amp;exp)</td></tr>
<tr class="memdesc:gac3010e0a0c35a1b514540f2fb579c58c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) <a href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">More...</a><br /></td></tr>
<tr class="separator:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae02d42887fc5570451f880e3c624b9ac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gae02d42887fc5570451f880e3c624b9ac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gae02d42887fc5570451f880e3c624b9ac">max</a> (genType x, genType y)</td></tr>
<tr class="memdesc:gae02d42887fc5570451f880e3c624b9ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00812.html#gae02d42887fc5570451f880e3c624b9ac">More...</a><br /></td></tr>
<tr class="separator:gae02d42887fc5570451f880e3c624b9ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga03e45d6e60d1c36edb00c52edeea0f31">max</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
<tr class="memdesc:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00812.html#ga03e45d6e60d1c36edb00c52edeea0f31">More...</a><br /></td></tr>
<tr class="separator:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1fec0c3303b572a6d4697a637213870"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gac1fec0c3303b572a6d4697a637213870"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
<tr class="memdesc:gac1fec0c3303b572a6d4697a637213870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00812.html#gac1fec0c3303b572a6d4697a637213870">More...</a><br /></td></tr>
<tr class="separator:gac1fec0c3303b572a6d4697a637213870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cf8098827054a270ee36b18e30d471d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga6cf8098827054a270ee36b18e30d471d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga6cf8098827054a270ee36b18e30d471d">min</a> (genType x, genType y)</td></tr>
<tr class="memdesc:ga6cf8098827054a270ee36b18e30d471d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00812.html#ga6cf8098827054a270ee36b18e30d471d">More...</a><br /></td></tr>
<tr class="separator:ga6cf8098827054a270ee36b18e30d471d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaa7d015eba1f9f48519251f4abe69b14d">min</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
<tr class="memdesc:gaa7d015eba1f9f48519251f4abe69b14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00812.html#gaa7d015eba1f9f48519251f4abe69b14d">More...</a><br /></td></tr>
<tr class="separator:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
<tr class="memdesc:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">More...</a><br /></td></tr>
<tr class="separator:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
<tr class="memitem:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a> (genTypeT x, genTypeT y, genTypeU a)</td></tr>
<tr class="memdesc:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="mdescLeft">&#160;</td><td class="mdescRight">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. <a href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">More...</a><br /></td></tr>
<tr class="separator:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
<tr class="memdesc:ga9b197a452cd52db3c5c18bac72bd7798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">More...</a><br /></td></tr>
<tr class="separator:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
<tr class="memdesc:ga85e33f139b8db1b39b590a5713b9e679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). <a href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">More...</a><br /></td></tr>
<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">More...</a><br /></td></tr>
<tr class="separator:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76b81785045a057989a84d99aeeb1578"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga76b81785045a057989a84d99aeeb1578"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:ga76b81785045a057989a84d99aeeb1578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00812.html#ga76b81785045a057989a84d99aeeb1578">More...</a><br /></td></tr>
<tr class="separator:ga76b81785045a057989a84d99aeeb1578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga589807f35ad0a1d173762bfac3288929"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga589807f35ad0a1d173762bfac3288929"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga589807f35ad0a1d173762bfac3288929">sign</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:ga589807f35ad0a1d173762bfac3288929"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. <a href="a00812.html#ga589807f35ad0a1d173762bfac3288929">More...</a><br /></td></tr>
<tr class="separator:ga589807f35ad0a1d173762bfac3288929"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
<tr class="memdesc:ga562edf7eca082cc5b7a0aaf180436daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. <a href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">More...</a><br /></td></tr>
<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
<tr class="memdesc:ga015a1261ff23e12650211aa872863cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType. <a href="a00812.html#ga015a1261ff23e12650211aa872863cce">More...</a><br /></td></tr>
<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f9a911a48ef244b51654eaefc81c551"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:ga8f9a911a48ef244b51654eaefc81c551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga8f9a911a48ef244b51654eaefc81c551">step</a> (T edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:ga8f9a911a48ef244b51654eaefc81c551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00812.html#ga8f9a911a48ef244b51654eaefc81c551">More...</a><br /></td></tr>
<tr class="separator:ga8f9a911a48ef244b51654eaefc81c551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a> (vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">More...</a><br /></td></tr>
<tr class="separator:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9375e3e06173271d49e6ffa3a334259"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
<tr class="memitem:gaf9375e3e06173271d49e6ffa3a334259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
<tr class="memdesc:gaf9375e3e06173271d49e6ffa3a334259"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. <a href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">More...</a><br /></td></tr>
<tr class="separator:gaf9375e3e06173271d49e6ffa3a334259"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac427a0b389f2c585269c36ccaee9c5ed"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#gac427a0b389f2c585269c36ccaee9c5ed">uintBitsToFloat</a> (uint v)</td></tr>
<tr class="memdesc:gac427a0b389f2c585269c36ccaee9c5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00812.html#gac427a0b389f2c585269c36ccaee9c5ed">More...</a><br /></td></tr>
<tr class="separator:gac427a0b389f2c585269c36ccaee9c5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
<tr class="memitem:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a> (vec&lt; L, uint, Q &gt; const &amp;v)</td></tr>
<tr class="memdesc:ga97f46b5f7b42fe44482e13356eb394ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">More...</a><br /></td></tr>
<tr class="separator:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
<p class="definition">Definition in file <a class="el" href="a00002_source.html">common.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,257 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: common.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">common.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00002.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;detail/qualifier.hpp&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;detail/_fixes.hpp&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="a00812.html#ga439e60a72eadecfeda2df5449c613a64"> 32</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(genType x);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6"> 43</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00812.html#ga589807f35ad0a1d173762bfac3288929"> 54</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga589807f35ad0a1d173762bfac3288929">sign</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d"> 65</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259"> 77</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e"> 92</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00812.html#ga76b81785045a057989a84d99aeeb1578"> 106</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657"> 118</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00812.html#ga8ba89e40e55ae5cdf228548f9b7639c7"> 127</a></span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga2df623004f634b440d61e018d62c751b">fract</a>(genType x);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00812.html#ga2df623004f634b440d61e018d62c751b"> 138</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga2df623004f634b440d61e018d62c751b">fract</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(genType x, genType y);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798"> 156</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679"> 168</a></span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType&amp; i);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00812.html#ga6cf8098827054a270ee36b18e30d471d"> 177</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(genType x, genType y);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00812.html#gaa7d015eba1f9f48519251f4abe69b14d"> 188</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48"> 199</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00812.html#gae02d42887fc5570451f880e3c624b9ac"> 208</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a>(genType x, genType y);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="a00812.html#ga03e45d6e60d1c36edb00c52edeea0f31"> 219</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="a00812.html#gac1fec0c3303b572a6d4697a637213870"> 230</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="a00812.html#ga7cd77683da6361e297c56443fc70806d"> 240</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(genType x, genType minVal, genType maxVal);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00812.html#gafba2e0674deb5953878d89483cd6323d"> 252</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T minVal, T maxVal);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; </div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d"> 264</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; minVal, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; maxVal);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;</div>
<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416"> 309</a></span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genTypeT <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a);</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U a);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="a00812.html#ga015a1261ff23e12650211aa872863cce"> 322</a></span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(genType edge, genType x);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="a00812.html#ga8f9a911a48ef244b51654eaefc81c551"> 333</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(T edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f"> 344</a></span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf"> 361</a></span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge0, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="a00812.html#ga29ef934c00306490de837b4746b4e14d"> 384</a></span>&#160; GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00812.html#ga29ef934c00306490de837b4746b4e14d">isnan</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="a00812.html#ga2885587c23a106301f20443896365b62"> 399</a></span>&#160; GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00812.html#ga2885587c23a106301f20443896365b62">isinf</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; </div>
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="a00812.html#ga8a23e454d8ae48b8f6dfdaea4b756072"> 407</a></span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(<span class="keywordtype">float</span> v);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed"> 419</a></span>&#160; GLM_FUNC_DECL vec&lt;L, int, Q&gt; <a class="code" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; </div>
<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="a00812.html#ga1bbdafd513ece71856e66a8ab0ea10d1"> 427</a></span>&#160; GLM_FUNC_DECL uint <a class="code" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(<span class="keywordtype">float</span> v);</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db"> 439</a></span>&#160; GLM_FUNC_DECL vec&lt;L, uint, Q&gt; <a class="code" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; </div>
<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="a00812.html#gad780bbd088b64d823ad7049c42b157da"> 449</a></span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(<span class="keywordtype">int</span> v);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0"> 463</a></span>&#160; GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; v);</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="a00812.html#gac427a0b389f2c585269c36ccaee9c5ed"> 473</a></span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(uint v);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; </div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae"> 487</a></span>&#160; GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(vec&lt;L, uint, Q&gt; <span class="keyword">const</span>&amp; v);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2"> 496</a></span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span>&amp; a, genType <span class="keyword">const</span>&amp; b, genType <span class="keyword">const</span>&amp; c);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; </div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81"> 513</a></span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(genType x, <span class="keywordtype">int</span>&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; </div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt;&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; </div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c"> 530</a></span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(genType <span class="keyword">const</span>&amp; x, <span class="keywordtype">int</span> <span class="keyword">const</span>&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; </div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; </div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor">#include &quot;detail/func_common.inl&quot;</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00812_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
<div class="ttc" id="aa00812_html_ga81d3abddd0ef0c8de579bc541ecadab6"><div class="ttname"><a href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; abs(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns x if x &gt;= 0; otherwise, it returns -x.</div></div>
<div class="ttc" id="aa00812_html_gac3010e0a0c35a1b514540f2fb579c58c"><div class="ttname"><a href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &amp;x, int const &amp;exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp,...</div></div>
<div class="ttc" id="aa00812_html_gaa0f2f12e9108b09e22a3f0b2008a0b5d"><div class="ttname"><a href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; clamp(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
<div class="ttc" id="aa00812_html_gaf4a5fc81619c7d3e8b22f53d4a098c7f"><div class="ttname"><a href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; step(vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 0.0 if x &lt; edge, otherwise it returns 1.0.</div></div>
<div class="ttc" id="aa00812_html_ga31f49ef9e7d1beb003160c5e009b0c48"><div class="ttname"><a href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; min(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if y &lt; x; otherwise, it returns x.</div></div>
<div class="ttc" id="aa00812_html_gaddf5ef73283c171730e0bcc11833fa81"><div class="ttname"><a href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType x, int &amp;exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two,...</div></div>
<div class="ttc" id="aa00812_html_gafb9d2a645a23aca12d4d6de0104b7657"><div class="ttname"><a href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; ceil(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x.</div></div>
<div class="ttc" id="aa00812_html_ga589807f35ad0a1d173762bfac3288929"><div class="ttname"><a href="a00812.html#ga589807f35ad0a1d173762bfac3288929">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; sign(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.</div></div>
<div class="ttc" id="aa00812_html_gafa03aca8c4713e1cc892aa92ca135a7e"><div class="ttname"><a href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; round(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x.</div></div>
<div class="ttc" id="aa00812_html_ga49418ba4c8a60fbbb5d57b705f3e26db"><div class="ttname"><a href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, uint, Q &gt; floatBitsToUint(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value.</div></div>
<div class="ttc" id="aa00812_html_ga76b81785045a057989a84d99aeeb1578"><div class="ttname"><a href="a00812.html#ga76b81785045a057989a84d99aeeb1578">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; roundEven(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x.</div></div>
<div class="ttc" id="aa00812_html_ga2885587c23a106301f20443896365b62"><div class="ttname"><a href="a00812.html#ga2885587c23a106301f20443896365b62">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isinf(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
<div class="ttc" id="aa00812_html_gac1fec0c3303b572a6d4697a637213870"><div class="ttname"><a href="a00812.html#gac1fec0c3303b572a6d4697a637213870">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; max(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if x &lt; y; otherwise, it returns x.</div></div>
<div class="ttc" id="aa00813_html_ga071566cadc7505455e611f2a0353f4d4"><div class="ttname"><a href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of v, i.e., e^v.</div></div>
<div class="ttc" id="aa00812_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &amp;i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
<div class="ttc" id="aa00812_html_ga6b6e0c7ecb4a5b78f929566355bb7416"><div class="ttname"><a href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT mix(genTypeT x, genTypeT y, genTypeU a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
<div class="ttc" id="aa00812_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x.</div></div>
<div class="ttc" id="aa00812_html_ga29ef934c00306490de837b4746b4e14d"><div class="ttname"><a href="a00812.html#ga29ef934c00306490de837b4746b4e14d">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isnan(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...</div></div>
<div class="ttc" id="aa00812_html_ga2df623004f634b440d61e018d62c751b"><div class="ttname"><a href="a00812.html#ga2df623004f634b440d61e018d62c751b">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; fract(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Return x - floor(x).</div></div>
<div class="ttc" id="aa00812_html_ga99f7d62f78ac5ea3b49bae715c9488ed"><div class="ttname"><a href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, int, Q &gt; floatBitsToInt(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value.</div></div>
<div class="ttc" id="aa00812_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &amp;a, genType const &amp;b, genType const &amp;c)</div><div class="ttdoc">Computes and returns a * b + c.</div></div>
<div class="ttc" id="aa00812_html_ga97f46b5f7b42fe44482e13356eb394ae"><div class="ttname"><a href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; uintBitsToFloat(vec&lt; L, uint, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
<div class="ttc" id="aa00812_html_ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><div class="ttname"><a href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; intBitsToFloat(vec&lt; L, int, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.</div></div>
<div class="ttc" id="aa00812_html_ga9b197a452cd52db3c5c18bac72bd7798"><div class="ttname"><a href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; mod(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Modulus.</div></div>
<div class="ttc" id="aa00812_html_gaf9375e3e06173271d49e6ffa3a334259"><div class="ttname"><a href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; trunc(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,475 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: _features.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">_features.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// #define GLM_CXX98_EXCEPTIONS</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// #define GLM_CXX98_RTTI</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// #define GLM_CXX11_RVALUE_REFERENCES</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// Rvalue references - GCC 4.3</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// GLM_CXX11_TRAILING_RETURN</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Rvalue references for *this - GCC not supported</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Initialization of class objects by rvalues - GCC any</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Non-static data member initializers - GCC 4.7</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// #define GLM_CXX11_VARIADIC_TEMPLATE</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// Variadic templates - GCC 4.3</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Extending variadic template template parameters - GCC 4.4</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// #define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// Initializer lists - GCC 4.4</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// #define GLM_CXX11_STATIC_ASSERT</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Static assertions - GCC 4.3</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// auto-typed variables - GCC 4.4</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Multi-declarator auto - GCC 4.4</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Removal of auto as a storage-class specifier - GCC 4.4</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// New function declarator syntax - GCC 4.4</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// #define GLM_CXX11_LAMBDAS</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// New wording for C++0x lambdas - GCC 4.5</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// #define GLM_CXX11_DECLTYPE</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// Declared type of an expression - GCC 4.3</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// Right angle brackets - GCC 4.3</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// Default template arguments for function templates DR226 GCC 4.3</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// Solving the SFINAE problem for expressions DR339 GCC 4.4</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// #define GLM_CXX11_ALIAS_TEMPLATE</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// Template aliases N2258 GCC 4.7</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// Extern templates N1987 Yes</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// #define GLM_CXX11_NULLPTR</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// Null pointer constant N2431 GCC 4.6</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// #define GLM_CXX11_STRONG_ENUMS</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">// Strongly-typed enums N2347 GCC 4.4</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// Forward declarations for enums N2764 GCC 4.6</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">// Generalized attributes N2761 GCC 4.8</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// Generalized constant expressions N2235 GCC 4.6</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">// Alignment support N2341 GCC 4.8</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// #define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// Delegating constructors N1986 GCC 4.7</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">// Inheriting constructors N2540 GCC 4.8</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// #define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// Explicit conversion operators N2437 GCC 4.5</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// New character types N2249 GCC 4.4</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// Unicode string literals N2442 GCC 4.5</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// Raw string literals N2442 GCC 4.5</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">// Universal character name literals N2170 GCC 4.5</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// #define GLM_CXX11_USER_LITERALS</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// User-defined literals N2765 GCC 4.7</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// Standard Layout Types N2342 GCC 4.5</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">// #define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">// #define GLM_CXX11_DELETED_FUNCTIONS</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment">// Defaulted and deleted functions N2346 GCC 4.4</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment">// Extended friend declarations N1791 GCC 4.7</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">// Extending sizeof N2253 GCC 4.4</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// #define GLM_CXX11_INLINE_NAMESPACES</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">// Inline namespaces N2535 GCC 4.4</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">// #define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">// Unrestricted unions N2544 GCC 4.6</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment">// #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">// Local and unnamed types as template arguments N2657 GCC 4.5</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment">// #define GLM_CXX11_RANGE_FOR</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">// Range-based for N2930 GCC 4.6</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment">// #define GLM_CXX11_OVERRIDE_CONTROL</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">// Explicit virtual overrides N2928 N3206 N3272 GCC 4.7</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// Minimal support for garbage collection and reachability-based leak detection N2670 No</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// #define GLM_CXX11_NOEXCEPT</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">// Defining move special member functions N3053 GCC 4.6</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// Sequence points N2239 Yes</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// Atomic operations N2427 GCC 4.4</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">// Strong Compare and Exchange N2748 GCC 4.5</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">// Bidirectional Fences N2752 GCC 4.8</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// Memory model N2429 GCC 4.8</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// Data-dependency ordering: atomics and memory model N2664 GCC 4.4</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// Propagating exceptions N2179 GCC 4.4</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// Abandoning a process and at_quick_exit N2440 GCC 4.8</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// Allow atomics use in signal handlers N2547 Yes</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// Thread-local storage N2659 GCC 4.8</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// Dynamic initialization and destruction with concurrency N2660 GCC 4.3</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">// __func__ predefined identifier N2340 GCC 4.3</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// C99 preprocessor N1653 GCC 4.3</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// long long N1811 GCC 4.3</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// Extended integral types N1988 Yes</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_exceptions))</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"># define GLM_CXX98_EXCEPTIONS</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rtti))</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"># define GLM_CXX98_RTTI</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_access_control_sfinae))</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"># define GLM_CXX11_ACCESS_CONTROL_SFINAE</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alias_templates))</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIAS_TEMPLATE</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alignas))</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIGNAS</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_attributes))</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"># define GLM_CXX11_ATTRIBUTES</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; </div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_constexpr))</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"># define GLM_CXX11_CONSTEXPR</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_decltype))</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"># define GLM_CXX11_DECLTYPE</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_default_function_template_args))</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_defaulted_functions))</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_delegating_constructors))</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_deleted_functions))</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELETED_FUNCTIONS</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_explicit_conversions))</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"># define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; </div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_generalized_initializers))</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"># define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; </div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_implicit_moves))</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"># define GLM_CXX11_IMPLICIT_MOVES</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inheriting_constructors))</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"># define GLM_CXX11_INHERITING_CONSTRUCTORS</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inline_namespaces))</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"># define GLM_CXX11_INLINE_NAMESPACES</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_lambdas))</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"># define GLM_CXX11_LAMBDAS</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_local_type_template_args))</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"># define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_noexcept))</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"># define GLM_CXX11_NOEXCEPT</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; </div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nonstatic_member_init))</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"># define GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nullptr))</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"># define GLM_CXX11_NULLPTR</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_override_control))</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"># define GLM_CXX11_OVERRIDE_CONTROL</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_reference_qualified_functions))</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"># define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_range_for))</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"># define GLM_CXX11_RANGE_FOR</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_raw_string_literals))</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"># define GLM_CXX11_RAW_STRING_LITERALS</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; </div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rvalue_references))</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"># define GLM_CXX11_RVALUE_REFERENCES</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_static_assert))</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_auto_type))</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"># define GLM_CXX11_AUTO_TYPE</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_strong_enums))</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"># define GLM_CXX11_STRONG_ENUMS</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; </div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_trailing_return))</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"># define GLM_CXX11_TRAILING_RETURN</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; </div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unicode_literals))</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNICODE_LITERALS</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; </div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unrestricted_unions))</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_user_literals))</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"># define GLM_CXX11_USER_LITERALS</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; </div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_variadic_templates))</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"># define GLM_CXX11_VARIADIC_TEMPLATES</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#endif//(GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,103 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: _fixes.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">_fixes.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#ifdef max</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#undef max</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifdef min</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#undef min</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifdef isnan</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#undef isnan</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef isinf</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#undef isinf</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#ifdef log2</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#undef log2</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,163 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: _noise.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">_noise.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; {</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">return</span> x - <a class="code" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(x * (<span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.0) / <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0))) * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0);</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; }</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; GLM_FUNC_QUALIFIER T permute(T <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">return</span> mod289(((x * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(34)) + <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1)) * x);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; }</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; permute(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; {</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> mod289(((x * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(34)) + <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1)) * x);</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; permute(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> mod289(((x * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(34)) + <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1)) * x);</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; permute(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> mod289(((x * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(34)) + <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1)) * x);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_QUALIFIER T taylorInvSqrt(T <span class="keyword">const</span>&amp; r)</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; taylorInvSqrt(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; r)</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; taylorInvSqrt(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; r)</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; taylorInvSqrt(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; r)</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; fade(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; t)</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(6) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(15)) + <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(10));</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; fade(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; t)</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(6) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(15)) + <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(10));</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; fade(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; t)</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(6) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(15)) + <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(10));</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00812_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x.</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,891 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: _swizzle.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">_swizzle.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="comment">// Internal class for implementing swizzle operators</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">struct </span>_swizzle_base0</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; {</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; GLM_FUNC_QUALIFIER T&amp; elem(<span class="keywordtype">int</span> i){ <span class="keywordflow">return</span> (<span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(_buffer))[i]; }</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; GLM_FUNC_QUALIFIER T <span class="keyword">const</span>&amp; elem(<span class="keywordtype">int</span> i)<span class="keyword"> const</span>{ <span class="keywordflow">return</span> (<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(_buffer))[i]; }</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn&#39;t call a constructor.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="comment">// elem()</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">char</span> _buffer[1];</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; };</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0&lt;T, N&gt;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; {</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; };</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;N, T, Q, E0, E1, E2, E3, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, N&gt;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; };</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;2, T, Q, E0,E1,-1,-2, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 2&gt;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1)); }</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; };</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;3, T, Q, E0,E1,E2,3, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 3&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2)); }</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; };</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;4, T, Q, E0,E1,E2,E3, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 4&gt;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2), this-&gt;elem(E3)); }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; };</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// Internal class for implementing swizzle operators</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> Template parameters:</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> T = type of scalar values (e.g. float, double)</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> N = number of components in the vector (e.g. 3)</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> containing duplicate elements so that they cannot be used as r-values).</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS&gt;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1&lt;N, T, Q, E0,E1,E2,E3, detail::is_aligned&lt;Q&gt;::value&gt;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">struct </span>op_equal</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> = t; }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; };</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">struct </span>op_minus</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> -= t; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; };</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">struct </span>op_plus</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> += t; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">struct </span>op_mul</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> *= t; }</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; };</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">struct </span>op_div</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> /= t; }</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (<span class="keyword">const</span> T&amp; t)</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; (*<span class="keyword">this</span>)[i] = t;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; _apply_op(that, op_equal());</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; _apply_op(that, op_minus());</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; _apply_op(that, op_plus());</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; _apply_op(that, op_mul());</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; _apply_op(that, op_div());</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_QUALIFIER T&amp; operator[](<span class="keywordtype">int</span> i)</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_QUALIFIER T operator[](<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that, <span class="keyword">const</span> U&amp; op)</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Make a copy of the data in this == &amp;that.</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// properly inlined and the copy is not necessary.</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; T t[N];</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; t[i] = that[i];</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; op( (*<span class="keyword">this</span>)[i], t[i] );</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; };</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// Specialization for swizzles containing duplicate elements. These cannot be modified.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">struct </span>_swizzle_base2&lt;N, T, Q, E0,E1,E2,E3, 1&gt; : <span class="keyword">public</span> _swizzle_base1&lt;N, T, Q, E0,E1,E2,E3, detail::is_aligned&lt;Q&gt;::value&gt;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">struct </span>Stub {};</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (Stub <span class="keyword">const</span>&amp;) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_QUALIFIER T operator[] (<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; };</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2&lt;N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">typedef</span> _swizzle_base2&lt;N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt; base_type;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">using</span> base_type::operator=;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">operator</span> vec&lt;N, T, Q&gt; ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; };</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TEMPLATE1 template&lt;int N, typename T, qualifier Q, int E0, int E1, int E2, int E3&gt;</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TEMPLATE2 template&lt;int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3&gt;</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TYPE1 _swizzle&lt;N, T, Q, E0, E1, E2, E3&gt;</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TYPE2 _swizzle&lt;N, T, Q, F0, F1, F2, F3&gt;</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE2 \</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"> return a() OPERAND b(); \</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const vec&lt;N, T, Q&gt;&amp; b) \</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"> return a() OPERAND b; \</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const vec&lt;N, T, Q&gt;&amp; a, const GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"> return a OPERAND b(); \</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const T&amp; b) \</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"> return a() OPERAND b; \</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const T&amp; a, const GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"> return a OPERAND b(); \</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a) \</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"> return FUNCTION(a()); \</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE2 \</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const typename V&amp; b) \</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b); \</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V&amp; a, const GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> return FUNCTION(a, b()); \</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; </div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE2 \</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b, const T&amp; c) \</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c) \</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const typename S0::vec_type&amp; b, const T&amp; c)\</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b, c); \</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_TEMPLATE1 \</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V&amp; a, const GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c) \</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> return FUNCTION(a, b(), c); \</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; </div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;{</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// Swizzles are distinct types from the unswizzled type. The below macros will</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// the function.</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; </div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; </div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_2_MEMBERS(T, Q, E0,E1) \</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, Q, 1,1,-1,-2&gt; E1 ## E1; };</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_3_MEMBERS(T, Q, E0,E1) \</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, Q, 1,1,1,-1&gt; E1 ## E1 ## E1; };</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; </div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_4_MEMBERS(T, Q, E0,E1) \</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; };</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_2_MEMBERS(T, Q, E0,E1,E2) \</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 2,2,-1,-2&gt; E2 ## E2; };</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; </div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_3_MEMBERS(T, Q ,E0,E1,E2) \</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,0,0,3&gt; E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,0,1,3&gt; E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,0,2,3&gt; E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,1,0,3&gt; E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,1,1,3&gt; E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,1,2,3&gt; E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,2,0,3&gt; E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,2,1,3&gt; E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,2,2,3&gt; E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,0,0,3&gt; E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,0,1,3&gt; E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,0,2,3&gt; E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,1,0,3&gt; E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,1,1,3&gt; E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,1,2,3&gt; E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,2,0,3&gt; E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,2,1,3&gt; E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,2,2,3&gt; E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,0,0,3&gt; E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,0,1,3&gt; E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,0,2,3&gt; E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,1,0,3&gt; E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,1,1,3&gt; E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,1,2,3&gt; E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,2,0,3&gt; E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,2,1,3&gt; E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,2,2,3&gt; E2 ## E2 ## E2; };</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_4_MEMBERS(T, Q, E0,E1,E2) \</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, Q, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; };</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; </div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_2_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 0,3,-1,-2&gt; E0 ## E3; }; \</span></div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 1,3,-1,-2&gt; E1 ## E3; }; \</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 2,2,-1,-2&gt; E2 ## E2; }; \</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 2,3,-1,-2&gt; E2 ## E3; }; \</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 3,0,-1,-2&gt; E3 ## E0; }; \</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 3,1,-1,-2&gt; E3 ## E1; }; \</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 3,2,-1,-2&gt; E3 ## E2; }; \</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, Q, 3,3,-1,-2&gt; E3 ## E3; };</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; </div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_3_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,0,0,3&gt; E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,0,1,3&gt; E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,0,2,3&gt; E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,0,3,3&gt; E0 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,1,0,3&gt; E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,1,1,3&gt; E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,1,2,3&gt; E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,1,3,3&gt; E0 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,2,0,3&gt; E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,2,1,3&gt; E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,2,2,3&gt; E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,2,3,3&gt; E0 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,3,0,3&gt; E0 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,3,1,3&gt; E0 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,3,2,3&gt; E0 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 0,3,3,3&gt; E0 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,0,0,3&gt; E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,0,1,3&gt; E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,0,2,3&gt; E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,0,3,3&gt; E1 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,1,0,3&gt; E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,1,1,3&gt; E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,1,2,3&gt; E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,1,3,3&gt; E1 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,2,0,3&gt; E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,2,1,3&gt; E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,2,2,3&gt; E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,2,3,3&gt; E1 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,3,0,3&gt; E1 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,3,1,3&gt; E1 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,3,2,3&gt; E1 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 1,3,3,3&gt; E1 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,0,0,3&gt; E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,0,1,3&gt; E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,0,2,3&gt; E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,0,3,3&gt; E2 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,1,0,3&gt; E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,1,1,3&gt; E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,1,2,3&gt; E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,1,3,3&gt; E2 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,2,0,3&gt; E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,2,1,3&gt; E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,2,2,3&gt; E2 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,2,3,3&gt; E2 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,3,0,3&gt; E2 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,3,1,3&gt; E2 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,3,2,3&gt; E2 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 2,3,3,3&gt; E2 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,0,0,3&gt; E3 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,0,1,3&gt; E3 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,0,2,3&gt; E3 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,0,3,3&gt; E3 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,1,0,3&gt; E3 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,1,1,3&gt; E3 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,1,2,3&gt; E3 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,1,3,3&gt; E3 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,2,0,3&gt; E3 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,2,1,3&gt; E3 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,2,2,3&gt; E3 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,2,3,3&gt; E3 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,3,0,3&gt; E3 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,3,1,3&gt; E3 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,3,2,3&gt; E3 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, Q, 3,3,3,3&gt; E3 ## E3 ## E3; };</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; </div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_4_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,0,3&gt; E0 ## E0 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,1,3&gt; E0 ## E0 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,2,3&gt; E0 ## E0 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,3,0&gt; E0 ## E0 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,3,1&gt; E0 ## E0 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,3,2&gt; E0 ## E0 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,0,3,3&gt; E0 ## E0 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,0,3&gt; E0 ## E1 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,1,3&gt; E0 ## E1 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,2,3&gt; E0 ## E1 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,3,0&gt; E0 ## E1 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,3,1&gt; E0 ## E1 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,3,2&gt; E0 ## E1 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,1,3,3&gt; E0 ## E1 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,0,3&gt; E0 ## E2 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,1,3&gt; E0 ## E2 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,2,3&gt; E0 ## E2 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,3,0&gt; E0 ## E2 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,3,1&gt; E0 ## E2 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,3,2&gt; E0 ## E2 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,2,3,3&gt; E0 ## E2 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,0,0&gt; E0 ## E3 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,0,1&gt; E0 ## E3 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,0,2&gt; E0 ## E3 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,0,3&gt; E0 ## E3 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,1,0&gt; E0 ## E3 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,1,1&gt; E0 ## E3 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,1,2&gt; E0 ## E3 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,1,3&gt; E0 ## E3 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,2,0&gt; E0 ## E3 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,2,1&gt; E0 ## E3 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,2,2&gt; E0 ## E3 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,2,3&gt; E0 ## E3 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,3,0&gt; E0 ## E3 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,3,1&gt; E0 ## E3 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,3,2&gt; E0 ## E3 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 0,3,3,3&gt; E0 ## E3 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,0,3&gt; E1 ## E0 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,1,3&gt; E1 ## E0 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,2,3&gt; E1 ## E0 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,3,0&gt; E1 ## E0 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,3,1&gt; E1 ## E0 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,3,2&gt; E1 ## E0 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,0,3,3&gt; E1 ## E0 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,0,3&gt; E1 ## E1 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,1,3&gt; E1 ## E1 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,2,3&gt; E1 ## E1 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,3,0&gt; E1 ## E1 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,3,1&gt; E1 ## E1 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,3,2&gt; E1 ## E1 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,1,3,3&gt; E1 ## E1 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,0,3&gt; E1 ## E2 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,1,3&gt; E1 ## E2 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,2,3&gt; E1 ## E2 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,3,0&gt; E1 ## E2 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,3,1&gt; E1 ## E2 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,3,2&gt; E1 ## E2 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,2,3,3&gt; E1 ## E2 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,0,0&gt; E1 ## E3 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,0,1&gt; E1 ## E3 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,0,2&gt; E1 ## E3 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,0,3&gt; E1 ## E3 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,1,0&gt; E1 ## E3 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,1,1&gt; E1 ## E3 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,1,2&gt; E1 ## E3 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,1,3&gt; E1 ## E3 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,2,0&gt; E1 ## E3 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,2,1&gt; E1 ## E3 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,2,2&gt; E1 ## E3 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,2,3&gt; E1 ## E3 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,3,0&gt; E1 ## E3 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,3,1&gt; E1 ## E3 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,3,2&gt; E1 ## E3 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 1,3,3,3&gt; E1 ## E3 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,0,3&gt; E2 ## E0 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,1,3&gt; E2 ## E0 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,2,3&gt; E2 ## E0 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,3,0&gt; E2 ## E0 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,3,1&gt; E2 ## E0 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,3,2&gt; E2 ## E0 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,0,3,3&gt; E2 ## E0 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,0,3&gt; E2 ## E1 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,1,3&gt; E2 ## E1 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,2,3&gt; E2 ## E1 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,3,0&gt; E2 ## E1 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,3,1&gt; E2 ## E1 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,3,2&gt; E2 ## E1 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,1,3,3&gt; E2 ## E1 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,0,3&gt; E2 ## E2 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,1,3&gt; E2 ## E2 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,2,3&gt; E2 ## E2 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,3,0&gt; E2 ## E2 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,3,1&gt; E2 ## E2 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,3,2&gt; E2 ## E2 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,2,3,3&gt; E2 ## E2 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,0,0&gt; E2 ## E3 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,0,1&gt; E2 ## E3 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,0,2&gt; E2 ## E3 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,0,3&gt; E2 ## E3 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,1,0&gt; E2 ## E3 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,1,1&gt; E2 ## E3 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,1,2&gt; E2 ## E3 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,1,3&gt; E2 ## E3 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,2,0&gt; E2 ## E3 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,2,1&gt; E2 ## E3 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,2,2&gt; E2 ## E3 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,2,3&gt; E2 ## E3 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,3,0&gt; E2 ## E3 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,3,1&gt; E2 ## E3 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,3,2&gt; E2 ## E3 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 2,3,3,3&gt; E2 ## E3 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,0,0&gt; E3 ## E0 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,0,1&gt; E3 ## E0 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,0,2&gt; E3 ## E0 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,0,3&gt; E3 ## E0 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,1,0&gt; E3 ## E0 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,1,1&gt; E3 ## E0 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,1,2&gt; E3 ## E0 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,1,3&gt; E3 ## E0 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,2,0&gt; E3 ## E0 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,2,1&gt; E3 ## E0 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,2,2&gt; E3 ## E0 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,2,3&gt; E3 ## E0 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,3,0&gt; E3 ## E0 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,3,1&gt; E3 ## E0 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,3,2&gt; E3 ## E0 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,0,3,3&gt; E3 ## E0 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,0,0&gt; E3 ## E1 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,0,1&gt; E3 ## E1 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,0,2&gt; E3 ## E1 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,0,3&gt; E3 ## E1 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,1,0&gt; E3 ## E1 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,1,1&gt; E3 ## E1 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,1,2&gt; E3 ## E1 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,1,3&gt; E3 ## E1 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,2,0&gt; E3 ## E1 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,2,1&gt; E3 ## E1 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,2,2&gt; E3 ## E1 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,2,3&gt; E3 ## E1 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,3,0&gt; E3 ## E1 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,3,1&gt; E3 ## E1 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,3,2&gt; E3 ## E1 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,1,3,3&gt; E3 ## E1 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,0,0&gt; E3 ## E2 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,0,1&gt; E3 ## E2 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,0,2&gt; E3 ## E2 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,0,3&gt; E3 ## E2 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,1,0&gt; E3 ## E2 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,1,1&gt; E3 ## E2 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,1,2&gt; E3 ## E2 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,1,3&gt; E3 ## E2 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,2,0&gt; E3 ## E2 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,2,1&gt; E3 ## E2 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,2,2&gt; E3 ## E2 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,2,3&gt; E3 ## E2 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,3,0&gt; E3 ## E2 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,3,1&gt; E3 ## E2 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,3,2&gt; E3 ## E2 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,2,3,3&gt; E3 ## E2 ## E3 ## E3; }; \</span></div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,0,0&gt; E3 ## E3 ## E0 ## E0; }; \</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,0,1&gt; E3 ## E3 ## E0 ## E1; }; \</span></div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,0,2&gt; E3 ## E3 ## E0 ## E2; }; \</span></div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,0,3&gt; E3 ## E3 ## E0 ## E3; }; \</span></div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,1,0&gt; E3 ## E3 ## E1 ## E0; }; \</span></div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,1,1&gt; E3 ## E3 ## E1 ## E1; }; \</span></div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,1,2&gt; E3 ## E3 ## E1 ## E2; }; \</span></div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,1,3&gt; E3 ## E3 ## E1 ## E3; }; \</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,2,0&gt; E3 ## E3 ## E2 ## E0; }; \</span></div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,2,1&gt; E3 ## E3 ## E2 ## E1; }; \</span></div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,2,2&gt; E3 ## E3 ## E2 ## E2; }; \</span></div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,2,3&gt; E3 ## E3 ## E2 ## E3; }; \</span></div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,3,0&gt; E3 ## E3 ## E3 ## E0; }; \</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,3,1&gt; E3 ## E3 ## E3 ## E1; }; \</span></div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,3,2&gt; E3 ## E3 ## E3 ## E2; }; \</span></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, Q, 3,3,3,3&gt; E3 ## E3 ## E3 ## E3; };</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00908_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant.</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,763 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: _swizzle_func.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">_swizzle_func.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, CONST, A, B) \</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; A ## B() CONST \</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor"> return vec&lt;2, T, Q&gt;(this-&gt;A, this-&gt;B); \</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, CONST, A, B, C) \</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; A ## B ## C() CONST \</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"> return vec&lt;3, T, Q&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, CONST, A, B, C, D) \</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; A ## B ## C ## D() CONST \</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"> return vec&lt;4, T, Q&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(T, P, L, CONST, A, B) \</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"> template&lt;typename T&gt; \</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;L, T, Q&gt; vec&lt;L, T, Q&gt;::A ## B() CONST \</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"> return vec&lt;2, T, Q&gt;(this-&gt;A, this-&gt;B); \</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(T, P, L, CONST, A, B, C) \</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"> template&lt;typename T&gt; \</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; vec&lt;L, T, Q&gt;::A ## B ## C() CONST \</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"> return vec&lt;3, T, Q&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(T, P, L, CONST, A, B, C, D) \</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"> template&lt;typename T&gt; \</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; vec&lt;L, T, Q&gt;::A ## B ## C ## D() CONST \</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> return vec&lt;4, T, Q&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> }</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define GLM_MUTABLE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, A, B) \</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, A, B) \</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, B, A)</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(T, P) \</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, x, y) \</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, r, g) \</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, s, t)</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B)</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, B, C) \</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, C, B) \</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, A, C) \</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, C, A) \</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, A, B) \</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, B, A)</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C)</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, P) \</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, x, y, z) \</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, r, g, b) \</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, s, t, p)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, D) \</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, D) \</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B) \</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, D) \</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, A) \</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, B) \</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, C)</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, C) \</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, D) \</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, B) \</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, D) \</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, B) \</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, C) \</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, C) \</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, D) \</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, A) \</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, D) \</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, A) \</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, C) \</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, B) \</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, D) \</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, A) \</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, D) \</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, A) \</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, B) \</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, B) \</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, C) \</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, A) \</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, C) \</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, A) \</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, B)</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, B, D) \</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, D, B) \</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, B, C) \</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, C, B) \</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, D, C) \</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, C, D) \</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, A, D) \</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, D, A) \</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, A, C) \</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, C, A) \</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, D, C) \</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, C, D) \</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, A, D) \</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, D, A) \</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, A, B) \</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, B, A) \</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, D, B) \</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, B, D) \</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, B, A) \</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, A, B) \</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, B, C) \</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, C, B) \</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, A, C) \</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, C, A)</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, P) \</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, x, y, z, w) \</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, r, g, b, a) \</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, s, t, p, q)</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B)</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B)</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B) \</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B)</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, A, B) \</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B)</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P) \</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, x, y) \</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, r, g) \</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, s, t)</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C)</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C)</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C)</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C)</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P) \</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, x, y, z) \</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, r, g, b) \</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, s, t, p)</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, D) \</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, D) \</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C) \</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, D) \</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, A) \</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, B) \</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, C) \</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, D)</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, D) \</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, D) \</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, D) \</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, A) \</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, B) \</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, C) \</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, D) \</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, D) \</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, D) \</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, D) \</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, A) \</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, B) \</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, C) \</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, D) \</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, D) \</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, D) \</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C) \</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, D) \</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, A) \</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, B) \</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, C) \</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, D) \</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, A) \</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, B) \</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, C) \</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, D) \</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, A) \</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, B) \</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, C) \</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, D) \</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, A) \</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, B) \</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, C) \</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, D) \</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, A) \</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, B) \</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, C) \</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, D)</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; </div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, D) \</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, D) \</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, D) \</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, A) \</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, B) \</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, C) \</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, D) \</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, D) \</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, D) \</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, D) \</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, A) \</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, B) \</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, C) \</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, D) \</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, D) \</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \</span></div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \</span></div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, D) \</span></div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, D) \</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, A) \</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, B) \</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, C) \</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, D) \</span></div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, A) \</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, B) \</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, C) \</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, D) \</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, A) \</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, B) \</span></div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, C) \</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, D) \</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, A) \</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, B) \</span></div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, C) \</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, D) \</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, A) \</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, B) \</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, C) \</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, D) \</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, D) \</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, D) \</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, D) \</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, A) \</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, B) \</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, C) \</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, D) \</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, D) \</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, D) \</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \</span></div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, D) \</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, A) \</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, B) \</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, C) \</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, D) \</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \</span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, D) \</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, D) \</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, D) \</span></div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, A) \</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, B) \</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, C) \</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, D) \</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, A) \</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, B) \</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, C) \</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, D) \</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, A) \</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, B) \</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, C) \</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, D) \</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, A) \</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, B) \</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, C) \</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, D) \</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, A) \</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, B) \</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, C) \</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, D) \</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, D) \</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, D) \</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, D) \</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, A) \</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, B) \</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, C) \</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, D) \</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, D) \</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, D) \</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, D) \</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, A) \</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, B) \</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, C) \</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, D) \</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, D) \</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, D) \</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C) \</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, D) \</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, A) \</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, B) \</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, C) \</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, D) \</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, A) \</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, B) \</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, C) \</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, D) \</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, A) \</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, B) \</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, C) \</span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, D) \</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, A) \</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, B) \</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, C) \</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, D) \</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, A) \</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, B) \</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, C) \</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, D) \</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, A) \</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, B) \</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, C) \</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, D) \</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, A) \</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, B) \</span></div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, C) \</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, D) \</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, A) \</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, B) \</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, C) \</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, D) \</span></div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, A) \</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, B) \</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, C) \</span></div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, D) \</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, A) \</span></div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, B) \</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, C) \</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, D) \</span></div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, A) \</span></div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, B) \</span></div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, C) \</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, D) \</span></div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, A) \</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, B) \</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, C) \</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, D) \</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, A) \</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, B) \</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, C) \</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, D) \</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, A) \</span></div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, B) \</span></div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, C) \</span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, D) \</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, A) \</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, B) \</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, C) \</span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, D) \</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, A) \</span></div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, B) \</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, C) \</span></div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, D) \</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, A) \</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, B) \</span></div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, C) \</span></div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, D) \</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, A) \</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, B) \</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, C) \</span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, D) \</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, A) \</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, B) \</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, C) \</span></div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, D) \</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, A) \</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, B) \</span></div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, C) \</span></div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, D) \</span></div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, A) \</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, B) \</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, C) \</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, D)</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; </div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; </div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P) \</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, x, y, z, w) \</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, r, g, b, a) \</span></div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, s, t, p, q)</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,311 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: _vectorize.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">_vectorize.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keyword">struct </span>functor1{};</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 1, R, T, Q&gt;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; {</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, R, Q&gt; call(R (*Func) (T x), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; {</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">return</span> vec&lt;1, R, Q&gt;(Func(v.x));</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; }</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; };</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 2, R, T, Q&gt;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, R, Q&gt; call(R (*Func) (T x), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; {</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> vec&lt;2, R, Q&gt;(Func(v.x), Func(v.y));</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; };</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 3, R, T, Q&gt;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, R, Q&gt; call(R (*Func) (T x), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> vec&lt;3, R, Q&gt;(Func(v.x), Func(v.y), Func(v.z));</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; };</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 4, R, T, Q&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, R, Q&gt; call(R (*Func) (T x), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> vec&lt;4, R, Q&gt;(Func(v.x), Func(v.y), Func(v.z), Func(v.w));</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; };</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">struct </span>functor2{};</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 1, T, Q&gt;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b.x));</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Fct&gt;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(Fct Func, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b.x));</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; };</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 2, T, Q&gt;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Fct&gt;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(Fct Func, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 3, T, Q&gt;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(Fct Func, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 4, T, Q&gt;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(Fct Func, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">struct </span>functor2_vec_sca{};</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 1, T, Q&gt;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b));</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(Fct Func, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b));</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 2, T, Q&gt;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b), Func(a.y, b));</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(Fct Func, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b), Func(a.y, b));</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 3, T, Q&gt;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(Fct Func, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; };</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 4, T, Q&gt;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(Fct Func, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; };</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">struct </span>functor2_vec_int {};</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;1, T, Q&gt;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> vec&lt;1, int, Q&gt;(Func(a.x, b.x));</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, int, Q&gt; call(Fct Func, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> vec&lt;1, int, Q&gt;(Func(a.x, b.x));</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;2, T, Q&gt;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> vec&lt;2, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, int, Q&gt; call(Fct Func, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> vec&lt;2, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; };</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;3, T, Q&gt;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> vec&lt;3, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, int, Q&gt; call(Fct Func, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> vec&lt;3, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; };</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;4, T, Q&gt;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> vec&lt;4, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, int, Q&gt; call(Fct Func, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> vec&lt;4, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; };</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}<span class="comment">//namespace glm</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,131 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: compute_common.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">compute_common.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genFIType, <span class="keywordtype">bool</span> <span class="comment">/*signed*/</span>&gt;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">struct </span>compute_abs</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; {};</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genFIType&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">struct </span>compute_abs&lt;genFIType, true&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genFIType call(genFIType x)</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; GLM_STATIC_ASSERT(</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; std::numeric_limits&lt;genFIType&gt;::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT || std::numeric_limits&lt;genFIType&gt;::is_signed,</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="stringliteral">&quot;&#39;abs&#39; only accept floating-point and integer scalar or vector inputs&quot;</span>);</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">return</span> x &gt;= genFIType(0) ? x : -x;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// TODO, perf comp with: *(((int *) &amp;x) + 1) &amp;= 0x7fffffff;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; };</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">struct </span>compute_abs&lt;float, true&gt;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> <span class="keywordtype">float</span> call(<span class="keywordtype">float</span> x)</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> fabsf(x);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; };</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genFIType&gt;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">struct </span>compute_abs&lt;genFIType, false&gt;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genFIType call(genFIType x)</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_STATIC_ASSERT(</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; (!std::numeric_limits&lt;genFIType&gt;::is_signed &amp;&amp; std::numeric_limits&lt;genFIType&gt;::is_integer),</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="stringliteral">&quot;&#39;abs&#39; only accept floating-point and integer scalar or vector inputs&quot;</span>);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> x;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}<span class="comment">//namespace glm</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,271 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: compute_vector_decl.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">compute_vector_decl.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;_vectorize.hpp&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>glm {</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; {</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">struct </span>compute_vec_add {};</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">struct </span>compute_vec_sub {};</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>compute_vec_mul {};</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">struct </span>compute_vec_div {};</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">struct </span>compute_vec_mod {};</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">struct </span>compute_splat {};</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">struct </span>compute_vec_and {};</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">struct </span>compute_vec_or {};</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">struct </span>compute_vec_xor {};</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">struct </span>compute_vec_shift_left {};</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">struct </span>compute_vec_shift_right {};</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">struct </span>compute_vec_equal {};</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">struct </span>compute_vec_nequal {};</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">struct </span>compute_vec_bitwise_not {};</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">struct </span>compute_vec_add&lt;L, T, Q, false&gt;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::plus&lt;T&gt;(), a, b);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; };</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">struct </span>compute_vec_sub&lt;L, T, Q, false&gt;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::minus&lt;T&gt;(), a, b);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">struct </span>compute_vec_mul&lt;L, T, Q, false&gt;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::multiplies&lt;T&gt;(), a, b);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">struct </span>compute_vec_div&lt;L, T, Q, false&gt;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::divides&lt;T&gt;(), a, b);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">struct </span>compute_vec_mod&lt;L, T, Q, false&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::modulus&lt;T&gt;(), a, b);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">struct </span>compute_vec_and&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; vec&lt;L, T, Q&gt; v(a);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; v[i] &amp;= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> v;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">struct </span>compute_vec_or&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; vec&lt;L, T, Q&gt; v(a);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; v[i] |= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> v;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">struct </span>compute_vec_xor&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; vec&lt;L, T, Q&gt; v(a);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; v[i] ^= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> v;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; };</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">struct </span>compute_vec_shift_left&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; vec&lt;L, T, Q&gt; v(a);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; v[i] &lt;&lt;= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> v;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">struct </span>compute_vec_shift_right&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; vec&lt;L, T, Q&gt; v(a);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; v[i] &gt;&gt;= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> v;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; };</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">struct </span>compute_vec_equal&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> <span class="keywordtype">bool</span> call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v2)</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">bool</span> b = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (length_t i = 0; b &amp;&amp; i &lt; L; ++i)</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; b = detail::compute_equal&lt;T, std::numeric_limits&lt;T&gt;::is_iec559&gt;::call(v1[i], v2[i]);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> b;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; };</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">struct </span>compute_vec_nequal&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> <span class="keywordtype">bool</span> call(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2)</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> !compute_vec_equal&lt;L, T, Q, detail::is_int&lt;T&gt;::value, <span class="keyword">sizeof</span>(T) * 8, detail::is_aligned&lt;Q&gt;::value&gt;::call(v1, v2);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; };</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">struct </span>compute_vec_bitwise_not&lt;L, T, Q, IsInt, Size, false&gt;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a)</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; vec&lt;L, T, Q&gt; v(a);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; v[i] = ~v[i];</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> v;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; };</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,111 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: compute_vector_relational.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">compute_vector_relational.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//#include &quot;compute_common.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">bool</span> isFloat&gt;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">struct </span>compute_equal</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; {</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> <span class="keywordtype">bool</span> call(T a, T b)</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">return</span> a == b;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; }</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; };</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> template &lt;typename T&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> struct compute_equal&lt;T, true&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> {</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> {</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> return detail::compute_abs&lt;T, std::numeric_limits&lt;T&gt;::is_signed&gt;::call(b - a) &lt;= static_cast&lt;T&gt;(0);</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //return std::memcmp(&amp;a, &amp;b, sizeof(T)) == 0;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> }</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> };</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}<span class="comment">//namespace glm</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,378 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: qualifier.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">qualifier.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">enum</span> qualifier</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; {</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; packed_highp, </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; packed_mediump, </div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; packed_lowp, </div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor"># if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; aligned_highp, </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; aligned_mediump, </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; aligned_lowp, <span class="comment">// ///&lt; Typed data is aligned in memory allowing SIMD optimizations and operations are executed with high precision in term of ULPs to maximize performance</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; aligned = aligned_highp, </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; highp = packed_highp, </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; mediump = packed_mediump, </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; lowp = packed_lowp, </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; packed = packed_highp, </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE &amp;&amp; defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; defaultp = aligned_highp</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; defaultp = highp</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; };</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">typedef</span> qualifier precision;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>vec;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>mat;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>qua;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># if GLM_HAS_TEMPLATE_ALIASES</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec1 = vec&lt;1, T, Q&gt;;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec2 = vec&lt;2, T, Q&gt;;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec3 = vec&lt;3, T, Q&gt;;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec4 = vec&lt;4, T, Q&gt;;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x2 = mat&lt;2, 2, T, Q&gt;;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x3 = mat&lt;2, 3, T, Q&gt;;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x4 = mat&lt;2, 4, T, Q&gt;;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x2 = mat&lt;3, 2, T, Q&gt;;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x3 = mat&lt;3, 3, T, Q&gt;;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x4 = mat&lt;3, 4, T, Q&gt;;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x2 = mat&lt;4, 2, T, Q&gt;;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x3 = mat&lt;4, 3, T, Q&gt;;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x4 = mat&lt;4, 4, T, Q&gt;;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tquat = qua&lt;T, Q&gt;;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span>&lt;glm::qualifier P&gt;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">struct </span>is_aligned</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">struct </span>is_aligned&lt;glm::aligned_lowp&gt;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; };</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">struct </span>is_aligned&lt;glm::aligned_mediump&gt;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">struct </span>is_aligned&lt;glm::aligned_highp&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keywordtype">bool</span> is_aligned&gt;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">struct </span>storage</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">typedef</span> <span class="keyword">struct </span>type {</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; T data[L];</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } type;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; };</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNOF</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">struct </span>storage&lt;L, T, true&gt;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(L * sizeof(T)) type {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; T data[L];</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } type;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; };</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">struct </span>storage&lt;3, T, true&gt;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(4 * sizeof(T)) type {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; T data[4];</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; } type;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; };</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"># if GLM_ARCH &amp; GLM_ARCH_SSE2_BIT</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">struct </span>storage&lt;4, float, true&gt;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">typedef</span> glm_f32vec4 type;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; };</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">struct </span>storage&lt;4, int, true&gt;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">typedef</span> glm_i32vec4 type;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; };</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">struct </span>storage&lt;4, unsigned int, true&gt;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">typedef</span> glm_u32vec4 type;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; };</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">struct </span>storage&lt;3, float, true&gt;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">typedef</span> glm_f32vec4 type;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; };</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">struct </span>storage&lt;3, int, true&gt;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">typedef</span> glm_i32vec4 type;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; };</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">struct </span>storage&lt;3, unsigned int, true&gt;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">typedef</span> glm_u32vec4 type;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; };</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">struct </span>storage&lt;2, double, true&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">typedef</span> glm_f64vec2 type;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; };</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">struct </span>storage&lt;2, detail::<a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>, true&gt;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">typedef</span> glm_i64vec2 type;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">struct </span>storage&lt;2, detail::<a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">typedef</span> glm_u64vec2 type;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; };</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">struct </span>storage&lt;3, detail::<a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">typedef</span> glm_u64vec2 type;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; };</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">struct </span>storage&lt;4, double, true&gt;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"># if (GLM_ARCH &amp; GLM_ARCH_AVX_BIT)</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">typedef</span> glm_f64vec4 type;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">struct </span>type</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; glm_f64vec2 data[2];</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_CONSTEXPR glm_f64vec2 getv(<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> data[i];</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_CONSTEXPR <span class="keywordtype">void</span> setv(<span class="keywordtype">int</span> i, <span class="keyword">const</span> glm_f64vec2&amp; v) {</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; data[i] = v;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; };</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; };</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">struct </span>storage&lt;3, double, true&gt; : <span class="keyword">public</span> storage&lt;4, double, true&gt;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {};</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"># if (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT)</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">struct </span>storage&lt;4, detail::<a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>, true&gt;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">typedef</span> glm_i64vec4 type;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">struct </span>storage&lt;4, detail::<a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">typedef</span> glm_u64vec4 type;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; };</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"># if GLM_ARCH &amp; GLM_ARCH_NEON_BIT</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">struct </span>storage&lt;4, float, true&gt;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">typedef</span> glm_f32vec4 type;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; };</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">struct </span>storage&lt;3, float, true&gt; : <span class="keyword">public</span> storage&lt;4, float, true&gt;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {};</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">struct </span>storage&lt;4, int, true&gt;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">typedef</span> glm_i32vec4 type;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; };</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">struct </span>storage&lt;3, int, true&gt; : <span class="keyword">public</span> storage&lt;4, int, true&gt;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {};</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">struct </span>storage&lt;4, unsigned int, true&gt;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">typedef</span> glm_u32vec4 type;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; };</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">struct </span>storage&lt;3, unsigned int, true&gt; : <span class="keyword">public</span> storage&lt;4, unsigned int, true&gt;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {};</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; </div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNOF</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">struct </span>storage&lt;3, double, true&gt;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(4 * sizeof(double)) type {</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">double</span> data[4];</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; } type;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; };</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"># endif//GLM_HAS_ALIGNOF</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">enum</span> genTypeEnum</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; GENTYPE_VEC,</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; GENTYPE_MAT,</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; GENTYPE_QUAT</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; };</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">struct </span>genTypeTrait</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {};</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">template</span> &lt;length_t C, length_t R, <span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">struct </span>genTypeTrait&lt;mat&lt;C, R, T&gt; &gt;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> genTypeEnum GENTYPE = GENTYPE_MAT;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; };</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType, genTypeEnum type&gt;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">struct </span>init_gentype</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; };</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">struct </span>init_gentype&lt;genType, GENTYPE_QUAT&gt;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genType <a class="code" href="a00837.html#ga81696f2b8d1db02ea1aff8da8f269314">identity</a>()</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> genType(1, 0, 0, 0);</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; };</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">struct </span>init_gentype&lt;genType, GENTYPE_MAT&gt;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genType <a class="code" href="a00837.html#ga81696f2b8d1db02ea1aff8da8f269314">identity</a>()</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> genType(1);</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; };</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;}<span class="comment">//namespace glm</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00873_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00873.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00377_source.html#l00067">scalar_uint_sized.hpp:67</a></div></div>
<div class="ttc" id="aa00837_html_ga81696f2b8d1db02ea1aff8da8f269314"><div class="ttname"><a href="a00837.html#ga81696f2b8d1db02ea1aff8da8f269314">glm::identity</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType identity()</div><div class="ttdoc">Builds an identity matrix.</div></div>
<div class="ttc" id="aa00868_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00362_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,150 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_float.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_float.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#if GLM_COMPILER == GLM_COMPILER_VC12</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor"># pragma warning(push)</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor"># pragma warning(disable: 4512) // assignment operator could not be generated</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">union </span>float_t</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {};</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">// https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">union </span>float_t&lt;float&gt;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> int_type;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> float_type;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; GLM_CONSTEXPR float_t(float_type Num = 0.0f) : f(Num) {}</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; GLM_CONSTEXPR float_t&amp; operator=(float_t <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; f = x.f;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// Portable extraction of components.</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_CONSTEXPR <span class="keywordtype">bool</span> negative()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &lt; 0; }</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_CONSTEXPR int_type mantissa()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &amp; ((1 &lt;&lt; 23) - 1); }</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_CONSTEXPR int_type exponent()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i &gt;&gt; 23) &amp; ((1 &lt;&lt; 8) - 1); }</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; int_type i;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; float_type f;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; };</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">union </span>float_t&lt;double&gt;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">detail::int64</a> int_type;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> float_type;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_CONSTEXPR float_t(float_type Num = <span class="keyword">static_cast&lt;</span>float_type<span class="keyword">&gt;</span>(0)) : f(Num) {}</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_CONSTEXPR float_t&amp; operator=(float_t <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; f = x.f;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Portable extraction of components.</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_CONSTEXPR <span class="keywordtype">bool</span> negative()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &lt; 0; }</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_CONSTEXPR int_type mantissa()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &amp; ((int_type(1) &lt;&lt; 52) - 1); }</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_CONSTEXPR int_type exponent()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i &gt;&gt; 52) &amp; ((int_type(1) &lt;&lt; 11) - 1); }</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; int_type i;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; float_type f;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#if GLM_COMPILER == GLM_COMPILER_VC12</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"># pragma warning(pop)</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00868_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00362_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,97 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_half.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_half.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat32(hdata value);</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; GLM_FUNC_DECL hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span>&amp; value);</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;type_half.inl&quot;</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat2x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat2x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00044_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00044_source.html">type_mat2x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,258 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat2x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat2x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00044.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">struct </span>mat&lt;2, 2, T, Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> mat&lt;2, 2, T, Q&gt; type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;2, 2, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; col_type value[2];</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 2, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; T const&amp; x1, T const&amp; y1,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T const&amp; x2, T const&amp; y2);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; col_type const&amp; v1,</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; col_type const&amp; v2);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; template&lt;typename U, typename V, typename M, typename N&gt;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; U const&amp; x1, V const&amp; y1,</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; M const&amp; x2, N const&amp; y2);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; template&lt;typename U, typename V&gt;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; vec&lt;2, U, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; vec&lt;2, V, Q&gt; const&amp; v2);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator+=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator*=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator/=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator++ ();</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-- ();</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; };</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::col_type operator*(mat&lt;2, 2, T, Q&gt; const&amp; m, typename mat&lt;2, 2, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::row_type operator*(typename mat&lt;2, 2, T, Q&gt;::col_type const&amp; v, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::col_type operator/(mat&lt;2, 2, T, Q&gt; const&amp; m, typename mat&lt;2, 2, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::row_type operator/(typename mat&lt;2, 2, T, Q&gt;::col_type const&amp; v, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;} <span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#include &quot;type_mat2x2.inl&quot;</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat2x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat2x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00047_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00047_source.html">type_mat2x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,241 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat2x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat2x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00047.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">struct </span>mat&lt;2, 3, T, Q&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;2, 3, T, Q&gt; type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> mat&lt;3, 2, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; col_type value[2];</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 3, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T x0, T y0, T z0,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T x1, T y1, T z1);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const&amp; v1);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; template&lt;typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2&gt;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; X1 x1, Y1 y1, Z1 z1,</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; X2 x2, Y2 y2, Z2 z2);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; template&lt;typename U, typename V&gt;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; vec&lt;3, U, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; vec&lt;3, V, Q&gt; const&amp; v2);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator+=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator++ ();</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-- ();</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(T scalar, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 3, T, Q&gt;::col_type operator*(mat&lt;2, 3, T, Q&gt; const&amp; m, typename mat&lt;2, 3, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 3, T, Q&gt;::row_type operator*(typename mat&lt;2, 3, T, Q&gt;::col_type const&amp; v, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator/(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator/(T scalar, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#include &quot;type_mat2x3.inl&quot;</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat2x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat2x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00050_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00050_source.html">type_mat2x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,243 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat2x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat2x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00050.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">struct </span>mat&lt;2, 4, T, Q&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;2, 4, T, Q&gt; type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> mat&lt;4, 2, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; col_type value[2];</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 4, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T x0, T y0, T z0, T w0,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T x1, T y1, T z1, T w1);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const&amp; v1);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; template&lt;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; typename X2, typename Y2, typename Z2, typename W2&gt;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; X2 x2, Y2 y2, Z2 z2, W2 w2);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; template&lt;typename U, typename V&gt;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; vec&lt;4, U, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; vec&lt;4, V, Q&gt; const&amp; v2);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator+=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator++ ();</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-- ();</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; };</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(T scalar, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 4, T, Q&gt;::col_type operator*(mat&lt;2, 4, T, Q&gt; const&amp; m, typename mat&lt;2, 4, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 4, T, Q&gt;::row_type operator*(typename mat&lt;2, 4, T, Q&gt;::col_type const&amp; v, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator/(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator/(T scalar, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#include &quot;type_mat2x4.inl&quot;</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat3x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat3x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00053_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00053_source.html">type_mat3x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,249 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat3x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat3x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00053.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">struct </span>mat&lt;3, 2, T, Q&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;3, 2, T, Q&gt; type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> mat&lt;2, 3, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; col_type value[3];</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 2, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T x0, T y0,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T x1, T y1,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; T x2, T y2);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; col_type const&amp; v1,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; col_type const&amp; v2);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; template&lt;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; typename X1, typename Y1,</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; typename X2, typename Y2,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; typename X3, typename Y3&gt;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; X1 x1, Y1 y1,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; X2 x2, Y2 y2,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; X3 x3, Y3 y3);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; template&lt;typename V1, typename V2, typename V3&gt;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; vec&lt;2, V1, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; vec&lt;2, V2, Q&gt; const&amp; v2,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; vec&lt;2, V3, Q&gt; const&amp; v3);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator+=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator++ ();</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-- ();</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(T scalar, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 2, T, Q&gt;::col_type operator*(mat&lt;3, 2, T, Q&gt; const&amp; m, typename mat&lt;3, 2, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 2, T, Q&gt;::row_type operator*(typename mat&lt;3, 2, T, Q&gt;::col_type const&amp; v, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator/(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator/(T scalar, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#include &quot;type_mat3x2.inl&quot;</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat3x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat3x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00056_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00056_source.html">type_mat3x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,265 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat3x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat3x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00056.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">struct </span>mat&lt;3, 3, T, Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> mat&lt;3, 3, T, Q&gt; type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;3, 3, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; col_type value[3];</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 3, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; T x0, T y0, T z0,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T x1, T y1, T z1,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T x2, T y2, T z2);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const&amp; v1,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; col_type const&amp; v2);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; template&lt;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; typename X1, typename Y1, typename Z1,</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; typename X2, typename Y2, typename Z2,</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; typename X3, typename Y3, typename Z3&gt;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; X1 x1, Y1 y1, Z1 z1,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; X2 x2, Y2 y2, Z2 z2,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; X3 x3, Y3 y3, Z3 z3);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; template&lt;typename V1, typename V2, typename V3&gt;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; vec&lt;3, V1, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; vec&lt;3, V2, Q&gt; const&amp; v2,</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; vec&lt;3, V3, Q&gt; const&amp; v3);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator+=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator-=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator*=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator/=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator++();</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator--();</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; };</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::col_type operator*(mat&lt;3, 3, T, Q&gt; const&amp; m, typename mat&lt;3, 3, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::row_type operator*(typename mat&lt;3, 3, T, Q&gt;::col_type const&amp; v, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::col_type operator/(mat&lt;3, 3, T, Q&gt; const&amp; m, typename mat&lt;3, 3, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::row_type operator/(typename mat&lt;3, 3, T, Q&gt;::col_type const&amp; v, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#include &quot;type_mat3x3.inl&quot;</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat3x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat3x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00059_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00059_source.html">type_mat3x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,248 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat3x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat3x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00059.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">struct </span>mat&lt;3, 4, T, Q&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;3, 4, T, Q&gt; type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> mat&lt;4, 3, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; col_type value[3];</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 4, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T x0, T y0, T z0, T w0,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T x1, T y1, T z1, T w1,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; T x2, T y2, T z2, T w2);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; col_type const&amp; v1,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; col_type const&amp; v2);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; template&lt;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; typename X2, typename Y2, typename Z2, typename W2,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; typename X3, typename Y3, typename Z3, typename W3&gt;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; X2 x2, Y2 y2, Z2 z2, W2 w2,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; X3 x3, Y3 y3, Z3 z3, W3 w3);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; template&lt;typename V1, typename V2, typename V3&gt;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; vec&lt;4, V1, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; vec&lt;4, V2, Q&gt; const&amp; v2,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; vec&lt;4, V3, Q&gt; const&amp; v3);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator+=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator-=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator++();</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator--();</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(T scalar, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 4, T, Q&gt;::col_type operator*(mat&lt;3, 4, T, Q&gt; const&amp; m, typename mat&lt;3, 4, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 4, T, Q&gt;::row_type operator*(typename mat&lt;3, 4, T, Q&gt;::col_type const&amp; v, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator/(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator/(T scalar, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#include &quot;type_mat3x4.inl&quot;</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat4x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat4x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00062_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00062_source.html">type_mat4x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,253 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat4x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat4x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00062.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">struct </span>mat&lt;4, 2, T, Q&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;4, 2, T, Q&gt; type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> mat&lt;2, 4, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; col_type value[4];</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 4; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 2, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL mat(T scalar);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T x0, T y0,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T x1, T y1,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; T x2, T y2,</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; T x3, T y3);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; col_type const&amp; v1,</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; col_type const&amp; v2,</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; col_type const&amp; v3);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; template&lt;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; typename X0, typename Y0,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; typename X1, typename Y1,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; typename X2, typename Y2,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; typename X3, typename Y3&gt;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; X0 x0, Y0 y0,</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; X1 x1, Y1 y1,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; X2 x2, Y2 y2,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; X3 x3, Y3 y3);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; vec&lt;2, V1, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; vec&lt;2, V2, Q&gt; const&amp; v2,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; vec&lt;2, V3, Q&gt; const&amp; v3,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; vec&lt;2, V4, Q&gt; const&amp; v4);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 2, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator+=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator++ ();</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-- ();</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; };</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(T scalar, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 2, T, Q&gt;::col_type operator*(mat&lt;4, 2, T, Q&gt; const&amp; m, typename mat&lt;4, 2, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 2, T, Q&gt;::row_type operator*(typename mat&lt;4, 2, T, Q&gt;::col_type const&amp; v, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator/(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator/(T scalar, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#include &quot;type_mat4x2.inl&quot;</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat4x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat4x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00065_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00065_source.html">type_mat4x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,253 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat4x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat4x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00065.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">struct </span>mat&lt;4, 3, T, Q&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;4, 3, T, Q&gt; type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> mat&lt;3, 4, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; col_type value[4];</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 4; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 3, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T s);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T const&amp; x0, T const&amp; y0, T const&amp; z0,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T const&amp; x1, T const&amp; y1, T const&amp; z1,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; T const&amp; x2, T const&amp; y2, T const&amp; z2,</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; T const&amp; x3, T const&amp; y3, T const&amp; z3);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; col_type const&amp; v1,</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; col_type const&amp; v2,</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; col_type const&amp; v3);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; template&lt;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; typename X1, typename Y1, typename Z1,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; typename X2, typename Y2, typename Z2,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; typename X3, typename Y3, typename Z3,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; typename X4, typename Y4, typename Z4&gt;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; X1 const&amp; x1, Y1 const&amp; y1, Z1 const&amp; z1,</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; X2 const&amp; x2, Y2 const&amp; y2, Z2 const&amp; z2,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; X3 const&amp; x3, Y3 const&amp; y3, Z3 const&amp; z3,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; X4 const&amp; x4, Y4 const&amp; y4, Z4 const&amp; z4);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; vec&lt;3, V1, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; vec&lt;3, V2, Q&gt; const&amp; v2,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; vec&lt;3, V3, Q&gt; const&amp; v3,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; vec&lt;3, V4, Q&gt; const&amp; v4);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 3, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_CTOR_DECL mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_CTOR_DECL mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator+=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator-=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt;&amp; operator++();</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt;&amp; operator--();</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; };</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(T scalar, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 3, T, Q&gt;::col_type operator*(mat&lt;4, 3, T, Q&gt; const&amp; m, typename mat&lt;4, 3, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 3, T, Q&gt;::row_type operator*(typename mat&lt;4, 3, T, Q&gt;::col_type const&amp; v, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator/(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator/(T scalar, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#include &quot;type_mat4x3.inl&quot;</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat4x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat4x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00068_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00068_source.html">type_mat4x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,270 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_mat4x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_mat4x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00068.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">struct </span>mat&lt;4, 4, T, Q&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> mat&lt;4, 4, T, Q&gt; type;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> mat&lt;4, 4, T, Q&gt; transpose_type;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; col_type value[4];</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 4;}</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// -- Constructors --</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; template&lt;qualifier P&gt;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_CTOR_DECL mat(mat&lt;4, 4, T, P&gt; const&amp; m);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(T s);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; T const&amp; x0, T const&amp; y0, T const&amp; z0, T const&amp; w0,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; T const&amp; x1, T const&amp; y1, T const&amp; z1, T const&amp; w1,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T const&amp; x2, T const&amp; y2, T const&amp; z2, T const&amp; w2,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; T const&amp; x3, T const&amp; y3, T const&amp; z3, T const&amp; w3);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const&amp; v0,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; col_type const&amp; v1,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; col_type const&amp; v2,</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; col_type const&amp; v3);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; template&lt;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; typename X2, typename Y2, typename Z2, typename W2,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; typename X3, typename Y3, typename Z3, typename W3,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; typename X4, typename Y4, typename Z4, typename W4&gt;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; X1 const&amp; x1, Y1 const&amp; y1, Z1 const&amp; z1, W1 const&amp; w1,</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; X2 const&amp; x2, Y2 const&amp; y2, Z2 const&amp; z2, W2 const&amp; w2,</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; X3 const&amp; x3, Y3 const&amp; y3, Z3 const&amp; z3, W3 const&amp; w3,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; X4 const&amp; x4, Y4 const&amp; y4, Z4 const&amp; z4, W4 const&amp; w4);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_CTOR_DECL mat(</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; vec&lt;4, V1, Q&gt; const&amp; v1,</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; vec&lt;4, V2, Q&gt; const&amp; v2,</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; vec&lt;4, V3, Q&gt; const&amp; v3,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; vec&lt;4, V4, Q&gt; const&amp; v4);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; template&lt;typename U, qualifier P&gt;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, U, P&gt; const&amp; m);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator+=(U s);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator+=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator-=(U s);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator-=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator*=(U s);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator*=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator/=(U s);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; template&lt;typename U&gt;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator/=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator++();</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator--();</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::col_type operator*(mat&lt;4, 4, T, Q&gt; const&amp; m, typename mat&lt;4, 4, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::row_type operator*(typename mat&lt;4, 4, T, Q&gt;::col_type const&amp; v, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::col_type operator/(mat&lt;4, 4, T, Q&gt; const&amp; m, typename mat&lt;4, 4, T, Q&gt;::row_type const&amp; v);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::row_type operator/(typename mat&lt;4, 4, T, Q&gt;::col_type const&amp; v, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; template&lt;typename T, qualifier Q&gt;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#include &quot;type_mat4x4.inl&quot;</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>1.0.2 API documentation: type_quat.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">1.0.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">type_quat.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="a00898.html">Core features</a>
<a href="#details">More...</a></p>
<p><a href="a00071_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
<p class="definition">Definition in file <a class="el" href="a00071_source.html">type_quat.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More