Build Assimp from source

This commit is contained in:
Dane Johnson
2021-03-15 13:46:19 -05:00
parent b7a83a2876
commit a41fcbe7f4
2126 changed files with 1385127 additions and 40 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -0,0 +1,645 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="557.00226"
height="451.52655"
id="svg2"
version="1.1"
inkscape:version="0.48.1 "
sodipodi:docname="AssimpAnimation.svg"
inkscape:export-filename="A:\Jonathan\Documents\AssimpAnimation.png"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible">
<path
id="path4020"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6,-0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lend"
style="overflow:visible">
<path
id="path4014"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="521.95938"
inkscape:cy="235.26058"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1525"
inkscape:window-height="905"
inkscape:window-x="223"
inkscape:window-y="47"
inkscape:window-maximized="0"
fit-margin-top="10"
fit-margin-left="10"
fit-margin-right="10"
fit-margin-bottom="10" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-7.4185486,-19.719715)">
<g
id="g3133"
transform="translate(-171.43404,-84.903042)">
<path
inkscape:connector-curvature="0"
id="path2985"
d="m 245.91963,269.53006 0,-64.64286"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path2987"
d="m 245.91963,193.26767 0,-26.75116"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path2989"
d="M 239.99615,202.05734 203.691,232.24794"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path2991"
d="m 253.7539,202.05734 35.54083,25.98684"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path2993"
d="m 241.52479,278.87139 c 0,0 -32.86571,32.48356 -31.33708,32.86572"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path2995"
d="m 250.31446,278.87139 36.68731,28.66196"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
transform="translate(-0.38215944,-113.50137)"
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
sodipodi:ry="2.4840367"
sodipodi:rx="2.4840367"
sodipodi:cy="276.00519"
sodipodi:cx="246.30179"
id="path3003"
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path3017"
sodipodi:cx="246.30179"
sodipodi:cy="276.00519"
sodipodi:rx="2.4840367"
sodipodi:ry="2.4840367"
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
transform="translate(-0.38215944,-1.5286383)" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path3019"
sodipodi:cx="246.30179"
sodipodi:cy="276.00519"
sodipodi:rx="2.4840367"
sodipodi:ry="2.4840367"
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
transform="translate(-0.38215944,-76.81406)" />
<path
transform="translate(47.769935,-44.330504)"
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
sodipodi:ry="2.4840367"
sodipodi:rx="2.4840367"
sodipodi:cy="276.00519"
sodipodi:cx="246.30179"
id="path3021"
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path3023"
sodipodi:cx="246.30179"
sodipodi:cy="276.00519"
sodipodi:rx="2.4840367"
sodipodi:ry="2.4840367"
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
transform="translate(45.476978,36.305146)" />
<text
sodipodi:linespacing="125%"
id="text3025"
y="272.75684"
x="256.04684"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
id="tspan3029"
y="272.75684"
x="256.04684"
sodipodi:role="line">Pelvis</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3033"
y="194.03198"
x="254.5182"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="194.03198"
x="254.5182"
id="tspan3035"
sodipodi:role="line">Spine</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3037"
y="159.63763"
x="252.98958"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="159.63763"
x="252.98958"
id="tspan3039"
sodipodi:role="line">Head</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3041"
y="230.33714"
x="303.8168"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="230.33714"
x="303.8168"
id="tspan3043"
sodipodi:role="line">Arm</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3045"
y="310.59064"
x="301.90598"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="310.59064"
x="301.90598"
id="tspan3047"
sodipodi:role="line">Leg</tspan></text>
</g>
<text
sodipodi:linespacing="125%"
id="text3049"
y="102.99821"
x="298.08438"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
id="tspan3051"
y="102.99821"
x="298.08438"
sodipodi:role="line">Pelvis</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3057"
y="193.95218"
x="392.85999"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="193.95218"
x="392.85999"
id="tspan3059"
sodipodi:role="line">Head</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3061"
y="195.09868"
x="316.0459"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="195.09868"
x="316.0459"
id="tspan3063"
sodipodi:role="line">Arm</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3053"
y="147.85847"
x="346.23648"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="147.85847"
x="346.23648"
id="tspan3055"
sodipodi:role="line">Spine</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3065"
y="147.73885"
x="260.63275"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="147.73885"
x="260.63275"
id="tspan3067"
sodipodi:role="line">Leg</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 272.09755,137.39258 38.21594,-28.2798 43.56619,25.22252"
id="path3129"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 327.89283,184.01604 33.63003,-29.80844 40.50891,25.98684"
id="path3131"
inkscape:connector-curvature="0" />
<text
sodipodi:linespacing="125%"
id="text5122"
y="63.800404"
x="300.70157"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
id="tspan5126"
y="63.800404"
x="300.70157"
sodipodi:role="line">Root</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5130"
y="291.58145"
x="329.14432"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="291.58145"
x="329.14432"
id="tspan5132"
sodipodi:role="line">Root</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5134"
y="290.80313"
x="56.859642"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="290.80313"
x="56.859642"
id="tspan5136"
sodipodi:role="line">Root</tspan></text>
<path
inkscape:connector-curvature="0"
id="path5138"
d="m 311.62686,90.551568 0,-22.16525"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="54.242455"
y="335.71423"
id="text3172"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="54.242455"
y="335.71423"
id="tspan3174">Pelvis</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="148.91333"
y="426.66821"
id="text3176"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3178"
x="148.91333"
y="426.66821">Head</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="72.099274"
y="427.8147"
id="text3180"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3182"
x="72.099274"
y="427.8147">Arm</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="102.28986"
y="380.57449"
id="text3184"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3186"
x="102.28986"
y="380.57449">Spine</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="16.686127"
y="380.45486"
id="text3188"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3190"
x="16.686127"
y="380.45486">Leg</tspan></text>
<path
inkscape:connector-curvature="0"
id="path3192"
d="m 28.15094,370.10858 38.21594,-28.2798 43.56619,25.22252"
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0" />
<path
inkscape:connector-curvature="0"
id="path3194"
d="m 83.94622,416.73204 33.63003,-29.80844 40.50891,25.98684"
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 121.39785,365.90483 c 0,0 -4.96808,-33.63004 -35.15868,-34.77652"
id="path3982"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 20.8899,367.43346 c 0,0 -4.20375,-34.01219 29.42628,-34.77651"
id="path3984"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 164.19971,415.2034 c 0,0 1.52864,-38.59811 -27.13332,-37.83379"
id="path3986"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 79.74246,417.87852 c 0,0 -8.78966,-38.98027 19.10798,-39.36243"
id="path3988"
inkscape:connector-curvature="0" />
<text
sodipodi:linespacing="125%"
id="text4804"
y="337.64984"
x="326.52713"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
id="tspan4806"
y="337.64984"
x="326.52713"
sodipodi:role="line">Pelvis</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4808"
y="428.60385"
x="421.3027"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="428.60385"
x="421.3027"
id="tspan4810"
sodipodi:role="line">Head</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4812"
y="429.75034"
x="344.48862"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="429.75034"
x="344.48862"
id="tspan4814"
sodipodi:role="line">Arm</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4816"
y="382.51013"
x="374.67923"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="382.51013"
x="374.67923"
id="tspan4818"
sodipodi:role="line">Spine</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4820"
y="382.3905"
x="289.0755"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="382.3905"
x="289.0755"
id="tspan4822"
sodipodi:role="line">Leg</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0"
d="m 300.54031,372.04421 38.21594,-28.2798 43.56619,25.22252"
id="path4824"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0"
d="m 356.33559,418.66767 33.63003,-29.80844 40.50891,25.98684"
id="path4826"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 323.88885,289.99516 c 0,0 -27.54265,43.32913 -27.92481,82.69155"
id="path4828"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 354.56558,294.70096 c 18.53473,0.57324 34.64538,35.94821 34.26322,77.6036"
id="path4830"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 355.01331,287.12333 c 62.29199,-11.46478 81.20326,81.74179 81.96758,129.12957"
id="path4832"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 327.70578,296.87403 c -13.03513,36.78469 -7.75513,93.90861 14.88172,125.87558"
id="path4836"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="312.99045"
y="262.5433"
id="text5022"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="312.99045"
y="262.5433"
id="tspan5030">Offset Matrices</tspan></text>
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="74.542519"
y="38.309559"
id="text5034"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5036"
x="74.542519"
y="38.309559">Model</tspan></text>
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="299.99161"
y="38.309559"
id="text5038"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5040"
x="299.99161"
y="38.309559">Bone Hierarchy</tspan></text>
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="38.920315"
y="263.29245"
id="text5042"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5044"
x="38.920315"
y="263.29245">Node Transformations</tspan></text>
<g
id="g5110"
transform="translate(-25.222526,2.2929569)">
<text
sodipodi:linespacing="125%"
id="text5082"
y="453.24557"
x="46.994602"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
id="tspan5086"
y="453.24557"
x="46.994602"
sodipodi:role="line">FinalTransform = Offset x (Scale x Rot x Trans) x (Scale x Rot x Trans) x (Scale x Rot x Trans) </tspan></text>
<text
sodipodi:linespacing="125%"
id="text5090"
y="457.26581"
x="115.63354"
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="457.26581"
x="115.63354"
id="tspan5092"
sodipodi:role="line">Head</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5098"
y="457.36346"
x="432.06158"
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="457.36346"
x="432.06158"
id="tspan5100"
sodipodi:role="line">Spine</tspan></text>
<text
xml:space="preserve"
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="304.03815"
y="457.26581"
id="text5102"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5104"
x="304.03815"
y="457.26581">Head</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5106"
y="457.26581"
x="174.86826"
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="457.26581"
x="174.86826"
id="tspan5108"
sodipodi:role="line">Head</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5383"
y="457.26581"
x="558.59253"
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="457.26581"
x="558.59253"
id="tspan5385"
sodipodi:role="line">Pelvis</tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0"
d="m 67.784935,297.68201 0,25.98684"
id="path5159"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path5161"
d="m 340.06961,298.44633 0,25.98684"
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="m 58.4704,297.00642 c 20.254453,-17.96151 26.369005,-35.923 6.878872,-38.98027"
id="path5195"
inkscape:connector-curvature="0"
transform="translate(17.418549,29.719715)"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5381"
d="m 349.70149,296.32232 c -0.65158,-1.04253 25.97218,13.94397 2.37637,32.74583"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

