|  |  | @ -1,41 +1,102 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | <?xml version="1.0" encoding="utf-8"?> |  |  |  | <?xml version="1.0" encoding="utf-8"?> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | <!-- GLM visualizers for Visual Studio --> |  |  |  | <!--  | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | <!-- Copy this file to --> |  |  |  |   GLM debugger visualizers for Visual Studio | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | <!-- %USERPROFILE%\Douments\Visual Studio 2019\Visualizers\ (replace '2019' when necessary) --> |  |  |  |    | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | <!-- or --> |  |  |  |   Makes debugging code using GLM easier by making data more easily accessible | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | <!-- %VSINSTALLDIR%\Common7\Packages\Debugger\Visualizers\ (requires admin access) --> |  |  |  |   from the debugger watch windows.  | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | <!-- See also https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects --> |  |  |  |    | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   For example, a variable declared like this:  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   glm::vec4 v = glm::vec4(1, 2, 3, 4); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   Will show up like this in the default debugger windows: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    Name    Value | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   .............................................................. | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     v      {x=1.000000 r=1.000000 s=1.000000 y=2.000000 ...} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   But if you use this file, it will show up like this: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    Name   Value | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   .................. | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     v     [1 2 3 4] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   === How to Use === | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   Copy this file to the project directory of each project using GLM, or just copy it to | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   %USERPROFILE%\Douments\Visual Studio 2019\Visualizers\ (replace '2019' when necessary) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   or | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   %VSINSTALLDIR%\Common7\Packages\Debugger\Visualizers\ (requires admin access) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   if you want to use this from every project. | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   See also https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | --> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> |  |  |  | <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	<Type Name="glm::vec<1,*>"> |  |  |  |   <Type Name="glm::vec<1,*,*>"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<DisplayString>{x}</DisplayString> |  |  |  |     <DisplayString>[{x,g}]</DisplayString> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<Expand> |  |  |  |     <Expand HideRawView="1"> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<2,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<3,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g} {z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<4,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g} {z,g} {w,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="w">w,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<1,bool,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{(int)x}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="x">x</Item> |  |  |  |       <Item Name="x">x</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |     </Expand> |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |   </Type> |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	<Type Name="glm::vec<2,*>"> |  |  |  |   <Type Name="glm::vec<2,bool,*>" Priority="High"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<DisplayString>{x}, {y}</DisplayString> |  |  |  |     <DisplayString>[{(int)x} {(int)y}]</DisplayString> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<Expand> |  |  |  |     <Expand HideRawView="1"> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="x">x</Item> |  |  |  |       <Item Name="x">x</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="y">y</Item> |  |  |  |       <Item Name="y">y</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |     </Expand> |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |   </Type> |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	<Type Name="glm::vec<3,*>"> |  |  |  |   <Type Name="glm::vec<3,bool,*>" Priority="High"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<DisplayString>{x}, {y}, {z}</DisplayString> |  |  |  |     <DisplayString>[{(int)x,g} {(int)y,g} {(int)z,g}]</DisplayString> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<Expand> |  |  |  |     <Expand HideRawView="1"> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="x">x</Item> |  |  |  |       <Item Name="x">x</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="y">y</Item> |  |  |  |       <Item Name="y">y</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="z">z</Item> |  |  |  |       <Item Name="z">z</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |     </Expand> |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |   </Type> |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	<Type Name="glm::vec<4,*>"> |  |  |  |   <Type Name="glm::vec<4,bool,*>" Priority="High"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<DisplayString>{x}, {y}, {z}, {w}</DisplayString> |  |  |  |     <DisplayString>[{(int)x,g} {(int)y,g} {(int)z,g} {(int)w,g}]</DisplayString> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<Expand> |  |  |  |     <Expand HideRawView="1"> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="x">x</Item> |  |  |  |       <Item Name="x">x</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="y">y</Item> |  |  |  |       <Item Name="y">y</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="z">z</Item> |  |  |  |       <Item Name="z">z</Item> | 
			
		
	
	
		
		
			
				
					|  |  | @ -43,23 +104,452 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  |     </Expand> |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |   </Type> |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |    |  |  |  |    | 
			
		
	
		
		
			
				
					
					|  |  |  | 	<Type Name="glm::qua<*>"> |  |  |  |   <Type Name="glm::vec<2,float,*>" Priority="High"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<DisplayString>{x}, {y}, {z}, {w}</DisplayString> |  |  |  |     <DisplayString>[{x,g} {y,g}]</DisplayString> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5F3759DF - ((*(int *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(float *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0f,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<3,float,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g} {z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y+z*z"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5F3759DF - ((*(int *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(float *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0f,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="[rgba]"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <!-- hex RGBA color - alpha is assumed to be 255 --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           #{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           (unsigned((x<0?0:(x>1?1:x))*255.5f) << 24) | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           (unsigned((y<0?0:(y>1?1:y))*255.5f) << 16) | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           (unsigned((z<0?0:(z>1?1:z))*255.5f) << 8) | 0xFF,Xb | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<4,float,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g} {z,g} {w,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y+z*z+w*w"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5F3759DF - ((*(int *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(float *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0f,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="[rgba]"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <!-- hex RGBA color --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           #{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           (unsigned((x<0?0:(x>1?1:x))*255.5f) << 24) | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           (unsigned((y<0?0:(y>1?1:y))*255.5f) << 16) | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           (unsigned((z<0?0:(z>1?1:z))*255.5f) << 8) | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           (unsigned((w<0?0:(w>1?1:w))*255.5f) << 0),Xb | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="w">w,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<2,double,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5FE6EB50C7B537A9 - ((*(long long *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(double *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<3,double,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g} {z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y+z*z"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5FE6EB50C7B537A9 - ((*(long long *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(double *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::vec<4,double,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{x,g} {y,g} {z,g} {w,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y+z*z+w*w"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5FE6EB50C7B537A9 - ((*(long long *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(double *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="w">w,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::qua<*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>{w,g} + {x,g}i + {y,g}j + {z,g}k</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="w">w,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::qua<float,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>{w,g} + {x,g}i + {y,g}j + {z,g}k</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y+z*z+w*w"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5F3759DF - ((*(int *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(float *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5f - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0f,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="w">w,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::qua<double,*>" Priority="High"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>{w,g} + {x,g}i + {y,g}j + {z,g}k</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <CustomListItems MaxItemsPerView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <!-- calculate length using fast inverse sqrt --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="k" InitialValue="x*x+y*y+z*z+w*w"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="n" InitialValue="k/2"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Variable Name="i" InitialValue="0x5FE6EB50C7B537A9 - ((*(long long *)&k) >> 1)"/> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k != 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = *(double *)&i</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Exec>k = k * (1.5 - (n * k * k))</Exec> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">1/k,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <If Condition="k == 0"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="[len]">0.0,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </If> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </CustomListItems> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="x">x,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="y">y,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="z">z,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Item Name="w">w,g</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat<2,2,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |         <Expand> |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  | 			<Item Name="x">x</Item> |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			<Item Name="y">y</Item> |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			<Item Name="z">z</Item> |  |  |  |         </Expand> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			<Item Name="w">w</Item> |  |  |  |       </Synthetic> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     </Expand> |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |   </Type> |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	<Type Name="glm::tdualquat<*>"> |  |  |  |   <Type Name="glm::mat<2,3,*,*>"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		<DisplayString>(({real.x}, {real.y}, {real.z}), {real.w}), (({dual.x}, {dual.y}, {dual.z}), {dual.w})</DisplayString> |  |  |  |     <DisplayString>[{value[0]} {value[1]}]</DisplayString> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 3"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].z,g} {value[1].z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat<2,4,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 3"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].z,g} {value[1].z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 4"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].w,g} {value[1].w,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat<3,2*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]} {value[2]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g} {value[2].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g} {value[2].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 3">value[2]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat<3,3,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]} {value[2]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g} {value[2].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g} {value[2].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 3"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].z,g} {value[1].z,g} {value[2].z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 3">value[2]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat<3,4,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]} {value[2]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g} {value[2].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g} {value[2].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 3"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].z,g} {value[1].z,g} {value[2].z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 4"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].w,g} {value[1].w,g} {value[2].w,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |         <Expand> |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 3">value[2]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat4x2<4,2,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]} {value[2]} {value[3]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g} {value[2].x,g} {value[3].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g} {value[2].y,g} {value[3].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 3">value[2]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 4">value[3]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat4x3<4,3,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]} {value[2]} {value[3]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g} {value[2].x,g} {value[3].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g} {value[2].y,g} {value[3].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 3"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].z,g} {value[1].z,g} {value[2].z,g} {value[3].z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 3">value[2]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 4">value[3]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::mat<4,4,*,*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[{value[0]} {value[1]} {value[2]} {value[3]}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <!-- display matrix in row major order - it makes more sense --> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].x,g} {value[1].x,g} {value[2].x,g} {value[3].x,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 2"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].y,g} {value[1].y,g} {value[2].y,g} {value[3].y,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 3"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].z,g} {value[1].z,g} {value[2].z,g} {value[3].z,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="row 4"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <DisplayString>[{value[0].w,g} {value[1].w,g} {value[2].w,g} {value[3].w,g}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       <Synthetic Name="columns"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         <Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 1">value[0]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 2">value[1]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 3">value[2]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           <Item Name="col 4">value[3]</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       </Synthetic> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   <Type Name="glm::tdualquat<*>"> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <DisplayString>[r: {real}] [d: {dual}]</DisplayString> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     <Expand HideRawView="1"> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="real">real</Item> |  |  |  |       <Item Name="real">real</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |       <Item Name="dual">dual</Item> |  |  |  |       <Item Name="dual">dual</Item> | 
			
		
	
		
		
			
				
					
					|  |  |  |     </Expand> |  |  |  |     </Expand> | 
			
		
	
		
		
			
				
					
					|  |  |  |   </Type> |  |  |  |   </Type> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | </AutoVisualizer> |  |  |  | </AutoVisualizer> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
	
		
		
			
				
					|  |  | 
 |