Updated API documentation

This commit is contained in:
Christophe Riccio
2018-05-08 13:51:58 +02:00
parent 4d4dbcade6
commit c3a41b0ef8
470 changed files with 72126 additions and 68787 deletions

View File

@@ -590,273 +590,320 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="comment">// Static assert</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="comment">// nullptr</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#endif//GLM_LANG</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="comment">// Qualifiers</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"># define GLM_VAR_USED __attribute__ ((unused))</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"># define GLM_VAR_USED</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __declspec((noinline))</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"># define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"># define GLM_INLINE __forceinline__</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __noinline__</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"># endif//GLM_COMPILER</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="comment">// Swizzle operators</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="comment">// User defines: GLM_FORCE_SWIZZLE</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_ENABLED 1</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_DISABLE 0</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_SWIZZLE)</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_ENABLED</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_DISABLE</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators enabled&quot;)</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators&quot;)</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="comment">// Allows using not basic types as genType</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment">// #define GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"># define GLM_UNRESTRICTED_GENTYPE 1</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"># define GLM_UNRESTRICTED_GENTYPE 0</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED)</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Use unrestricted genType&quot;)</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment">// Clip control</span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX0X_FLAG</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"># define GLM_HAS_NULLPTR 1</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"># define GLM_HAS_NULLPTR 0</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#if GLM_HAS_NULLPTR</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"># define GLM_NULLPTR nullptr</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"># define GLM_NULLPTR 0</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="comment">// Static assert</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor">#endif//GLM_LANG</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="comment">// Qualifiers</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"># define GLM_VAR_USED __attribute__ ((unused))</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"># define GLM_VAR_USED</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __declspec((noinline))</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"># define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"># define GLM_INLINE __forceinline__</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __noinline__</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"># endif//GLM_COMPILER</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment">// Swizzle operators</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="comment">// User defines: GLM_FORCE_SWIZZLE</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_ENABLED 1</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_DISABLE 0</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_SWIZZLE)</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_ENABLED</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_DISABLE</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators enabled&quot;)</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators&quot;)</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="comment">// Allows using not basic types as genType</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment">// #define GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor">#define GLM_DEPTH_ZERO_TO_ONE 0x00000001</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor">#define GLM_DEPTH_NEGATIVE_ONE_TO_ONE 0x00000002</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_ZERO_TO_ONE</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_NEGATIVE_ONE_TO_ONE</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_DEPTH_DISPLAYED)</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_DEPTH_DISPLAYED</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"># if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Depth clip space: Zero to one&quot;)</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Depth clip space: negative one to one&quot;)</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="comment">// Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="comment">// to use left handed coordinate system by default.</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor">#define GLM_LEFT_HANDED 0x00000001 // For DirectX, Metal, Vulkan</span></div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor">#define GLM_RIGHT_HANDED 0x00000002 // For OpenGL, default in GLM</span></div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_LEFT_HANDED</span></div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_LEFT_HANDED</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_RIGHT_HANDED</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_HANDED_DISPLAYED)</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_HANDED_DISPLAYED</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"># if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Coordinate system: left handed&quot;)</span></div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Coordinate system: right handed&quot;)</span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="comment">// Qualifiers</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS))</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __declspec(deprecated)</span></div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __declspec(align(x))</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __declspec(restrict)</span></div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_VC12</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __attribute__((aligned(x)))</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_CLANG37</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __align__(x)</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __align__(x)</span></div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"># define GLM_ALIGN</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC</span></div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"># define GLM_RESTRICT</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"># define GLM_DEFAULT = default</span></div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor"># define GLM_DEFAULT</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR || GLM_HAS_CONSTEXPR_PARTIAL</span></div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"># if ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &lt;= GLM_COMPILER_VC14)) // Visual C++ has a bug #594 https://github.com/g-truc/glm/issues/594</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR constexpr</span></div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR constexpr</span></div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;<span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_SIMD GLM_CONSTEXPR_CTOR</span></div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_SIMD</span></div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT explicit</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT</span></div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor">#define GLM_HAS_ALIGNED_TYPE GLM_HAS_UNRESTRICTED_UNIONS</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="comment">// Length type: all length functions returns a length_t type.</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="comment">// When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise</span></div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="comment">// length_t is a typedef of int like GLSL defines it.</span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="comment">// User define: GLM_FORCE_SIZE_T_LENGTH</span></div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00135.html">glm</a></div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;{</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keyword">using</span> std::size_t;</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"># if defined(GLM_FORCE_SIZE_T_LENGTH)</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)</span></div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_FORCE_SIZE_T_LENGTH</span></div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"># if defined GLM_FORCE_SIZE_T_LENGTH</span></div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of std::size_t&quot;)</span></div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification&quot;)</span></div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="comment">// countof</span></div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR_PARTIAL</span></div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keyword">namespace </span><a class="code" href="a00135.html">glm</a></div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; {</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; constexpr std::size_t countof(T <span class="keyword">const</span> (&amp;)[N])</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; {</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">return</span> N;</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; }</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) _countof(arr)</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"># define GLM_UNRESTRICTED_GENTYPE 1</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"># define GLM_UNRESTRICTED_GENTYPE 0</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED)</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED</span></div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Use unrestricted genType&quot;)</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="comment">// Force single only (remove explicit float64 types)</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_SINGLE_ONLY_DISPLAYED)</span></div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_SINGLE_ONLY_DISPLAYED</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SINGLE_ONLY</span></div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Using only single precision floating-point types&quot;)</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment">// Clip control</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor">#define GLM_DEPTH_ZERO_TO_ONE 0x00000001</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor">#define GLM_DEPTH_NEGATIVE_ONE_TO_ONE 0x00000002</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_ZERO_TO_ONE</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_NEGATIVE_ONE_TO_ONE</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_DEPTH_DISPLAYED)</span></div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_DEPTH_DISPLAYED</span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"># if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Depth clip space: Zero to one&quot;)</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Depth clip space: negative one to one&quot;)</span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="comment">// Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="comment">// to use left handed coordinate system by default.</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor">#define GLM_LEFT_HANDED 0x00000001 // For DirectX, Metal, Vulkan</span></div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor">#define GLM_RIGHT_HANDED 0x00000002 // For OpenGL, default in GLM</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_LEFT_HANDED</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_LEFT_HANDED</span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_RIGHT_HANDED</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_HANDED_DISPLAYED)</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_HANDED_DISPLAYED</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"># if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED</span></div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Coordinate system: left handed&quot;)</span></div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Coordinate system: right handed&quot;)</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="comment">// Qualifiers</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS))</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __declspec(deprecated)</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __declspec(align(x))</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __declspec(restrict)</span></div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_VC12</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __attribute__((aligned(x)))</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span></div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_CLANG37</span></div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED</span></div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __align__(x)</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __align__(x)</span></div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED</span></div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"># define GLM_ALIGN</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct</span></div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC</span></div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor"># define GLM_RESTRICT</span></div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"># define GLM_DEFAULT = default</span></div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_NO_CTOR_INIT</span></div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor"># undef GLM_FORCE_CTOR_INIT</span></div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_CTOR_INIT</span></div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR = default</span></div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor"># define GLM_DEFAULT</span></div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR || GLM_HAS_CONSTEXPR_PARTIAL</span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor"># if ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &lt;= GLM_COMPILER_VC14)) // Visual C++ has a bug #594 https://github.com/g-truc/glm/issues/594</span></div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR constexpr</span></div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR</span></div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR constexpr</span></div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor">#if GLM_LANG &gt;= GLM_LANG_CXX14</span></div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"># if ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &lt;= GLM_COMPILER_VC14)) // Visual C++ &lt; 2017 does not support extended const expressions https://msdn.microsoft.com/en-us/library/hh567368.aspx https://github.com/g-truc/glm/issues/749</span></div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CXX14</span></div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CXX14 GLM_CONSTEXPR</span></div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR_CXX14 GLM_CONSTEXPR_CTOR</span></div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CXX14</span></div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR_CXX14</span></div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_SIMD GLM_CONSTEXPR_CTOR</span></div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_SIMD</span></div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT explicit</span></div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT</span></div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;</div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="comment">// Check inclusions of different versions of GLM</span></div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor">#elif ((GLM_SETUP_INCLUDED != GLM_VERSION) &amp;&amp; !defined(GLM_FORCE_IGNORE_VERSION)) </span></div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"># error &quot;GLM error: A different version of GLM is already included. Define GLM_FORCE_IGNORE_VERSION before including GLM headers to ignore this error.&quot;</span></div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="preprocessor">#elif GLM_SETUP_INCLUDED == GLM_VERSION</span></div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor">#endif//GLM_SETUP_INCLUDED</span></div>
<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor">#define GLM_HAS_ALIGNED_TYPE GLM_HAS_UNRESTRICTED_UNIONS</span></div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="comment">// Length type: all length functions returns a length_t type.</span></div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="comment">// When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise</span></div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="comment">// length_t is a typedef of int like GLSL defines it.</span></div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">// User define: GLM_FORCE_SIZE_T_LENGTH</span></div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00138.html">glm</a></div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;{</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keyword">using</span> std::size_t;</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"># if defined(GLM_FORCE_SIZE_T_LENGTH)</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_FORCE_SIZE_T_LENGTH</span></div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="preprocessor"># if defined GLM_FORCE_SIZE_T_LENGTH</span></div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of std::size_t&quot;)</span></div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification&quot;)</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="comment">// countof</span></div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR_PARTIAL</span></div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keyword">namespace </span><a class="code" href="a00138.html">glm</a></div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; {</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; constexpr std::size_t countof(T <span class="keyword">const</span> (&amp;)[N])</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">return</span> N;</div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; }<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) _countof(arr)</span></div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="comment">// Check inclusions of different versions of GLM</span></div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="preprocessor">#elif ((GLM_SETUP_INCLUDED != GLM_VERSION) &amp;&amp; !defined(GLM_FORCE_IGNORE_VERSION))</span></div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor"># error &quot;GLM error: A different version of GLM is already included. Define GLM_FORCE_IGNORE_VERSION before including GLM headers to ignore this error.&quot;</span></div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="preprocessor">#elif GLM_SETUP_INCLUDED == GLM_VERSION</span></div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="preprocessor">#endif//GLM_SETUP_INCLUDED</span></div>
<div class="ttc" id="a00138_html"><div class="ttname"><a href="a00138.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>