42
thirdparty/assimp/doc/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,42 @@
find_package( Doxygen REQUIRED )
set( HTML_OUTPUT "AssimpDoc_Html" CACHE STRING "Output directory for generated HTML documentation. Defaults to AssimpDoc_Html." )
# Enable Microsoft CHM help style only on Windows
set( MICROSOFT_HELP_WORKSHOP "NO")
if( MSVC )
set( MICROSOFT_HELP_WORKSHOP "YES" )
endif( MSVC )
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
@ONLY
)
add_custom_target(
docs ALL
DEPENDS docs.done
)
add_custom_command(
OUTPUT docs.done
COMMAND ${DOXYGEN_EXECUTABLE}
COMMAND ${CMAKE_COMMAND} -E touch docs.done
COMMENT "Generating assimp documentation"
VERBATIM
)
if( DEFINED CMAKE_INSTALL_DOCDIR )
install(
DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${HTML_OUTPUT}
DESTINATION ${CMAKE_INSTALL_DOCDIR}
)
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/AssimpDoc_Html/AnimationOverview.png
${CMAKE_CURRENT_SOURCE_DIR}/AssimpDoc_Html/AnimationOverview.svg
${CMAKE_CURRENT_SOURCE_DIR}/AssimpDoc_Html/dragonsplash.png
DESTINATION ${CMAKE_INSTALL_DOCDIR}/${HTML_OUTPUT}
)
endif( DEFINED CMAKE_INSTALL_DOCDIR )

1876
thirdparty/assimp/doc/Doxyfile.in vendored Normal file

File diff suppressed because it is too large Load Diff

2368
thirdparty/assimp/doc/Doxyfile_Cmd vendored Normal file

File diff suppressed because it is too large Load Diff

40
thirdparty/assimp/doc/Preamble.txt vendored Normal file
View File

@@ -0,0 +1,40 @@
/*
---------------------------------------------------------------------------
Open Asset Import Library (assimp)
---------------------------------------------------------------------------
Copyright (c) 2006-2017, assimp team
All rights reserved.
Redistribution and use of this software in source and binary forms,
with or without modification, are permitted provided that the following
conditions are met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other
materials provided with the distribution.
* Neither the name of the assimp team, nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior
written permission of the assimp team.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------
*/

View File

