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<*,*,*,*,*,*>"> 7 <AlternativeType Name="Eigen::Array<*,-1,-1,*,*,*>"/> 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<*,2,2,*,*,*>"> 26 <AlternativeType Name="Eigen::Array<*,2,2,*,*,*>"/> 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<*,3,3,*,*,*>"> 46 <AlternativeType Name="Eigen::Array<*,3,3,*,*,*>"/> 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<*,4,4,*,*,*>"> 72 <AlternativeType Name="Eigen::Array<*,4,4,*,*,*>"/> 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<*,-1,-1,*,*,*>"> 104 <AlternativeType Name="Eigen::Array<*,-1,-1,*,*,*>"/> 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<*,*,-1,*,*,*>"> 124 <AlternativeType Name="Eigen::Array<*,*,-1,*,*,*>"/> 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<*,-1,*,*,*,*>"> 144 <AlternativeType Name="Eigen::Array<*,-1,*,*,*,*>"/> 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<*,1,-1,*,*,*>"> 164 <AlternativeType Name="Eigen::Array<*,1,-1,*,*,*>"/> 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<*,-1,1,*,*,*>"> 178 <AlternativeType Name="Eigen::Array<*,-1,1,*,*,*>"/> 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<*,1,1,*,*,*>"> 192 <AlternativeType Name="Eigen::Array<*,1,1,*,*,*>"/> 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<*,2,1,*,*,*>"> 200 <AlternativeType Name="Eigen::Matrix<*,1,2,*,*,*>"/> 201 <AlternativeType Name="Eigen::Array<*,2,1,*,*,*>"/> 202 <AlternativeType Name="Eigen::Array<*,1,2,*,*,*>"/> 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<*,3,1,*,*,*>"> 211 <AlternativeType Name="Eigen::Matrix<*,1,3,*,*,*>"/> 212 <AlternativeType Name="Eigen::Array<*,3,1,*,*,*>"/> 213 <AlternativeType Name="Eigen::Array<*,1,3,*,*,*>"/> 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<*,4,1,*,*,*>"> 223 <AlternativeType Name="Eigen::Matrix<*,1,4,*,*,*>"/> 224 <AlternativeType Name="Eigen::Array<*,4,1,*,*,*>"/> 225 <AlternativeType Name="Eigen::Array<*,1,4,*,*,*>"/> 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