You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

235 lines
11 KiB

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