Merge pull request #22 from bkryza/extend-find-relationships-for-unexposed-template-args
Extend find relationships for unexposed template args
4
.github/workflows/build.yml
vendored
@@ -10,8 +10,10 @@ jobs:
|
|||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
- name: Update package database
|
||||||
|
run: sudo apt -y update
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: sudo apt install git make gcc-10 g++-10 ccache cmake libyaml-cpp-dev libfmt-dev libspdlog-dev clang-12 libclang-12-dev libclang-cpp12-dev
|
run: sudo apt -y install git make gcc-10 g++-10 ccache cmake libyaml-cpp-dev libfmt-dev libspdlog-dev clang-12 libclang-12-dev libclang-cpp12-dev
|
||||||
- name: Select g++ version
|
- name: Select g++ version
|
||||||
run: |
|
run: |
|
||||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="218px" preserveAspectRatio="none" style="width:744px;height:218px;" version="1.1" viewBox="0 0 744 218" width="744px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="243px" preserveAspectRatio="none" style="width:724px;height:243px;" version="1.1" viewBox="0 0 724 243" width="724px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="f1h4e6dmexzfad" width="300%" x="-1" y="-1">
|
<filter height="300%" id="flbvad1gld6dj" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,71 +8,73 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<rect fill="#FEFECE" filter="url(#f1h4e6dmexzfad)" height="73.6094" id="C_0000000642" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="6" y="8"/>
|
<rect fill="#FEFECE" filter="url(#flbvad1gld6dj)" height="73.6094" id="C_0000000642" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="6" y="159"/>
|
||||||
<ellipse cx="110.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="110.75" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M113.7188,29.6406 Q113.1406,29.9375 112.5,30.0781 Q111.8594,30.2344 111.1563,30.2344 Q108.6563,30.2344 107.3281,28.5938 Q106.0156,26.9375 106.0156,23.8125 Q106.0156,20.6875 107.3281,19.0313 Q108.6563,17.375 111.1563,17.375 Q111.8594,17.375 112.5,17.5313 Q113.1563,17.6875 113.7188,17.9844 L113.7188,20.7031 Q113.0938,20.125 112.5,19.8594 Q111.9063,19.5781 111.2813,19.5781 Q109.9375,19.5781 109.25,20.6563 Q108.5625,21.7188 108.5625,23.8125 Q108.5625,25.9063 109.25,26.9844 Q109.9375,28.0469 111.2813,28.0469 Q111.9063,28.0469 112.5,27.7813 Q113.0938,27.5 113.7188,26.9219 L113.7188,29.6406 Z "/>
|
<path d="M113.7188,180.6406 Q113.1406,180.9375 112.5,181.0781 Q111.8594,181.2344 111.1563,181.2344 Q108.6563,181.2344 107.3281,179.5938 Q106.0156,177.9375 106.0156,174.8125 Q106.0156,171.6875 107.3281,170.0313 Q108.6563,168.375 111.1563,168.375 Q111.8594,168.375 112.5,168.5313 Q113.1563,168.6875 113.7188,168.9844 L113.7188,171.7031 Q113.0938,171.125 112.5,170.8594 Q111.9063,170.5781 111.2813,170.5781 Q109.9375,170.5781 109.25,171.6563 Q108.5625,172.7188 108.5625,174.8125 Q108.5625,176.9063 109.25,177.9844 Q109.9375,179.0469 111.2813,179.0469 Q111.9063,179.0469 112.5,178.7813 Q113.0938,178.5 113.7188,177.9219 L113.7188,180.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="131.25" y="28.1543">Void</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="131.25" y="179.1543">Void</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="250" y1="40" y2="40"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="250" y1="191" y2="191"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="250" y1="48" y2="48"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="250" y1="199" y2="199"/>
|
||||||
<ellipse cx="17" cy="59" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
<ellipse cx="17" cy="210" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="26" y="62.2104">operator==(Void const& ) const : bool</text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="26" y="213.2104">operator==(Void const& ) const : bool</text>
|
||||||
<ellipse cx="17" cy="71.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
<ellipse cx="17" cy="222.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="26" y="75.0151">operator!=(Void const& ) const : bool</text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="26" y="226.0151">operator!=(Void const& ) const : bool</text>
|
||||||
<rect fill="#FEFECE" filter="url(#f1h4e6dmexzfad)" height="48" id="C_0000000644" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="295" y="159"/>
|
<rect fill="#FEFECE" filter="url(#flbvad1gld6dj)" height="48" id="C_0000000644" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="433" y="172"/>
|
||||||
<ellipse cx="310" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="448" cy="188" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M312.9688,180.6406 Q312.3906,180.9375 311.75,181.0781 Q311.1094,181.2344 310.4063,181.2344 Q307.9063,181.2344 306.5781,179.5938 Q305.2656,177.9375 305.2656,174.8125 Q305.2656,171.6875 306.5781,170.0313 Q307.9063,168.375 310.4063,168.375 Q311.1094,168.375 311.75,168.5313 Q312.4063,168.6875 312.9688,168.9844 L312.9688,171.7031 Q312.3438,171.125 311.75,170.8594 Q311.1563,170.5781 310.5313,170.5781 Q309.1875,170.5781 308.5,171.6563 Q307.8125,172.7188 307.8125,174.8125 Q307.8125,176.9063 308.5,177.9844 Q309.1875,179.0469 310.5313,179.0469 Q311.1563,179.0469 311.75,178.7813 Q312.3438,178.5 312.9688,177.9219 L312.9688,180.6406 Z "/>
|
<path d="M450.9688,193.6406 Q450.3906,193.9375 449.75,194.0781 Q449.1094,194.2344 448.4063,194.2344 Q445.9063,194.2344 444.5781,192.5938 Q443.2656,190.9375 443.2656,187.8125 Q443.2656,184.6875 444.5781,183.0313 Q445.9063,181.375 448.4063,181.375 Q449.1094,181.375 449.75,181.5313 Q450.4063,181.6875 450.9688,181.9844 L450.9688,184.7031 Q450.3438,184.125 449.75,183.8594 Q449.1563,183.5781 448.5313,183.5781 Q447.1875,183.5781 446.5,184.6563 Q445.8125,185.7188 445.8125,187.8125 Q445.8125,189.9063 446.5,190.9844 Q447.1875,192.0469 448.5313,192.0469 Q449.1563,192.0469 449.75,191.7813 Q450.3438,191.5 450.9688,190.9219 L450.9688,193.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="324" y="179.1543">lift_void</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="462" y="192.1543">lift_void</text>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="378" y="156"/>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="516" y="169"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="379" y="168.1387">T</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="517" y="181.1387">T</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="296" x2="383" y1="191" y2="191"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="434" x2="521" y1="204" y2="204"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="296" x2="383" y1="199" y2="199"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="434" x2="521" y1="212" y2="212"/>
|
||||||
<rect fill="#FEFECE" filter="url(#f1h4e6dmexzfad)" height="48" id="C_0000000646" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="286" y="21"/>
|
<rect fill="#FEFECE" filter="url(#flbvad1gld6dj)" height="48" id="C_0000000646" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="424" y="21"/>
|
||||||
<ellipse cx="301" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="439" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M303.9688,42.6406 Q303.3906,42.9375 302.75,43.0781 Q302.1094,43.2344 301.4063,43.2344 Q298.9063,43.2344 297.5781,41.5938 Q296.2656,39.9375 296.2656,36.8125 Q296.2656,33.6875 297.5781,32.0313 Q298.9063,30.375 301.4063,30.375 Q302.1094,30.375 302.75,30.5313 Q303.4063,30.6875 303.9688,30.9844 L303.9688,33.7031 Q303.3438,33.125 302.75,32.8594 Q302.1563,32.5781 301.5313,32.5781 Q300.1875,32.5781 299.5,33.6563 Q298.8125,34.7188 298.8125,36.8125 Q298.8125,38.9063 299.5,39.9844 Q300.1875,41.0469 301.5313,41.0469 Q302.1563,41.0469 302.75,40.7813 Q303.3438,40.5 303.9688,39.9219 L303.9688,42.6406 Z "/>
|
<path d="M441.9688,42.6406 Q441.3906,42.9375 440.75,43.0781 Q440.1094,43.2344 439.4063,43.2344 Q436.9063,43.2344 435.5781,41.5938 Q434.2656,39.9375 434.2656,36.8125 Q434.2656,33.6875 435.5781,32.0313 Q436.9063,30.375 439.4063,30.375 Q440.1094,30.375 440.75,30.5313 Q441.4063,30.6875 441.9688,30.9844 L441.9688,33.7031 Q441.3438,33.125 440.75,32.8594 Q440.1563,32.5781 439.5313,32.5781 Q438.1875,32.5781 437.5,33.6563 Q436.8125,34.7188 436.8125,36.8125 Q436.8125,38.9063 437.5,39.9844 Q438.1875,41.0469 439.5313,41.0469 Q440.1563,41.0469 440.75,40.7813 Q441.3438,40.5 441.9688,39.9219 L441.9688,42.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="315" y="41.1543">lift_void</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="453" y="41.1543">lift_void</text>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="27" x="369" y="18"/>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="27" x="507" y="18"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="25" x="370" y="30.1387">void</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="25" x="508" y="30.1387">void</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="287" x2="392" y1="53" y2="53"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="425" x2="530" y1="53" y2="53"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="287" x2="392" y1="61" y2="61"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="425" x2="530" y1="61" y2="61"/>
|
||||||
<rect fill="#FEFECE" filter="url(#f1h4e6dmexzfad)" height="48" id="C_0000000650" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="438" y="159"/>
|
<rect fill="#FEFECE" filter="url(#flbvad1gld6dj)" height="48" id="C_0000000650" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="286" y="172"/>
|
||||||
<ellipse cx="453" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="301" cy="188" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M455.9688,180.6406 Q455.3906,180.9375 454.75,181.0781 Q454.1094,181.2344 453.4063,181.2344 Q450.9063,181.2344 449.5781,179.5938 Q448.2656,177.9375 448.2656,174.8125 Q448.2656,171.6875 449.5781,170.0313 Q450.9063,168.375 453.4063,168.375 Q454.1094,168.375 454.75,168.5313 Q455.4063,168.6875 455.9688,168.9844 L455.9688,171.7031 Q455.3438,171.125 454.75,170.8594 Q454.1563,170.5781 453.5313,170.5781 Q452.1875,170.5781 451.5,171.6563 Q450.8125,172.7188 450.8125,174.8125 Q450.8125,176.9063 451.5,177.9844 Q452.1875,179.0469 453.5313,179.0469 Q454.1563,179.0469 454.75,178.7813 Q455.3438,178.5 455.9688,177.9219 L455.9688,180.6406 Z "/>
|
<path d="M303.9688,193.6406 Q303.3906,193.9375 302.75,194.0781 Q302.1094,194.2344 301.4063,194.2344 Q298.9063,194.2344 297.5781,192.5938 Q296.2656,190.9375 296.2656,187.8125 Q296.2656,184.6875 297.5781,183.0313 Q298.9063,181.375 301.4063,181.375 Q302.1094,181.375 302.75,181.5313 Q303.4063,181.6875 303.9688,181.9844 L303.9688,184.7031 Q303.3438,184.125 302.75,183.8594 Q302.1563,183.5781 301.5313,183.5781 Q300.1875,183.5781 299.5,184.6563 Q298.8125,185.7188 298.8125,187.8125 Q298.8125,189.9063 299.5,190.9844 Q300.1875,192.0469 301.5313,192.0469 Q302.1563,192.0469 302.75,191.7813 Q303.3438,191.5 303.9688,190.9219 L303.9688,193.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="467" y="179.1543">drop_void</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="315" y="192.1543">drop_void</text>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="535" y="156"/>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="383" y="169"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="536" y="168.1387">T</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="384" y="181.1387">T</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="439" x2="540" y1="191" y2="191"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="287" x2="388" y1="204" y2="204"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="439" x2="540" y1="199" y2="199"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="287" x2="388" y1="212" y2="212"/>
|
||||||
<rect fill="#FEFECE" filter="url(#f1h4e6dmexzfad)" height="48" id="C_0000000652" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="428" y="21"/>
|
<rect fill="#FEFECE" filter="url(#flbvad1gld6dj)" height="48" id="C_0000000652" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="167" y="21"/>
|
||||||
<ellipse cx="443" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="182" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M445.9688,42.6406 Q445.3906,42.9375 444.75,43.0781 Q444.1094,43.2344 443.4063,43.2344 Q440.9063,43.2344 439.5781,41.5938 Q438.2656,39.9375 438.2656,36.8125 Q438.2656,33.6875 439.5781,32.0313 Q440.9063,30.375 443.4063,30.375 Q444.1094,30.375 444.75,30.5313 Q445.4063,30.6875 445.9688,30.9844 L445.9688,33.7031 Q445.3438,33.125 444.75,32.8594 Q444.1563,32.5781 443.5313,32.5781 Q442.1875,32.5781 441.5,33.6563 Q440.8125,34.7188 440.8125,36.8125 Q440.8125,38.9063 441.5,39.9844 Q442.1875,41.0469 443.5313,41.0469 Q444.1563,41.0469 444.75,40.7813 Q445.3438,40.5 445.9688,39.9219 L445.9688,42.6406 Z "/>
|
<path d="M184.9688,42.6406 Q184.3906,42.9375 183.75,43.0781 Q183.1094,43.2344 182.4063,43.2344 Q179.9063,43.2344 178.5781,41.5938 Q177.2656,39.9375 177.2656,36.8125 Q177.2656,33.6875 178.5781,32.0313 Q179.9063,30.375 182.4063,30.375 Q183.1094,30.375 183.75,30.5313 Q184.4063,30.6875 184.9688,30.9844 L184.9688,33.7031 Q184.3438,33.125 183.75,32.8594 Q183.1563,32.5781 182.5313,32.5781 Q181.1875,32.5781 180.5,33.6563 Q179.8125,34.7188 179.8125,36.8125 Q179.8125,38.9063 180.5,39.9844 Q181.1875,41.0469 182.5313,41.0469 Q183.1563,41.0469 183.75,40.7813 Q184.3438,40.5 184.9688,39.9219 L184.9688,42.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="457" y="41.1543">drop_void</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="196" y="41.1543">drop_void</text>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="29" x="525" y="18"/>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="29" x="264" y="18"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="526" y="30.1387">Void</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="265" y="30.1387">Void</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="429" x2="550" y1="53" y2="53"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="168" x2="289" y1="53" y2="53"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="429" x2="550" y1="61" y2="61"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="168" x2="289" y1="61" y2="61"/>
|
||||||
<rect fill="#FEFECE" filter="url(#f1h4e6dmexzfad)" height="48" id="C_0000000656" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="639.5" y="159"/>
|
<rect fill="#FEFECE" filter="url(#flbvad1gld6dj)" height="48" id="C_0000000656" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="619.5" y="172"/>
|
||||||
<ellipse cx="654.5" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="634.5" cy="188" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M657.4688,180.6406 Q656.8906,180.9375 656.25,181.0781 Q655.6094,181.2344 654.9063,181.2344 Q652.4063,181.2344 651.0781,179.5938 Q649.7656,177.9375 649.7656,174.8125 Q649.7656,171.6875 651.0781,170.0313 Q652.4063,168.375 654.9063,168.375 Q655.6094,168.375 656.25,168.5313 Q656.9063,168.6875 657.4688,168.9844 L657.4688,171.7031 Q656.8438,171.125 656.25,170.8594 Q655.6563,170.5781 655.0313,170.5781 Q653.6875,170.5781 653,171.6563 Q652.3125,172.7188 652.3125,174.8125 Q652.3125,176.9063 653,177.9844 Q653.6875,179.0469 655.0313,179.0469 Q655.6563,179.0469 656.25,178.7813 Q656.8438,178.5 657.4688,177.9219 L657.4688,180.6406 Z "/>
|
<path d="M637.4688,193.6406 Q636.8906,193.9375 636.25,194.0781 Q635.6094,194.2344 634.9063,194.2344 Q632.4063,194.2344 631.0781,192.5938 Q629.7656,190.9375 629.7656,187.8125 Q629.7656,184.6875 631.0781,183.0313 Q632.4063,181.375 634.9063,181.375 Q635.6094,181.375 636.25,181.5313 Q636.9063,181.6875 637.4688,181.9844 L637.4688,184.7031 Q636.8438,184.125 636.25,183.8594 Q635.6563,183.5781 635.0313,183.5781 Q633.6875,183.5781 633,184.6563 Q632.3125,185.7188 632.3125,187.8125 Q632.3125,189.9063 633,190.9844 Q633.6875,192.0469 635.0313,192.0469 Q635.6563,192.0469 636.25,191.7813 Q636.8438,191.5 637.4688,190.9219 L637.4688,193.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="668.5" y="179.1543">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="648.5" y="192.1543">A</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="640.5" x2="678.5" y1="191" y2="191"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="620.5" x2="658.5" y1="204" y2="204"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="640.5" x2="678.5" y1="199" y2="199"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="620.5" x2="658.5" y1="212" y2="212"/>
|
||||||
<rect fill="#FEFECE" filter="url(#f1h4e6dmexzfad)" height="73.6094" id="C_0000000658" style="stroke: #A80036; stroke-width: 1.5;" width="147" x="586" y="8"/>
|
<rect fill="#FEFECE" filter="url(#flbvad1gld6dj)" height="73.6094" id="C_0000000658" style="stroke: #A80036; stroke-width: 1.5;" width="147" x="566" y="8"/>
|
||||||
<ellipse cx="651.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="631.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M654.2188,29.6406 Q653.6406,29.9375 653,30.0781 Q652.3594,30.2344 651.6563,30.2344 Q649.1563,30.2344 647.8281,28.5938 Q646.5156,26.9375 646.5156,23.8125 Q646.5156,20.6875 647.8281,19.0313 Q649.1563,17.375 651.6563,17.375 Q652.3594,17.375 653,17.5313 Q653.6563,17.6875 654.2188,17.9844 L654.2188,20.7031 Q653.5938,20.125 653,19.8594 Q652.4063,19.5781 651.7813,19.5781 Q650.4375,19.5781 649.75,20.6563 Q649.0625,21.7188 649.0625,23.8125 Q649.0625,25.9063 649.75,26.9844 Q650.4375,28.0469 651.7813,28.0469 Q652.4063,28.0469 653,27.7813 Q653.5938,27.5 654.2188,26.9219 L654.2188,29.6406 Z "/>
|
<path d="M634.2188,29.6406 Q633.6406,29.9375 633,30.0781 Q632.3594,30.2344 631.6563,30.2344 Q629.1563,30.2344 627.8281,28.5938 Q626.5156,26.9375 626.5156,23.8125 Q626.5156,20.6875 627.8281,19.0313 Q629.1563,17.375 631.6563,17.375 Q632.3594,17.375 633,17.5313 Q633.6563,17.6875 634.2188,17.9844 L634.2188,20.7031 Q633.5938,20.125 633,19.8594 Q632.4063,19.5781 631.7813,19.5781 Q630.4375,19.5781 629.75,20.6563 Q629.0625,21.7188 629.0625,23.8125 Q629.0625,25.9063 629.75,26.9844 Q630.4375,28.0469 631.7813,28.0469 Q632.4063,28.0469 633,27.7813 Q633.5938,27.5 634.2188,26.9219 L634.2188,29.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="671.75" y="28.1543">R</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="651.75" y="28.1543">R</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="587" x2="732" y1="40" y2="40"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="567" x2="712" y1="40" y2="40"/>
|
||||||
<ellipse cx="597" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
<ellipse cx="577" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="606" y="54.2104">la : lift_void_t<A>*</text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="586" y="54.2104">la : lift_void_t<A>*</text>
|
||||||
<ellipse cx="597" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
<ellipse cx="577" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="606" y="67.0151">lv : lift_void_t<void>*</text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="586" y="67.0151">lv : lift_void_t<void>*</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="587" x2="732" y1="73.6094" y2="73.6094"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="567" x2="712" y1="73.6094" y2="73.6094"/>
|
||||||
<path d="M339.5,69.07 C339.5,88.12 339.5,115.68 339.5,138.81 " fill="none" id="C_0000000646->C_0000000644" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M477.5,69.28 C477.5,91.26 477.5,124.76 477.5,151.66 " fill="none" id="C_0000000646->C_0000000644" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="none" points="346.5,138.82,339.5,158.82,332.5,138.82,346.5,138.82" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="none" points="484.5,151.88,477.5,171.88,470.5,151.88,484.5,151.88" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M489.5,69.07 C489.5,88.12 489.5,115.68 489.5,138.81 " fill="none" id="C_0000000652->C_0000000650" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M212.88,69.28 C197.6,92.04 174.02,127.17 155.67,154.52 " fill="none" id="C_0000000652->C_0000000642" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="none" points="496.5,138.82,489.5,158.82,482.5,138.82,496.5,138.82" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="152.77,158.84,161.103,153.5901,155.5534,154.6863,154.4572,149.1367,152.77,158.84" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M659.5,82.09 C659.5,104.43 659.5,132.72 659.5,153.49 " fill="none" id="C_0000000658->C_0000000656" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M245.53,69.28 C262.41,92.35 288.58,128.13 308.69,155.62 " fill="none" id="C_0000000652->C_0000000650" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="659.5,158.6,663.5,149.6,659.5,153.6,655.5,149.6,659.5,158.6" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="none" points="314.43,151.61,320.59,171.88,303.13,159.87,314.43,151.61" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<ellipse cx="665.5" cy="121.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
<path d="M639.5,82.07 C639.5,108.01 639.5,142.52 639.5,166.53 " fill="none" id="C_0000000658->C_0000000656" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="672.5" y="125.0669">la</text>
|
<polygon fill="#A80036" points="639.5,171.79,643.5,162.79,639.5,166.79,635.5,162.79,639.5,171.79" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<ellipse cx="645.5" cy="121.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
||||||
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="652.5" y="125.0669">la</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -6,7 +6,7 @@ output_directory: puml
|
|||||||
diagrams:
|
diagrams:
|
||||||
t00038_class:
|
t00038_class:
|
||||||
type: class
|
type: class
|
||||||
generate_packages: true
|
generate_packages: false
|
||||||
glob:
|
glob:
|
||||||
- ../../tests/t00038/t00038.cc
|
- ../../tests/t00038/t00038.cc
|
||||||
using_namespace:
|
using_namespace:
|
||||||
@@ -14,6 +14,7 @@ diagrams:
|
|||||||
include:
|
include:
|
||||||
namespaces:
|
namespaces:
|
||||||
- clanguml::t00038
|
- clanguml::t00038
|
||||||
|
- thirdparty::ns1
|
||||||
```
|
```
|
||||||
## Source code
|
## Source code
|
||||||
File t00038.cc
|
File t00038.cc
|
||||||
@@ -23,6 +24,19 @@ File t00038.cc
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
namespace thirdparty {
|
||||||
|
namespace ns1 {
|
||||||
|
enum class color_t { red, green, blue };
|
||||||
|
|
||||||
|
struct E {
|
||||||
|
};
|
||||||
|
} // namespace ns1
|
||||||
|
namespace ns2 {
|
||||||
|
struct F {
|
||||||
|
};
|
||||||
|
} // namespace ns2
|
||||||
|
} // namespace thirdparty
|
||||||
|
|
||||||
namespace clanguml {
|
namespace clanguml {
|
||||||
namespace t00038 {
|
namespace t00038 {
|
||||||
|
|
||||||
@@ -41,13 +55,19 @@ struct key_t {
|
|||||||
|
|
||||||
template <typename T> struct map;
|
template <typename T> struct map;
|
||||||
|
|
||||||
template <>
|
using namespace thirdparty::ns1;
|
||||||
struct map<std::integral_constant<property_t, property_t::property_a>> : A {
|
|
||||||
|
template <> struct map<std::integral_constant<color_t, color_t::red>> : E {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct map<
|
struct map<std::integral_constant<clanguml::t00038::property_t,
|
||||||
std::vector<std::integral_constant<property_t, property_t::property_b>>>
|
clanguml::t00038::property_t::property_a>> : A {
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct map<std::vector<
|
||||||
|
std::integral_constant<t00038::property_t, t00038::property_t::property_b>>>
|
||||||
: B {
|
: B {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="321px" preserveAspectRatio="none" style="width:1659px;height:321px;" version="1.1" viewBox="0 0 1659 321" width="1659px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="321px" preserveAspectRatio="none" style="width:2230px;height:321px;" version="1.1" viewBox="0 0 2230 321" width="2230px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="fqv4p0n5sypqw" width="300%" x="-1" y="-1">
|
<filter height="300%" id="f1bjjx8uogobse" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,84 +8,121 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="86.4141" id="C_0000000699" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="69.5" y="8"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="86.4141" id="C_0000000699" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="187" y="224"/>
|
||||||
<ellipse cx="84.5" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="202" cy="240" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M88.6094,30 L80.8906,30 L80.8906,17.6094 L88.6094,17.6094 L88.6094,19.7656 L83.3438,19.7656 L83.3438,22.4375 L88.1094,22.4375 L88.1094,24.5938 L83.3438,24.5938 L83.3438,27.8438 L88.6094,27.8438 L88.6094,30 Z "/>
|
<path d="M206.1094,246 L198.3906,246 L198.3906,233.6094 L206.1094,233.6094 L206.1094,235.7656 L200.8438,235.7656 L200.8438,238.4375 L205.6094,238.4375 L205.6094,240.5938 L200.8438,240.5938 L200.8438,243.8438 L206.1094,243.8438 L206.1094,246 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="98.5" y="28.1543">property_t</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="216" y="244.1543">thirdparty::ns1::color_t</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="70.5" x2="164.5" y1="40" y2="40"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="188" x2="360" y1="256" y2="256"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="75.5" y="54.2104">property_a</text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="19" x="193" y="270.2104">red</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="75.5" y="67.0151">property_b</text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="193" y="283.0151">green</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="60" x="75.5" y="79.8198">property_c</text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="24" x="193" y="295.8198">blue</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="70.5" x2="164.5" y1="86.4141" y2="86.4141"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="188" x2="360" y1="302.4141" y2="302.4141"/>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="48" id="C_0000000701" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="200.5" y="27"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000701" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="204" y="8"/>
|
||||||
<ellipse cx="215.5" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="219" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M218.4688,48.6406 Q217.8906,48.9375 217.25,49.0781 Q216.6094,49.2344 215.9063,49.2344 Q213.4063,49.2344 212.0781,47.5938 Q210.7656,45.9375 210.7656,42.8125 Q210.7656,39.6875 212.0781,38.0313 Q213.4063,36.375 215.9063,36.375 Q216.6094,36.375 217.25,36.5313 Q217.9063,36.6875 218.4688,36.9844 L218.4688,39.7031 Q217.8438,39.125 217.25,38.8594 Q216.6563,38.5781 216.0313,38.5781 Q214.6875,38.5781 214,39.6563 Q213.3125,40.7188 213.3125,42.8125 Q213.3125,44.9063 214,45.9844 Q214.6875,47.0469 216.0313,47.0469 Q216.6563,47.0469 217.25,46.7813 Q217.8438,46.5 218.4688,45.9219 L218.4688,48.6406 Z "/>
|
<path d="M221.9688,29.6406 Q221.3906,29.9375 220.75,30.0781 Q220.1094,30.2344 219.4063,30.2344 Q216.9063,30.2344 215.5781,28.5938 Q214.2656,26.9375 214.2656,23.8125 Q214.2656,20.6875 215.5781,19.0313 Q216.9063,17.375 219.4063,17.375 Q220.1094,17.375 220.75,17.5313 Q221.4063,17.6875 221.9688,17.9844 L221.9688,20.7031 Q221.3438,20.125 220.75,19.8594 Q220.1563,19.5781 219.5313,19.5781 Q218.1875,19.5781 217.5,20.6563 Q216.8125,21.7188 216.8125,23.8125 Q216.8125,25.9063 217.5,26.9844 Q218.1875,28.0469 219.5313,28.0469 Q220.1563,28.0469 220.75,27.7813 Q221.3438,27.5 221.9688,26.9219 L221.9688,29.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="229.5" y="47.1543">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="108" x="233" y="28.1543">thirdparty::ns1::E</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="201.5" x2="239.5" y1="59" y2="59"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="205" x2="343" y1="40" y2="40"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="201.5" x2="239.5" y1="67" y2="67"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="205" x2="343" y1="48" y2="48"/>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="48" id="C_0000000703" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="707.5" y="27"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="86.4141" id="C_0000000705" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1251" y="224"/>
|
||||||
<ellipse cx="722.5" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<ellipse cx="1266" cy="240" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M725.4688,48.6406 Q724.8906,48.9375 724.25,49.0781 Q723.6094,49.2344 722.9063,49.2344 Q720.4063,49.2344 719.0781,47.5938 Q717.7656,45.9375 717.7656,42.8125 Q717.7656,39.6875 719.0781,38.0313 Q720.4063,36.375 722.9063,36.375 Q723.6094,36.375 724.25,36.5313 Q724.9063,36.6875 725.4688,36.9844 L725.4688,39.7031 Q724.8438,39.125 724.25,38.8594 Q723.6563,38.5781 723.0313,38.5781 Q721.6875,38.5781 721,39.6563 Q720.3125,40.7188 720.3125,42.8125 Q720.3125,44.9063 721,45.9844 Q721.6875,47.0469 723.0313,47.0469 Q723.6563,47.0469 724.25,46.7813 Q724.8438,46.5 725.4688,45.9219 L725.4688,48.6406 Z "/>
|
<path d="M1270.1094,246 L1262.3906,246 L1262.3906,233.6094 L1270.1094,233.6094 L1270.1094,235.7656 L1264.8438,235.7656 L1264.8438,238.4375 L1269.6094,238.4375 L1269.6094,240.5938 L1264.8438,240.5938 L1264.8438,243.8438 L1270.1094,243.8438 L1270.1094,246 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="736.5" y="47.1543">B</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="1280" y="244.1543">property_t</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="708.5" x2="746.5" y1="59" y2="59"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1252" x2="1346" y1="256" y2="256"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="708.5" x2="746.5" y1="67" y2="67"/>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="1257" y="270.2104">property_a</text>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="48" id="C_0000000705" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="1312.5" y="27"/>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="1257" y="283.0151">property_b</text>
|
||||||
<ellipse cx="1327.5" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="60" x="1257" y="295.8198">property_c</text>
|
||||||
<path d="M1330.4688,48.6406 Q1329.8906,48.9375 1329.25,49.0781 Q1328.6094,49.2344 1327.9063,49.2344 Q1325.4063,49.2344 1324.0781,47.5938 Q1322.7656,45.9375 1322.7656,42.8125 Q1322.7656,39.6875 1324.0781,38.0313 Q1325.4063,36.375 1327.9063,36.375 Q1328.6094,36.375 1329.25,36.5313 Q1329.9063,36.6875 1330.4688,36.9844 L1330.4688,39.7031 Q1329.8438,39.125 1329.25,38.8594 Q1328.6563,38.5781 1328.0313,38.5781 Q1326.6875,38.5781 1326,39.6563 Q1325.3125,40.7188 1325.3125,42.8125 Q1325.3125,44.9063 1326,45.9844 Q1326.6875,47.0469 1328.0313,47.0469 Q1328.6563,47.0469 1329.25,46.7813 Q1329.8438,46.5 1330.4688,45.9219 L1330.4688,48.6406 Z "/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1252" x2="1346" y1="302.4141" y2="302.4141"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1341.5" y="47.1543">C</text>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000707" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="772" y="8"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1313.5" x2="1351.5" y1="59" y2="59"/>
|
<ellipse cx="787" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1313.5" x2="1351.5" y1="67" y2="67"/>
|
<path d="M789.9688,29.6406 Q789.3906,29.9375 788.75,30.0781 Q788.1094,30.2344 787.4063,30.2344 Q784.9063,30.2344 783.5781,28.5938 Q782.2656,26.9375 782.2656,23.8125 Q782.2656,20.6875 783.5781,19.0313 Q784.9063,17.375 787.4063,17.375 Q788.1094,17.375 788.75,17.5313 Q789.4063,17.6875 789.9688,17.9844 L789.9688,20.7031 Q789.3438,20.125 788.75,19.8594 Q788.1563,19.5781 787.5313,19.5781 Q786.1875,19.5781 785.5,20.6563 Q784.8125,21.7188 784.8125,23.8125 Q784.8125,25.9063 785.5,26.9844 Q786.1875,28.0469 787.5313,28.0469 Q788.1563,28.0469 788.75,27.7813 Q789.3438,27.5 789.9688,26.9219 L789.9688,29.6406 Z "/>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="60.8047" id="C_0000000707" style="stroke: #A80036; stroke-width: 1.5;" width="116" x="1387.5" y="20.5"/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="801" y="28.1543">A</text>
|
||||||
<ellipse cx="1425.9" cy="36.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="773" x2="811" y1="40" y2="40"/>
|
||||||
<path d="M1428.8688,42.1406 Q1428.2906,42.4375 1427.65,42.5781 Q1427.0094,42.7344 1426.3063,42.7344 Q1423.8063,42.7344 1422.4781,41.0938 Q1421.1656,39.4375 1421.1656,36.3125 Q1421.1656,33.1875 1422.4781,31.5313 Q1423.8063,29.875 1426.3063,29.875 Q1427.0094,29.875 1427.65,30.0313 Q1428.3063,30.1875 1428.8688,30.4844 L1428.8688,33.2031 Q1428.2438,32.625 1427.65,32.3594 Q1427.0563,32.0781 1426.4313,32.0781 Q1425.0875,32.0781 1424.4,33.1563 Q1423.7125,34.2188 1423.7125,36.3125 Q1423.7125,38.4063 1424.4,39.4844 Q1425.0875,40.5469 1426.4313,40.5469 Q1427.0563,40.5469 1427.65,40.2813 Q1428.2438,40 1428.8688,39.4219 L1428.8688,42.1406 Z "/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="773" x2="811" y1="48" y2="48"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="1445.1" y="40.6543">key_t</text>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000709" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="1279" y="8"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1388.5" x2="1502.5" y1="52.5" y2="52.5"/>
|
<ellipse cx="1294" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<ellipse cx="1398.5" cy="63.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
<path d="M1296.9688,29.6406 Q1296.3906,29.9375 1295.75,30.0781 Q1295.1094,30.2344 1294.4063,30.2344 Q1291.9063,30.2344 1290.5781,28.5938 Q1289.2656,26.9375 1289.2656,23.8125 Q1289.2656,20.6875 1290.5781,19.0313 Q1291.9063,17.375 1294.4063,17.375 Q1295.1094,17.375 1295.75,17.5313 Q1296.4063,17.6875 1296.9688,17.9844 L1296.9688,20.7031 Q1296.3438,20.125 1295.75,19.8594 Q1295.1563,19.5781 1294.5313,19.5781 Q1293.1875,19.5781 1292.5,20.6563 Q1291.8125,21.7188 1291.8125,23.8125 Q1291.8125,25.9063 1292.5,26.9844 Q1293.1875,28.0469 1294.5313,28.0469 Q1295.1563,28.0469 1295.75,27.7813 Q1296.3438,27.5 1296.9688,26.9219 L1296.9688,29.6406 Z "/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="1407.5" y="66.7104">key : std::string</text>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1308" y="28.1543">B</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1388.5" x2="1502.5" y1="73.3047" y2="73.3047"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1280" x2="1318" y1="40" y2="40"/>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="48" id="C_0000000709" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="692.5" y="262"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1280" x2="1318" y1="48" y2="48"/>
|
||||||
<ellipse cx="707.5" cy="278" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000711" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="1884" y="8"/>
|
||||||
<path d="M710.4688,283.6406 Q709.8906,283.9375 709.25,284.0781 Q708.6094,284.2344 707.9063,284.2344 Q705.4063,284.2344 704.0781,282.5938 Q702.7656,280.9375 702.7656,277.8125 Q702.7656,274.6875 704.0781,273.0313 Q705.4063,271.375 707.9063,271.375 Q708.6094,271.375 709.25,271.5313 Q709.9063,271.6875 710.4688,271.9844 L710.4688,274.7031 Q709.8438,274.125 709.25,273.8594 Q708.6563,273.5781 708.0313,273.5781 Q706.6875,273.5781 706,274.6563 Q705.3125,275.7188 705.3125,277.8125 Q705.3125,279.9063 706,280.9844 Q706.6875,282.0469 708.0313,282.0469 Q708.6563,282.0469 709.25,281.7813 Q709.8438,281.5 710.4688,280.9219 L710.4688,283.6406 Z "/>
|
<ellipse cx="1899" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="721.5" y="282.1543">map</text>
|
<path d="M1901.9688,29.6406 Q1901.3906,29.9375 1900.75,30.0781 Q1900.1094,30.2344 1899.4063,30.2344 Q1896.9063,30.2344 1895.5781,28.5938 Q1894.2656,26.9375 1894.2656,23.8125 Q1894.2656,20.6875 1895.5781,19.0313 Q1896.9063,17.375 1899.4063,17.375 Q1900.1094,17.375 1900.75,17.5313 Q1901.4063,17.6875 1901.9688,17.9844 L1901.9688,20.7031 Q1901.3438,20.125 1900.75,19.8594 Q1900.1563,19.5781 1899.5313,19.5781 Q1898.1875,19.5781 1897.5,20.6563 Q1896.8125,21.7188 1896.8125,23.8125 Q1896.8125,25.9063 1897.5,26.9844 Q1898.1875,28.0469 1899.5313,28.0469 Q1900.1563,28.0469 1900.75,27.7813 Q1901.3438,27.5 1901.9688,26.9219 L1901.9688,29.6406 Z "/>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="756.5" y="259"/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1913" y="28.1543">C</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="757.5" y="271.1387">T</text>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1885" x2="1923" y1="40" y2="40"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="693.5" x2="761.5" y1="294" y2="294"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1885" x2="1923" y1="48" y2="48"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="693.5" x2="761.5" y1="302" y2="302"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="60.8047" id="C_0000000713" style="stroke: #A80036; stroke-width: 1.5;" width="116" x="1846" y="236.5"/>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="48" id="C_0000000711" style="stroke: #A80036; stroke-width: 1.5;" width="429" x="6" y="154"/>
|
<ellipse cx="1884.4" cy="252.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<ellipse cx="21" cy="170" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M1887.3688,258.1406 Q1886.7906,258.4375 1886.15,258.5781 Q1885.5094,258.7344 1884.8063,258.7344 Q1882.3063,258.7344 1880.9781,257.0938 Q1879.6656,255.4375 1879.6656,252.3125 Q1879.6656,249.1875 1880.9781,247.5313 Q1882.3063,245.875 1884.8063,245.875 Q1885.5094,245.875 1886.15,246.0313 Q1886.8063,246.1875 1887.3688,246.4844 L1887.3688,249.2031 Q1886.7438,248.625 1886.15,248.3594 Q1885.5563,248.0781 1884.9313,248.0781 Q1883.5875,248.0781 1882.9,249.1563 Q1882.2125,250.2188 1882.2125,252.3125 Q1882.2125,254.4063 1882.9,255.4844 Q1883.5875,256.5469 1884.9313,256.5469 Q1885.5563,256.5469 1886.15,256.2813 Q1886.7438,256 1887.3688,255.4219 L1887.3688,258.1406 Z "/>
|
||||||
<path d="M23.9688,175.6406 Q23.3906,175.9375 22.75,176.0781 Q22.1094,176.2344 21.4063,176.2344 Q18.9063,176.2344 17.5781,174.5938 Q16.2656,172.9375 16.2656,169.8125 Q16.2656,166.6875 17.5781,165.0313 Q18.9063,163.375 21.4063,163.375 Q22.1094,163.375 22.75,163.5313 Q23.4063,163.6875 23.9688,163.9844 L23.9688,166.7031 Q23.3438,166.125 22.75,165.8594 Q22.1563,165.5781 21.5313,165.5781 Q20.1875,165.5781 19.5,166.6563 Q18.8125,167.7188 18.8125,169.8125 Q18.8125,171.9063 19.5,172.9844 Q20.1875,174.0469 21.5313,174.0469 Q22.1563,174.0469 22.75,173.7813 Q23.3438,173.5 23.9688,172.9219 L23.9688,175.6406 Z "/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="1903.6" y="256.6543">key_t</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="35" y="174.1543">map</text>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1847" x2="1961" y1="268.5" y2="268.5"/>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="368" x="70" y="151"/>
|
<ellipse cx="1857" cy="279.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="366" x="71" y="163.1387">std::integral_constant<property_t,property_t::property_a></text>
|
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="1866" y="282.7104">key : std::string</text>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="434" y1="186" y2="186"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1847" x2="1961" y1="289.3047" y2="289.3047"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="434" y1="194" y2="194"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000715" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="951" y="243"/>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="48" id="C_0000000715" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="470" y="154"/>
|
<ellipse cx="966" cy="259" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<ellipse cx="485" cy="170" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M968.9688,264.6406 Q968.3906,264.9375 967.75,265.0781 Q967.1094,265.2344 966.4063,265.2344 Q963.9063,265.2344 962.5781,263.5938 Q961.2656,261.9375 961.2656,258.8125 Q961.2656,255.6875 962.5781,254.0313 Q963.9063,252.375 966.4063,252.375 Q967.1094,252.375 967.75,252.5313 Q968.4063,252.6875 968.9688,252.9844 L968.9688,255.7031 Q968.3438,255.125 967.75,254.8594 Q967.1563,254.5781 966.5313,254.5781 Q965.1875,254.5781 964.5,255.6563 Q963.8125,256.7188 963.8125,258.8125 Q963.8125,260.9063 964.5,261.9844 Q965.1875,263.0469 966.5313,263.0469 Q967.1563,263.0469 967.75,262.7813 Q968.3438,262.5 968.9688,261.9219 L968.9688,264.6406 Z "/>
|
||||||
<path d="M487.9688,175.6406 Q487.3906,175.9375 486.75,176.0781 Q486.1094,176.2344 485.4063,176.2344 Q482.9063,176.2344 481.5781,174.5938 Q480.2656,172.9375 480.2656,169.8125 Q480.2656,166.6875 481.5781,165.0313 Q482.9063,163.375 485.4063,163.375 Q486.1094,163.375 486.75,163.5313 Q487.4063,163.6875 487.9688,163.9844 L487.9688,166.7031 Q487.3438,166.125 486.75,165.8594 Q486.1563,165.5781 485.5313,165.5781 Q484.1875,165.5781 483.5,166.6563 Q482.8125,167.7188 482.8125,169.8125 Q482.8125,171.9063 483.5,172.9844 Q484.1875,174.0469 485.5313,174.0469 Q486.1563,174.0469 486.75,173.7813 Q487.3438,173.5 487.9688,172.9219 L487.9688,175.6406 Z "/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="980" y="263.1543">map</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="499" y="174.1543">map</text>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1015" y="240"/>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="454" x="534" y="151"/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1016" y="252.1387">T</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="452" x="535" y="163.1387">std::vector<std::integral_constant<property_t,property_t::property_b>></text>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952" x2="1020" y1="275" y2="275"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="471" x2="984" y1="186" y2="186"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952" x2="1020" y1="283" y2="283"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="471" x2="984" y1="194" y2="194"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000717" style="stroke: #A80036; stroke-width: 1.5;" width="536" x="6" y="116"/>
|
||||||
<rect fill="#FEFECE" filter="url(#fqv4p0n5sypqw)" height="48" id="C_0000000719" style="stroke: #A80036; stroke-width: 1.5;" width="625" x="1020" y="154"/>
|
<ellipse cx="21" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<ellipse cx="1035" cy="170" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M23.9688,137.6406 Q23.3906,137.9375 22.75,138.0781 Q22.1094,138.2344 21.4063,138.2344 Q18.9063,138.2344 17.5781,136.5938 Q16.2656,134.9375 16.2656,131.8125 Q16.2656,128.6875 17.5781,127.0313 Q18.9063,125.375 21.4063,125.375 Q22.1094,125.375 22.75,125.5313 Q23.4063,125.6875 23.9688,125.9844 L23.9688,128.7031 Q23.3438,128.125 22.75,127.8594 Q22.1563,127.5781 21.5313,127.5781 Q20.1875,127.5781 19.5,128.6563 Q18.8125,129.7188 18.8125,131.8125 Q18.8125,133.9063 19.5,134.9844 Q20.1875,136.0469 21.5313,136.0469 Q22.1563,136.0469 22.75,135.7813 Q23.3438,135.5 23.9688,134.9219 L23.9688,137.6406 Z "/>
|
||||||
<path d="M1037.9688,175.6406 Q1037.3906,175.9375 1036.75,176.0781 Q1036.1094,176.2344 1035.4063,176.2344 Q1032.9063,176.2344 1031.5781,174.5938 Q1030.2656,172.9375 1030.2656,169.8125 Q1030.2656,166.6875 1031.5781,165.0313 Q1032.9063,163.375 1035.4063,163.375 Q1036.1094,163.375 1036.75,163.5313 Q1037.4063,163.6875 1037.9688,163.9844 L1037.9688,166.7031 Q1037.3438,166.125 1036.75,165.8594 Q1036.1563,165.5781 1035.5313,165.5781 Q1034.1875,165.5781 1033.5,166.6563 Q1032.8125,167.7188 1032.8125,169.8125 Q1032.8125,171.9063 1033.5,172.9844 Q1034.1875,174.0469 1035.5313,174.0469 Q1036.1563,174.0469 1036.75,173.7813 Q1037.3438,173.5 1037.9688,172.9219 L1037.9688,175.6406 Z "/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="35" y="136.1543">map</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="1049" y="174.1543">map</text>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="475" x="70" y="113"/>
|
||||||
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="564" x="1084" y="151"/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="473" x="71" y="125.1387">std::integral_constant<thirdparty::ns1::color_t,thirdparty::ns1::color_t::red></text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="562" x="1085" y="163.1387">std::map<key_t,std::vector<std::integral_constant<property_t,property_t::property_c>>></text>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="541" y1="148" y2="148"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1021" x2="1644" y1="186" y2="186"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="541" y1="156" y2="156"/>
|
||||||
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1021" x2="1644" y1="194" y2="194"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000721" style="stroke: #A80036; stroke-width: 1.5;" width="429" x="577.5" y="116"/>
|
||||||
<path d="M330.51,202 C435.96,224.05 590.79,256.42 672.43,273.49 " fill="none" id="C_0000000711->C_0000000709" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<ellipse cx="592.5" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<polygon fill="none" points="674.1,266.68,692.24,277.63,671.24,280.39,674.1,266.68" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M595.4688,137.6406 Q594.8906,137.9375 594.25,138.0781 Q593.6094,138.2344 592.9063,138.2344 Q590.4063,138.2344 589.0781,136.5938 Q587.7656,134.9375 587.7656,131.8125 Q587.7656,128.6875 589.0781,127.0313 Q590.4063,125.375 592.9063,125.375 Q593.6094,125.375 594.25,125.5313 Q594.9063,125.6875 595.4688,125.9844 L595.4688,128.7031 Q594.8438,128.125 594.25,127.8594 Q593.6563,127.5781 593.0313,127.5781 Q591.6875,127.5781 591,128.6563 Q590.3125,129.7188 590.3125,131.8125 Q590.3125,133.9063 591,134.9844 Q591.6875,136.0469 593.0313,136.0469 Q593.6563,136.0469 594.25,135.7813 Q594.8438,135.5 595.4688,134.9219 L595.4688,137.6406 Z "/>
|
||||||
<path d="M220.5,95.41 C220.5,115.08 220.5,137.54 220.5,153.91 " fill="none" id="C_0000000701<-C_0000000711" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="606.5" y="136.1543">map</text>
|
||||||
<polygon fill="none" points="213.5,95.22,220.5,75.22,227.5,95.22,213.5,95.22" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="368" x="641.5" y="113"/>
|
||||||
<path d="M727.5,202 C727.5,213.59 727.5,228.03 727.5,241.6 " fill="none" id="C_0000000715->C_0000000709" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="366" x="642.5" y="125.1387">std::integral_constant<property_t,property_t::property_a></text>
|
||||||
<polygon fill="none" points="734.5,241.68,727.5,261.68,720.5,241.68,734.5,241.68" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="578.5" x2="1005.5" y1="148" y2="148"/>
|
||||||
<path d="M727.5,95.41 C727.5,115.08 727.5,137.54 727.5,153.91 " fill="none" id="C_0000000703<-C_0000000715" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="578.5" x2="1005.5" y1="156" y2="156"/>
|
||||||
<polygon fill="none" points="720.5,95.22,727.5,75.22,734.5,95.22,720.5,95.22" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000725" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="1041.5" y="116"/>
|
||||||
<path d="M1201.22,202 C1070.67,224.87 876.67,258.86 782.61,275.34 " fill="none" id="C_0000000719->C_0000000709" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<ellipse cx="1056.5" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<polygon fill="none" points="783.7,282.26,762.79,278.82,781.28,268.47,783.7,282.26" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M1059.4688,137.6406 Q1058.8906,137.9375 1058.25,138.0781 Q1057.6094,138.2344 1056.9063,138.2344 Q1054.4063,138.2344 1053.0781,136.5938 Q1051.7656,134.9375 1051.7656,131.8125 Q1051.7656,128.6875 1053.0781,127.0313 Q1054.4063,125.375 1056.9063,125.375 Q1057.6094,125.375 1058.25,125.5313 Q1058.9063,125.6875 1059.4688,125.9844 L1059.4688,128.7031 Q1058.8438,128.125 1058.25,127.8594 Q1057.6563,127.5781 1057.0313,127.5781 Q1055.6875,127.5781 1055,128.6563 Q1054.3125,129.7188 1054.3125,131.8125 Q1054.3125,133.9063 1055,134.9844 Q1055.6875,136.0469 1057.0313,136.0469 Q1057.6563,136.0469 1058.25,135.7813 Q1058.8438,135.5 1059.4688,134.9219 L1059.4688,137.6406 Z "/>
|
||||||
<path d="M1332.5,95.41 C1332.5,115.08 1332.5,137.54 1332.5,153.91 " fill="none" id="C_0000000705<-C_0000000719" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="1070.5" y="136.1543">map</text>
|
||||||
<polygon fill="none" points="1325.5,95.22,1332.5,75.22,1339.5,95.22,1325.5,95.22" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="454" x="1105.5" y="113"/>
|
||||||
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="452" x="1106.5" y="125.1387">std::vector<std::integral_constant<property_t,property_t::property_b>></text>
|
||||||
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1042.5" x2="1555.5" y1="148" y2="148"/>
|
||||||
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1042.5" x2="1555.5" y1="156" y2="156"/>
|
||||||
|
<rect fill="#FEFECE" filter="url(#f1bjjx8uogobse)" height="48" id="C_0000000729" style="stroke: #A80036; stroke-width: 1.5;" width="625" x="1591.5" y="116"/>
|
||||||
|
<ellipse cx="1606.5" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1609.4688,137.6406 Q1608.8906,137.9375 1608.25,138.0781 Q1607.6094,138.2344 1606.9063,138.2344 Q1604.4063,138.2344 1603.0781,136.5938 Q1601.7656,134.9375 1601.7656,131.8125 Q1601.7656,128.6875 1603.0781,127.0313 Q1604.4063,125.375 1606.9063,125.375 Q1607.6094,125.375 1608.25,125.5313 Q1608.9063,125.6875 1609.4688,125.9844 L1609.4688,128.7031 Q1608.8438,128.125 1608.25,127.8594 Q1607.6563,127.5781 1607.0313,127.5781 Q1605.6875,127.5781 1605,128.6563 Q1604.3125,129.7188 1604.3125,131.8125 Q1604.3125,133.9063 1605,134.9844 Q1605.6875,136.0469 1607.0313,136.0469 Q1607.6563,136.0469 1608.25,135.7813 Q1608.8438,135.5 1609.4688,134.9219 L1609.4688,137.6406 Z "/>
|
||||||
|
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="1620.5" y="136.1543">map</text>
|
||||||
|
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="564" x="1655.5" y="113"/>
|
||||||
|
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="562" x="1656.5" y="125.1387">std::map<key_t,std::vector<std::integral_constant<property_t,property_t::property_c>>></text>
|
||||||
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1592.5" x2="2215.5" y1="148" y2="148"/>
|
||||||
|
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1592.5" x2="2215.5" y1="156" y2="156"/>
|
||||||
|
<path d="M274,164.22 C274,179.51 274,200.09 274,218.73 " fill="none" id="C_0000000717->C_0000000699" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="#A80036" points="274,223.94,278,214.94,274,218.94,270,214.94,274,223.94" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M405.42,164.07 C562.83,191.71 819.25,236.73 931.02,256.35 " fill="none" id="C_0000000717->C_0000000715" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="none" points="932.27,249.46,950.76,259.81,929.85,263.25,932.27,249.46" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M274,76.02 C274,89.58 274,104.04 274,115.68 " fill="none" id="C_0000000701<-C_0000000717" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<polygon fill="none" points="267,76,274,56,281,76,267,76" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M885.58,164.07 C991.48,190.18 1160.32,231.81 1245.76,252.87 " fill="none" id="C_0000000721->C_0000000705" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="#A80036" points="1250.76,254.11,1242.9821,248.0681,1245.9059,252.9108,1241.0633,255.8346,1250.76,254.11" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M828.04,164.22 C857.76,183.37 900.32,210.8 933.78,232.35 " fill="none" id="C_0000000721->C_0000000715" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="none" points="937.79,226.61,950.81,243.33,930.21,238.38,937.79,226.61" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M792,76.02 C792,89.58 792,104.04 792,115.68 " fill="none" id="C_0000000707<-C_0000000721" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<polygon fill="none" points="785,76,792,56,799,76,785,76" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1299,164.22 C1299,179.51 1299,200.09 1299,218.73 " fill="none" id="C_0000000725->C_0000000705" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="#A80036" points="1299,223.94,1303,214.94,1299,218.94,1295,214.94,1299,223.94" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1241.23,164.07 C1183.68,187.05 1096.03,222.06 1039.89,244.48 " fill="none" id="C_0000000725->C_0000000715" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="none" points="1042.26,251.07,1021.09,251.99,1037.07,238.07,1042.26,251.07" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1299,76.02 C1299,89.58 1299,104.04 1299,115.68 " fill="none" id="C_0000000709<-C_0000000725" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<polygon fill="none" points="1292,76,1299,56,1306,76,1292,76" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1904,164.22 C1904,183.04 1904,209.86 1904,231.25 " fill="none" id="C_0000000729->C_0000000713" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="#A80036" points="1904,236.28,1908,227.28,1904,231.28,1900,227.28,1904,236.28" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1792.33,164.07 C1661.51,191.1 1450.22,234.76 1352.15,255.02 " fill="none" id="C_0000000729->C_0000000705" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="#A80036" points="1347,256.08,1356.6252,258.1671,1351.8956,255.0637,1354.999,250.3341,1347,256.08" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1698.79,164.02 C1566.02,179.51 1389.54,201.21 1234,224 C1167.46,233.75 1091.23,246.97 1041.05,255.95 " fill="none" id="C_0000000729->C_0000000715" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
|
<polygon fill="none" points="1042.17,262.87,1021.24,259.52,1039.68,249.09,1042.17,262.87" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<path d="M1904,76.02 C1904,89.58 1904,104.04 1904,115.68 " fill="none" id="C_0000000711<-C_0000000729" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
|
<polygon fill="none" points="1897,76,1904,56,1911,76,1897,76" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 22 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="207px" preserveAspectRatio="none" style="width:725px;height:207px;" version="1.1" viewBox="0 0 725 207" width="725px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="207px" preserveAspectRatio="none" style="width:725px;height:207px;" version="1.1" viewBox="0 0 725 207" width="725px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="f9jhtrnc9l62p" width="300%" x="-1" y="-1">
|
<filter height="300%" id="f1fn6b8y2p2z18" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,39 +8,39 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="22,24,39,24,46,46.2969,292,46.2969,292,195,22,195,22,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="22,24,39,24,46,46.2969,292,46.2969,292,195,22,195,22,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="46" y1="46.2969" y2="46.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="46" y1="46.2969" y2="46.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="26" y="38.9951">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="26" y="38.9951">A</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="97,67,125,67,132,89.2969,268,89.2969,268,171,97,171,97,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="97,67,125,67,132,89.2969,268,89.2969,268,171,97,171,97,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="97" x2="132" y1="89.2969" y2="89.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="97" x2="132" y1="89.2969" y2="89.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="101" y="81.9951">AA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="101" y="81.9951">AA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="433,24,449,24,456,46.2969,703,46.2969,703,195,433,195,433,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="433,24,449,24,456,46.2969,703,46.2969,703,195,433,195,433,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="433" x2="456" y1="46.2969" y2="46.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="433" x2="456" y1="46.2969" y2="46.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="437" y="38.9951">B</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="437" y="38.9951">B</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="508,67,536,67,543,89.2969,679,89.2969,679,171,508,171,508,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="508,67,536,67,543,89.2969,679,89.2969,679,171,508,171,508,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="508" x2="543" y1="89.2969" y2="89.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="508" x2="543" y1="89.2969" y2="89.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="512" y="81.9951">AA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="512" y="81.9951">AA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="198.5,102,237.5,102,244.5,124.2969,251.5,124.2969,251.5,154.5938,198.5,154.5938,198.5,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="198.5,102,237.5,102,244.5,124.2969,251.5,124.2969,251.5,154.5938,198.5,154.5938,198.5,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="198.5" x2="244.5" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="198.5" x2="244.5" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="202.5" y="116.9951">AAA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="202.5" y="116.9951">AAA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="113,102,149,102,156,124.2969,163,124.2969,163,154.5938,113,154.5938,113,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="113,102,149,102,156,124.2969,163,124.2969,163,154.5938,113,154.5938,113,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="113" x2="156" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="113" x2="156" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="117" y="116.9951">BBB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="117" y="116.9951">BBB</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="38,102,64,102,71,124.2969,78,124.2969,78,154.5938,38,154.5938,38,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="38,102,64,102,71,124.2969,78,124.2969,78,154.5938,38,154.5938,38,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="38" x2="71" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="38" x2="71" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="42" y="116.9951">BB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="42" y="116.9951">BB</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="609.5,102,648.5,102,655.5,124.2969,662.5,124.2969,662.5,154.5938,609.5,154.5938,609.5,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="609.5,102,648.5,102,655.5,124.2969,662.5,124.2969,662.5,154.5938,609.5,154.5938,609.5,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="609.5" x2="655.5" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="609.5" x2="655.5" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="613.5" y="116.9951">AAA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="613.5" y="116.9951">AAA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="524,102,560,102,567,124.2969,574,124.2969,574,154.5938,524,154.5938,524,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="524,102,560,102,567,124.2969,574,124.2969,574,154.5938,524,154.5938,524,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="524" x2="567" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="524" x2="567" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="528" y="116.9951">BBB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="528" y="116.9951">BBB</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f9jhtrnc9l62p)" points="449,102,475,102,482,124.2969,489,124.2969,489,154.5938,449,154.5938,449,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1fn6b8y2p2z18)" points="449,102,475,102,482,124.2969,489,124.2969,489,154.5938,449,154.5938,449,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="449" x2="482" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="449" x2="482" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="453" y="116.9951">BB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="453" y="116.9951">BB</text>
|
||||||
<path d="M308,116 L308,141.1328 L414,141.1328 L414,126 L404,116 L308,116 " fill="#FBFB77" filter="url(#f9jhtrnc9l62p)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M308,116 L308,141.1328 L414,141.1328 L414,126 L404,116 L308,116 " fill="#FBFB77" filter="url(#f1fn6b8y2p2z18)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M404,116 L404,126 L414,126 L404,116 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M404,116 L404,126 L414,126 L404,116 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="314" y="133.0669">A AAA note...</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="314" y="133.0669">A AAA note...</text>
|
||||||
<path d="M251.56,128.5 C270.37,128.5 289.18,128.5 307.99,128.5 " fill="none" id="C_0000000727-GMN560" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M251.56,128.5 C270.37,128.5 289.18,128.5 307.99,128.5 " fill="none" id="C_0000000737-GMN571" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="402px" preserveAspectRatio="none" style="width:1118px;height:402px;" version="1.1" viewBox="0 0 1118 402" width="1118px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="402px" preserveAspectRatio="none" style="width:1118px;height:402px;" version="1.1" viewBox="0 0 1118 402" width="1118px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="f1n7xceilkucpu" width="300%" x="-1" y="-1">
|
<filter height="300%" id="f19pmn41uk46g6" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,85 +8,85 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="22,219,39,219,46,241.2969,1096,241.2969,1096,390,22,390,22,219" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="22,219,39,219,46,241.2969,1096,241.2969,1096,390,22,390,22,219" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="46" y1="241.2969" y2="241.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="46" y1="241.2969" y2="241.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="26" y="233.9951">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="26" y="233.9951">A</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="46,262,74,262,81,284.2969,1072,284.2969,1072,366,46,366,46,262" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="46,262,74,262,81,284.2969,1072,284.2969,1072,366,46,366,46,262" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="46" x2="81" y1="284.2969" y2="284.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="46" x2="81" y1="284.2969" y2="284.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="50" y="276.9951">AA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="50" y="276.9951">AA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="514,24,530,24,537,46.2969,644,46.2969,644,195,514,195,514,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="514,24,530,24,537,46.2969,644,46.2969,644,195,514,195,514,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="514" x2="537" y1="46.2969" y2="46.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="514" x2="537" y1="46.2969" y2="46.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="518" y="38.9951">B</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="518" y="38.9951">B</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="538,67,564,67,571,89.2969,620,89.2969,620,171,538,171,538,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="538,67,564,67,571,89.2969,620,89.2969,620,171,538,171,538,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="538" x2="571" y1="89.2969" y2="89.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="538" x2="571" y1="89.2969" y2="89.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="542" y="81.9951">BB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="542" y="81.9951">BB</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="1014.5,297,1041.5,297,1048.5,319.2969,1055.5,319.2969,1055.5,349.5938,1014.5,349.5938,1014.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="1014.5,297,1041.5,297,1048.5,319.2969,1055.5,319.2969,1055.5,349.5938,1014.5,349.5938,1014.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="1014.5" x2="1048.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="1014.5" x2="1048.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="1018.5" y="311.9951">A1</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="1018.5" y="311.9951">A1</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="938.5,297,965.5,297,972.5,319.2969,979.5,319.2969,979.5,349.5938,938.5,349.5938,938.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="938.5,297,965.5,297,972.5,319.2969,979.5,319.2969,979.5,349.5938,938.5,349.5938,938.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="938.5" x2="972.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="938.5" x2="972.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="942.5" y="311.9951">A2</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="942.5" y="311.9951">A2</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="862.5,297,889.5,297,896.5,319.2969,903.5,319.2969,903.5,349.5938,862.5,349.5938,862.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="862.5,297,889.5,297,896.5,319.2969,903.5,319.2969,903.5,349.5938,862.5,349.5938,862.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="862.5" x2="896.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="862.5" x2="896.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="866.5" y="311.9951">A3</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="866.5" y="311.9951">A3</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="786.5,297,813.5,297,820.5,319.2969,827.5,319.2969,827.5,349.5938,786.5,349.5938,786.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="786.5,297,813.5,297,820.5,319.2969,827.5,319.2969,827.5,349.5938,786.5,349.5938,786.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="786.5" x2="820.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="786.5" x2="820.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="790.5" y="311.9951">A4</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="790.5" y="311.9951">A4</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="710.5,297,737.5,297,744.5,319.2969,751.5,319.2969,751.5,349.5938,710.5,349.5938,710.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="710.5,297,737.5,297,744.5,319.2969,751.5,319.2969,751.5,349.5938,710.5,349.5938,710.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="710.5" x2="744.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="710.5" x2="744.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="714.5" y="311.9951">A5</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="714.5" y="311.9951">A5</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="634.5,297,661.5,297,668.5,319.2969,675.5,319.2969,675.5,349.5938,634.5,349.5938,634.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="634.5,297,661.5,297,668.5,319.2969,675.5,319.2969,675.5,349.5938,634.5,349.5938,634.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="634.5" x2="668.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="634.5" x2="668.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="638.5" y="311.9951">A6</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="638.5" y="311.9951">A6</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="558.5,297,585.5,297,592.5,319.2969,599.5,319.2969,599.5,349.5938,558.5,349.5938,558.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="558.5,297,585.5,297,592.5,319.2969,599.5,319.2969,599.5,349.5938,558.5,349.5938,558.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="558.5" x2="592.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="558.5" x2="592.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="562.5" y="311.9951">A7</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="562.5" y="311.9951">A7</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="482.5,297,509.5,297,516.5,319.2969,523.5,319.2969,523.5,349.5938,482.5,349.5938,482.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="482.5,297,509.5,297,516.5,319.2969,523.5,319.2969,523.5,349.5938,482.5,349.5938,482.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="482.5" x2="516.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="482.5" x2="516.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="486.5" y="311.9951">A8</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="486.5" y="311.9951">A8</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="406.5,297,433.5,297,440.5,319.2969,447.5,319.2969,447.5,349.5938,406.5,349.5938,406.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="406.5,297,433.5,297,440.5,319.2969,447.5,319.2969,447.5,349.5938,406.5,349.5938,406.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="406.5" x2="440.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="406.5" x2="440.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="410.5" y="311.9951">A9</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="410.5" y="311.9951">A9</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="320.5,297,357.5,297,364.5,319.2969,371.5,319.2969,371.5,349.5938,320.5,349.5938,320.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="320.5,297,357.5,297,364.5,319.2969,371.5,319.2969,371.5,349.5938,320.5,349.5938,320.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="320.5" x2="364.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="320.5" x2="364.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="324.5" y="311.9951">A10</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="324.5" y="311.9951">A10</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="234.5,297,271.5,297,278.5,319.2969,285.5,319.2969,285.5,349.5938,234.5,349.5938,234.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="234.5,297,271.5,297,278.5,319.2969,285.5,319.2969,285.5,349.5938,234.5,349.5938,234.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="234.5" x2="278.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="234.5" x2="278.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="238.5" y="311.9951">A11</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="238.5" y="311.9951">A11</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="148.5,297,185.5,297,192.5,319.2969,199.5,319.2969,199.5,349.5938,148.5,349.5938,148.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="148.5,297,185.5,297,192.5,319.2969,199.5,319.2969,199.5,349.5938,148.5,349.5938,148.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="148.5" x2="192.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="148.5" x2="192.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="152.5" y="311.9951">A12</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="152.5" y="311.9951">A12</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="62.5,297,99.5,297,106.5,319.2969,113.5,319.2969,113.5,349.5938,62.5,349.5938,62.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="62.5,297,99.5,297,106.5,319.2969,113.5,319.2969,113.5,349.5938,62.5,349.5938,62.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="62.5" x2="106.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="62.5" x2="106.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="66.5" y="311.9951">A13</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="66.5" y="311.9951">A13</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f1n7xceilkucpu)" points="554,102,590,102,597,124.2969,604,124.2969,604,154.5938,554,154.5938,554,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f19pmn41uk46g6)" points="554,102,590,102,597,124.2969,604,124.2969,604,154.5938,554,154.5938,554,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="554" x2="597" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="554" x2="597" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="558" y="116.9951">BBB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="558" y="116.9951">BBB</text>
|
||||||
<path d="M604.25,131.16 C685.35,136.98 937.39,158.99 997,211 C1020.16,231.21 1029.23,266.13 1032.76,291.51 " fill="none" id="C_0000000754->C_0000000739" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M604.25,131.16 C685.35,136.98 937.39,158.99 997,211 C1020.16,231.21 1029.23,266.13 1032.76,291.51 " fill="none" id="C_0000000764->C_0000000749" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="1033.43,296.78,1036.2428,287.3413,1032.7888,291.8213,1028.3088,288.3673,1033.43,296.78" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="1033.43,296.78,1036.2428,287.3413,1032.7888,291.8213,1028.3088,288.3673,1033.43,296.78" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M604.07,132.33 C674.78,140.79 873.7,167.98 921,211 C943.74,231.68 952.88,266.52 956.54,291.75 " fill="none" id="C_0000000754->C_0000000740" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M604.07,132.33 C674.78,140.79 873.7,167.98 921,211 C943.74,231.68 952.88,266.52 956.54,291.75 " fill="none" id="C_0000000764->C_0000000750" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="957.25,296.99,960.0326,287.5424,956.5929,292.0334,952.102,288.5937,957.25,296.99" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="957.25,296.99,960.0326,287.5424,956.5929,292.0334,952.102,288.5937,957.25,296.99" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M604.38,129.96 C656.6,132.28 776.85,144.94 845,211 C866.93,232.26 876.21,266.67 880.13,291.65 " fill="none" id="C_0000000754->C_0000000741" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M604.38,129.96 C656.6,132.28 776.85,144.94 845,211 C866.93,232.26 876.21,266.67 880.13,291.65 " fill="none" id="C_0000000764->C_0000000751" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="880.89,296.83,883.5655,287.3515,880.1769,291.8811,875.6473,288.4925,880.89,296.83" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="880.89,296.83,883.5655,287.3515,880.1769,291.8811,875.6473,288.4925,880.89,296.83" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M604.33,133.59 C644.75,141.41 723.88,162.28 769,211 C789.63,233.27 799.11,267.21 803.44,291.79 " fill="none" id="C_0000000754->C_0000000742" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M604.33,133.59 C644.75,141.41 723.88,162.28 769,211 C789.63,233.27 799.11,267.21 803.44,291.79 " fill="none" id="C_0000000764->C_0000000752" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="804.28,296.88,806.7325,287.3414,803.4511,291.9492,798.8433,288.6677,804.28,296.88" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="804.28,296.88,806.7325,287.3414,803.4511,291.9492,798.8433,288.6677,804.28,296.88" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M604.31,141.6 C630.08,155.14 669.48,179.37 693,211 C710.88,235.06 720.75,268.12 725.91,291.99 " fill="none" id="C_0000000754->C_0000000743" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M604.31,141.6 C630.08,155.14 669.48,179.37 693,211 C710.88,235.06 720.75,268.12 725.91,291.99 " fill="none" id="C_0000000764->C_0000000753" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="726.94,296.93,729.0001,287.299,725.9099,292.0373,721.1717,288.9471,726.94,296.93" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="726.94,296.93,729.0001,287.299,725.9099,292.0373,721.1717,288.9471,726.94,296.93" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M579,155.13 C579,190.31 579,253.51 579,291.37 " fill="none" id="C_0000000754->C_0000000745" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M579,155.13 C579,190.31 579,253.51 579,291.37 " fill="none" id="C_0000000764->C_0000000755" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="579,296.77,583,287.77,579,291.77,575,287.77,579,296.77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="579,296.77,583,287.77,579,291.77,575,287.77,579,296.77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M566.13,155.25 C558.4,171.13 548.63,192.03 541,211 C530.15,237.99 519.62,269.41 512.41,292 " fill="none" id="C_0000000754->C_0000000746" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M566.13,155.25 C558.4,171.13 548.63,192.03 541,211 C530.15,237.99 519.62,269.41 512.41,292 " fill="none" id="C_0000000764->C_0000000756" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="510.83,296.97,517.3651,289.6016,512.3425,292.2042,509.7399,287.1817,510.83,296.97" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="510.83,296.97,517.3651,289.6016,512.3425,292.2042,509.7399,287.1817,510.83,296.97" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M553.69,141.6 C527.92,155.14 488.52,179.37 465,211 C447.12,235.06 437.25,268.12 432.09,291.99 " fill="none" id="C_0000000754->C_0000000747" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M553.69,141.6 C527.92,155.14 488.52,179.37 465,211 C447.12,235.06 437.25,268.12 432.09,291.99 " fill="none" id="C_0000000764->C_0000000757" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="431.06,296.93,436.8283,288.9471,432.0901,292.0373,428.9999,287.299,431.06,296.93" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="431.06,296.93,436.8283,288.9471,432.0901,292.0373,428.9999,287.299,431.06,296.93" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M591.87,155.25 C599.6,171.13 609.37,192.03 617,211 C627.85,237.99 638.38,269.41 645.59,292 " fill="none" id="C_0000000754->C_0000000744" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M591.87,155.25 C599.6,171.13 609.37,192.03 617,211 C627.85,237.99 638.38,269.41 645.59,292 " fill="none" id="C_0000000764->C_0000000754" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="647.17,296.97,648.2601,287.1817,645.6575,292.2042,640.6349,289.6016,647.17,296.97" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="647.17,296.97,648.2601,287.1817,645.6575,292.2042,640.6349,289.6016,647.17,296.97" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M553.89,133.8 C513.78,141.91 435.07,163.18 389,211 C367.63,233.18 356.59,267.13 351.08,291.74 " fill="none" id="C_0000000754->C_0000000748" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M553.89,133.8 C513.78,141.91 435.07,163.18 389,211 C367.63,233.18 356.59,267.13 351.08,291.74 " fill="none" id="C_0000000764->C_0000000758" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="349.98,296.84,355.7929,288.8895,351.0374,291.9531,347.9738,287.1976,349.98,296.84" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="349.98,296.84,355.7929,288.8895,351.0374,291.9531,347.9738,287.1976,349.98,296.84" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M553.71,129.84 C500.42,131.92 375.54,144.11 303,211 C280.22,232.01 269.38,266.46 264.31,291.52 " fill="none" id="C_0000000754->C_0000000749" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M553.71,129.84 C500.42,131.92 375.54,144.11 303,211 C280.22,232.01 269.38,266.46 264.31,291.52 " fill="none" id="C_0000000764->C_0000000759" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="263.31,296.71,268.9342,288.6249,264.2521,291.7996,261.0775,287.1175,263.31,296.71" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="263.31,296.71,268.9342,288.6249,264.2521,291.7996,261.0775,287.1175,263.31,296.71" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M553.88,132.08 C480.5,140.08 268.39,166.64 217,211 C193.29,231.46 182.59,266.56 177.8,291.91 " fill="none" id="C_0000000754->C_0000000750" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M553.88,132.08 C480.5,140.08 268.39,166.64 217,211 C193.29,231.46 182.59,266.56 177.8,291.91 " fill="none" id="C_0000000764->C_0000000760" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="176.92,296.85,182.4259,288.6839,177.7906,291.9264,174.5481,287.291,176.92,296.85" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="176.92,296.85,182.4259,288.6839,177.7906,291.9264,174.5481,287.291,176.92,296.85" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M553.84,130.9 C469.23,136.06 196.62,156.69 131,211 C106.87,230.97 96.25,266.15 91.59,291.66 " fill="none" id="C_0000000754->C_0000000751" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M553.84,130.9 C469.23,136.06 196.62,156.69 131,211 C106.87,230.97 96.25,266.15 91.59,291.66 " fill="none" id="C_0000000764->C_0000000761" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="90.74,296.63,96.1999,288.4331,91.5828,291.7015,88.3143,287.0845,90.74,296.63" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="90.74,296.63,96.1999,288.4331,91.5828,291.7015,88.3143,287.0845,90.74,296.63" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="351px" preserveAspectRatio="none" style="width:341px;height:351px;" version="1.1" viewBox="0 0 341 351" width="341px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="351px" preserveAspectRatio="none" style="width:341px;height:351px;" version="1.1" viewBox="0 0 341 351" width="341px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="f7mmapcy3qcj5" width="300%" x="-1" y="-1">
|
<filter height="300%" id="fv429rxv436hb" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,27 +8,27 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f7mmapcy3qcj5)" points="22,235,57,235,64,257.2969,319,257.2969,319,339,22,339,22,235" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fv429rxv436hb)" points="22,235,57,235,64,257.2969,319,257.2969,319,339,22,339,22,235" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="64" y1="257.2969" y2="257.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="64" y1="257.2969" y2="257.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="26" y="249.9951">ns1</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="26" y="249.9951">ns1</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f7mmapcy3qcj5)" points="183,24,218,24,225,46.2969,313,46.2969,313,211,183,211,183,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fv429rxv436hb)" points="183,24,218,24,225,46.2969,313,46.2969,313,211,183,211,183,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="183" x2="225" y1="46.2969" y2="46.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="183" x2="225" y1="46.2969" y2="46.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="187" y="38.9951">ns3</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="187" y="38.9951">ns3</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="98" x="203" y="61.292">«deprecated»</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="98" x="203" y="61.292">«deprecated»</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f7mmapcy3qcj5)" points="207,83,242,83,249,105.2969,289,105.2969,289,187,207,187,207,83" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fv429rxv436hb)" points="207,83,242,83,249,105.2969,289,105.2969,289,187,207,187,207,83" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="207" x2="249" y1="105.2969" y2="105.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="207" x2="249" y1="105.2969" y2="105.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="211" y="97.9951">ns1</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="211" y="97.9951">ns1</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f7mmapcy3qcj5)" points="193.5,270,288.5,270,295.5,292.2969,302.5,292.2969,302.5,322.5938,193.5,322.5938,193.5,270" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fv429rxv436hb)" points="193.5,270,288.5,270,295.5,292.2969,302.5,292.2969,302.5,322.5938,193.5,322.5938,193.5,270" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="193.5" x2="295.5" y1="292.2969" y2="292.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="193.5" x2="295.5" y1="292.2969" y2="292.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="197.5" y="284.9951">ns2_v1_0_0</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="197.5" y="284.9951">ns2_v1_0_0</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f7mmapcy3qcj5)" points="38,270,133,270,140,292.2969,158,292.2969,158,322.5938,38,322.5938,38,270" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fv429rxv436hb)" points="38,270,133,270,140,292.2969,158,292.2969,158,322.5938,38,322.5938,38,270" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="38" x2="140" y1="292.2969" y2="292.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="38" x2="140" y1="292.2969" y2="292.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="42" y="284.9951">ns2_v0_9_0</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="42" y="284.9951">ns2_v0_9_0</text>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="98" x="53" y="307.292">«deprecated»</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="98" x="53" y="307.292">«deprecated»</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f7mmapcy3qcj5)" points="223.5,118,258.5,118,265.5,140.2969,272.5,140.2969,272.5,170.5938,223.5,170.5938,223.5,118" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fv429rxv436hb)" points="223.5,118,258.5,118,265.5,140.2969,272.5,140.2969,272.5,170.5938,223.5,170.5938,223.5,118" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="223.5" x2="265.5" y1="140.2969" y2="140.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="223.5" x2="265.5" y1="140.2969" y2="140.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="227.5" y="132.9951">ns2</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="29" x="227.5" y="132.9951">ns2</text>
|
||||||
<path d="M248,171.29 C248,197.04 248,236.67 248,264.21 " fill="none" id="C_0000000762->C_0000000758" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M248,171.29 C248,197.04 248,236.67 248,264.21 " fill="none" id="C_0000000772->C_0000000768" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="248,269.55,252,260.55,248,264.55,244,260.55,248,269.55" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="248,269.55,252,260.55,248,264.55,244,260.55,248,269.55" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="338px" preserveAspectRatio="none" style="width:701px;height:338px;" version="1.1" viewBox="0 0 701 338" width="701px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="338px" preserveAspectRatio="none" style="width:701px;height:338px;" version="1.1" viewBox="0 0 701 338" width="701px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="fz9ngyu2icfql" width="300%" x="-1" y="-1">
|
<filter height="300%" id="fn900lavemmer" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,40 +8,40 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<polygon fill="#008000" filter="url(#fz9ngyu2icfql)" points="22,24,39,24,46,46.2969,679,46.2969,679,326,22,326,22,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#008000" filter="url(#fn900lavemmer)" points="22,24,39,24,46,46.2969,679,46.2969,679,326,22,326,22,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="46" y1="46.2969" y2="46.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="46" y1="46.2969" y2="46.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="26" y="38.9951">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="26" y="38.9951">A</text>
|
||||||
<path d="M38,186 L38,211.1328 L148,211.1328 L148,196 L138,186 L38,186 " fill="#FBFB77" filter="url(#fz9ngyu2icfql)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M38,186 L38,211.1328 L148,211.1328 L148,196 L138,186 L38,186 " fill="#FBFB77" filter="url(#fn900lavemmer)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M138,186 L138,196 L148,196 L138,186 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M138,186 L138,196 L148,196 L138,186 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="44" y="203.0669">Package AAA.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="44" y="203.0669">Package AAA.</text>
|
||||||
<path d="M553,73 L553,98.1328 L663,98.1328 L663,83 L653,73 L553,73 " fill="#FBFB77" filter="url(#fz9ngyu2icfql)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M553,73 L553,98.1328 L663,98.1328 L663,83 L653,73 L553,73 " fill="#FBFB77" filter="url(#fn900lavemmer)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M653,73 L653,83 L663,83 L653,73 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M653,73 L653,83 L663,83 L653,73 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="559" y="90.0669">Package BBB.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="559" y="90.0669">Package BBB.</text>
|
||||||
<path d="M287,285 L287,310.1328 L439,310.1328 L439,295 L429,285 L287,285 " fill="#FBFB77" filter="url(#fz9ngyu2icfql)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M287,285 L287,310.1328 L439,310.1328 L439,295 L429,285 L287,285 " fill="#FBFB77" filter="url(#fn900lavemmer)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M429,285 L429,295 L439,295 L429,285 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M429,285 L429,295 L439,295 L429,285 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="131" x="293" y="302.0669">CCCC package note.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="131" x="293" y="302.0669">CCCC package note.</text>
|
||||||
<path d="M293,73 L293,98.1328 L433,98.1328 L433,83 L423,73 L293,73 " fill="#FBFB77" filter="url(#fz9ngyu2icfql)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M293,73 L293,98.1328 L433,98.1328 L433,83 L423,73 L293,73 " fill="#FBFB77" filter="url(#fn900lavemmer)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M423,73 L423,83 L433,83 L423,73 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M423,73 L423,83 L433,83 L423,73 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="119" x="299" y="90.0669">Another CCC note.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="119" x="299" y="90.0669">Another CCC note.</text>
|
||||||
<path d="M126.5,73 L126.5,98.1328 L257.5,98.1328 L257.5,83 L247.5,73 L126.5,73 " fill="#FBFB77" filter="url(#fz9ngyu2icfql)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M126.5,73 L126.5,98.1328 L257.5,98.1328 L257.5,83 L247.5,73 L126.5,73 " fill="#FBFB77" filter="url(#fn900lavemmer)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M247.5,73 L247.5,83 L257.5,83 L247.5,73 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M247.5,73 L247.5,83 L257.5,83 L247.5,73 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="132.5" y="90.0669">We skipped DDD.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="132.5" y="90.0669">We skipped DDD.</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fz9ngyu2icfql)" points="38.5,59,77.5,59,84.5,81.2969,91.5,81.2969,91.5,111.5938,38.5,111.5938,38.5,59" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fn900lavemmer)" points="38.5,59,77.5,59,84.5,81.2969,91.5,81.2969,91.5,111.5938,38.5,111.5938,38.5,59" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="38.5" x2="84.5" y1="81.2969" y2="81.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="38.5" x2="84.5" y1="81.2969" y2="81.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="42.5" y="73.9951">AAA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="42.5" y="73.9951">AAA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fz9ngyu2icfql)" points="468,59,504,59,511,81.2969,518,81.2969,518,111.5938,468,111.5938,468,59" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fn900lavemmer)" points="468,59,504,59,511,81.2969,518,81.2969,518,111.5938,468,111.5938,468,59" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="468" x2="511" y1="81.2969" y2="81.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="468" x2="511" y1="81.2969" y2="81.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="472" y="73.9951">BBB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="472" y="73.9951">BBB</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fz9ngyu2icfql)" points="336.5,172,375.5,172,382.5,194.2969,389.5,194.2969,389.5,224.5938,336.5,224.5938,336.5,172" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#fn900lavemmer)" points="336.5,172,375.5,172,382.5,194.2969,389.5,194.2969,389.5,224.5938,336.5,224.5938,336.5,172" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="336.5" x2="382.5" y1="194.2969" y2="194.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="336.5" x2="382.5" y1="194.2969" y2="194.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="340.5" y="186.9951">CCC</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="340.5" y="186.9951">CCC</text>
|
||||||
<polygon fill="#FFC0CB" filter="url(#fz9ngyu2icfql)" points="183.5,172,216.5,172,223.5,194.2969,230.5,194.2969,230.5,224.5938,183.5,224.5938,183.5,172" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFC0CB" filter="url(#fn900lavemmer)" points="183.5,172,216.5,172,223.5,194.2969,230.5,194.2969,230.5,224.5938,183.5,224.5938,183.5,172" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="183.5" x2="223.5" y1="194.2969" y2="194.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="183.5" x2="223.5" y1="194.2969" y2="194.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="27" x="187.5" y="186.9951">EEE</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="27" x="187.5" y="186.9951">EEE</text>
|
||||||
<path d="M71.49,112.24 C77.34,135.43 85.67,168.45 90.05,185.8 " fill="none" id="C_0000000766-GMN626" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M71.49,112.24 C77.34,135.43 85.67,168.45 90.05,185.8 " fill="none" id="C_0000000776-GMN637" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M518.16,85.5 C529.74,85.5 541.32,85.5 552.9,85.5 " fill="none" id="C_0000000767-GMN630" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M518.16,85.5 C529.74,85.5 541.32,85.5 552.9,85.5 " fill="none" id="C_0000000777-GMN641" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M363,225.24 C363,244.55 363,270.08 363,284.75 " fill="none" id="C_0000000768-GMN634" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M363,225.24 C363,244.55 363,270.08 363,284.75 " fill="none" id="C_0000000778-GMN645" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M363,98.38 C363,115.83 363,148.82 363,171.93 " fill="none" id="GMN637-C_0000000768" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M363,98.38 C363,115.83 363,148.82 363,171.93 " fill="none" id="GMN648-C_0000000778" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M193.61,98.38 C195.96,115.83 200.42,148.82 203.54,171.93 " fill="none" id="GMN641-C_0000000770" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M193.61,98.38 C195.96,115.83 200.42,148.82 203.54,171.93 " fill="none" id="GMN652-C_0000000780" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="402px" preserveAspectRatio="none" style="width:332px;height:402px;" version="1.1" viewBox="0 0 332 402" width="332px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="402px" preserveAspectRatio="none" style="width:332px;height:402px;" version="1.1" viewBox="0 0 332 402" width="332px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="fdtrgxv2431l7" width="300%" x="-1" y="-1">
|
<filter height="300%" id="f1i4hdwv9a0lzg" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,36 +8,36 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="98,219,115,219,122,241.2969,232,241.2969,232,390,98,390,98,219" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="98,219,115,219,122,241.2969,232,241.2969,232,390,98,390,98,219" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="98" x2="122" y1="241.2969" y2="241.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="98" x2="122" y1="241.2969" y2="241.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="102" y="233.9951">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="102" y="233.9951">A</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="122,262,150,262,157,284.2969,208,284.2969,208,366,122,366,122,262" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="122,262,150,262,157,284.2969,208,284.2969,208,366,122,366,122,262" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="122" x2="157" y1="284.2969" y2="284.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="122" x2="157" y1="284.2969" y2="284.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="126" y="276.9951">AA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="126" y="276.9951">AA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="22,24,38,24,45,46.2969,152,46.2969,152,195,22,195,22,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="22,24,38,24,45,46.2969,152,46.2969,152,195,22,195,22,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="45" y1="46.2969" y2="46.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="45" y1="46.2969" y2="46.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="26" y="38.9951">B</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="26" y="38.9951">B</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="46,67,72,67,79,89.2969,128,89.2969,128,171,46,171,46,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="46,67,72,67,79,89.2969,128,89.2969,128,171,46,171,46,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="46" x2="79" y1="89.2969" y2="89.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="46" x2="79" y1="89.2969" y2="89.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="50" y="81.9951">BB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="50" y="81.9951">BB</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="176,24,193,24,200,46.2969,310,46.2969,310,195,176,195,176,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="176,24,193,24,200,46.2969,310,46.2969,310,195,176,195,176,24" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="176" x2="200" y1="46.2969" y2="46.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="176" x2="200" y1="46.2969" y2="46.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="180" y="38.9951">C</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="180" y="38.9951">C</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="200,67,228,67,235,89.2969,286,89.2969,286,171,200,171,200,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="200,67,228,67,235,89.2969,286,89.2969,286,171,200,171,200,67" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="200" x2="235" y1="89.2969" y2="89.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="200" x2="235" y1="89.2969" y2="89.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="204" y="81.9951">CC</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="204" y="81.9951">CC</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="138.5,297,177.5,297,184.5,319.2969,191.5,319.2969,191.5,349.5938,138.5,349.5938,138.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="138.5,297,177.5,297,184.5,319.2969,191.5,319.2969,191.5,349.5938,138.5,349.5938,138.5,297" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="138.5" x2="184.5" y1="319.2969" y2="319.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="138.5" x2="184.5" y1="319.2969" y2="319.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="142.5" y="311.9951">AAA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="142.5" y="311.9951">AAA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="62,102,98,102,105,124.2969,112,124.2969,112,154.5938,62,154.5938,62,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="62,102,98,102,105,124.2969,112,124.2969,112,154.5938,62,154.5938,62,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="62" x2="105" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="62" x2="105" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="66" y="116.9951">BBB</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="66" y="116.9951">BBB</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#fdtrgxv2431l7)" points="216.5,102,255.5,102,262.5,124.2969,269.5,124.2969,269.5,154.5938,216.5,154.5938,216.5,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1i4hdwv9a0lzg)" points="216.5,102,255.5,102,262.5,124.2969,269.5,124.2969,269.5,154.5938,216.5,154.5938,216.5,102" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="216.5" x2="262.5" y1="124.2969" y2="124.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="216.5" x2="262.5" y1="124.2969" y2="124.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="220.5" y="116.9951">CCC</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="33" x="220.5" y="116.9951">CCC</text>
|
||||||
<path d="M97.36,155.13 C111.64,190.46 137.33,254.03 152.61,291.83 " fill="none" id="C_0000000779->C_0000000776" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M97.36,155.13 C111.64,190.46 137.33,254.03 152.61,291.83 " fill="none" id="C_0000000789->C_0000000786" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="154.6,296.77,154.9193,286.9263,152.7185,292.1375,147.5073,289.9367,154.6,296.77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="154.6,296.77,154.9193,286.9263,152.7185,292.1375,147.5073,289.9367,154.6,296.77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M232.64,155.13 C218.36,190.46 192.67,254.03 177.39,291.83 " fill="none" id="C_0000000782->C_0000000776" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M232.64,155.13 C218.36,190.46 192.67,254.03 177.39,291.83 " fill="none" id="C_0000000792->C_0000000786" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="175.4,296.77,182.4927,289.9367,177.2815,292.1375,175.0807,286.9263,175.4,296.77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="175.4,296.77,182.4927,289.9367,177.2815,292.1375,175.0807,286.9263,175.4,296.77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="270px" preserveAspectRatio="none" style="width:268px;height:270px;" version="1.1" viewBox="0 0 268 270" width="268px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="270px" preserveAspectRatio="none" style="width:268px;height:270px;" version="1.1" viewBox="0 0 268 270" width="268px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="f2b1s18x7wbaf" width="300%" x="-1" y="-1">
|
<filter height="300%" id="f7lkbzh9u8xk" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,26 +8,26 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f2b1s18x7wbaf)" points="6,206,22,206,29,228.2969,36,228.2969,36,258.5938,6,258.5938,6,206" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f7lkbzh9u8xk)" points="6,206,22,206,29,228.2969,36,228.2969,36,258.5938,6,258.5938,6,206" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="6" x2="29" y1="228.2969" y2="228.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="6" x2="29" y1="228.2969" y2="228.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="10" y="220.9951">B</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="10" y="220.9951">B</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f2b1s18x7wbaf)" points="71.5,93,88.5,93,95.5,115.2969,102.5,115.2969,102.5,145.5938,71.5,145.5938,71.5,93" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f7lkbzh9u8xk)" points="71.5,93,88.5,93,95.5,115.2969,102.5,115.2969,102.5,145.5938,71.5,145.5938,71.5,93" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="71.5" x2="95.5" y1="115.2969" y2="115.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="71.5" x2="95.5" y1="115.2969" y2="115.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="75.5" y="107.9951">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="75.5" y="107.9951">A</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f2b1s18x7wbaf)" points="71.5,206,88.5,206,95.5,228.2969,102.5,228.2969,102.5,258.5938,71.5,258.5938,71.5,206" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f7lkbzh9u8xk)" points="71.5,206,88.5,206,95.5,228.2969,102.5,228.2969,102.5,258.5938,71.5,258.5938,71.5,206" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="71.5" x2="95.5" y1="228.2969" y2="228.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="71.5" x2="95.5" y1="228.2969" y2="228.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="75.5" y="220.9951">C</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="75.5" y="220.9951">C</text>
|
||||||
<path d="M40,8 L40,33.1328 L134,33.1328 L134,18 L124,8 L40,8 " fill="#FBFB77" filter="url(#f2b1s18x7wbaf)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M40,8 L40,33.1328 L134,33.1328 L134,18 L124,8 L40,8 " fill="#FBFB77" filter="url(#f7lkbzh9u8xk)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M124,8 L124,18 L134,18 L124,8 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M124,8 L124,18 L134,18 L124,8 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="73" x="46" y="25.0669">Top A note.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="73" x="46" y="25.0669">Top A note.</text>
|
||||||
<path d="M137.5,220 L137.5,245.1328 L256.5,245.1328 L256.5,230 L246.5,220 L137.5,220 " fill="#FBFB77" filter="url(#f2b1s18x7wbaf)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M137.5,220 L137.5,245.1328 L256.5,245.1328 L256.5,230 L246.5,220 L137.5,220 " fill="#FBFB77" filter="url(#f7lkbzh9u8xk)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M246.5,220 L246.5,230 L256.5,230 L246.5,220 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M246.5,220 L246.5,230 L256.5,230 L246.5,220 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="143.5" y="237.0669">Bottom A note.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="143.5" y="237.0669">Bottom A note.</text>
|
||||||
<path d="M87,33.01 C87,47.66 87,73.41 87,92.83 " fill="none" id="GMN664-C_0000000786" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M87,33.01 C87,47.66 87,73.41 87,92.83 " fill="none" id="GMN675-C_0000000796" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M102.76,136.4 C125.1,158.94 165.45,199.66 185.31,219.71 " fill="none" id="C_0000000786-GMN667" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M102.76,136.4 C125.1,158.94 165.45,199.66 185.31,219.71 " fill="none" id="C_0000000796-GMN678" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M71.69,146.24 C61.86,162.78 49.06,184.31 38.78,201.6 " fill="none" id="C_0000000786->C_0000000785" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M71.69,146.24 C61.86,162.78 49.06,184.31 38.78,201.6 " fill="none" id="C_0000000796->C_0000000795" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="36.22,205.89,44.2665,200.2108,38.7819,201.5962,37.3965,196.1117,36.22,205.89" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="36.22,205.89,44.2665,200.2108,38.7819,201.5962,37.3965,196.1117,36.22,205.89" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M87,146.24 C87,162.5 87,183.58 87,200.71 " fill="none" id="C_0000000786->C_0000000787" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M87,146.24 C87,162.5 87,183.58 87,200.71 " fill="none" id="C_0000000796->C_0000000797" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="87,205.89,91.0257,196.9015,87.0143,200.89,83.0257,196.8786,87,205.89" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="87,205.89,91.0257,196.9015,87.0143,200.89,83.0257,196.8786,87,205.89" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="277px" preserveAspectRatio="none" style="width:269px;height:277px;" version="1.1" viewBox="0 0 269 277" width="269px" zoomAndPan="magnify">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="277px" preserveAspectRatio="none" style="width:269px;height:277px;" version="1.1" viewBox="0 0 269 277" width="269px" zoomAndPan="magnify">
|
||||||
<defs>
|
<defs>
|
||||||
<filter height="300%" id="f4c55cvjp60jv" width="300%" x="-1" y="-1">
|
<filter height="300%" id="f1bfevt9p6j6it" width="300%" x="-1" y="-1">
|
||||||
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
||||||
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
||||||
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
||||||
@@ -8,29 +8,29 @@
|
|||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g>
|
<g>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f4c55cvjp60jv)" points="42.5,57,59.5,57,66.5,79.2969,151.5,79.2969,151.5,177,42.5,177,42.5,57" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1bfevt9p6j6it)" points="42.5,57,59.5,57,66.5,79.2969,151.5,79.2969,151.5,177,42.5,177,42.5,57" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="42.5" x2="66.5" y1="79.2969" y2="79.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="42.5" x2="66.5" y1="79.2969" y2="79.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="46.5" y="71.9951">A</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="46.5" y="71.9951">A</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f4c55cvjp60jv)" points="72.5,213,88.5,213,95.5,235.2969,102.5,235.2969,102.5,265.5938,72.5,265.5938,72.5,213" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1bfevt9p6j6it)" points="72.5,213,88.5,213,95.5,235.2969,102.5,235.2969,102.5,265.5938,72.5,265.5938,72.5,213" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="72.5" x2="95.5" y1="235.2969" y2="235.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="72.5" x2="95.5" y1="235.2969" y2="235.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="76.5" y="227.9951">B</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10" x="76.5" y="227.9951">B</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f4c55cvjp60jv)" points="66.5,100,94.5,100,101.5,122.2969,108.5,122.2969,108.5,152.5938,66.5,152.5938,66.5,100" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1bfevt9p6j6it)" points="66.5,100,94.5,100,101.5,122.2969,108.5,122.2969,108.5,152.5938,66.5,152.5938,66.5,100" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="66.5" x2="101.5" y1="122.2969" y2="122.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="66.5" x2="101.5" y1="122.2969" y2="122.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="70.5" y="114.9951">AA</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22" x="70.5" y="114.9951">AA</text>
|
||||||
<polygon fill="#FFFFFF" filter="url(#f4c55cvjp60jv)" points="6,213,23,213,30,235.2969,37,235.2969,37,265.5938,6,265.5938,6,213" style="stroke: #000000; stroke-width: 1.5;"/>
|
<polygon fill="#FFFFFF" filter="url(#f1bfevt9p6j6it)" points="6,213,23,213,30,235.2969,37,235.2969,37,265.5938,6,265.5938,6,213" style="stroke: #000000; stroke-width: 1.5;"/>
|
||||||
<line style="stroke: #000000; stroke-width: 1.5;" x1="6" x2="30" y1="235.2969" y2="235.2969"/>
|
<line style="stroke: #000000; stroke-width: 1.5;" x1="6" x2="30" y1="235.2969" y2="235.2969"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="10" y="227.9951">C</text>
|
<text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="11" x="10" y="227.9951">C</text>
|
||||||
<path d="M41,8 L41,33.1328 L246,33.1328 L246,18 L236,8 L41,8 " fill="#FBFB77" filter="url(#f4c55cvjp60jv)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M41,8 L41,33.1328 L246,33.1328 L246,18 L236,8 L41,8 " fill="#FBFB77" filter="url(#f1bfevt9p6j6it)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M236,8 L236,18 L246,18 L236,8 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M236,8 L236,18 L246,18 L236,8 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="47" y="25.0669">Compare layout with t30006.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="47" y="25.0669">Compare layout with t30006.</text>
|
||||||
<path d="M138,227 L138,252.1328 L257,252.1328 L257,237 L247,227 L138,227 " fill="#FBFB77" filter="url(#f4c55cvjp60jv)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M138,227 L138,252.1328 L257,252.1328 L257,237 L247,227 L138,227 " fill="#FBFB77" filter="url(#f1bfevt9p6j6it)" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M247,227 L247,237 L257,237 L247,227 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<path d="M247,227 L247,237 L257,237 L247,227 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="144" y="244.0669">Bottom A note.</text>
|
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="144" y="244.0669">Bottom A note.</text>
|
||||||
<path d="M143.5,33.03 C143.5,36.3613 143.5,40.2728 143.5,44.5714 C143.5,46.7207 143.5,48.9668 143.5,51.2855 C143.5,52.4448 143.5,53.6223 143.5,54.8149 C143.5,55.4112 143.5,56.0113 143.5,56.6148 " fill="none" id="GMN679-C_0000000792" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M143.5,33.03 C143.5,36.3613 143.5,40.2728 143.5,44.5714 C143.5,46.7207 143.5,48.9668 143.5,51.2855 C143.5,52.4448 143.5,53.6223 143.5,54.8149 C143.5,55.4112 143.5,56.0113 143.5,56.6148 " fill="none" id="GMN690-C_0000000802" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M151.6607,144.277 C151.7219,144.403 151.7835,144.5295 151.8453,144.6565 C152.0924,145.1647 152.3437,145.6812 152.5988,146.2057 C153.6194,148.3036 154.7021,150.5292 155.8341,152.8563 C158.0983,157.5105 160.56,162.5706 163.1175,167.8275 C173.3475,188.855 185.11,213.03 191.89,226.96 " fill="none" id="C_0000000792-GMN682" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M151.6607,144.277 C151.7219,144.403 151.7835,144.5295 151.8453,144.6565 C152.0924,145.1647 152.3437,145.6812 152.5988,146.2057 C153.6194,148.3036 154.7021,150.5292 155.8341,152.8563 C158.0983,157.5105 160.56,162.5706 163.1175,167.8275 C173.3475,188.855 185.11,213.03 191.89,226.96 " fill="none" id="C_0000000802-GMN693" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<path d="M87.5,153.24 C87.5,169.5 87.5,190.58 87.5,207.71 " fill="none" id="C_0000000793->C_0000000791" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M87.5,153.24 C87.5,169.5 87.5,190.58 87.5,207.71 " fill="none" id="C_0000000803->C_0000000801" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="87.5,212.89,91.5257,203.9015,87.5143,207.89,83.5257,203.8786,87.5,212.89" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="87.5,212.89,91.5257,203.9015,87.5143,207.89,83.5257,203.8786,87.5,212.89" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
<path d="M66.45,146.33 C53.17,163.28 37.63,188.49 27.99,208.26 " fill="none" id="C_0000000793->C_0000000794" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
<path d="M66.45,146.33 C53.17,163.28 37.63,188.49 27.99,208.26 " fill="none" id="C_0000000803->C_0000000804" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
|
||||||
<polygon fill="#A80036" points="25.78,212.9,33.2451,206.4757,27.9186,208.3804,26.0138,203.0539,25.78,212.9" style="stroke: #A80036; stroke-width: 1.0;"/>
|
<polygon fill="#A80036" points="25.78,212.9,33.2451,206.4757,27.9186,208.3804,26.0138,203.0539,25.78,212.9" style="stroke: #A80036; stroke-width: 1.0;"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
@@ -62,7 +62,7 @@ void class_::add_parent(class_parent &&parent)
|
|||||||
bases_.emplace_back(std::move(parent));
|
bases_.emplace_back(std::move(parent));
|
||||||
}
|
}
|
||||||
|
|
||||||
void class_::add_template(class_template &&tmplt)
|
void class_::add_template(class_template tmplt)
|
||||||
{
|
{
|
||||||
templates_.emplace_back(std::move(tmplt));
|
templates_.emplace_back(std::move(tmplt));
|
||||||
}
|
}
|
||||||
@@ -141,24 +141,7 @@ std::ostringstream &class_::render_template_params(
|
|||||||
std::vector<std::string> tnames;
|
std::vector<std::string> tnames;
|
||||||
std::transform(templates_.cbegin(), templates_.cend(),
|
std::transform(templates_.cbegin(), templates_.cend(),
|
||||||
std::back_inserter(tnames), [this](const auto &tmplt) {
|
std::back_inserter(tnames), [this](const auto &tmplt) {
|
||||||
std::vector<std::string> res;
|
return tmplt.to_string(using_namespace());
|
||||||
|
|
||||||
if (!tmplt.type().empty())
|
|
||||||
res.push_back(namespace_{tmplt.type()}
|
|
||||||
.relative_to(using_namespace())
|
|
||||||
.to_string());
|
|
||||||
|
|
||||||
if (!tmplt.name().empty())
|
|
||||||
res.push_back(namespace_{tmplt.name()}
|
|
||||||
.relative_to(using_namespace())
|
|
||||||
.to_string());
|
|
||||||
|
|
||||||
if (!tmplt.default_value().empty()) {
|
|
||||||
res.push_back("=");
|
|
||||||
res.push_back(tmplt.default_value());
|
|
||||||
}
|
|
||||||
|
|
||||||
return fmt::format("{}", fmt::join(res, " "));
|
|
||||||
});
|
});
|
||||||
ostr << fmt::format("<{}>", fmt::join(tnames, ","));
|
ostr << fmt::format("<{}>", fmt::join(tnames, ","));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public:
|
|||||||
void add_member(class_member &&member);
|
void add_member(class_member &&member);
|
||||||
void add_method(class_method &&method);
|
void add_method(class_method &&method);
|
||||||
void add_parent(class_parent &&parent);
|
void add_parent(class_parent &&parent);
|
||||||
void add_template(class_template &&tmplt);
|
void add_template(class_template tmplt);
|
||||||
|
|
||||||
const std::vector<class_member> &members() const;
|
const std::vector<class_member> &members() const;
|
||||||
const std::vector<class_method> &methods() const;
|
const std::vector<class_method> &methods() const;
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "class_template.h"
|
#include "class_template.h"
|
||||||
|
#include <common/model/namespace.h>
|
||||||
|
#include <fmt/format.h>
|
||||||
|
|
||||||
namespace clanguml::class_diagram::model {
|
namespace clanguml::class_diagram::model {
|
||||||
|
|
||||||
@@ -57,4 +59,38 @@ bool operator==(const class_template &l, const class_template &r)
|
|||||||
{
|
{
|
||||||
return (l.name() == r.name()) && (l.type() == r.type());
|
return (l.name() == r.name()) && (l.type() == r.type());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string class_template::to_string(
|
||||||
|
const clanguml::common::model::namespace_ &using_namespace) const
|
||||||
|
{
|
||||||
|
using clanguml::common::model::namespace_;
|
||||||
|
|
||||||
|
std::string res;
|
||||||
|
if (!type().empty())
|
||||||
|
res += namespace_{type()}.relative_to(using_namespace).to_string();
|
||||||
|
|
||||||
|
// Render nested template params
|
||||||
|
if (!template_params_.empty()) {
|
||||||
|
std::vector<std::string> params;
|
||||||
|
for (const auto &template_param : template_params_) {
|
||||||
|
params.push_back(template_param.to_string(using_namespace));
|
||||||
|
}
|
||||||
|
|
||||||
|
res += fmt::format("<{}>", fmt::join(params, ","));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!name().empty()) {
|
||||||
|
if (!type().empty())
|
||||||
|
res += " ";
|
||||||
|
res += namespace_{name()}.relative_to(using_namespace).to_string();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!default_value().empty()) {
|
||||||
|
res += "=";
|
||||||
|
res += default_value();
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "common/model/namespace.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@@ -41,6 +43,11 @@ public:
|
|||||||
|
|
||||||
friend bool operator==(const class_template &l, const class_template &r);
|
friend bool operator==(const class_template &l, const class_template &r);
|
||||||
|
|
||||||
|
std::vector<class_template> template_params_;
|
||||||
|
|
||||||
|
std::string to_string(
|
||||||
|
const clanguml::common::model::namespace_ &using_namespace) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string type_;
|
std::string type_;
|
||||||
std::string name_;
|
std::string name_;
|
||||||
|
|||||||
@@ -41,9 +41,11 @@ std::string enum_::full_name(bool relative) const
|
|||||||
|
|
||||||
std::ostringstream ostr;
|
std::ostringstream ostr;
|
||||||
if (relative)
|
if (relative)
|
||||||
ostr << namespace_{name()}.relative_to(using_namespace()).to_string();
|
ostr << namespace_{name_and_ns()}
|
||||||
|
.relative_to(using_namespace())
|
||||||
|
.to_string();
|
||||||
else
|
else
|
||||||
ostr << name();
|
ostr << name_and_ns();
|
||||||
|
|
||||||
return ostr.str();
|
return ostr.str();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,4 +196,72 @@ translation_unit_context::get_current_package() const
|
|||||||
return current_package_;
|
return current_package_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void translation_unit_context::add_using_namespace_directive(
|
||||||
|
common::model::namespace_ ns)
|
||||||
|
{
|
||||||
|
using_ns_declarations_[ns_.to_string()].insert(std::move(ns));
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::set<common::model::namespace_> &
|
||||||
|
translation_unit_context::using_namespace_directive(
|
||||||
|
const common::model::namespace_ &ns) const
|
||||||
|
{
|
||||||
|
return using_ns_declarations_.at(ns.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
|
type_safe::optional<common::model::namespace_>
|
||||||
|
translation_unit_context::get_name_with_namespace(const std::string &name) const
|
||||||
|
{
|
||||||
|
using common::model::namespace_;
|
||||||
|
|
||||||
|
std::set<namespace_> possible_matches;
|
||||||
|
possible_matches.emplace(name);
|
||||||
|
|
||||||
|
possible_matches.emplace(get_namespace() | namespace_{name});
|
||||||
|
auto parent = get_namespace().parent();
|
||||||
|
while (parent.has_value()) {
|
||||||
|
possible_matches.emplace(parent.value() | namespace_{name});
|
||||||
|
parent = parent.value().parent();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (using_ns_declarations_.find(get_namespace().to_string()) !=
|
||||||
|
using_ns_declarations_.end()) {
|
||||||
|
for (const auto &ns :
|
||||||
|
using_ns_declarations_.at(get_namespace().to_string())) {
|
||||||
|
possible_matches.emplace(ns | namespace_{name});
|
||||||
|
auto parent = ns.parent();
|
||||||
|
while (parent.has_value()) {
|
||||||
|
possible_matches.emplace(parent.value() | namespace_{name});
|
||||||
|
parent = parent.value().parent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Search classes
|
||||||
|
for (const auto &c : diagram_.classes()) {
|
||||||
|
auto c_ns = namespace_{c->name_and_ns()};
|
||||||
|
for (const auto &possible_match : possible_matches) {
|
||||||
|
if (c_ns == possible_match) {
|
||||||
|
return possible_match;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Search enums
|
||||||
|
for (const auto &e : diagram_.enums()) {
|
||||||
|
auto e_ns = namespace_{e->name_and_ns()};
|
||||||
|
for (const auto &possible_match : possible_matches) {
|
||||||
|
if (e_ns == possible_match) {
|
||||||
|
return possible_match;
|
||||||
|
}
|
||||||
|
// Try to also match possible references to enum values
|
||||||
|
else if (possible_match.starts_with(e_ns)) {
|
||||||
|
return possible_match;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,10 +78,26 @@ public:
|
|||||||
|
|
||||||
type_safe::optional_ref<common::model::package> get_current_package() const;
|
type_safe::optional_ref<common::model::package> get_current_package() const;
|
||||||
|
|
||||||
|
void add_using_namespace_directive(common::model::namespace_ ns);
|
||||||
|
|
||||||
|
const std::set<common::model::namespace_> &using_namespace_directive(
|
||||||
|
const common::model::namespace_ &ns) const;
|
||||||
|
|
||||||
|
type_safe::optional<common::model::namespace_> get_name_with_namespace(
|
||||||
|
const std::string &name) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Current visitor namespace
|
// Current visitor namespace
|
||||||
common::model::namespace_ ns_;
|
common::model::namespace_ ns_;
|
||||||
|
|
||||||
|
// A map of 'using namespace' declared within a given namespace scope
|
||||||
|
// This is necessary to properly establish the namespace of a given entity
|
||||||
|
// for instance in unexposed template parameters
|
||||||
|
// - key - namespace
|
||||||
|
// - value - set of namespaces 'imported' within this namespace scope
|
||||||
|
std::map<std::string, std::set<common::model::namespace_>>
|
||||||
|
using_ns_declarations_;
|
||||||
|
|
||||||
// Reference to the cppast entity index
|
// Reference to the cppast entity index
|
||||||
cppast::cpp_entity_index &entity_index_;
|
cppast::cpp_entity_index &entity_index_;
|
||||||
|
|
||||||
|
|||||||
@@ -178,6 +178,20 @@ void translation_unit_visitor::operator()(const cppast::cpp_entity &file)
|
|||||||
|
|
||||||
process_type_alias_template(at);
|
process_type_alias_template(at);
|
||||||
}
|
}
|
||||||
|
else if (e.kind() == cppast::cpp_entity_kind::using_directive_t) {
|
||||||
|
using common::model::namespace_;
|
||||||
|
|
||||||
|
const auto &using_directive =
|
||||||
|
static_cast<const cppast::cpp_using_directive &>(e);
|
||||||
|
|
||||||
|
const auto ns_ref = using_directive.target();
|
||||||
|
const auto &ns = ns_ref.get(ctx.entity_index()).at(0).get();
|
||||||
|
if (ns_ref.get(ctx.entity_index()).size() > 0) {
|
||||||
|
auto full_ns = namespace_{cx::util::ns(ns)} | ns.name();
|
||||||
|
|
||||||
|
ctx.add_using_namespace_directive(full_ns);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -490,49 +504,54 @@ void translation_unit_visitor::
|
|||||||
{
|
{
|
||||||
auto ua = tspec.value().unexposed_arguments().as_string();
|
auto ua = tspec.value().unexposed_arguments().as_string();
|
||||||
|
|
||||||
// Naive parse of template arguments:
|
auto template_params = cx::util::parse_unexposed_template_params(
|
||||||
auto toks = util::split(ua, ",");
|
ua, [this](const std::string &t) {
|
||||||
for (const auto &t : toks) {
|
auto full_type = ctx.get_name_with_namespace(t);
|
||||||
c.add_template({t});
|
if (full_type.has_value())
|
||||||
|
return full_type.value().to_string();
|
||||||
|
return t;
|
||||||
|
});
|
||||||
|
|
||||||
if (!tspec.value().primary_template().is_overloaded()) {
|
found_relationships_t relationships;
|
||||||
if (tspec.value()
|
for (auto ¶m : template_params) {
|
||||||
.primary_template()
|
find_relationships_in_unexposed_template_params(param, relationships);
|
||||||
.get(ctx.entity_index())
|
c.add_template(param);
|
||||||
.size() == 0) {
|
}
|
||||||
LOG_WARN("Template {} has no exposed parameters",
|
|
||||||
tspec.value().name());
|
|
||||||
|
|
||||||
continue;
|
for (auto &r : relationships) {
|
||||||
}
|
c.add_relationship({std::get<1>(r), std::get<0>(r)});
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto &primary_template_ref = static_cast<
|
const auto &primary_template_ref =
|
||||||
const cppast::cpp_class_template &>(
|
static_cast<const cppast::cpp_class_template &>(
|
||||||
tspec.value().primary_template().get(ctx.entity_index())[0].get())
|
tspec.value().primary_template().get(ctx.entity_index())[0].get())
|
||||||
.class_();
|
.class_();
|
||||||
|
|
||||||
if (primary_template_ref.user_data()) {
|
if (primary_template_ref.user_data()) {
|
||||||
auto base_template_full_name =
|
auto base_template_full_name =
|
||||||
static_cast<const char *>(primary_template_ref.user_data());
|
static_cast<const char *>(primary_template_ref.user_data());
|
||||||
LOG_DBG("Primary template ref set to: {}", base_template_full_name);
|
LOG_DBG("Primary template ref set to: {}", base_template_full_name);
|
||||||
// Add template specialization/instantiation
|
// Add template specialization/instantiation
|
||||||
// relationship
|
// relationship
|
||||||
c.add_relationship(
|
c.add_relationship(
|
||||||
{relationship_t::kInstantiation, base_template_full_name});
|
{relationship_t::kInstantiation, base_template_full_name});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LOG_WARN("No user data for base template {}",
|
LOG_WARN(
|
||||||
primary_template_ref.name());
|
"No user data for base template {}", primary_template_ref.name());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void translation_unit_visitor::process_class_bases(
|
void translation_unit_visitor::process_class_bases(
|
||||||
const cppast::cpp_class &cls, class_ &c) const
|
const cppast::cpp_class &cls, class_ &c) const
|
||||||
{
|
{
|
||||||
for (auto &base : cls.bases()) {
|
for (auto &base : cls.bases()) {
|
||||||
class_parent cp;
|
class_parent cp;
|
||||||
cp.set_name(cx::util::fully_prefixed(ctx.get_namespace(), base));
|
auto base_ns = common::model::namespace_{
|
||||||
|
cx::util::ns(base.type(), ctx.entity_index())};
|
||||||
|
base_ns = base_ns | common::model::namespace_{base.name()}.name();
|
||||||
|
cp.set_name(
|
||||||
|
base_ns.relative_to(ctx.config().using_namespace()).to_string());
|
||||||
cp.is_virtual(base.is_virtual());
|
cp.is_virtual(base.is_virtual());
|
||||||
|
|
||||||
switch (base.access_specifier()) {
|
switch (base.access_specifier()) {
|
||||||
@@ -1205,7 +1224,8 @@ void translation_unit_visitor::process_friend(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool translation_unit_visitor::find_relationships(const cppast::cpp_type &t_,
|
bool translation_unit_visitor::find_relationships(const cppast::cpp_type &t_,
|
||||||
found_relationships_t &relationships, relationship_t relationship_hint)
|
found_relationships_t &relationships,
|
||||||
|
relationship_t relationship_hint) const
|
||||||
{
|
{
|
||||||
bool found{false};
|
bool found{false};
|
||||||
|
|
||||||
@@ -1246,7 +1266,8 @@ bool translation_unit_visitor::find_relationships(const cppast::cpp_type &t_,
|
|||||||
|
|
||||||
bool translation_unit_visitor::find_relationships_in_template_instantiation(
|
bool translation_unit_visitor::find_relationships_in_template_instantiation(
|
||||||
const cppast::cpp_type &t_, const std::string &fn,
|
const cppast::cpp_type &t_, const std::string &fn,
|
||||||
found_relationships_t &relationships, relationship_t relationship_type)
|
found_relationships_t &relationships,
|
||||||
|
relationship_t relationship_type) const
|
||||||
{
|
{
|
||||||
const auto &t = cppast::remove_cv(cx::util::unreferenced(t_));
|
const auto &t = cppast::remove_cv(cx::util::unreferenced(t_));
|
||||||
|
|
||||||
@@ -1333,7 +1354,7 @@ bool translation_unit_visitor::find_relationships_in_template_instantiation(
|
|||||||
bool translation_unit_visitor::find_relationships_in_user_defined_type(
|
bool translation_unit_visitor::find_relationships_in_user_defined_type(
|
||||||
const cppast::cpp_type &t_, found_relationships_t &relationships,
|
const cppast::cpp_type &t_, found_relationships_t &relationships,
|
||||||
const std::string &fn, relationship_t &relationship_type,
|
const std::string &fn, relationship_t &relationship_type,
|
||||||
const cppast::cpp_type &t)
|
const cppast::cpp_type &t) const
|
||||||
{
|
{
|
||||||
bool found;
|
bool found;
|
||||||
LOG_DBG("Finding relationships in user defined type: {} | {}",
|
LOG_DBG("Finding relationships in user defined type: {} | {}",
|
||||||
@@ -1360,7 +1381,7 @@ bool translation_unit_visitor::find_relationships_in_user_defined_type(
|
|||||||
|
|
||||||
bool translation_unit_visitor::find_relationships_in_reference(
|
bool translation_unit_visitor::find_relationships_in_reference(
|
||||||
const cppast::cpp_type &t_, found_relationships_t &relationships,
|
const cppast::cpp_type &t_, found_relationships_t &relationships,
|
||||||
const relationship_t &relationship_hint)
|
const relationship_t &relationship_hint) const
|
||||||
{
|
{
|
||||||
bool found;
|
bool found;
|
||||||
auto &r = static_cast<const cppast::cpp_reference_type &>(t_);
|
auto &r = static_cast<const cppast::cpp_reference_type &>(t_);
|
||||||
@@ -1376,7 +1397,7 @@ bool translation_unit_visitor::find_relationships_in_reference(
|
|||||||
|
|
||||||
bool translation_unit_visitor::find_relationships_in_pointer(
|
bool translation_unit_visitor::find_relationships_in_pointer(
|
||||||
const cppast::cpp_type &t_, found_relationships_t &relationships,
|
const cppast::cpp_type &t_, found_relationships_t &relationships,
|
||||||
const relationship_t &relationship_hint)
|
const relationship_t &relationship_hint) const
|
||||||
{
|
{
|
||||||
bool found;
|
bool found;
|
||||||
auto &p = static_cast<const cppast::cpp_pointer_type &>(t_);
|
auto &p = static_cast<const cppast::cpp_pointer_type &>(t_);
|
||||||
@@ -1388,7 +1409,7 @@ bool translation_unit_visitor::find_relationships_in_pointer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool translation_unit_visitor::find_relationships_in_array(
|
bool translation_unit_visitor::find_relationships_in_array(
|
||||||
found_relationships_t &relationships, const cppast::cpp_type &t)
|
found_relationships_t &relationships, const cppast::cpp_type &t) const
|
||||||
{
|
{
|
||||||
bool found;
|
bool found;
|
||||||
auto &a = static_cast<const cppast::cpp_array_type &>(t);
|
auto &a = static_cast<const cppast::cpp_array_type &>(t);
|
||||||
@@ -1397,6 +1418,34 @@ bool translation_unit_visitor::find_relationships_in_array(
|
|||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool translation_unit_visitor::find_relationships_in_unexposed_template_params(
|
||||||
|
const class_template &ct, found_relationships_t &relationships) const
|
||||||
|
{
|
||||||
|
bool found{false};
|
||||||
|
LOG_DBG("Finding relationships in user defined type: {}",
|
||||||
|
ct.to_string(ctx.config().using_namespace()));
|
||||||
|
|
||||||
|
auto type_with_namespace = ctx.get_name_with_namespace(ct.type());
|
||||||
|
|
||||||
|
if (!type_with_namespace.has_value()) {
|
||||||
|
// Couldn't find declaration of this type
|
||||||
|
type_with_namespace = common::model::namespace_{ct.type()};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx.config().should_include(type_with_namespace.value())) {
|
||||||
|
relationships.emplace_back(type_with_namespace.value().to_string(),
|
||||||
|
relationship_t::kDependency);
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const auto &nested_template_params : ct.template_params_) {
|
||||||
|
found = find_relationships_in_unexposed_template_params(
|
||||||
|
nested_template_params, relationships) ||
|
||||||
|
found;
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<class_> translation_unit_visitor::build_template_instantiation(
|
std::unique_ptr<class_> translation_unit_visitor::build_template_instantiation(
|
||||||
const cppast::cpp_template_instantiation_type &t,
|
const cppast::cpp_template_instantiation_type &t,
|
||||||
std::optional<clanguml::class_diagram::model::class_ *> parent)
|
std::optional<clanguml::class_diagram::model::class_ *> parent)
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public:
|
|||||||
bool find_relationships(const cppast::cpp_type &t,
|
bool find_relationships(const cppast::cpp_type &t,
|
||||||
found_relationships_t &relationships,
|
found_relationships_t &relationships,
|
||||||
clanguml::common::model::relationship_t relationship_hint =
|
clanguml::common::model::relationship_t relationship_hint =
|
||||||
clanguml::common::model::relationship_t::kNone);
|
clanguml::common::model::relationship_t::kNone) const;
|
||||||
|
|
||||||
void process_template_type_parameter(
|
void process_template_type_parameter(
|
||||||
const cppast::cpp_template_type_parameter &t,
|
const cppast::cpp_template_type_parameter &t,
|
||||||
@@ -175,24 +175,28 @@ private:
|
|||||||
const cppast::cpp_type &type);
|
const cppast::cpp_type &type);
|
||||||
|
|
||||||
bool find_relationships_in_array(
|
bool find_relationships_in_array(
|
||||||
found_relationships_t &relationships, const cppast::cpp_type &t);
|
found_relationships_t &relationships, const cppast::cpp_type &t) const;
|
||||||
|
|
||||||
bool find_relationships_in_pointer(const cppast::cpp_type &t_,
|
bool find_relationships_in_pointer(const cppast::cpp_type &t_,
|
||||||
found_relationships_t &relationships,
|
found_relationships_t &relationships,
|
||||||
const common::model::relationship_t &relationship_hint);
|
const common::model::relationship_t &relationship_hint) const;
|
||||||
|
|
||||||
bool find_relationships_in_reference(const cppast::cpp_type &t_,
|
bool find_relationships_in_reference(const cppast::cpp_type &t_,
|
||||||
found_relationships_t &relationships,
|
found_relationships_t &relationships,
|
||||||
const common::model::relationship_t &relationship_hint);
|
const common::model::relationship_t &relationship_hint) const;
|
||||||
|
|
||||||
bool find_relationships_in_user_defined_type(const cppast::cpp_type &t_,
|
bool find_relationships_in_user_defined_type(const cppast::cpp_type &t_,
|
||||||
found_relationships_t &relationships, const std::string &fn,
|
found_relationships_t &relationships, const std::string &fn,
|
||||||
common::model::relationship_t &relationship_type,
|
common::model::relationship_t &relationship_type,
|
||||||
const cppast::cpp_type &t);
|
const cppast::cpp_type &t) const;
|
||||||
|
|
||||||
bool find_relationships_in_template_instantiation(const cppast::cpp_type &t,
|
bool find_relationships_in_template_instantiation(const cppast::cpp_type &t,
|
||||||
const std::string &fn, found_relationships_t &relationships,
|
const std::string &fn, found_relationships_t &relationships,
|
||||||
common::model::relationship_t relationship_type);
|
common::model::relationship_t relationship_type) const;
|
||||||
|
|
||||||
|
bool find_relationships_in_unexposed_template_params(
|
||||||
|
const model::class_template &ct,
|
||||||
|
found_relationships_t &relationships) const;
|
||||||
|
|
||||||
void build_template_instantiation_primary_template(
|
void build_template_instantiation_primary_template(
|
||||||
const cppast::cpp_template_instantiation_type &t,
|
const cppast::cpp_template_instantiation_type &t,
|
||||||
|
|||||||
@@ -99,6 +99,17 @@ void namespace_::append(const namespace_ &ns)
|
|||||||
|
|
||||||
void namespace_::pop_back() { namespace_path_.pop_back(); }
|
void namespace_::pop_back() { namespace_path_.pop_back(); }
|
||||||
|
|
||||||
|
type_safe::optional<namespace_> namespace_::parent() const
|
||||||
|
{
|
||||||
|
if (size() <= 1) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace_ res{*this};
|
||||||
|
res.pop_back();
|
||||||
|
return {std::move(res)};
|
||||||
|
}
|
||||||
|
|
||||||
namespace_ namespace_::operator|(const namespace_ &right) const
|
namespace_ namespace_::operator|(const namespace_ &right) const
|
||||||
{
|
{
|
||||||
namespace_ res{*this};
|
namespace_ res{*this};
|
||||||
@@ -129,9 +140,15 @@ const std::string &namespace_::operator[](const int index) const
|
|||||||
|
|
||||||
bool namespace_::starts_with(const namespace_ &right) const
|
bool namespace_::starts_with(const namespace_ &right) const
|
||||||
{
|
{
|
||||||
|
|
||||||
return util::starts_with(namespace_path_, right.namespace_path_);
|
return util::starts_with(namespace_path_, right.namespace_path_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool namespace_::ends_with(const namespace_ &right) const
|
||||||
|
{
|
||||||
|
return util::ends_with(namespace_path_, right.namespace_path_);
|
||||||
|
}
|
||||||
|
|
||||||
namespace_ namespace_::common_path(const namespace_ &right) const
|
namespace_ namespace_::common_path(const namespace_ &right) const
|
||||||
{
|
{
|
||||||
namespace_ res{};
|
namespace_ res{};
|
||||||
@@ -179,6 +196,11 @@ bool operator==(const namespace_ &left, const namespace_ &right)
|
|||||||
return left.namespace_path_ == right.namespace_path_;
|
return left.namespace_path_ == right.namespace_path_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool operator<(const namespace_ &left, const namespace_ &right)
|
||||||
|
{
|
||||||
|
return std::hash<namespace_>{}(left) < std::hash<namespace_>{}(right);
|
||||||
|
}
|
||||||
|
|
||||||
std::string namespace_::name() const
|
std::string namespace_::name() const
|
||||||
{
|
{
|
||||||
assert(size() > 0);
|
assert(size() > 0);
|
||||||
|
|||||||
@@ -18,14 +18,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <type_safe/optional.hpp>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
namespace clanguml::common::model {
|
namespace clanguml::common::model {
|
||||||
|
|
||||||
class namespace_ {
|
class namespace_ {
|
||||||
|
public:
|
||||||
using container_type = std::vector<std::string>;
|
using container_type = std::vector<std::string>;
|
||||||
|
|
||||||
public:
|
|
||||||
namespace_() = default;
|
namespace_() = default;
|
||||||
|
|
||||||
namespace_(const std::string &ns);
|
namespace_(const std::string &ns);
|
||||||
@@ -42,6 +43,7 @@ public:
|
|||||||
namespace_ &operator=(namespace_ &&right) noexcept = default;
|
namespace_ &operator=(namespace_ &&right) noexcept = default;
|
||||||
|
|
||||||
friend bool operator==(const namespace_ &left, const namespace_ &right);
|
friend bool operator==(const namespace_ &left, const namespace_ &right);
|
||||||
|
friend bool operator<(const namespace_ &left, const namespace_ &right);
|
||||||
|
|
||||||
namespace_(std::initializer_list<std::string> ns);
|
namespace_(std::initializer_list<std::string> ns);
|
||||||
|
|
||||||
@@ -67,7 +69,10 @@ public:
|
|||||||
|
|
||||||
void pop_back();
|
void pop_back();
|
||||||
|
|
||||||
|
type_safe::optional<namespace_> parent() const;
|
||||||
|
|
||||||
bool starts_with(const namespace_ &right) const;
|
bool starts_with(const namespace_ &right) const;
|
||||||
|
bool ends_with(const namespace_ &right) const;
|
||||||
namespace_ common_path(const namespace_ &right) const;
|
namespace_ common_path(const namespace_ &right) const;
|
||||||
namespace_ relative_to(const namespace_ &right) const;
|
namespace_ relative_to(const namespace_ &right) const;
|
||||||
std::string relative(const std::string &name) const;
|
std::string relative(const std::string &name) const;
|
||||||
@@ -85,3 +90,22 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace std {
|
||||||
|
|
||||||
|
template <> struct hash<clanguml::common::model::namespace_> {
|
||||||
|
std::size_t operator()(const clanguml::common::model::namespace_ &key) const
|
||||||
|
{
|
||||||
|
using clanguml::common::model::namespace_;
|
||||||
|
|
||||||
|
std::size_t seed = key.size();
|
||||||
|
for (const auto &ns : key) {
|
||||||
|
seed ^= std::hash<std::string>{}(ns) + 0x6a3712b5 + (seed << 6) +
|
||||||
|
(seed >> 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
return seed;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
#include <cppast/cpp_template.hpp>
|
#include <cppast/cpp_template.hpp>
|
||||||
#include <spdlog/spdlog.h>
|
#include <spdlog/spdlog.h>
|
||||||
|
|
||||||
|
#include <class_diagram/model/class_template.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
namespace clanguml {
|
namespace clanguml {
|
||||||
@@ -124,7 +125,9 @@ std::string ns(const cppast::cpp_entity &e)
|
|||||||
auto it = e.parent();
|
auto it = e.parent();
|
||||||
while (it) {
|
while (it) {
|
||||||
if (it.value().kind() == cppast::cpp_entity_kind::namespace_t) {
|
if (it.value().kind() == cppast::cpp_entity_kind::namespace_t) {
|
||||||
if (!it.value().name().empty())
|
const auto &ns =
|
||||||
|
static_cast<const cppast::cpp_namespace &>(it.value());
|
||||||
|
if (!ns.name().empty() && !ns.is_inline())
|
||||||
res.push_back(it.value().name());
|
res.push_back(it.value().name());
|
||||||
}
|
}
|
||||||
it = it.value().parent();
|
it = it.value().parent();
|
||||||
@@ -294,6 +297,83 @@ const cppast::cpp_type &unreferenced(const cppast::cpp_type &t)
|
|||||||
|
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<class_diagram::model::class_template>
|
||||||
|
parse_unexposed_template_params(const std::string ¶ms,
|
||||||
|
std::function<std::string(const std::string &)> ns_resolve)
|
||||||
|
{
|
||||||
|
using class_diagram::model::class_template;
|
||||||
|
|
||||||
|
std::vector<class_template> res;
|
||||||
|
|
||||||
|
int nested_template_level{0};
|
||||||
|
auto it = params.begin();
|
||||||
|
|
||||||
|
std::string type{};
|
||||||
|
std::vector<class_template> nested_params;
|
||||||
|
bool complete_class_template{false};
|
||||||
|
|
||||||
|
while (it != params.end()) {
|
||||||
|
if (*it == '<') {
|
||||||
|
int nested_level{0};
|
||||||
|
auto bracket_match_begin = it + 1;
|
||||||
|
auto bracket_match_end = bracket_match_begin;
|
||||||
|
while (bracket_match_end != params.end()) {
|
||||||
|
if (*bracket_match_end == '<') {
|
||||||
|
nested_level++;
|
||||||
|
}
|
||||||
|
else if (*bracket_match_end == '>') {
|
||||||
|
if (nested_level > 0)
|
||||||
|
nested_level--;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
}
|
||||||
|
bracket_match_end++;
|
||||||
|
}
|
||||||
|
std::string nested_params_str(
|
||||||
|
bracket_match_begin, bracket_match_end);
|
||||||
|
nested_params =
|
||||||
|
parse_unexposed_template_params(nested_params_str, ns_resolve);
|
||||||
|
if (nested_params.empty())
|
||||||
|
nested_params.emplace_back(class_template{nested_params_str});
|
||||||
|
it = bracket_match_end - 1;
|
||||||
|
}
|
||||||
|
else if (*it == '>') {
|
||||||
|
complete_class_template = true;
|
||||||
|
}
|
||||||
|
else if (*it == ',') {
|
||||||
|
complete_class_template = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
type += *it;
|
||||||
|
}
|
||||||
|
if (complete_class_template) {
|
||||||
|
class_template t;
|
||||||
|
t.set_type(ns_resolve(clanguml::util::trim(type)));
|
||||||
|
type = "";
|
||||||
|
t.template_params_ = std::move(nested_params);
|
||||||
|
|
||||||
|
res.emplace_back(std::move(t));
|
||||||
|
complete_class_template = false;
|
||||||
|
}
|
||||||
|
it++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!type.empty()) {
|
||||||
|
class_template t;
|
||||||
|
t.set_type(ns_resolve(clanguml::util::trim(type)));
|
||||||
|
type = "";
|
||||||
|
t.template_params_ = std::move(nested_params);
|
||||||
|
|
||||||
|
res.emplace_back(std::move(t));
|
||||||
|
complete_class_template = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace util
|
} // namespace util
|
||||||
} // namespace cx
|
} // namespace cx
|
||||||
} // namespace clanguml
|
} // namespace clanguml
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include <cppast/cpp_entity.hpp>
|
#include <cppast/cpp_entity.hpp>
|
||||||
#include <cppast/cpp_type.hpp>
|
#include <cppast/cpp_type.hpp>
|
||||||
|
|
||||||
|
#include <class_diagram/model/class_template.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace clanguml {
|
namespace clanguml {
|
||||||
@@ -66,6 +67,11 @@ std::pair<common::model::namespace_, std::string> split_ns(
|
|||||||
const std::string &full_name);
|
const std::string &full_name);
|
||||||
|
|
||||||
bool is_inside_class(const cppast::cpp_entity &e);
|
bool is_inside_class(const cppast::cpp_entity &e);
|
||||||
|
|
||||||
|
std::vector<class_diagram::model::class_template>
|
||||||
|
parse_unexposed_template_params(const std::string ¶ms,
|
||||||
|
std::function<std::string(const std::string &)> ns_resolve);
|
||||||
|
|
||||||
} // namespace util
|
} // namespace util
|
||||||
} // namespace cx
|
} // namespace cx
|
||||||
} // namespace clanguml
|
} // namespace clanguml
|
||||||
|
|||||||
@@ -158,6 +158,16 @@ bool starts_with(const std::vector<T> &col, const std::vector<T> &prefix)
|
|||||||
std::vector<std::string>(col.begin(), col.begin() + prefix.size());
|
std::vector<std::string>(col.begin(), col.begin() + prefix.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool ends_with(const std::vector<T> &col, const std::vector<T> &suffix)
|
||||||
|
{
|
||||||
|
if (suffix.size() > col.size())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return std::vector<std::string>(suffix.rbegin(), suffix.rend()) ==
|
||||||
|
std::vector<std::string>(col.rbegin(), col.rbegin() + suffix.size());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Removes prefix sequence of elements from the beggining of col.
|
* @brief Removes prefix sequence of elements from the beggining of col.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ output_directory: puml
|
|||||||
diagrams:
|
diagrams:
|
||||||
t00038_class:
|
t00038_class:
|
||||||
type: class
|
type: class
|
||||||
generate_packages: true
|
generate_packages: false
|
||||||
glob:
|
glob:
|
||||||
- ../../tests/t00038/t00038.cc
|
- ../../tests/t00038/t00038.cc
|
||||||
using_namespace:
|
using_namespace:
|
||||||
@@ -11,3 +11,4 @@ diagrams:
|
|||||||
include:
|
include:
|
||||||
namespaces:
|
namespaces:
|
||||||
- clanguml::t00038
|
- clanguml::t00038
|
||||||
|
- thirdparty::ns1
|
||||||
@@ -3,6 +3,19 @@
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
namespace thirdparty {
|
||||||
|
namespace ns1 {
|
||||||
|
enum class color_t { red, green, blue };
|
||||||
|
|
||||||
|
struct E {
|
||||||
|
};
|
||||||
|
} // namespace ns1
|
||||||
|
namespace ns2 {
|
||||||
|
struct F {
|
||||||
|
};
|
||||||
|
} // namespace ns2
|
||||||
|
} // namespace thirdparty
|
||||||
|
|
||||||
namespace clanguml {
|
namespace clanguml {
|
||||||
namespace t00038 {
|
namespace t00038 {
|
||||||
|
|
||||||
@@ -21,13 +34,19 @@ struct key_t {
|
|||||||
|
|
||||||
template <typename T> struct map;
|
template <typename T> struct map;
|
||||||
|
|
||||||
template <>
|
using namespace thirdparty::ns1;
|
||||||
struct map<std::integral_constant<property_t, property_t::property_a>> : A {
|
|
||||||
|
template <> struct map<std::integral_constant<color_t, color_t::red>> : E {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct map<
|
struct map<std::integral_constant<clanguml::t00038::property_t,
|
||||||
std::vector<std::integral_constant<property_t, property_t::property_b>>>
|
clanguml::t00038::property_t::property_a>> : A {
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct map<std::vector<
|
||||||
|
std::integral_constant<t00038::property_t, t00038::property_t::property_b>>>
|
||||||
: B {
|
: B {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ TEST_CASE("t00038", "[test-case][class]")
|
|||||||
auto diagram = config.diagrams["t00038_class"];
|
auto diagram = config.diagrams["t00038_class"];
|
||||||
|
|
||||||
REQUIRE(diagram->name == "t00038_class");
|
REQUIRE(diagram->name == "t00038_class");
|
||||||
REQUIRE(diagram->generate_packages() == true);
|
REQUIRE(diagram->generate_packages() == false);
|
||||||
|
|
||||||
auto model = generate_class_diagram(db, diagram);
|
auto model = generate_class_diagram(db, diagram);
|
||||||
|
|
||||||
@@ -38,6 +38,7 @@ TEST_CASE("t00038", "[test-case][class]")
|
|||||||
REQUIRE_THAT(puml, IsClass(_A("A")));
|
REQUIRE_THAT(puml, IsClass(_A("A")));
|
||||||
REQUIRE_THAT(puml, IsClass(_A("B")));
|
REQUIRE_THAT(puml, IsClass(_A("B")));
|
||||||
REQUIRE_THAT(puml, IsClass(_A("C")));
|
REQUIRE_THAT(puml, IsClass(_A("C")));
|
||||||
|
REQUIRE_THAT(puml, IsClass(_A("thirdparty::ns1::E")));
|
||||||
REQUIRE_THAT(puml, IsClass(_A("key_t")));
|
REQUIRE_THAT(puml, IsClass(_A("key_t")));
|
||||||
REQUIRE_THAT(puml, IsClassTemplate("map", "T"));
|
REQUIRE_THAT(puml, IsClassTemplate("map", "T"));
|
||||||
REQUIRE_THAT(puml,
|
REQUIRE_THAT(puml,
|
||||||
@@ -59,19 +60,36 @@ TEST_CASE("t00038", "[test-case][class]")
|
|||||||
_A("map<std::map<key_t,std::vector<std::integral_constant<property_"
|
_A("map<std::map<key_t,std::vector<std::integral_constant<property_"
|
||||||
"t,property_t::property_c>>>>")));
|
"t,property_t::property_c>>>>")));
|
||||||
|
|
||||||
// TODO: Add parsing of unexposed template arguments to infer
|
|
||||||
// additional relationships
|
|
||||||
/*
|
|
||||||
REQUIRE_THAT(puml,
|
REQUIRE_THAT(puml,
|
||||||
IsDependency(_A("map<std::integral_constant<property_t,property_t::"
|
IsDependency(_A("map<std::integral_constant<property_t,property_t::"
|
||||||
"property_a>>"),
|
"property_a>>"),
|
||||||
_A("property_t")));
|
_A("property_t")));
|
||||||
|
|
||||||
|
REQUIRE_THAT(puml,
|
||||||
|
IsDependency(_A("map<"
|
||||||
|
"std::vector<std::integral_constant<property_t,"
|
||||||
|
"property_t::property_b>>>"),
|
||||||
|
_A("property_t")));
|
||||||
|
|
||||||
|
REQUIRE_THAT(puml,
|
||||||
|
IsDependency(_A("map<std::map<key_t,std::vector<std::integral_constant<"
|
||||||
|
"property_t,property_t::property_c>>>>"),
|
||||||
|
_A("property_t")));
|
||||||
|
|
||||||
REQUIRE_THAT(puml,
|
REQUIRE_THAT(puml,
|
||||||
IsDependency(_A("map<std::map<key_t,std::vector<std::integral_constant<"
|
IsDependency(_A("map<std::map<key_t,std::vector<std::integral_constant<"
|
||||||
"property_t,property_t::property_c>>>>"),
|
"property_t,property_t::property_c>>>>"),
|
||||||
_A("key_t")));
|
_A("key_t")));
|
||||||
*/
|
|
||||||
|
REQUIRE_THAT(puml,
|
||||||
|
IsDependency(_A("map<std::integral_constant<thirdparty::ns1::color_t,"
|
||||||
|
"thirdparty::ns1::color_t::red>>"),
|
||||||
|
_A("thirdparty::ns1::color_t")));
|
||||||
|
|
||||||
|
REQUIRE_THAT(puml,
|
||||||
|
IsBaseClass(_A("thirdparty::ns1::E"),
|
||||||
|
_A("map<std::integral_constant<thirdparty::ns1::color_t,"
|
||||||
|
"thirdparty::ns1::color_t::red>>")));
|
||||||
|
|
||||||
save_puml(
|
save_puml(
|
||||||
"./" + config.output_directory() + "/" + diagram->name + ".puml", puml);
|
"./" + config.output_directory() + "/" + diagram->name + ".puml", puml);
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#include "util/util.h"
|
#include "util/util.h"
|
||||||
|
|
||||||
#define CATCH_CONFIG_RUNNER
|
#define CATCH_CONFIG_RUNNER
|
||||||
|
#define CATCH_CONFIG_CONSOLE_WIDTH 512
|
||||||
|
|
||||||
#include "catch.h"
|
#include "catch.h"
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
#define CATCH_CONFIG_MAIN
|
#define CATCH_CONFIG_MAIN
|
||||||
|
|
||||||
#include "util/util.h"
|
#include "util/util.h"
|
||||||
|
#include <cx/util.h>
|
||||||
|
|
||||||
#include "catch.h"
|
#include "catch.h"
|
||||||
|
|
||||||
@@ -35,19 +36,6 @@ TEST_CASE("Test split", "[unit-test]")
|
|||||||
|
|
||||||
CHECK(split("std::vector::detail::", "::") == C{"std", "vector", "detail"});
|
CHECK(split("std::vector::detail::", "::") == C{"std", "vector", "detail"});
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// TEST_CASE("Test ns_relative", "[unit-test]")
|
|
||||||
//{
|
|
||||||
// using namespace clanguml::util;
|
|
||||||
//
|
|
||||||
// CHECK(ns_relative({}, "std::vector") == "std::vector");
|
|
||||||
// CHECK(ns_relative({"std"}, "std::vector") == "vector");
|
|
||||||
// CHECK(ns_relative({"std"}, "const std::vector&") == "const vector&");
|
|
||||||
// CHECK(ns_relative({"std", "clanguml::t0"},
|
|
||||||
// "static const std::vector<clanguml::t0::a>&") ==
|
|
||||||
// "static const vector<a>&");
|
|
||||||
// CHECK(ns_relative({"clanguml::t0"}, "clanguml::t0") == "t0");
|
|
||||||
//}
|
|
||||||
|
|
||||||
TEST_CASE("Test abbreviate", "[unit-test]")
|
TEST_CASE("Test abbreviate", "[unit-test]")
|
||||||
{
|
{
|
||||||
@@ -80,3 +68,46 @@ TEST_CASE("Test replace_all", "[unit-test]")
|
|||||||
|
|
||||||
CHECK(text == orig);
|
CHECK(text == orig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Test parse_unexposed_template_params", "[unit-test]")
|
||||||
|
{
|
||||||
|
using namespace clanguml::cx::util;
|
||||||
|
|
||||||
|
const std::string int_template_str{"ns1::ns2::class1<int>"};
|
||||||
|
|
||||||
|
auto int_template = parse_unexposed_template_params(
|
||||||
|
int_template_str, [](const auto &n) { return n; });
|
||||||
|
|
||||||
|
CHECK(int_template.size() == 1);
|
||||||
|
CHECK(int_template[0].template_params_.size() == 1);
|
||||||
|
CHECK(int_template[0].type() == "ns1::ns2::class1");
|
||||||
|
CHECK(int_template[0].template_params_[0].type() == "int");
|
||||||
|
|
||||||
|
const std::string int_int_template_str{"ns1::ns2::class1<int, int>"};
|
||||||
|
|
||||||
|
auto int_int_template = parse_unexposed_template_params(
|
||||||
|
int_int_template_str, [](const auto &n) { return n; });
|
||||||
|
|
||||||
|
CHECK(int_int_template.size() == 1);
|
||||||
|
CHECK(int_int_template[0].template_params_.size() == 2);
|
||||||
|
CHECK(int_int_template[0].type() == "ns1::ns2::class1");
|
||||||
|
CHECK(int_int_template[0].template_params_[0].type() == "int");
|
||||||
|
CHECK(int_int_template[0].template_params_[1].type() == "int");
|
||||||
|
|
||||||
|
const std::string nested_template_str{
|
||||||
|
"class1<int, ns1::class2<int, std::vector<std::string>>>"};
|
||||||
|
|
||||||
|
auto nested_template = parse_unexposed_template_params(
|
||||||
|
nested_template_str, [](const auto &n) { return n; });
|
||||||
|
|
||||||
|
CHECK(nested_template.size() == 1);
|
||||||
|
CHECK(nested_template[0].template_params_.size() == 2);
|
||||||
|
CHECK(nested_template[0].type() == "class1");
|
||||||
|
CHECK(nested_template[0].template_params_[0].type() == "int");
|
||||||
|
const auto &class2 = nested_template[0].template_params_[1];
|
||||||
|
CHECK(class2.type() == "ns1::class2");
|
||||||
|
CHECK(class2.template_params_[0].type() == "int");
|
||||||
|
CHECK(class2.template_params_[1].type() == "std::vector");
|
||||||
|
CHECK(
|
||||||
|
class2.template_params_[1].template_params_[0].type() == "std::string");
|
||||||
|
}
|
||||||
|
|||||||