Brian Silverman | 72890c2 | 2015-09-19 14:37:37 -0400 | [diff] [blame] | 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>
|