Added Visual Studio 2012 debug visualizers.
This commit is contained in:
		
							parent
							
								
									7f0f7ab5b4
								
							
						
					
					
						commit
						718535ac6c
					
				
							
								
								
									
										235
									
								
								debug/msvc/eigen.natvis
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								debug/msvc/eigen.natvis
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,235 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| 
 | ||||
| <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> | ||||
| 
 | ||||
|   <!-- Fixed x Fixed Matrix --> | ||||
|   <Type Name="Eigen::Matrix<*,*,*,*,*,*>">       | ||||
|       <AlternativeType Name="Eigen::Array<*,-1,-1,*,*,*>"/> | ||||
|       <DisplayString>[{$T2}, {$T3}] (fixed matrix)</DisplayString> | ||||
|       <Expand> | ||||
|         <ArrayItems Condition="Flags%2"> <!-- row major layout --> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? $T2 : $T3</Size> | ||||
|           <ValuePointer>m_storage.m_data.array</ValuePointer> | ||||
|         </ArrayItems> | ||||
|         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> | ||||
|           <Direction>Backward</Direction> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? $T2 : $T3</Size> | ||||
|           <ValuePointer>m_storage.m_data.array</ValuePointer> | ||||
|         </ArrayItems> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- 2 x 2 Matrix --> | ||||
|   <Type Name="Eigen::Matrix<*,2,2,*,*,*>">       | ||||
|       <AlternativeType Name="Eigen::Array<*,2,2,*,*,*>"/> | ||||
|       <DisplayString>[2, 2] (fixed matrix)</DisplayString> | ||||
|       <Expand> | ||||
|         <Synthetic Name="[row 0]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 0]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[2]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 1]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[3]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 1]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[3]})</DisplayString> | ||||
|         </Synthetic>         | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- 3 x 3 Matrix --> | ||||
|   <Type Name="Eigen::Matrix<*,3,3,*,*,*>">       | ||||
|       <AlternativeType Name="Eigen::Array<*,3,3,*,*,*>"/> | ||||
|       <DisplayString>[3, 3] (fixed matrix)</DisplayString> | ||||
|       <Expand> | ||||
|         <Synthetic Name="[row 0]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 0]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[3]}, {m_storage.m_data.array[6]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 1]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[3]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[5]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 1]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[7]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 2]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[6]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[8]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 2]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[8]})</DisplayString> | ||||
|         </Synthetic>         | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- 4 x 4 Matrix --> | ||||
|   <Type Name="Eigen::Matrix<*,4,4,*,*,*>">       | ||||
|       <AlternativeType Name="Eigen::Array<*,4,4,*,*,*>"/> | ||||
|       <DisplayString>[4, 4] (fixed matrix)</DisplayString> | ||||
|       <Expand> | ||||
|         <Synthetic Name="[row 0]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 0]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[8]}, {m_storage.m_data.array[12]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 1]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[4]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[7]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 1]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[13]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 2]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[8]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[11]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 2]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[14]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 3]" Condition="Flags%2"> | ||||
|           <DisplayString>({m_storage.m_data.array[12]}, {m_storage.m_data.array[13]}, {m_storage.m_data.array[14]}, {m_storage.m_data.array[15]})</DisplayString> | ||||
|         </Synthetic> | ||||
|         <Synthetic Name="[row 3]" Condition="!(Flags%2)"> | ||||
|           <DisplayString>({m_storage.m_data.array[3]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[11]}, {m_storage.m_data.array[15]})</DisplayString> | ||||
|         </Synthetic>         | ||||
|       </Expand> | ||||
|   </Type>   | ||||
|    | ||||
|   <!-- Dynamic x Dynamic Matrix --> | ||||
|   <Type Name="Eigen::Matrix<*,-1,-1,*,*,*>">       | ||||
|       <AlternativeType Name="Eigen::Array<*,-1,-1,*,*,*>"/> | ||||
|       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> | ||||
|       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}, {m_storage.m_cols}] (dynamic matrix)</DisplayString> | ||||
|       <Expand> | ||||
|         <ArrayItems Condition="Flags%2"> <!-- row major layout --> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? m_storage.m_rows : m_storage.m_cols</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> | ||||
|           <Direction>Backward</Direction> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? m_storage.m_rows : m_storage.m_cols</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- Fixed x Dynamic Matrix --> | ||||
|   <Type Name="Eigen::Matrix<*,*,-1,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Array<*,*,-1,*,*,*>"/> | ||||
|       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> | ||||
|       <DisplayString Condition="m_storage.m_data != 0">[{$T2}, {m_storage.m_cols}] (dynamic column matrix)</DisplayString> | ||||
|       <Expand> | ||||
|         <ArrayItems Condition="Flags%2"> <!-- row major layout --> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? $T2 : m_storage.m_cols</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> | ||||
|           <Direction>Backward</Direction> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? $T2 : m_storage.m_cols</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- Dynamic x Fixed Matrix --> | ||||
|   <Type Name="Eigen::Matrix<*,-1,*,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Array<*,-1,*,*,*,*>"/> | ||||
|       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> | ||||
|       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}, {$T2}] (dynamic row matrix)</DisplayString> | ||||
|       <Expand> | ||||
|         <ArrayItems Condition="Flags%2"> <!-- row major layout --> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? m_storage.m_rows : $T2</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> | ||||
|           <Direction>Backward</Direction> | ||||
|           <Rank>2</Rank> | ||||
|           <Size>$i==0 ? m_storage.m_rows : $T2</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- Dynamic Column Vector --> | ||||
|   <Type Name="Eigen::Matrix<*,1,-1,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Array<*,1,-1,*,*,*>"/> | ||||
|       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> | ||||
|       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_cols}] (dynamic column vector)</DisplayString> | ||||
|       <Expand> | ||||
|         <Item Name="[size]">m_storage.m_cols</Item> | ||||
|         <ArrayItems> | ||||
|           <Size>m_storage.m_cols</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- Dynamic Row Vector --> | ||||
|   <Type Name="Eigen::Matrix<*,-1,1,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Array<*,-1,1,*,*,*>"/> | ||||
|       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> | ||||
|       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}] (dynamic row vector)</DisplayString> | ||||
|       <Expand> | ||||
|         <Item Name="[size]">m_storage.m_rows</Item> | ||||
|         <ArrayItems> | ||||
|           <Size>m_storage.m_rows</Size> | ||||
|           <ValuePointer>m_storage.m_data</ValuePointer> | ||||
|         </ArrayItems> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <!-- Fixed Vector --> | ||||
|   <Type Name="Eigen::Matrix<*,1,1,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Array<*,1,1,*,*,*>"/> | ||||
|       <DisplayString>[1] ({m_storage.m_data.array[0]})</DisplayString> | ||||
|       <Expand> | ||||
|         <Item Name="[x]">m_storage.m_data.array[0]</Item> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <Type Name="Eigen::Matrix<*,2,1,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Matrix<*,1,2,*,*,*>"/> | ||||
|       <AlternativeType Name="Eigen::Array<*,2,1,*,*,*>"/> | ||||
|       <AlternativeType Name="Eigen::Array<*,1,2,*,*,*>"/> | ||||
|       <DisplayString>[2] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]})</DisplayString> | ||||
|       <Expand> | ||||
|         <Item Name="[x]">m_storage.m_data.array[0]</Item> | ||||
|         <Item Name="[y]">m_storage.m_data.array[1]</Item> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|   <Type Name="Eigen::Matrix<*,3,1,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Matrix<*,1,3,*,*,*>"/> | ||||
|       <AlternativeType Name="Eigen::Array<*,3,1,*,*,*>"/> | ||||
|       <AlternativeType Name="Eigen::Array<*,1,3,*,*,*>"/> | ||||
|       <DisplayString>[3] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]})</DisplayString> | ||||
|       <Expand> | ||||
|         <Item Name="[x]">m_storage.m_data.array[0]</Item> | ||||
|         <Item Name="[y]">m_storage.m_data.array[1]</Item> | ||||
|         <Item Name="[z]">m_storage.m_data.array[2]</Item> | ||||
|       </Expand> | ||||
|   </Type> | ||||
|    | ||||
|     <Type Name="Eigen::Matrix<*,4,1,*,*,*>"> | ||||
|       <AlternativeType Name="Eigen::Matrix<*,1,4,*,*,*>"/> | ||||
|       <AlternativeType Name="Eigen::Array<*,4,1,*,*,*>"/> | ||||
|       <AlternativeType Name="Eigen::Array<*,1,4,*,*,*>"/> | ||||
|       <DisplayString>[4] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]})</DisplayString> | ||||
|       <Expand> | ||||
|         <Item Name="[x]">m_storage.m_data.array[0]</Item> | ||||
|         <Item Name="[y]">m_storage.m_data.array[1]</Item> | ||||
|         <Item Name="[z]">m_storage.m_data.array[2]</Item> | ||||
|         <Item Name="[w]">m_storage.m_data.array[3]</Item> | ||||
|       </Expand> | ||||
|   </Type> | ||||
| 
 | ||||
| </AutoVisualizer> | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Hauke Heibel
						Hauke Heibel