Home | History | Annotate | Download | only in msvc
      1 <?xml version="1.0" encoding="utf-8"?>
      2 
      3 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
      4 
      5   <!-- Fixed x Fixed Matrix -->
      6   <Type Name="Eigen::Matrix&lt;*,*,*,*,*,*&gt;">      
      7       <AlternativeType Name="Eigen::Array&lt;*,-1,-1,*,*,*&gt;"/>
      8       <DisplayString>[{$T2}, {$T3}] (fixed matrix)</DisplayString>
      9       <Expand>
     10         <ArrayItems Condition="Flags%2"> <!-- row major layout -->
     11           <Rank>2</Rank>
     12           <Size>$i==0 ? $T2 : $T3</Size>
     13           <ValuePointer>m_storage.m_data.array</ValuePointer>
     14         </ArrayItems>
     15         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout -->
     16           <Direction>Backward</Direction>
     17           <Rank>2</Rank>
     18           <Size>$i==0 ? $T2 : $T3</Size>
     19           <ValuePointer>m_storage.m_data.array</ValuePointer>
     20         </ArrayItems>
     21       </Expand>
     22   </Type>
     23   
     24   <!-- 2 x 2 Matrix -->
     25   <Type Name="Eigen::Matrix&lt;*,2,2,*,*,*&gt;">      
     26       <AlternativeType Name="Eigen::Array&lt;*,2,2,*,*,*&gt;"/>
     27       <DisplayString>[2, 2] (fixed matrix)</DisplayString>
     28       <Expand>
     29         <Synthetic Name="[row 0]" Condition="Flags%2">
     30           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]})</DisplayString>
     31         </Synthetic>
     32         <Synthetic Name="[row 0]" Condition="!(Flags%2)">
     33           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[2]})</DisplayString>
     34         </Synthetic>
     35         <Synthetic Name="[row 1]" Condition="Flags%2">
     36           <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[3]})</DisplayString>
     37         </Synthetic>
     38         <Synthetic Name="[row 1]" Condition="!(Flags%2)">
     39           <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[3]})</DisplayString>
     40         </Synthetic>        
     41       </Expand>
     42   </Type>
     43   
     44   <!-- 3 x 3 Matrix -->
     45   <Type Name="Eigen::Matrix&lt;*,3,3,*,*,*&gt;">      
     46       <AlternativeType Name="Eigen::Array&lt;*,3,3,*,*,*&gt;"/>
     47       <DisplayString>[3, 3] (fixed matrix)</DisplayString>
     48       <Expand>
     49         <Synthetic Name="[row 0]" Condition="Flags%2">
     50           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]})</DisplayString>
     51         </Synthetic>
     52         <Synthetic Name="[row 0]" Condition="!(Flags%2)">
     53           <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[3]}, {m_storage.m_data.array[6]})</DisplayString>
     54         </Synthetic>
     55         <Synthetic Name="[row 1]" Condition="Flags%2">
     56           <DisplayString>({m_storage.m_data.array[3]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[5]})</DisplayString>
     57         </Synthetic>
     58         <Synthetic Name="[row 1]" Condition="!(Flags%2)">
     59           <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[7]})</DisplayString>
     60         </Synthetic>
     61         <Synthetic Name="[row 2]" Condition="Flags%2">
     62           <DisplayString>({m_storage.m_data.array[6]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[8]})</DisplayString>
     63         </Synthetic>
     64         <Synthetic Name="[row 2]" Condition="!(Flags%2)">
     65           <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[8]})</DisplayString>
     66         </Synthetic>        
     67       </Expand>
     68   </Type>
     69   
     70   <!-- 4 x 4 Matrix -->
     71   <Type Name="Eigen::Matrix&lt;*,4,4,*,*,*&gt;">      
     72       <AlternativeType Name="Eigen::Array&lt;*,4,4,*,*,*&gt;"/>
     73       <DisplayString>[4, 4] (fixed matrix)</DisplayString>
     74       <Expand>
     75         <Synthetic Name="[row 0]" Condition="Flags%2">
     76           <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>
     77         </Synthetic>
     78         <Synthetic Name="[row 0]" Condition="!(Flags%2)">
     79           <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>
     80         </Synthetic>
     81         <Synthetic Name="[row 1]" Condition="Flags%2">
     82           <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>
     83         </Synthetic>
     84         <Synthetic Name="[row 1]" Condition="!(Flags%2)">
     85           <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>
     86         </Synthetic>
     87         <Synthetic Name="[row 2]" Condition="Flags%2">
     88           <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>
     89         </Synthetic>
     90         <Synthetic Name="[row 2]" Condition="!(Flags%2)">
     91           <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>
     92         </Synthetic>
     93         <Synthetic Name="[row 3]" Condition="Flags%2">
     94           <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>
     95         </Synthetic>
     96         <Synthetic Name="[row 3]" Condition="!(Flags%2)">
     97           <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>
     98         </Synthetic>        
     99       </Expand>
    100   </Type>  
    101   
    102   <!-- Dynamic x Dynamic Matrix -->
    103   <Type Name="Eigen::Matrix&lt;*,-1,-1,*,*,*&gt;">      
    104       <AlternativeType Name="Eigen::Array&lt;*,-1,-1,*,*,*&gt;"/>
    105       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString>
    106       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}, {m_storage.m_cols}] (dynamic matrix)</DisplayString>
    107       <Expand>
    108         <ArrayItems Condition="Flags%2"> <!-- row major layout -->
    109           <Rank>2</Rank>
    110           <Size>$i==0 ? m_storage.m_rows : m_storage.m_cols</Size>
    111           <ValuePointer>m_storage.m_data</ValuePointer>
    112         </ArrayItems>
    113         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout -->
    114           <Direction>Backward</Direction>
    115           <Rank>2</Rank>
    116           <Size>$i==0 ? m_storage.m_rows : m_storage.m_cols</Size>
    117           <ValuePointer>m_storage.m_data</ValuePointer>
    118         </ArrayItems>
    119       </Expand>
    120   </Type>
    121   
    122   <!-- Fixed x Dynamic Matrix -->
    123   <Type Name="Eigen::Matrix&lt;*,*,-1,*,*,*&gt;">
    124       <AlternativeType Name="Eigen::Array&lt;*,*,-1,*,*,*&gt;"/>
    125       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString>
    126       <DisplayString Condition="m_storage.m_data != 0">[{$T2}, {m_storage.m_cols}] (dynamic column matrix)</DisplayString>
    127       <Expand>
    128         <ArrayItems Condition="Flags%2"> <!-- row major layout -->
    129           <Rank>2</Rank>
    130           <Size>$i==0 ? $T2 : m_storage.m_cols</Size>
    131           <ValuePointer>m_storage.m_data</ValuePointer>
    132         </ArrayItems>
    133         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout -->
    134           <Direction>Backward</Direction>
    135           <Rank>2</Rank>
    136           <Size>$i==0 ? $T2 : m_storage.m_cols</Size>
    137           <ValuePointer>m_storage.m_data</ValuePointer>
    138         </ArrayItems>
    139       </Expand>
    140   </Type>
    141   
    142   <!-- Dynamic x Fixed Matrix -->
    143   <Type Name="Eigen::Matrix&lt;*,-1,*,*,*,*&gt;">
    144       <AlternativeType Name="Eigen::Array&lt;*,-1,*,*,*,*&gt;"/>
    145       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString>
    146       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}, {$T2}] (dynamic row matrix)</DisplayString>
    147       <Expand>
    148         <ArrayItems Condition="Flags%2"> <!-- row major layout -->
    149           <Rank>2</Rank>
    150           <Size>$i==0 ? m_storage.m_rows : $T2</Size>
    151           <ValuePointer>m_storage.m_data</ValuePointer>
    152         </ArrayItems>
    153         <ArrayItems Condition="!(Flags%2)"> <!-- column major layout -->
    154           <Direction>Backward</Direction>
    155           <Rank>2</Rank>
    156           <Size>$i==0 ? m_storage.m_rows : $T2</Size>
    157           <ValuePointer>m_storage.m_data</ValuePointer>
    158         </ArrayItems>
    159       </Expand>
    160   </Type>
    161   
    162   <!-- Dynamic Column Vector -->
    163   <Type Name="Eigen::Matrix&lt;*,1,-1,*,*,*&gt;">
    164       <AlternativeType Name="Eigen::Array&lt;*,1,-1,*,*,*&gt;"/>
    165       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString>
    166       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_cols}] (dynamic column vector)</DisplayString>
    167       <Expand>
    168         <Item Name="[size]">m_storage.m_cols</Item>
    169         <ArrayItems>
    170           <Size>m_storage.m_cols</Size>
    171           <ValuePointer>m_storage.m_data</ValuePointer>
    172         </ArrayItems>
    173       </Expand>
    174   </Type>
    175   
    176   <!-- Dynamic Row Vector -->
    177   <Type Name="Eigen::Matrix&lt;*,-1,1,*,*,*&gt;">
    178       <AlternativeType Name="Eigen::Array&lt;*,-1,1,*,*,*&gt;"/>
    179       <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString>
    180       <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}] (dynamic row vector)</DisplayString>
    181       <Expand>
    182         <Item Name="[size]">m_storage.m_rows</Item>
    183         <ArrayItems>
    184           <Size>m_storage.m_rows</Size>
    185           <ValuePointer>m_storage.m_data</ValuePointer>
    186         </ArrayItems>
    187       </Expand>
    188   </Type>
    189   
    190   <!-- Fixed Vector -->
    191   <Type Name="Eigen::Matrix&lt;*,1,1,*,*,*&gt;">
    192       <AlternativeType Name="Eigen::Array&lt;*,1,1,*,*,*&gt;"/>
    193       <DisplayString>[1] ({m_storage.m_data.array[0]})</DisplayString>
    194       <Expand>
    195         <Item Name="[x]">m_storage.m_data.array[0]</Item>
    196       </Expand>
    197   </Type>
    198   
    199   <Type Name="Eigen::Matrix&lt;*,2,1,*,*,*&gt;">
    200       <AlternativeType Name="Eigen::Matrix&lt;*,1,2,*,*,*&gt;"/>
    201       <AlternativeType Name="Eigen::Array&lt;*,2,1,*,*,*&gt;"/>
    202       <AlternativeType Name="Eigen::Array&lt;*,1,2,*,*,*&gt;"/>
    203       <DisplayString>[2] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]})</DisplayString>
    204       <Expand>
    205         <Item Name="[x]">m_storage.m_data.array[0]</Item>
    206         <Item Name="[y]">m_storage.m_data.array[1]</Item>
    207       </Expand>
    208   </Type>
    209   
    210   <Type Name="Eigen::Matrix&lt;*,3,1,*,*,*&gt;">
    211       <AlternativeType Name="Eigen::Matrix&lt;*,1,3,*,*,*&gt;"/>
    212       <AlternativeType Name="Eigen::Array&lt;*,3,1,*,*,*&gt;"/>
    213       <AlternativeType Name="Eigen::Array&lt;*,1,3,*,*,*&gt;"/>
    214       <DisplayString>[3] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]})</DisplayString>
    215       <Expand>
    216         <Item Name="[x]">m_storage.m_data.array[0]</Item>
    217         <Item Name="[y]">m_storage.m_data.array[1]</Item>
    218         <Item Name="[z]">m_storage.m_data.array[2]</Item>
    219       </Expand>
    220   </Type>
    221   
    222     <Type Name="Eigen::Matrix&lt;*,4,1,*,*,*&gt;">
    223       <AlternativeType Name="Eigen::Matrix&lt;*,1,4,*,*,*&gt;"/>
    224       <AlternativeType Name="Eigen::Array&lt;*,4,1,*,*,*&gt;"/>
    225       <AlternativeType Name="Eigen::Array&lt;*,1,4,*,*,*&gt;"/>
    226       <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>
    227       <Expand>
    228         <Item Name="[x]">m_storage.m_data.array[0]</Item>
    229         <Item Name="[y]">m_storage.m_data.array[1]</Item>
    230         <Item Name="[z]">m_storage.m_data.array[2]</Item>
    231         <Item Name="[w]">m_storage.m_data.array[3]</Item>
    232       </Expand>
    233   </Type>
    234 
    235 </AutoVisualizer>
    236