@@ -0,0 +1,354 @@
<HTML>
<HEAD>
<META name="description"
content="Violet UML Editor cross format document" />
<META name="keywords" content="Violet, UML" />
<META charset="UTF-8" />
<SCRIPT type="text/javascript">
function switchVisibility() {
var obj = document.getElementById("content");
obj.style.display = (obj.style.display == "block") ? "none" : "block";
}
</SCRIPT>
</HEAD>
<BODY>
This file was generated with Violet UML Editor 2.1.0.
&nbsp;&nbsp;(&nbsp;<A href=# onclick="switchVisibility()">View Source</A>&nbsp;/&nbsp;<A href="http://sourceforge.net/projects/violet/files/violetumleditor/" target="_blank">Download Violet</A>&nbsp;)
<BR />
<BR />
<SCRIPT id="content" type="text/xml"><![CDATA[<ClassDiagramGraph id="1">
<nodes id="2">
<ClassNode id="3">
<children id="4"/>
<location class="Point2D.Double" id="5" x="50.0" y="30.0"/>
<id id="6" value="7c26c2df-f2ca-4cb2-bf1b-2784bd216bef"/>
<revision>1</revision>
<backgroundColor id="7">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="8">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="8"/>
<name id="9" justification="1" size="3" underlined="false">
<text>Importer</text>
</name>
<attributes id="10" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="11" justification="0" size="4" underlined="false">
<text>RegisterLoader()
UnregisterLoader()
ReadFile()</text>
</methods>
</ClassNode>
<ClassNode id="12">
<children id="13"/>
<location class="Point2D.Double" id="14" x="310.0" y="60.0"/>
<id id="15" value="ec5caa24-0fc9-494d-9594-c9fd6c8a7938"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="16" justification="1" size="3" underlined="false">
<text>IOSystem</text>
</name>
<attributes id="17" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="18" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
<ClassNode id="19">
<children id="20"/>
<location class="Point2D.Double" id="21" x="70.0" y="230.0"/>
<id id="22" value="3cae5d2e-e369-4671-b727-453c141279d3"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="23" justification="1" size="3" underlined="false">
<text>BaseImporter</text>
</name>
<attributes id="24" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="25" justification="0" size="4" underlined="false">
<text>CanRead()
InternRead()</text>
</methods>
</ClassNode>
<ClassNode id="26">
<children id="27"/>
<location class="Point2D.Double" id="28" x="310.0" y="170.0"/>
<id id="29" value="760c6c44-b4d1-4cca-a3ba-56674ae418f4"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="30" justification="1" size="3" underlined="false">
<text>ObjImporter</text>
</name>
<attributes id="31" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="32" justification="0" size="4" underlined="false">
<text>CanRead()
InternRead()</text>
</methods>
</ClassNode>
<ClassNode id="33">
<children id="34"/>
<location class="Point2D.Double" id="35" x="310.0" y="330.0"/>
<id id="36" value="2db664a4-0d36-4c0a-9371-eac19639744a"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="37" justification="1" size="3" underlined="false">
<text>glTFImporter</text>
</name>
<attributes id="38" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="39" justification="0" size="4" underlined="false">
<text>CanRead()
InternRead()</text>
</methods>
</ClassNode>
</nodes>
<edges id="40">
<InheritanceEdge id="41">
<start class="ClassNode" reference="26"/>
<end class="ClassNode" reference="19"/>
<startLocation class="Point2D.Double" id="42" x="80.0" y="30.0"/>
<endLocation class="Point2D.Double" id="43" x="70.0" y="50.0"/>
<transitionPoints id="44"/>
<id id="45" value="8dae8cbd-d22c-4eef-958f-e53ad15fa12a"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InheritanceEdge>
<InheritanceEdge id="46">
<start class="ClassNode" reference="33"/>
<end class="ClassNode" reference="19"/>
<startLocation class="Point2D.Double" id="47" x="10.0" y="40.0"/>
<endLocation class="Point2D.Double" id="48" x="50.0" y="100.0"/>
<transitionPoints id="49"/>
<id id="50" value="cc174e4d-3146-44ad-95b6-de040a4f1c04"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InheritanceEdge>
<NoteEdge id="51">
<start class="ClassNode" reference="12"/>
<end class="ClassNode" reference="12"/>
<startLocation class="Point2D.Double" id="52" x="80.0" y="50.0"/>
<endLocation class="Point2D.Double" reference="52"/>
<transitionPoints id="53"/>
<id id="54" value="8d646a10-5869-47e4-8a59-dd05ff712f85"/>
<revision>1</revision>
</NoteEdge>
<AssociationEdge id="55">
<start class="ClassNode" reference="12"/>
<end class="ClassNode" reference="3"/>
<startLocation class="Point2D.Double" id="56" x="20.0" y="40.0"/>
<endLocation class="Point2D.Double" id="57" x="20.0" y="80.0"/>
<transitionPoints id="58"/>
<id id="59" value="8486c83a-57e2-4747-86ea-e93b3a2d7aed"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</AssociationEdge>
<AssociationEdge id="60">
<start class="ClassNode" reference="19"/>
<end class="ClassNode" reference="3"/>
<startLocation class="Point2D.Double" id="61" x="40.0" y="10.0"/>
<endLocation class="Point2D.Double" id="62" x="60.0" y="130.0"/>
<transitionPoints id="63"/>
<id id="64" value="806bd5af-014e-4047-8219-8e70428cd238"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</AssociationEdge>
</edges>
</ClassDiagramGraph>]]></SCRIPT>
<BR />
<BR />
<IMG alt="embedded diagram image" src="data:image/png;base64,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
jy2hMWgAAAAASUVORK5C" />
</BODY>
</HTML>

View File

@@ -0,0 +1,648 @@
<HTML>
<HEAD>
<META name="description"
content="Violet UML Editor cross format document" />
<META name="keywords" content="Violet, UML" />
<META charset="UTF-8" />
<SCRIPT type="text/javascript">
function switchVisibility() {
var obj = document.getElementById("content");
obj.style.display = (obj.style.display == "block") ? "none" : "block";
}
</SCRIPT>
</HEAD>
<BODY>
This file was generated with Violet UML Editor 2.1.0.
&nbsp;&nbsp;(&nbsp;<A href=# onclick="switchVisibility()">View Source</A>&nbsp;/&nbsp;<A href="http://sourceforge.net/projects/violet/files/violetumleditor/" target="_blank">Download Violet</A>&nbsp;)
<BR />
<BR />
<SCRIPT id="content" type="text/xml"><![CDATA[<ClassDiagramGraph id="1">
<nodes id="2">
<ClassNode id="3">
<children id="4"/>
<location class="Point2D.Double" id="5" x="270.0" y="200.0"/>
<id id="6" value="8ccad607-14e2-4eec-836e-b25f61cfa2ea"/>
<revision>1</revision>
<backgroundColor id="7">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="8">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="8"/>
<name id="9" justification="1" size="3" underlined="false">
<text>Assimpo::Exporter</text>
</name>
<attributes id="10" justification="0" size="4" underlined="false">
<text>aiScene* mScene;
IOSystem* mIOHandler;
struct ExportFormatEntry {
aiExportFormatDesc mDescription;
fpExportFunc mExportFunction;
};
</text>
</attributes>
<methods id="11" justification="0" size="4" underlined="false">
<text>const aiExportDataBlob* ExportToBlob( const aiScene* pScene, ... );
const aiExportDataBlob* ExportToBlob( const aiScene* pScene, ...);
aiReturn Export( const aiScene* pScene, ... );
aiReturn Export( const aiScene* pScene, ...);
</text>
</methods>
</ClassNode>
<ClassNode id="12">
<children id="13"/>
<location class="Point2D.Double" id="14" x="760.0" y="100.0"/>
<id id="15" value="c2ac589d-2d10-4a82-b77f-df3c3232086a"/>
<revision>1</revision>
<backgroundColor id="16">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="17">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="17"/>
<name id="18" justification="1" size="3" underlined="false">
<text>IOSystem</text>
</name>
<attributes id="19" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="20" justification="0" size="4" underlined="false">
<text>bool Exists( const std::string&amp; pFile) const;
bool Exists( const char* pFile) const;
virtual char getOsSeparator() const;
virtual IOStream* Open(const char* pFile,
const char* pMode = &quot;rb&quot;);
IOStream* Open(const std::string&amp; pFile, const std::string&amp; pMode = std::string(&quot;rb&quot;));
void Close( IOStream* pFile);
</text>
</methods>
</ClassNode>
<ClassNode id="21">
<children id="22"/>
<location class="Point2D.Double" id="23" x="780.0" y="390.0"/>
<id id="24" value="543d8402-9358-46ed-abd8-77935414c423"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="25" justification="1" size="3" underlined="false">
<text>ObjExporter</text>
</name>
<attributes id="26" justification="0" size="4" underlined="false">
<text>File contains function pointer:
ExportSceneObj</text>
</attributes>
<methods id="27" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
</nodes>
<edges id="28">
<NoteEdge id="29">
<start class="ClassNode" reference="3"/>
<end class="ClassNode" reference="12"/>
<startLocation class="Point2D.Double" id="30" x="130.0" y="70.0"/>
<endLocation class="Point2D.Double" id="31" x="120.0" y="70.0"/>
<transitionPoints id="32"/>
<id id="33" value="32e48b3f-86c7-427a-9d3b-9fa3af2a79f7"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="34">
<start class="ClassNode" reference="12"/>
<end class="ClassNode" reference="12"/>
<startLocation class="Point2D.Double" id="35" x="20.0" y="70.0"/>
<endLocation class="Point2D.Double" reference="35"/>
<transitionPoints id="36"/>
<id id="37" value="8b7d1b44-5b84-4bdc-b723-096126d300a4"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="38">
<start class="ClassNode" reference="3"/>
<end class="ClassNode" reference="3"/>
<startLocation class="Point2D.Double" id="39" x="190.0" y="80.0"/>
<endLocation class="Point2D.Double" reference="39"/>
<transitionPoints id="40"/>
<id id="41" value="ac092bcb-c3bb-4ac7-bc77-879556396f91"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="42">
<start class="ClassNode" reference="12"/>
<end class="ClassNode" reference="12"/>
<startLocation class="Point2D.Double" id="43" x="370.0" y="80.0"/>
<endLocation class="Point2D.Double" reference="43"/>
<transitionPoints id="44"/>
<id id="45" value="3d0ad2f3-6f05-491d-b8c8-961212d7a0c9"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="46">
<start class="ClassNode" reference="3"/>
<end class="ClassNode" reference="3"/>
<startLocation class="Point2D.Double" id="47" x="50.0" y="40.0"/>
<endLocation class="Point2D.Double" reference="47"/>
<transitionPoints id="48"/>
<id id="49" value="e8d16ba4-8036-4f77-81ad-aee4e11adbfe"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="50">
<start class="ClassNode" reference="3"/>
<end class="ClassNode" reference="21"/>
<startLocation class="Point2D.Double" id="51" x="300.0" y="250.0"/>
<endLocation class="Point2D.Double" id="52" x="20.0" y="40.0"/>
<transitionPoints id="53"/>
<id id="54" value="c9fa9dbf-f219-4363-9f26-aeea21492a1f"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="55">
<start class="ClassNode" reference="21"/>
<end class="ClassNode" reference="21"/>
<startLocation class="Point2D.Double" id="56" x="60.0" y="90.0"/>
<endLocation class="Point2D.Double" reference="56"/>
<transitionPoints id="57"/>
<id id="58" value="a1addbce-8d05-4a56-9289-d885dedc75c2"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="59">
<start class="ClassNode" reference="21"/>
<end class="ClassNode" reference="21"/>
<startLocation class="Point2D.Double" id="60" x="60.0" y="70.0"/>
<endLocation class="Point2D.Double" reference="60"/>
<transitionPoints id="61"/>
<id id="62" value="2155dc70-7a87-4d23-a8f3-7798f7931872"/>
<revision>1</revision>
</NoteEdge>
<NoteEdge id="63">
<start class="ClassNode" reference="21"/>
<end class="ClassNode" reference="21"/>
<startLocation class="Point2D.Double" id="64" x="80.0" y="60.0"/>
<endLocation class="Point2D.Double" id="65" x="140.0" y="40.0"/>
<transitionPoints id="66"/>
<id id="67" value="5473f8fb-4b83-475c-bb59-6c60b45f5948"/>
<revision>1</revision>
</NoteEdge>
</edges>
</ClassDiagramGraph>]]></SCRIPT>
<BR />
<BR />
<IMG alt="embedded diagram image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAGfCAIAAADu+HdKAABikklEQVR42uy9f0Rk7f/4/2JkZGRe
McZIbolkjJFERm4riSRZK5Gs9ZIVSUbWLdbKWsmS23pJEivJSpasJCtL1kqSm/RZuWVFkrWSSFYy
Mt/ndy6v633u82vO9GP6sY/HH7k6c53rep7rzJzzONe5zrn+lQYAgDvIvwAA4Lbyj8M1ZywAgDtq
2zQCAMDtPz5zsAYAwLYBAADbBgAAbBsAANsGAABsGwDgVz4+/7//gW0DAGDbAACAbQMAALYNAIBt
AwAAtg0AgG1j2wAA2DYAAGDbAACAbQMAYNsAAIBtAwAAtg0AgG0DAAC2DQAA2DYAALYNAADYNgAA
YNsAANg2AABg2wAAgG0DAGDbAABwd237XxlUen19vaGhoTBDY2Pj169f1fLDw8Pu7u6ioqKCggL5
29bWtr297b2K1dXV+vp6dhYAYNsAAPDr2vbff/8tkl1TU3OQoba2VsR6a2tLPmptbZU8Gxsbkl5e
XpZ0RUXFxYQeAADbBgCAX9G2nzx5IolPnz6p5cqqZaGkCwoKJD0yMmJcsaqqShZ++/ZN0js7O5KW
Jevr63V1dZJfxL2+vn5vb8/v9//rf0jO8/Pz/v7+QAZJpFIpHcP09HQikRDFHxoaGhsbKy4uLikp
WVhYYC8DALYNAAB33raDwaAkxIbVcknIv+K+khYJVtnEp1dWVlSG58+fy5I3b95IWv5KenBwsKys
TBJHR0cbGxuSqK2tTf+zb/vFixeSfvfu3fv379UqOsPAwICyduHZs2fb29uSKC0tZS8DALYNAAB3
3rZ9Pp+pNPm3oKBAEnt7e9FoVHdRP3z48MePH58/f5a0GpDd0NAg6a9fv4qdKyl/+/bt6empqQqh
pKRE0mdnZ8rmxc51BpVfpU9OTlRaomIvAwC2DQAAd962lSiLB6vlktB92+lMV/d///vf3377TeX/
/fff1Spiw/v7+/K3vLxclszOzqo+ciEUCr1//95k28rpNUqmjRmc0gAA2DYAANxh21bjtj9+/KiW
Ly0tyb+PHz82Zk6lUqOjo7rPu6OjQ3V1q7EfOs/8/Px//vMfLetGaY5EIsbxKu6GjW0DALYNAAD3
xLa3trZEjuPx+Pfv33/8+CGJQCCg3kkiacmzuLgo6ZWVFUk3NTVJemZmRvdSr62tpf83wvuvv/6S
QiRRWVmZ/l+vuRooMjAwIOnJycmvX79K4sGDB9g2AGDbAABw/21b2NzcbGxs9GdoaGiQf9Xyvb29
jo4ONW5E/nZ1dR0cHMjyo6MjNTJEvxBQJLutra2wsLCgoOD3339Xsj43NycFKrFOpVLqnSSypLm5
WfJj2wCAbQMAwL217Qtzfn5+fHxcXl4uMegXlQAAALYNAIBtXwHBYNDv91dWVr57944dAQCAbQMA
YNsAAIBtAwAAtg0AgG0DAAC2DQAA2DYAALYNAADYNgAAYNsAANg2AABg2wAAgG0DAGDbAACAbQMA
ALYNAIBtAwAAtg0AANg2AAC2DQAA2DYAAGDbAADYNgAAYNsAAIBtAwBg2wAAgG0DAMBVHM0BAOB2
gm0DANwH26YRAABu5/EZ2wYAwLYBAADbBgAAbBsAANsGAABsGwAAsG0AAGwbAACwbQAAwLYBALBt
AADAtgEAANsGAMC2AQAA2wYAAGwbAADbBgAAbBsAALBtAABsGwAAsG0AAMC2AQCwbQAAwLYBAADb
BgDAtgEAANsGAABsGwAA2wYAAGwbAACwbQAAbBsAALBtAADAtgEAsG0AAMC2AQAA2wYA+FWO5gAA
cDvBtgEA7oNt0wgAALfz+IxtAwBg2wAAgG0DAAC2DQCAbQMAALYNAADYNgAAtg0AANg2AABg2wAA
2DYAAGDbAACAbQMAYNsAAIBtAwAAtg0AgG0DAAC2DQAA2DYAALYNAADYNgAAYNsAANg2AABg2wAA
gG0DAGDbAACAbQMAALYNAIBtAwAAtg0AANg2AAC2fZOcn5/flRiuJNTbsL18HwCwbQAAuHrbvqR2
W1f/l4UL6H5VVZV7ve/fv+/s7LzWJsoag0u2XFv1SgpRfPr0qbS0NBQKzc/Pe9+J1v3l5Rsiu2Bu
bi4PX1eP+wIA2wYAgF/Ctq8wPFtSqVRFRcXh4WF+mugC2XJthCu81SCqvb6+vrGxUVJSciW1u3wq
uyAajcruyNvXFQDbBgCAu2fb3759q6qqamhoODg4UAsl0djYWFBQIAu11Nou9GjbTU1Nq6ur6UzP
a3t7uzHb4uKilOnz+eLx+OfPn9OGrlbbT4WJiYlnz56ZqtjZ2YnFYsFg8MOHD+4Bj4yMlJWVyfKP
Hz96iUHjnk2qk4oKCwvfvXvn0kPsXogKr7y83LSuNWbZovr6+lAoNDY2ZozT7/efn5//+PFDtNt2
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
sqSkRP3r3redk21fVQBOdVl3kDWSnNocsG0AAABsOzuFhYXb29siYSLQHm1b8tfU1Mgq8Xhcj9t+
9uyZJKampvr7+1W2rq4uMd20ZRCwLkfkUo21sK0l6+pZ07abZlvp4uKiZJa/6t+enp69vT1JzM7O
JhIJtTAajaoMRi1ua2uTTd7a2rIdt+3dtq8wAKe6rDvI2hQ5tTlg2wAAANh2dubn50XjgsHg6Oio
x3Hbra2tKysr6czjeg8fPlTZJiYm/H6//Kv6UNOZF1w0NDSI0jU2NhpfcKGrFlOUVdLO7yRxXz1r
2nbTjJU6ve5aqmtqapKFcjnx999/q4Vra2uxWMzn88lyrcU7OzuVlZWhUMj68j4vtn0dATjVZd1B
1vb33uZoN7YNAACAbec1LPbNLf/eXG2BuucbsG0AAABs+9pRXaRwa7nyHTQ4OEirYtsAAADYNgAA
tg0AAIBtAwC2DQAAgG0DALYNAACAbQMAYNsAAAC/sG3rCcbvK9e3gfe+6QDbBgAAuCe2vbi46Pf7
e3t7HeuzvG/7qqiqqrKtJd8Negc30FgyvwrAtgEAAG6vbZvmVbHWd60bc+PKeEc3EMkGbBsAAOAO
2Laxt1X+LiwsBAKB+vr6g4MDF6trampaXV2VxKdPn9rb253WlURjY6PYfENDg3FiwpGRkfLyclPV
7kJp1FZZvayszHiRsLOzE4vFgsHghw8frIWMj4/LR8XFxfKpBFxaWmpc9y5uoG3JLsGYSsPUAdsG
AADIk22bPO/p06fn5+dTU1M9PT0uZra5uZlIJCRnTU3N/v6+07rd3d3yrySmp6f11IOSc2ZmRg07
du/6dZLRgYEBWV3cUQxSLRQhHhsbk6jEca2F9PX1pVIp8WaJeXh42LTuHd1Aa8lOwVhLA8C2AQAA
bsa2v3//Lomzs7NgMPh/9dmNOX78+HFra+vLly9d1i0uLlbSaSpQP+FnrNo6ptlJRkWdTQuLior0
QuvWnZycuKx7RzfQattOwVhLA8C2AQAAbsa29UL3rl9hfX1d8pyennpc13bhxbp+Pa7ukt/Lurd8
A60feQ8GANsGAAC4Gds+Pj5OZzpHw+Gwu6Ilk8m6urrXr1+7rBsMBlVvayqVKioqurCMSpnuMure
t30x277lG2jN7z0YAGwbAADgZmz72bNnkpiamurv73dRtO3t7ZqaGnHEeDyuhzVb1+3q6lpYWEhb
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" />
</BODY>
</HTML>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -0,0 +1,107 @@
<HTML>
<HEAD>
<META name="description"
content="Violet UML Editor cross format document" />
<META name="keywords" content="Violet, UML" />
<META charset="UTF-8" />
<SCRIPT type="text/javascript">
function switchVisibility() {
var obj = document.getElementById("content");
obj.style.display = (obj.style.display == "block") ? "none" : "block";
}
</SCRIPT>
</HEAD>
<BODY>
This file was generated with Violet UML Editor 2.1.0.
&nbsp;&nbsp;(&nbsp;<A href=# onclick="switchVisibility()">View Source</A>&nbsp;/&nbsp;<A href="http://sourceforge.net/projects/violet/files/violetumleditor/" target="_blank">Download Violet</A>&nbsp;)
<BR />
<BR />
<SCRIPT id="content" type="text/xml"><![CDATA[<ObjectDiagramGraph id="1">
<nodes id="2">
<ObjectNode id="3">
<children id="4"/>
<location class="Point2D.Double" id="5" x="410.0" y="40.0"/>
<id id="6" value="72a7fa39-c47c-4be4-8616-28e53dd941c9"/>
<revision>1</revision>
<backgroundColor id="7">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="8">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="8"/>
<name id="9" justification="1" size="3" underlined="true">
<text>Importer</text>
</name>
</ObjectNode>
<ObjectNode id="10">
<children id="11"/>
<location class="Point2D.Double" id="12" x="410.0" y="140.0"/>
<id id="13" value="84358792-4b76-43e5-8e54-e861f8d058cf"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="14" justification="1" size="3" underlined="true">
<text>Raw data format</text>
</name>
</ObjectNode>
<ObjectNode id="15">
<children id="16"/>
<location class="Point2D.Double" id="17" x="410.0" y="240.0"/>
<id id="18" value="00422f37-250b-4969-91a6-48bcd052e792"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="19" justification="1" size="3" underlined="true">
<text>Postproce</text>
</name>
</ObjectNode>
</nodes>
<edges id="20"/>
</ObjectDiagramGraph>]]></SCRIPT>
<BR />
<BR />
<IMG alt="embedded diagram image" src="data:image/png;base64,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" />
</BODY>
</HTML>

View File

@@ -0,0 +1,875 @@
<HTML>
<HEAD>
<META name="description"
content="Violet UML Editor cross format document" />
<META name="keywords" content="Violet, UML" />
<META charset="UTF-8" />
<SCRIPT type="text/javascript">
function switchVisibility() {
var obj = document.getElementById("content");
obj.style.display = (obj.style.display == "block") ? "none" : "block";
}
</SCRIPT>
</HEAD>
<BODY>
This file was generated with Violet UML Editor 2.1.0.
&nbsp;&nbsp;(&nbsp;<A href=# onclick="switchVisibility()">View Source</A>&nbsp;/&nbsp;<A href="http://sourceforge.net/projects/violet/files/violetumleditor/" target="_blank">Download Violet</A>&nbsp;)
<BR />
<BR />
<SCRIPT id="content" type="text/xml"><![CDATA[<UseCaseDiagramGraph id="1">
<nodes id="2">
<ActorNode id="3">
<children id="4"/>
<location class="Point2D.Double" id="5" x="50.0" y="120.0"/>
<id id="6" value="49b974cb-4ce4-4e02-b5f8-1cd7ebb37bd0"/>
<revision>1</revision>
<backgroundColor id="7">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="8">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="8"/>
<name id="9" justification="1" size="4" underlined="false">
<text>Assimp-Author
</text>
</name>
</ActorNode>
<UseCaseNode id="10">
<children id="11"/>
<location class="Point2D.Double" id="12" x="230.0" y="170.0"/>
<id id="13" value="5d6a8838-4bef-4742-ada7-6b26d78d13e6"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="14" justification="1" size="4" underlined="false">
<text>The Assimp-
Wonder</text>
</name>
</UseCaseNode>
<ActorNode id="15">
<children id="16"/>
<location class="Point2D.Double" id="17" x="530.0" y="10.0"/>
<id id="18" value="85d634da-7438-4ff1-beac-ed195904a97b"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="19" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
<ActorNode id="20">
<children id="21"/>
<location class="Point2D.Double" id="22" x="70.0" y="260.0"/>
<id id="23" value="74ca83b4-e63d-4ebc-bccf-b254cc7f948a"/>
<revision>1</revision>
<backgroundColor id="24">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="25">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="25"/>
<name id="26" justification="1" size="4" underlined="false">
<text>Assimp-Author
</text>
</name>
</ActorNode>
<ActorNode id="27">
<children id="28"/>
<location class="Point2D.Double" id="29" x="0.0" y="190.0"/>
<id id="30" value="fdcf624e-69c4-4096-8e70-31f86f85ed84"/>
<revision>1</revision>
<backgroundColor id="31">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="32">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="32"/>
<name id="33" justification="1" size="4" underlined="false">
<text>Assimp-Author
</text>
</name>
</ActorNode>
<ActorNode id="34">
<children id="35"/>
<location class="Point2D.Double" id="36" x="590.0" y="240.0"/>
<id id="37" value="cef0aee1-fadd-4f83-9282-2cab20e2e842"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="38" justification="1" size="4" underlined="false">
<text>Actor</text>
</name>
</ActorNode>
<ActorNode id="39">
<children id="40"/>
<location class="Point2D.Double" id="41" x="500.0" y="150.0"/>
<id id="42" value="a37c0622-831d-4375-903f-04cc07954100"/>
<revision>1</revision>
<backgroundColor id="43">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="44">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="44"/>
<name id="45" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
<ActorNode id="46">
<children id="47"/>
<location class="Point2D.Double" id="48" x="420.0" y="300.0"/>
<id id="49" value="f005128f-497e-4e0b-9633-fb5ac45dc63f"/>
<revision>1</revision>
<backgroundColor id="50">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="51">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="51"/>
<name id="52" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
<ActorNode id="53">
<children id="54"/>
<location class="Point2D.Double" id="55" x="410.0" y="100.0"/>
<id id="56" value="5aee4e8d-8126-40c1-8df5-72873c300bc3"/>
<revision>1</revision>
<backgroundColor id="57">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="58">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="58"/>
<name id="59" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
<ActorNode id="60">
<children id="61"/>
<location class="Point2D.Double" id="62" x="630.0" y="200.0"/>
<id id="63" value="48b4d373-f4c2-4d09-85d9-ed58900e4240"/>
<revision>1</revision>
<backgroundColor id="64">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="65">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="65"/>
<name id="66" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
<ActorNode id="67">
<children id="68"/>
<location class="Point2D.Double" id="69" x="520.0" y="320.0"/>
<id id="70" value="e73866d5-b2b0-4777-8bdc-3f404681694e"/>
<revision>1</revision>
<backgroundColor id="71">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="72">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="72"/>
<name id="73" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
<ActorNode id="74">
<children id="75"/>
<location class="Point2D.Double" id="76" x="630.0" y="20.0"/>
<id id="77" value="5553fd94-4c7b-4e24-9a64-d84fd373bc3d"/>
<revision>1</revision>
<backgroundColor id="78">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="79">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="79"/>
<name id="80" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
<ActorNode id="81">
<children id="82"/>
<location class="Point2D.Double" id="83" x="590.0" y="90.0"/>
<id id="84" value="11bac3f1-650c-49cc-98f6-b32082329452"/>
<revision>1</revision>
<backgroundColor id="85">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="86">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="86"/>
<name id="87" justification="1" size="4" underlined="false">
<text>Happy User</text>
</name>
</ActorNode>
</nodes>
<edges id="88">
<UseCaseRelationshipEdge id="89">
<start class="ActorNode" reference="27"/>
<end class="UseCaseNode" reference="10"/>
<startLocation class="Point2D.Double" id="90" x="50.0" y="40.0"/>
<endLocation class="Point2D.Double" id="91" x="60.0" y="50.0"/>
<transitionPoints id="92"/>
<id id="93" value="79ec5ac5-6c38-4713-abb8-341c214f888c"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="94">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="53"/>
<startLocation class="Point2D.Double" id="95" x="120.0" y="40.0"/>
<endLocation class="Point2D.Double" id="96" x="40.0" y="30.0"/>
<transitionPoints id="97"/>
<id id="98" value="f978cafc-4f21-4cd8-8b74-f9ae5af9a8e9"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="99">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="46"/>
<startLocation class="Point2D.Double" id="100" x="130.0" y="40.0"/>
<endLocation class="Point2D.Double" id="101" x="45.0" y="25.0"/>
<transitionPoints id="102"/>
<id id="103" value="2daa9717-724d-4d20-a33c-1eaf0358773d"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="104">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="39"/>
<startLocation class="Point2D.Double" id="105" x="120.0" y="40.0"/>
<endLocation class="Point2D.Double" id="106" x="40.0" y="50.0"/>
<transitionPoints id="107"/>
<id id="108" value="ebc17223-8ac8-4347-83fd-612563f33518"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="109">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="15"/>
<startLocation class="Point2D.Double" id="110" x="60.0" y="20.0"/>
<endLocation class="Point2D.Double" id="111" x="40.0" y="10.0"/>
<transitionPoints id="112"/>
<id id="113" value="82ffbefd-9433-47f4-b87a-92d6ccacf17a"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="114">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="34"/>
<startLocation class="Point2D.Double" id="115" x="100.0" y="60.0"/>
<endLocation class="Point2D.Double" id="116" x="30.0" y="30.0"/>
<transitionPoints id="117"/>
<id id="118" value="6bacbe4e-7c6b-4d40-82a0-bfb98afac129"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="119">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="60"/>
<startLocation class="Point2D.Double" id="120" x="130.0" y="50.0"/>
<endLocation class="Point2D.Double" id="121" x="34.0" y="33.0"/>
<transitionPoints id="122"/>
<id id="123" value="00a88cb1-b275-45bf-83c8-211834d39283"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="124">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="81"/>
<startLocation class="Point2D.Double" id="125" x="90.0" y="40.0"/>
<endLocation class="Point2D.Double" id="126" x="40.0" y="30.0"/>
<transitionPoints id="127"/>
<id id="128" value="6711187e-4364-4f6d-89af-d7d83216cca4"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="129">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="74"/>
<startLocation class="Point2D.Double" id="130" x="90.0" y="30.0"/>
<endLocation class="Point2D.Double" id="131" x="30.0" y="40.0"/>
<transitionPoints id="132"/>
<id id="133" value="b766e9ca-b8ca-4cdf-9469-e4eac7bc5609"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
<UseCaseRelationshipEdge id="134">
<start class="UseCaseNode" reference="10"/>
<end class="ActorNode" reference="67"/>
<startLocation class="Point2D.Double" id="135" x="100.0" y="60.0"/>
<endLocation class="Point2D.Double" id="136" x="70.0" y="30.0"/>
<transitionPoints id="137"/>
<id id="138" value="d0e826ee-a05e-4d58-baf9-ea85a8d2da6d"/>
<revision>1</revision>
<lineStyle name="SOLID"/>
<startArrowHead name="NONE"/>
<endArrowHead name="TRIANGLE"/>
<bentStyle name="STRAIGHT"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</UseCaseRelationshipEdge>
</edges>
</UseCaseDiagramGraph>]]></SCRIPT>
<BR />
<BR />
<IMG alt="embedded diagram image" src="data:image/png;base64,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
" />
</BODY>
</HTML>

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -0,0 +1,337 @@
<HTML>
<HEAD>
<META name="description"
content="Violet UML Editor cross format document" />
<META name="keywords" content="Violet, UML" />
<META charset="UTF-8" />
<SCRIPT type="text/javascript">
function switchVisibility() {
var obj = document.getElementById("content");
obj.style.display = (obj.style.display == "block") ? "none" : "block";
}
</SCRIPT>
</HEAD>
<BODY>
This file was generated with Violet UML Editor 2.1.0.
&nbsp;&nbsp;(&nbsp;<A href=# onclick="switchVisibility()">View Source</A>&nbsp;/&nbsp;<A href="http://sourceforge.net/projects/violet/files/violetumleditor/" target="_blank">Download Violet</A>&nbsp;)
<BR />
<BR />
<SCRIPT id="content" type="text/xml"><![CDATA[<ClassDiagramGraph id="1">
<nodes id="2">
<ClassNode id="3">
<children id="4"/>
<location class="Point2D.Double" id="5" x="20.0" y="100.0"/>
<id id="6" value="0af10f16-f859-4c02-bdff-81c1d78d52ce"/>
<revision>1</revision>
<backgroundColor id="7">
<red>255</red>
<green>255</green>
<blue>255</blue>
<alpha>255</alpha>
</backgroundColor>
<borderColor id="8">
<red>0</red>
<green>0</green>
<blue>0</blue>
<alpha>255</alpha>
</borderColor>
<textColor reference="8"/>
<name id="9" justification="1" size="3" underlined="false">
<text>Parser</text>
</name>
<attributes id="10" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="11" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
<ClassNode id="12">
<children id="13"/>
<location class="Point2D.Double" id="14" x="150.0" y="100.0"/>
<id id="15" value="8b86eab9-eee1-4a26-addc-66e48c949789"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="16" justification="1" size="3" underlined="false">
<text>Importer</text>
</name>
<attributes id="17" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="18" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
<ClassNode id="19">
<children id="20"/>
<location class="Point2D.Double" id="21" x="280.0" y="100.0"/>
<id id="22" value="173e417b-7e49-4026-af57-ef383590b41a"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="23" justification="1" size="3" underlined="false">
<text>aiScene</text>
</name>
<attributes id="24" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="25" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
<ClassNode id="26">
<children id="27"/>
<location class="Point2D.Double" id="28" x="400.0" y="20.0"/>
<id id="29" value="ab49cbe6-18b2-414b-8ed7-cfb6397f15d2"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="30" justification="1" size="3" underlined="false">
<text>Postprocess1</text>
</name>
<attributes id="31" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="32" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
<ClassNode id="33">
<children id="34"/>
<location class="Point2D.Double" id="35" x="400.0" y="100.0"/>
<id id="36" value="90b9ce00-d2fb-4c9f-8f63-a9d93a437672"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="37" justification="1" size="3" underlined="false">
<text>PostProcess 2</text>
</name>
<attributes id="38" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="39" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
<ClassNode id="40">
<children id="41"/>
<location class="Point2D.Double" id="42" x="400.0" y="180.0"/>
<id id="43" value="7e0e804b-46c0-4bf4-a6cc-a5046b47aa37"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="44" justification="1" size="3" underlined="false">
<text>PostProcess n</text>
</name>
<attributes id="45" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="46" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
<ClassNode id="47">
<children id="48"/>
<location class="Point2D.Double" id="49" x="530.0" y="100.0"/>
<id id="50" value="43819611-3ea7-4858-9d5e-575a19a318cf"/>
<revision>1</revision>
<backgroundColor reference="7"/>
<borderColor reference="8"/>
<textColor reference="8"/>
<name id="51" justification="1" size="3" underlined="false">
<text>Proceeded
aiScene</text>
</name>
<attributes id="52" justification="0" size="4" underlined="false">
<text></text>
</attributes>
<methods id="53" justification="0" size="4" underlined="false">
<text></text>
</methods>
</ClassNode>
</nodes>
<edges id="54">
<InterfaceInheritanceEdge id="55">
<start class="ClassNode" reference="3"/>
<end class="ClassNode" reference="12"/>
<startLocation class="Point2D.Double" id="56" x="90.0" y="30.0"/>
<endLocation class="Point2D.Double" id="57" x="0.0" y="30.0"/>
<transitionPoints id="58"/>
<id id="59" value="1436ccf1-fc0c-4318-8d30-1c0058d8ae68"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InterfaceInheritanceEdge>
<InterfaceInheritanceEdge id="60">
<start class="ClassNode" reference="12"/>
<end class="ClassNode" reference="19"/>
<startLocation class="Point2D.Double" id="61" x="70.0" y="30.0"/>
<endLocation class="Point2D.Double" id="62" x="70.0" y="30.0"/>
<transitionPoints id="63"/>
<id id="64" value="6a839966-1464-418f-bb0d-a3bba32e2591"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InterfaceInheritanceEdge>
<InterfaceInheritanceEdge id="65">
<start class="ClassNode" reference="19"/>
<end class="ClassNode" reference="26"/>
<startLocation class="Point2D.Double" id="66" x="80.0" y="30.0"/>
<endLocation class="Point2D.Double" id="67" x="10.0" y="40.0"/>
<transitionPoints id="68"/>
<id id="69" value="6d6407e9-8d0f-4bb8-b1ff-39e1e593b4e7"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InterfaceInheritanceEdge>
<InterfaceInheritanceEdge id="70">
<start class="ClassNode" reference="26"/>
<end class="ClassNode" reference="33"/>
<startLocation class="Point2D.Double" id="71" x="50.0" y="50.0"/>
<endLocation class="Point2D.Double" id="72" x="50.0" y="10.0"/>
<transitionPoints id="73"/>
<id id="74" value="ae76dc82-ec72-425e-9f70-1a35204c8cfc"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InterfaceInheritanceEdge>
<InterfaceInheritanceEdge id="75">
<start class="ClassNode" reference="33"/>
<end class="ClassNode" reference="40"/>
<startLocation class="Point2D.Double" id="76" x="50.0" y="40.0"/>
<endLocation class="Point2D.Double" id="77" x="50.0" y="10.0"/>
<transitionPoints id="78"/>
<id id="79" value="867e46fe-7405-4d71-99ce-10f0a4cfa12d"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InterfaceInheritanceEdge>
<InterfaceInheritanceEdge id="80">
<start class="ClassNode" reference="40"/>
<end class="ClassNode" reference="47"/>
<startLocation class="Point2D.Double" id="81" x="60.0" y="30.0"/>
<endLocation class="Point2D.Double" id="82" x="40.0" y="40.0"/>
<transitionPoints id="83"/>
<id id="84" value="3097619f-c864-463c-8ef9-b35a7327b3a0"/>
<revision>1</revision>
<bentStyle name="AUTO"/>
<startLabel></startLabel>
<middleLabel></middleLabel>
<endLabel></endLabel>
</InterfaceInheritanceEdge>
</edges>
</ClassDiagramGraph>]]></SCRIPT>
<BR />
<BR />
<IMG alt="embedded diagram image" src="data:image/png;base64,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
h9aMYr1y5Uo0/vjjj/wdyUV7fVpaWuLhs2fP4pP41Nt6il5YK9ZMfP/9962trYcOHZo7a8ZEkMY5
iIng999/j8aKFSvyBxw4cCDMGo09e/aMl9hlVTTIhZmtfFJqIguJKUo9GvFJJbVDqDdv3sy/qvw9
benl33zzTfozSWnNPLKmrZlZk5lTRKm15txtK8w8jczgZOJTbDz7/vvvz49qZ83ZnL6LtvWkz2JH
jhz55JNPim4Uzn8uTrttYjaJUs5/lZ25L6fohZUZu8IbnQt/2Wkjk/u8e/fuO++8E08NDw/PhTXT
6KX2f/7zn9QuHPM4IN1mFmM+XmKXVdEgF/5SlU9KTWQhT6lSj0YsQT788MP86X3xxRdpuV/+nrb0
wr///nu84Ob+zCPn6K972tF+PWsWzRiZNZk5RWRac063FWaeRmawiOvXr6eLDZcuXZota771amfN
Wfu7KtrWkz5hbd++/c6dO5mXU4KopKamphRctmxZfLgbL2NfTs2tNa9evbp69eoYmblba04xmxQF
05xbzi6rwoeVT0pNZKFwMTFFqcf8++2337733nsp2NbWNj6TPW3lb1+robXm5BkjsyYzp4hMhc/p
tsLM08gMFvLLL78ks0aFzJtqZ81ZvkJbSPr64eUEpayZLqpcuXIl/WOktAzK3JdTo9bM5XKffvpp
e3t7uhnkLVrzr7/+Sp+y4897vMQuqymsWfmk1EQWZlrqp06dmrxYLDxm2nGeevtazV2hzVzkFdZk
5hRRzt722d1WmHkapYKJ0dHR6Grp0qXXrl2bT9XOmnNozVSRd+/eLfy/ukUHp6984hP6o0ePorFy
5crxEvtyas6aIyMje/fuXbt27eDgYOE1z7dlzYMHD8ZH42js379/vMQuq6JBTh+T06WnyielJrJQ
Tql//PHH0fjxxx+jffPmzXSLyvhM9rRlpjXzyJq2ZmZNZk4RhZVZmW2FmaeRGcxz4MCBd999d2ho
aNbHefLvW8lqZ805tObAwEAsa6K+C/+vbtHBUW2dnZ3p5sO2trb79++Pl9iXU1vW7OnpaW1t7evr
q8B+zTKtGaucGOetW7emmyMyd1kVDXJ/f3+kIM0alU9KTWShnFJ/+PDhrl274tl0CXHPnj1p6175
e9oy05p5ZE1bM7MmM6eIwsqszLbCzNPIDOYJZWZ+KzxH1qxYtU+d0/m0O9n/BqrofP31118/f/68
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" />
</BODY>
</HTML>

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

127
thirdparty/assimp/doc/datastructure.xml vendored Normal file
View File

@@ -0,0 +1,127 @@
<importedScene>
<version name="1.2" /> <smiley code=":-)" />
<node>
<name />
<transformation type="matrix4x4" />
<mesh refid="0" />
<!--More mesh definitions-->
<mesh />
<childnode />
<childnode />
</node>
<cameras>
<camera up="0,1,0" lookat="0,0,1" fov="45"/>
</cameras>
<lights>
<light diffuse="black" type="spot" phi="5" theta="15"/>
</lights>
<meshes>
<mesh id="0">
<meshheader type="MatID, Vertexcount, Facecount, a.s.o." />
<vertices>
<vertex type="xyz" />
<!-- More vertex definitions -->
<vertex />
</vertices>
<texturecoords index="0">
<texturecoord type="uv" />
<texturecoord />
</texturecoords>
<texturecoords index="..." />
<vertexcolors index="0">
<color type="rgba" />
<color />
</vertexcolors>
<vertexcolors index="..." />
<normals>
<normal type="xyz" />
<!-- More normal definitions -->
<normal />
</normals>
<tangents>
<tangent type="xyz" />
<!-- More tangent definitions -->
<tangent />
</tangents>
<bitangents>
<bitangent type="xyz" />
<!-- More bitanget defiitions... -->
<bitangent />
</bitangents>
<faces>
<face numIndices="3" indices="p1, p2, p3" />
<!-- More faces -->
<face />
</faces>
<bones>
<bone>
<name />
<offset type="matrix4x4" />
<weights>
<weight type="v, w" />
<!-- More weights -->
<weight />
</weights>
</bone>
<!-- More bones -->
<bone />
</bones>
</mesh>
<!-- More meshes -->
<mesh id="x" />
</meshes>
<anims>
<anim name="rudern" duration="4500" ticksPerSecond="50">
<animbone nameOfAnimatedNode="bla">
<rotation>
<rotkey time="0" rot="xyzw" />
<rotkey time="100" rot="xyzw" />
</rotation>
<translation>
<transkey time="0" trans="xyz" />
<transkey time="100" trans="xyz" />
</translation>
<scaling>
<scalekey time="0" scale="xyz" />
<scalekey time="100" scale="xyz" />
</scaling>
</animbone>
<animbone nameOfAnimatedNode="blubb">
</animbone>
</anim>
<anim />
</anims>
<materials>
<material>
<param>
<name/>
<value/>
</param>
</material>
<!-- More material definitions-->
<material />
</materials>
<textures>
<texture type="width, height, formatHint">
<data />
</texture>
<texture />
</textures>
</importedScene>

1647
thirdparty/assimp/doc/dox.h vendored Normal file

File diff suppressed because it is too large Load Diff

565
thirdparty/assimp/doc/dox_cmd.h vendored Normal file
View File

@@ -0,0 +1,565 @@
/** @file dox_cmd.h
* @brief General documentation for assimp_cmd
*/
//----------------------------------------------------------------------------------------------
// ASSIMP CMD MAINPAGE
/**
@mainpage ASSIMP Command-line tools
<img src="dragonsplash.png"></img>
@section intro Introduction
This document describes the usage of assimp's command line tools.
This is *not* the SDK reference and programming-related stuff is not covered here.
<br><br>
<b>NOTE</b>: For simplicity, the following sections are written with Windows in mind. However
it's not different for Linux/Mac at all, except there's probably no assimp.exe ...
@section basic_use Basic use
Open a command prompt and navigate to the directory where assimp.exe resides. The basic command line is:
@code
assimp [command] [parameters]
@endcode
The following commands are available:
<table border="1">
<tr>
<td><b>@link version version @endlink</b></td>
<td>Retrieve the current version of assimp</td>
</tr>
<tr>
<td><b>@link help help @endlink</b></td>
<td>Get a list of all commands (yes, it's this list ...)</td>
</tr>
<tr>
<td><b>@link dump dump @endlink</b></td>
<td>Generate a human-readable text dump of a model</td>
</tr>
<tr>
<td><b>@link extract extract @endlink</b></td>
<td>Extract an embedded texture image</td>
</tr>
<tr>
<td><b>@link iinfo info @endlink</b></td>
<td>Load a model and print basic statistics</td>
</tr>
<tr>
<td><b>@link cmpdump cmpdump @endlink</b></td>
<td>Regression checking tool</td>
</tr>
</table>
If you use assimp's command line frequently, consider adding assimp to your PATH
environment.
*/
/**
@page version 'version'-Command
Display the version/revision of Assimp used.
*/
/**
@page help 'help'-Command
Display a really helpful text.
*/
//----------------------------------------------------------------------------------------------
// ASSIMP INFO
/**
@page iinfo 'info'-Command
Load a model file and print basic statistics. Full postprocessing is applied unless the <tt>-r</tt> switch is specified. Sample output (<tt>assimp info ./test/models/3DS/mar_rifle.3ds</tt>):
@verbatim
Launching model import ... OK
Validating postprocessing flags ... OK
Importing file ... OK
import took approx. 0.02400 seconds
Memory consumption: 69444 B
Nodes: 2
Maximum depth 2
Meshes: 1
Animations: 0
Textures (embed.): 0
Materials: 1
Cameras: 0
Lights: 0
Vertices: 843
Faces: 572
Bones: 0
Animation Channels: 0
Primitive Types: triangles
Average faces/mesh 572
Average verts/mesh 843
Minimum point (-3.522588 -11.573204 -40.340359)
Maximum point (3.522622 30.196556 75.941292)
Center point (0.000017 9.311676 17.800467)
Named Materials:
'mat1'
Texture Refs:
'm_rifl.bmp'
Node hierarchy:
'<3DSRoot>', meshes: 0
-- 'm_rifle', meshes: 1
<--
@endverbatim
<h3>Syntax:</h3>
@code
assimp info file [-r]
@endcode
<h3>Parameters:</h3>
<p>
<tt>
file<br></tt><br>
Required. Input file.
</p>
<p>
<tt>
-r</tt><br>
Optional. Don't perform any postprocessing. The long form of this parameter is <tt>--raw</tt>.
</p>
*/
//----------------------------------------------------------------------------------------------
// ASSIMP CMPDUMP
/**
@page cmpdump 'cmpdump'-Command
<b>Used for Assimp's internal regression testing.</b> Compare two mini dumps (produced using <tt>assimp dump .. -b -s</tt>) and
report any differences. In the regression test suite, this facility is used to build a database of
'known-to-be-fine' mini dumps, which are regularly compared against current results to detect regressions.
<h3>Syntax:</h3>
@code
assimp cmpdmp actual expected
@endcode
<h3>Parameters:</h3>
<p>
<tt>
actual<br></tt><br>
Required. Mini dump now.
</p>
<p>
<tt>
expected<br></tt><br>
Required. Archived dump from some point in the past.
</p>
*/
//----------------------------------------------------------------------------------------------
// ASSIMP DUMP
/**
@page dump 'dump'-Command
Generate a text or binary dump of a model. This is the core component of Assimp's internal
regression test suite but it could also be useful for other developers to quickly
examine the contents of a model. Note that text dumps are not intended to be used as
intermediate format, Assimp is not able to read them again, nor is the file format
stable or well-defined. It may change with every revision without notice.
Binary dumps (*.assbin) are backwards- and forwards-compatible.
<h3>Syntax:</h3>
@code
assimp dump <model> [<out>] [-b] [-s] [common parameters]
@endcode
<h3>Parameters:</h3>
<p>
<tt>
model<br></tt><br>
Required. Relative or absolute path to the input model.
</p>
<p>
<tt>
out<br></tt><br>
Optional. Relative or absolute path to write the output dump to. If it is omitted,
the dump is written to <tt>&lt;model&gt;-dump.txt</tt>
</p>
<p>
<tt>-b<br>
</tt><br>
Optional. If this switch is specified, the dump is written in binary format.
The long form of this parameter is <tt>--binary</tt>.
</p>
<p>
<tt>-s&lt;n&gt;<br>
</tt><br>
Optional. If this switch is specified, the dump is shortened to include only
min/max values for all vertex components and animation channels. The resulting
file is much smaller, but the original model can't be reconstructed from it. This is
used by Assimp's regression test suite, comparing those minidumps provides
a fast way to verify whether a loader works correctly or not.
The long form of this parameter is <tt>--short</tt>.
</p>
<p>
<tt>
common parameters<br></tt><br>
Optional. Import configuration & postprocessing.
See the @link common common parameters page @endlink for more information.
</p>
<hr>
<h3>Sample:</h3>
@code
assimp dump test.3ds test.txt -l -cfull
assimp dump test.3ds test.txt -include-log -config=full
@endcode
Dumps 'test.3ds' to 'test.txt' after executing full post-processing on tehe imported data.
The log output is included with the dump.
@code
assimp dump files\*.*
assimp dump files\*.*
@endcode
Dumps all loadable model files in the 'files' subdir. The output dumps are named
<tt><mode-file>-dump.txt</tt>. The log is not included.
*/
//----------------------------------------------------------------------------------------------
// ASSIMP EXTRACT
/**
@page extract 'extract'-Command
Extracts one or more embedded texture images from models.
<h3>Syntax:</h3>
@code
assimp extract <model> [<out>] [-t<n>] [-f<fmt>] [-ba] [-s] [common parameters]
@endcode
<h3>Parameters:</h3>
<p>
<tt>
model<br></tt><br>
Required. Relative or absolute path to the input model.
</p>
<p>
<tt>
out<br></tt><br>
Optional. Relative or absolute path to write the output images to. If the file name is
omitted the output images are named <tt><model-filename></tt><br>
The suffix <tt>_img&lt;n&gt;</tt> is appended to the file name if the -s switch is not specified
(where <tt>&lt;n&gt;</tt> is the zero-based index of the texture in the model file).<br>
The output file format is determined from the given file extension. Supported
formats are BMP and TGA. If the file format can't be determined,
the value specified with the -f switch is taken.
<br>
Format settings are ignored for compressed embedded textures. They're always
written in their native file format (e.g. jpg).
</p>
<p>
<tt>-t&lt;n&gt;<br>
</tt><br>
Optional. Specifies the (zero-based) index of the embedded texture to be extracted from
the model. If this option is *not* specified all textures found are exported.
The long form of this parameter is <tt>--texture=&lt;n&gt;</tt>.
</p>
<p>
<tt>-ba&lt;n&gt;<br>
</tt><br>
Optional. Specifies whether output BMPs contain an alpha channel or not.
The long form of this parameter is <tt>--bmp-with-alpha=&lt;n&gt;</tt>.
</p>
<p>
<tt>-f&lt;n&gt;<br>
</tt><br>
Optional. Specifies the output file format. Supported
formats are BMP and TGA. The default value is BMP (if a full output filename is
specified, the output file format is taken from its extension, not from here).
The long form of this parameter is <tt>--format=&lt;n&gt;</tt>.
</p>
<p>
<tt>-s&lt;n&gt;<br>
</tt><br>
Optional. Prevents the tool from adding the <tt>_img&lt;n&gt;</tt> suffix to all filenames. This option
must be specified together with -t to ensure that just one image is written.
The long form of this parameter is <tt>--nosuffix</tt>.
</p>
<p>
<tt>
common parameters<br></tt><br>
Optional. Import configuration & postprocessing. Most postprocessing-steps don't affect
embedded texture images, configuring too much is probably senseless here.
See the @link common common parameters page @endlink for more information.
</p>
<hr>
<h3>Sample:</h3>
@code
assimp extract test.mdl test.bmp --texture=0 --validate-data-structure
assimp extract test.mdl test.bmp -t=0 -vds
@endcode
Extracts the first embedded texture (if any) from test.mdl after validating the
imported data structure and writes it to <tt>test_img0.bmp</tt>.
@code
assimp extract files\*.mdl *.bmp
assimp extract files\*.mdl *.bmp
@endcode
Extracts all embedded textures from all loadable .mdl files in the 'files' subdirectory
and writes them to bitmaps which are named <tt><model-file>_img<image-index>.bmp</tt>
*/
//----------------------------------------------------------------------------------------------
// ASSIMP COMMON PARAMETERS
/**
@page common Common parameters
The parameters described on this page are commonly used by almost every assimp command. They
specify how the library will postprocess the imported data. This is done by several
configurable pipeline stages, called 'post processing steps'. Below you can find a list
of all supported steps along with short descriptions of what they're doing. <br><b>Programmers</b>:
more information can be found in the <tt>aiPostProcess.h</tt> header.
<table border="1">
<tr>
<th>Parameter</th>
<th>Long parameter</th>
<th>Description</th>
</tr>
<tr>
<td><tt>-ptv</tt></td>
<td><tt>--pretransform-vertices</tt></td>
<td>Move all vertices into worldspace and collapse the scene graph. Animation data is lost.
This is intended for applications which don't support scenegraph-oriented rendering.</td>
</tr>
<tr>
<td><tt>-gsn</tt></td>
<td><tt>--gen-smooth-normals</tt></td>
<td>Computes 'smooth' per-vertex normal vectors if necessary. Mutually exclusive with -gn</td>
</tr>
<tr>
<td><tt>-gn</tt></td>
<td><tt>--gen-normals</tt></td>
<td>Computes 'hard' per-face normal vectors if necessary. Mutually exclusive with -gsn</td>
</tr>
<tr>
<td><tt>-cts</tt></td>
<td><tt>--calc-tangent-space</tt></td>
<td>If one UV channel and normal vectors are given, compute tangents and bitangents</td>
</tr>
<tr>
<td><tt>-jiv</tt></td>
<td><tt>--join-identical-vertices</tt></td>
<td>Optimize the index buffer. If this flag is not specified all vertices are referenced once.</td>
</tr>
<tr>
<td><tt>-rrm</tt></td>
<td><tt>--remove-redundant-materials</tt></td>
<td>Remove redundant materials from the imported data.</td>
</tr>
<tr>
<td><tt>-fd</tt></td>
<td><tt>--find-degenerates</tt></td>
<td>Find and process degenerates primitives.</td>
</tr>
<tr>
<td><tt>-slm</tt></td>
<td><tt>--split-large-meshes</tt></td>
<td>Split large meshes over a specific threshold in smaller sub meshes. The default vertex & face limit is 1000000</td>
</tr>
<tr>
<td><tt>-lbw</tt></td>
<td><tt>--limit-bone-weights</tt></td>
<td>Limit the number of bones influencing a single vertex. The default limit is 4.</td>
</tr>
<tr>
<td><tt>-vds</tt></td>
<td><tt>--validate-data-structure</tt></td>
<td>Performs a full validation of the imported data structure. Recommended to avoid crashes if
an import plugin produces rubbish</td>
</tr>
<tr>
<td><tt>-icl</tt></td>
<td><tt>--improve-cache-locality</tt></td>
<td>Improve the cache locality of the vertex buffer by reordering the index buffer
to achieve a lower ACMR (average post-transform vertex cache miss ratio)</td>
</tr>
<tr>
<td><tt>-sbpt</tt></td>
<td><tt>--sort-by-ptype</tt></td>
<td>Splits meshes which consist of more than one kind of primitives (e.g. lines and triangles mixed up)
in 'clean' submeshes. </td>
</tr>
<tr>
<td><tt>-lh</tt></td>
<td><tt>--convert-to-lh</tt></td>
<td>Converts the imported data to left-handed coordinate space</td>
</tr>
<tr>
<td><tt>-fuv</tt></td>
<td><tt>--flip-uv</tt></td>
<td>Flip UV coordinates from upper-left origin to lower-left origin</td>
</tr>
<tr>
<td><tt>-fwo</tt></td>
<td><tt>--flip-winding-order</tt></td>
<td>Flip face winding order from CCW to CW</td>
</tr>
<tr>
<td><tt>-ett</tt></td>
<td><tt>--evaluate-texture-transform</tt></td>
<td>Evaluate per-texture UV transformations (e.g scaling, offset) and build pretransformed UV channels</td>
</tr>
<tr>
<td><tt>-guv</tt></td>
<td><tt>--gen-uvcoords</tt></td>
<td>Replace abstract mapping descriptions, such as 'spherical' or 'cylindrical' with proper UV channels</td>
</tr>
<tr>
<td><tt>-fixn</tt></td>
<td><tt>--fix-normals</tt></td>
<td>Run a heuristic algorithm to detect meshes with wrong face winding order/normals. </td>
</tr>
<tr>
<td><tt>-tri</tt></td>
<td><tt>--triangulate</tt></td>
<td>Triangulate poylgons with 4 and more points. Lines, points and triangles are not affected. </td>
</tr>
<tr>
<td><tt>-fi</tt></td>
<td><tt>--find-instances</tt></td>
<td>Search the data structure for instanced meshes and replace them by references. This can
reduce vertex/face counts but the postprocessing-step takes some time.</td>
</tr>
<tr>
<td><tt>-og</tt></td>
<td><tt>--optimize-graph</tt></td>
<td>Simplify and optimize the scenegraph. Use it with care, all hierarchy information could be lost.
Animations remain untouched. </td>
</tr>
<tr>
<td><tt>-om</tt></td>
<td><tt>--optimize-meshes</tt></td>
<td>Optimize mesh usage. Meshes are merged, if possible. Very effective in combination with <tt>--optimize-graph</tt></td>
</tr>
<tr>
<td><tt>-tuv</tt></td>
<td><tt>--transform-uv-coords</tt></td>
<td>Will transform uv-coordinates if possible.</td>
</tr>
<tr>
<td><tt>-fid</tt></td>
<td><tt>--find-invalid-data</tt></td>
<td>Will look for invalid data in the imported model structure.</td>
</tr>
<tr>
<td><tt>-db</tt></td>
<td><tt>--debone</tt></td>
<td>Removes nearly losslessly or according to a configured threshold bones from the model.</td>
</tr>
<tr>
<td><tt>-sbc</tt></td>
<td><tt>--split-by-bone-count</tt></td>
<td>Split meshes with too many bones. Necessary for our (limited) hardware skinning shader.</td>
</tr>
</table>
For convenience some default postprocessing configurations are provided.
The corresponding command line parameter is <tt>-c&lt;name&gt;</tt> (or <tt>--config=&lt;name&gt;</tt>).
<table border="1">
<tr>
<th>Name</th>
<th>Description</th>
<th>List of steps executed</th>
</tr>
<tr>
<td>fast</td>
<td>Fast post processing config, performs some essential optimizations and computes tangents</td>
<td><tt>-cts, -gn, -jiv, -tri, -guv, -sbpt</tt></td>
</tr>
<tr>
<td>default</td>
<td>Balanced post processing config; performs most optimizations</td>
<td><tt>-cts, -gsn, -jiv, -icl, -lbw, -rrm, -slm, -tri, -guv, -sbpt, -fd, -fiv</tt></td>
</tr>
<tr>
<td>full</td>
<td>Full post processing. May take a while but results in best output quality for most purposes</td>
<td><tt>-cts, -gsn, -jiv, -icl, -lbw, -rrm, -slm, -tri, -guv, -sbpt, -fd, -fiv, -fi, -vds -om</tt></td>
</tr>
</table>
The <tt>-tuv, -ptv, -og</tt> flags always need to be enabled manually.
There are also some common flags to customize Assimp's logging behaviour:
<table border="1">
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr>
<td><tt>-l</tt> or <tt>--show-log</tt></td>
<td>Show log file on console window (stderr)</td>
</tr>
<tr>
<td><tt>-lo&lt;file&gt;</tt> or <tt>--log-out=&lt;file&gt;</tt></td>
<td>Streams the log to &lt;file&gt;</td>
</tr>
<tr>
<td><tt>-v</tt> or <tt>--verbose</tt></td>
<td>Enables verbose logging. Debug messages will be produced too. This might
decrease loading performance and result in *very* long logs ... use with caution if you experience strange issues.</td>
</tr>
</table>
*/