0024812: Provide VS2012 debugger visualizer for OCCT types
[occt.git] / dox / dev_guides / debug / occt.natvis
1 <?xml version="1.0" encoding="utf-8"?>
2 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
3   <Type Name="gp_XY">
4     <DisplayString>[{(float)x} {(float)y}]</DisplayString>
5   </Type>
6   <Type Name="gp_Pnt2d">
7     <AlternativeType Name="gp_Vec2d"></AlternativeType>
8     <AlternativeType Name="gp_Dir2d"></AlternativeType>
9     <DisplayString>[{(float)cood.x} {(float)cood.y}]</DisplayString>
10   </Type>
11   <Type Name="gp_XYZ">
12     <DisplayString>[{(float)x} {(float)y} {(float)z}]</DisplayString>
13   </Type>
14   <Type Name="gp_Pnt">
15     <AlternativeType Name="gp_Vec"></AlternativeType>
16     <AlternativeType Name="gp_Dir"></AlternativeType>
17     <DisplayString>[{(float)coord.x} {(float)coord.y} {(float)coord.z}]</DisplayString>
18   </Type>
19   <Type Name="NCollection_Vec2&lt;*&gt;">
20     <DisplayString>[{v[0]} {v[1]}]</DisplayString>
21   </Type>
22   <Type Name="NCollection_Vec3&lt;*&gt;">
23     <DisplayString>[{v[0]} {v[1]} {v[2]}]</DisplayString>
24   </Type>
25   <Type Name="NCollection_Vec4&lt;*&gt;">
26     <DisplayString>[{v[0]} {v[1]} {v[2]} {v[3]}]</DisplayString>
27   </Type>
28   <Type Name="gp_Mat2d">
29     <DisplayString>
30       [{(float)matrix[0][0]} {(float)matrix[0][1]}], [{(float)matrix[1][0]} {(float)matrix[1][1]}]
31     </DisplayString>
32   </Type>
33   <Type Name="NCollection_Mat4&lt;*&gt;">
34     <Expand>
35       <Item Name="row0">((NCollection_Vec4&lt;$T1&gt;*)myMat)[0]</Item>
36       <Item Name="row1">((NCollection_Vec4&lt;$T1&gt;*)myMat)[1]</Item>
37       <Item Name="row2">((NCollection_Vec4&lt;$T1&gt;*)myMat)[2]</Item>
38       <Item Name="row3">((NCollection_Vec4&lt;$T1&gt;*)myMat)[3]</Item>
39     </Expand>
40   </Type>
41   <Type Name="Handle_Standard_Transient">
42     <DisplayString Condition="entity==0x00000000">NULL</DisplayString>
43     <DisplayString Condition="entity!=0x00000000">[count={entity->count}]</DisplayString>
44     <Expand>
45       <ExpandedItem>*entity</ExpandedItem>
46     </Expand>
47   </Type>
48   <Type Name="NCollection_Handle&lt;*&gt;">
49     <DisplayString Condition="entity==0x00000000">NULL</DisplayString>
50     <DisplayString Condition="entity!=0x00000000">[count={entity->count}]</DisplayString>
51     <Expand>
52       <ExpandedItem>*((NCollection_Handle&lt;$T1&gt;::Ptr*)entity)->myPtr</ExpandedItem>
53     </Expand>
54   </Type>
55   <Type Name="TCollection_AsciiString">
56     <DisplayString>{mylength}: {mystring,s}</DisplayString>
57   </Type>
58   <Type Name="TCollection_HAsciiString">
59     <DisplayString>{myString.mylength}: {myString.mystring,s}</DisplayString>
60   </Type>
61   <Type Name="NCollection_UtfString&lt;*&gt;">
62     <DisplayString>{myLength}: {myString,s}</DisplayString>
63   </Type>
64   <Type Name="TCollection_ExtendedString">
65     <DisplayString>{mylength}: {(wchar_t *)mystring,su}</DisplayString>
66   </Type>
67   <Type Name="TCollection_HExtendedString">
68     <DisplayString>{myString.mylength}: {(wchar_t *)myString.mystring,su}</DisplayString>
69   </Type>
70   <Type Name="TCollection_BaseSequence">
71     <DisplayString>TCollection_Sequence [{Size}], curr={CurrentIndex}</DisplayString>
72   </Type>
73   <Type Name="TCollection_BasicMap">
74     <AlternativeType Name="NCollection_BaseMap"/>
75     <DisplayString>TCollection_Map [{mySize}]</DisplayString>
76   </Type>
77   <Type Name="TColStd_PackedMapOfInteger">
78     <DisplayString>TColStd_PackedMapOfInteger [{myExtent}]</DisplayString>
79   </Type>
80   <Type Name="NCollection_Vector&lt;*&gt;">
81     <DisplayString>NCollection_Vector [{myLength}]</DisplayString>
82     <Expand>
83       <IndexListItems Condition="myData->Length&lt;myLength">
84         <Size>myData->Length</Size>
85         <ValueNode>*($T1*)((char*)myData->DataPtr + $i * myItemSize)</ValueNode>
86       </IndexListItems>
87       <IndexListItems Condition="myData->Length&gt;=myLength">
88         <Size>myLength</Size>
89         <ValueNode>*($T1*)((char*)myData->DataPtr + $i * myItemSize)</ValueNode>
90       </IndexListItems>
91     </Expand>
92   </Type>
93   <Type Name="NCollection_List&lt;*&gt;">
94     <DisplayString>NCollection_List [{myLength}]</DisplayString>
95     <Expand>
96       <LinkedListItems>
97         <Size>myLength</Size>
98         <HeadPointer>myFirst</HeadPointer>
99         <NextPointer>myNext</NextPointer>
100         <ValueNode>*($T1*)(sizeof(NCollection_ListNode) + ((char *)this))</ValueNode>
101       </LinkedListItems>
102     </Expand>
103   </Type>
104   <Type Name="Bnd_B2f">
105     <AlternativeType Name="Bnd_B2d"></AlternativeType>
106     <DisplayString Condition="myCenter[0] &gt; 1000000000000000000.">VOID</DisplayString>
107     <DisplayString Condition="myCenter[0] &lt; 1000000000000000000.">
108       Center: [{(float)myCenter[0]} {(float)myCenter[1]}], hSize: [{(float)myHSize[0]} {(float)myHSize[1]}]
109     </DisplayString>
110   </Type>
111   <Type Name="Bnd_B3f">
112     <AlternativeType Name="Bnd_B3d"></AlternativeType>
113     <DisplayString Condition="myCenter[0] &gt; 1000000000000000000.">VOID</DisplayString>
114     <DisplayString Condition="myCenter[0] &lt; 1000000000000000000.">
115       Center: [{(float)myCenter[0]} {(float)myCenter[1]} {(float)myCenter[2]}], hSize: [{(float)myHSize[0]} {(float)myHSize[1]} {(float)myHSize[2]}]
116     </DisplayString>
117   </Type>
118   <Type Name="TDF_Label">
119     <DisplayString Condition="myLabelNode==0">NULL</DisplayString>
120     <DisplayString Condition="myLabelNode!=0">[:{myLabelNode->myTag}]</DisplayString>
121     <Expand>
122       <ExpandedItem>*myLabelNode</ExpandedItem>
123     </Expand>
124   </Type>
125   <Type Name="TDF_LabelNode">
126     <DisplayString>[:{myTag}]</DisplayString>
127     <Expand>
128       <Item Name="brother" Condition="myBrother!=0">* myBrother</Item>
129       <Item Name="child" Condition="myFirstChild!=0">* myFirstChild</Item>
130       <ExpandedItem>myFirstAttribute</ExpandedItem>
131     </Expand>
132   </Type>
133   <Type Name="Handle_TDF_Attribute">
134     <DisplayString Condition="entity==0x00000000">NULL</DisplayString>
135     <DisplayString Condition="entity!=0x00000000">
136       [transaction={((TDF_Attribute*)entity)->myTransaction}]
137     </DisplayString>
138     <Expand>
139       <!--Item Name="next" Condition="myNext.entity!=0x00000000">myNext</Item-->
140       <ExpandedItem>(TDF_Attribute*)entity</ExpandedItem>
141     </Expand>
142   </Type>
143   <Type Name="OpenGl_Context">
144     <DisplayString>[{myGlVerMajor}.{myGlVerMinor}]</DisplayString>
145   </Type>
146 </AutoVisualizer>