add loft viewprovider

This commit is contained in:
Stefan Tröger 2015-06-03 08:02:19 +02:00
parent c82e4117e9
commit 987880fffa
9 changed files with 937 additions and 9 deletions

View File

@ -58,6 +58,7 @@
#include "ViewProviderDatumCS.h"
#include "ViewProviderThickness.h"
#include "ViewProviderPipe.h"
#include "ViewProviderLoft.h"
// use a different name to CreateCommand()
void CreatePartDesignCommands(void);
@ -143,6 +144,7 @@ PyMODINIT_FUNC initPartDesignGui()
PartDesignGui::ViewProviderAddSub ::init();
PartDesignGui::ViewProviderPrimitive ::init();
PartDesignGui::ViewProviderPipe ::init();
PartDesignGui::ViewProviderLoft ::init();
// add resources and reloads the translators
loadPartDesignResource();

View File

@ -138,6 +138,8 @@ SET(PartDesignGuiViewProvider_SRCS CommandPrimitive.cpp
ViewProviderPrimitive.cpp
ViewProviderPipe.h
ViewProviderPipe.cpp
ViewProviderLoft.h
ViewProviderLoft.cpp
)
SOURCE_GROUP("ViewProvider" FILES ${PartDesignGuiViewProvider_SRCS})

View File

@ -30,6 +30,8 @@
<file>icons/PartDesign_Body_Tree.svg</file>
<file>icons/PartDesign_Additive_Pipe.svg</file>
<file>icons/PartDesign_Subtractive_Pipe.svg</file>
<file>icons/PartDesign_Additive_Loft.svg</file>
<file>icons/PartDesign_Subtractive_Loft.svg</file>
<file>icons/PartDesign_Additive_Box.svg</file>
<file>icons/PartDesign_Additive_Cylinder.svg</file>
<file>icons/PartDesign_Additive_Sphere.svg</file>

View File

@ -0,0 +1,303 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3364"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
sodipodi:docname="PartDesign_Additive_Loft.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs3366">
<linearGradient
id="linearGradient4181">
<stop
style="stop-color:#fff70a;stop-opacity:1"
offset="0"
id="stop4183" />
<stop
style="stop-color:#909500;stop-opacity:1"
offset="1"
id="stop4185" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient2571"
gradientUnits="userSpaceOnUse"
cx="342.58258"
cy="27.256668"
fx="342.58258"
fy="27.256668"
r="19.571428"
gradientTransform="matrix(1.6258409,0.5434973,-8.8819886e-2,0.2656996,-215.02413,-170.90186)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3352"
gradientUnits="userSpaceOnUse"
cx="345.28433"
cy="15.560534"
fx="345.28433"
fy="15.560534"
r="19.571428"
gradientTransform="translate(-0.1767767,-2.6516504)" />
<linearGradient
id="linearGradient3593">
<stop
style="stop-color:#c8e0f9;stop-opacity:1;"
offset="0"
id="stop3595" />
<stop
style="stop-color:#637dca;stop-opacity:1;"
offset="1"
id="stop3597" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3354"
gradientUnits="userSpaceOnUse"
cx="330.63791"
cy="39.962704"
fx="330.63791"
fy="39.962704"
r="19.571428"
gradientTransform="translate(-0.1767767,-2.6516504)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3372" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3369"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.6258409,0.5434973,-8.8819886e-2,0.2656996,-461.81066,-173.06271)"
cx="342.58258"
cy="27.256668"
fx="342.58258"
fy="27.256668"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3372"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-327.50313,-4.3316646)"
cx="345.28433"
cy="15.560534"
fx="345.28433"
fy="15.560534"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3375"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-287.81791,-28.143054)"
cx="330.63791"
cy="39.962704"
fx="330.63791"
fy="39.962704"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3380"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9829174,1.3240854,-1.2330051,0.8105158,-131.04134,-483.74563)"
cx="320.44025"
cy="113.23357"
fx="320.44025"
fy="113.23357"
r="19.571428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="linearGradient3914"
x1="6.94525"
y1="36.838673"
x2="48.691113"
y2="36.838673"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-4.8699606,-2.3863162)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="linearGradient3792"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-4.8699606,-2.3863162)"
x1="6.8300767"
y1="34.146042"
x2="48.691113"
y2="36.838673" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3812"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-287.81791,-28.143054)"
cx="330.63791"
cy="39.962704"
fx="330.63791"
fy="39.962704"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3814"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-327.50313,-4.3316646)"
cx="345.28433"
cy="15.560534"
fx="345.28433"
fy="15.560534"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3816"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9829174,1.3240854,-1.2330051,0.8105158,-131.04134,-483.74563)"
cx="320.44025"
cy="113.23357"
fx="320.44025"
fy="113.23357"
r="19.571428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4181"
id="linearGradient3828"
x1="42.293243"
y1="30.097338"
x2="25.28153"
y2="41.398239"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4473994,0,0,1.2324248,-13.163245,-3.5915381)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-1"
id="linearGradient3828-2"
x1="20.383333"
y1="32.634235"
x2="52.726578"
y2="32.634235"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3864-1">
<stop
id="stop3866-6"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868-7"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientTransform="matrix(1.4473994,0,0,1.2324248,-42.705841,8.2042099)"
y2="24.792791"
x2="34.363964"
y1="6.9189205"
x1="47.163967"
gradientUnits="userSpaceOnUse"
id="linearGradient3845"
xlink:href="#linearGradient4181"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4181"
id="linearGradient4193"
x1="11.134317"
y1="43.334751"
x2="22.194927"
y2="43.334751"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4473994,0,0,1.2324248,-13.163245,-3.5915381)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="8.671875"
inkscape:cx="11.531057"
inkscape:cy="50.565766"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1848"
inkscape:window-height="1043"
inkscape:window-x="66"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata3369">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3828);fill-opacity:1;stroke:#0a0a15;stroke-width:2.53762841;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17.714608,43.307221 0,16.911977 41.726832,-9.806104 0.667629,-36.23995 z"
id="path3820"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient3845);fill-opacity:1;stroke:#0e0f1e;stroke-width:2.53762841;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 4.3620235,39.327932 16.546257,43.307221 59.775254,13.74679 21.553478,3.7985698 Z"
id="path3820-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc"
id="path3918-3"
d="M 4.5567849,39.690662 17.28665,43.847279 17.35698,59.908801 C 12.654351,58.686936 8.8505938,57.076318 5.0134363,55.480145 Z"
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4193);fill-opacity:1;stroke:#ff0900;stroke-width:2.96151137;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<path
style="fill:none;stroke:#ff0900;stroke-width:3.33898473;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 21.720384,4.0828043 37.887961,10.0903387 0,36.097834"
id="path3864"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -21,6 +21,17 @@
version="1.1">
<defs
id="defs3366">
<linearGradient
id="linearGradient4187">
<stop
id="stop4189"
offset="0"
style="stop-color:#7a6600;stop-opacity:1" />
<stop
id="stop4191"
offset="1"
style="stop-color:#ffe400;stop-opacity:0.60843372" />
</linearGradient>
<linearGradient
osb:paint="gradient"
id="linearGradient4178">
@ -179,6 +190,15 @@
id="linearGradient3845"
xlink:href="#linearGradient4166"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4187"
id="linearGradient4179"
x1="-6.8978205"
y1="38.9702"
x2="27.605837"
y2="48.850491"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
@ -188,8 +208,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="9.0078335"
inkscape:cx="15.654969"
inkscape:cy="23.838428"
inkscape:cx="-1.1082183"
inkscape:cy="23.949442"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
@ -247,8 +267,8 @@
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#ff0900;stroke-width:2.55299997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 11.380951,37.174463 14.558836,5.397865 0.389553,17.96064 C 22.550473,59.403098 14.498258,55.027369 11.414853,53.551374"
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4179);fill-opacity:1;stroke:#ff0900;stroke-width:2.55299997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 12.380081,37.174463 13.559706,5.397865 0.389553,17.96064 C 22.550473,59.403098 15.386374,55.360412 12.302969,53.884417"
id="path3918-3-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,314 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3364"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
sodipodi:docname="PartDesign_Subtractive_Loft.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs3366">
<linearGradient
id="linearGradient4214">
<stop
style="stop-color:#ff1f00;stop-opacity:1"
offset="0"
id="stop4216" />
<stop
style="stop-color:#901011;stop-opacity:1"
offset="1"
id="stop4218" />
</linearGradient>
<linearGradient
id="linearGradient4181">
<stop
style="stop-color:#fff70a;stop-opacity:1"
offset="0"
id="stop4183" />
<stop
style="stop-color:#909500;stop-opacity:1"
offset="1"
id="stop4185" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient2571"
gradientUnits="userSpaceOnUse"
cx="342.58258"
cy="27.256668"
fx="342.58258"
fy="27.256668"
r="19.571428"
gradientTransform="matrix(1.6258409,0.5434973,-8.8819886e-2,0.2656996,-215.02413,-170.90186)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3352"
gradientUnits="userSpaceOnUse"
cx="345.28433"
cy="15.560534"
fx="345.28433"
fy="15.560534"
r="19.571428"
gradientTransform="translate(-0.1767767,-2.6516504)" />
<linearGradient
id="linearGradient3593">
<stop
style="stop-color:#c8e0f9;stop-opacity:1;"
offset="0"
id="stop3595" />
<stop
style="stop-color:#637dca;stop-opacity:1;"
offset="1"
id="stop3597" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3354"
gradientUnits="userSpaceOnUse"
cx="330.63791"
cy="39.962704"
fx="330.63791"
fy="39.962704"
r="19.571428"
gradientTransform="translate(-0.1767767,-2.6516504)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3372" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3369"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.6258409,0.5434973,-8.8819886e-2,0.2656996,-461.81066,-173.06271)"
cx="342.58258"
cy="27.256668"
fx="342.58258"
fy="27.256668"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3372"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-327.50313,-4.3316646)"
cx="345.28433"
cy="15.560534"
fx="345.28433"
fy="15.560534"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3375"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-287.81791,-28.143054)"
cx="330.63791"
cy="39.962704"
fx="330.63791"
fy="39.962704"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3380"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9829174,1.3240854,-1.2330051,0.8105158,-131.04134,-483.74563)"
cx="320.44025"
cy="113.23357"
fx="320.44025"
fy="113.23357"
r="19.571428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="linearGradient3914"
x1="6.94525"
y1="36.838673"
x2="48.691113"
y2="36.838673"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-4.8699606,-2.3863162)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="linearGradient3792"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-4.8699606,-2.3863162)"
x1="6.8300767"
y1="34.146042"
x2="48.691113"
y2="36.838673" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3812"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-287.81791,-28.143054)"
cx="330.63791"
cy="39.962704"
fx="330.63791"
fy="39.962704"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3814"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0012324,0,0,0.9421773,-327.50313,-4.3316646)"
cx="345.28433"
cy="15.560534"
fx="345.28433"
fy="15.560534"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3816"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9829174,1.3240854,-1.2330051,0.8105158,-131.04134,-483.74563)"
cx="320.44025"
cy="113.23357"
fx="320.44025"
fy="113.23357"
r="19.571428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4214"
id="linearGradient3828"
x1="42.293243"
y1="30.097338"
x2="25.28153"
y2="41.398239"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4886239,0,0,1.2242555,-15.032603,-3.8746786)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-1"
id="linearGradient3828-2"
x1="20.383333"
y1="32.634235"
x2="52.726578"
y2="32.634235"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3864-1">
<stop
id="stop3866-6"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868-7"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientTransform="matrix(1.4886239,0,0,1.2242555,-45.416624,7.8428807)"
y2="24.792791"
x2="34.363964"
y1="6.9189205"
x1="47.163967"
gradientUnits="userSpaceOnUse"
id="linearGradient3845"
xlink:href="#linearGradient4214"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4214"
id="linearGradient4193"
x1="11.134317"
y1="43.334751"
x2="22.194927"
y2="43.334751"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4886239,0,0,1.2242555,-15.032603,-3.8746786)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="8.671875"
inkscape:cx="-2.2182185"
inkscape:cy="32.115316"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1848"
inkscape:window-height="1043"
inkscape:window-x="66"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata3369">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3828);fill-opacity:1;stroke:#0a0a15;stroke-width:2.56496906;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 16.724707,42.713207 0,16.799874 42.915285,-9.741103 0.686644,-35.99973 z"
id="path3820"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient3845);fill-opacity:1;stroke:#0e0f1e;stroke-width:2.56496906;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 2.9918164,38.760295 15.523079,42.713207 59.983313,13.34872 20.672914,3.466443 Z"
id="path3820-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc"
id="path3918-3"
d="m 3.1921261,39.12062 13.0924329,4.129065 0.07233,15.955056 C 11.520324,57.990975 7.6082301,56.391033 3.661784,54.805441 Z"
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4193);fill-opacity:1;stroke:#0001ff;stroke-width:2.99341917;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<path
style="fill:none;stroke:#002eff;stroke-width:3.37495947;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 20.844575,3.7487935 38.967076,10.0234535 0,35.858555"
id="path3864"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -21,6 +21,17 @@
version="1.1">
<defs
id="defs3366">
<linearGradient
id="linearGradient4187">
<stop
id="stop4189"
offset="0"
style="stop-color:#9e2009;stop-opacity:0.78313255" />
<stop
id="stop4191"
offset="1"
style="stop-color:#ff0500;stop-opacity:0.8012048" />
</linearGradient>
<linearGradient
osb:paint="gradient"
id="linearGradient4178">
@ -179,6 +190,15 @@
id="linearGradient3845"
xlink:href="#linearGradient4166"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4187"
id="linearGradient4179"
x1="4.3146424"
y1="50.071651"
x2="27.605837"
y2="48.850491"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
@ -188,8 +208,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="9.0078335"
inkscape:cx="-1.1082183"
inkscape:cy="23.949442"
inkscape:cx="-17.871406"
inkscape:cy="24.060456"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
@ -208,7 +228,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -247,8 +267,8 @@
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#1a00ff;stroke-width:2.55299997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 11.380951,37.174463 14.558836,5.397865 0.389553,17.96064 C 22.550473,59.403098 14.498258,55.027369 11.414853,53.551374"
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4179);fill-opacity:1;stroke:#1a00ff;stroke-width:2.55299997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 12.380081,37.285477 13.559706,5.286851 0.389553,17.96064 C 22.550473,59.403098 15.497388,55.471427 12.413983,53.995432"
id="path3918-3-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,203 @@
/***************************************************************************
* Copyright (c) 2015 Stefan Tröger <stefantroeger@gmx.net> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
#ifndef _PreComp_
# include <QMessageBox>
#endif
#include "ViewProviderLoft.h"
//#include "TaskLoftParameters.h"
#include "Workbench.h"
#include "TaskLoftParameters.h"
#include <Mod/PartDesign/App/Body.h>
#include <Mod/PartDesign/App/FeatureLoft.h>
#include <Mod/Sketcher/App/SketchObject.h>
#include <Gui/Control.h>
#include <Gui/Command.h>
#include <Gui/Application.h>
#include <Gui/BitmapFactory.h>
#include <TopExp.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
using namespace PartDesignGui;
PROPERTY_SOURCE(PartDesignGui::ViewProviderLoft,PartDesignGui::ViewProvider)
ViewProviderLoft::ViewProviderLoft()
{
}
ViewProviderLoft::~ViewProviderLoft()
{
}
std::vector<App::DocumentObject*> ViewProviderLoft::claimChildren(void)const
{
std::vector<App::DocumentObject*> temp;
App::DocumentObject* sketch = static_cast<PartDesign::Loft*>(getObject())->Sketch.getValue();
if (sketch != NULL)
temp.push_back(sketch);
return temp;
}
void ViewProviderLoft::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{/*
QAction* act;
act = menu->addAction(QObject::tr("Edit pad"), receiver, member);
act->setData(QVariant((int)ViewProvider::Default));
PartGui::ViewProviderPart::setupContextMenu(menu, receiver, member);*/
}
bool ViewProviderLoft::doubleClicked(void)
{
Gui::Command::doCommand(Gui::Command::Gui,"Gui.activeDocument().setEdit('%s',0)",this->pcObject->getNameInDocument());
return true;
}
bool ViewProviderLoft::setEdit(int ModNum)
{
if (ModNum == ViewProvider::Default || ModNum == 1 ) {
setPreviewDisplayMode(true);
/*
// When double-clicking on the item for this pad the
// object unsets and sets its edit mode without closing
// the task panel
Gui::TaskView::TaskDialog *dlg = Gui::Control().activeDialog();
TaskDlgLoftParameters *padDlg = qobject_cast<TaskDlgLoftParameters *>(dlg);
if (padDlg && padDlg->getLoftView() != this)
padDlg = 0; // another pad left open its task panel
if (dlg && !padDlg) {
QMessageBox msgBox;
msgBox.setText(QObject::tr("A dialog is already open in the task panel"));
msgBox.setInformativeText(QObject::tr("Do you want to close this dialog?"));
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
msgBox.setDefaultButton(QMessageBox::Yes);
int ret = msgBox.exec();
if (ret == QMessageBox::Yes)
Gui::Control().reject();
else
return false;
}
// clear the selection (convenience)
Gui::Selection().clearSelection();
// always change to PartDesign WB, remember where we come from
oldWb = Gui::Command::assureWorkbench("PartDesignWorkbench");
// start the edit dialog
if (padDlg)
Gui::Control().showDialog(padDlg);
else
Gui::Control().showDialog(new TaskDlgLoftParameters(this,ModNum == 1));
*/
return true;
}
else {
return ViewProviderPart::setEdit(ModNum);
}
}
void ViewProviderLoft::unsetEdit(int ModNum) {
setPreviewDisplayMode(false);
PartDesignGui::ViewProvider::unsetEdit(ModNum);
}
bool ViewProviderLoft::onDelete(const std::vector<std::string> &s)
{/*
PartDesign::Loft* pcLoft = static_cast<PartDesign::Loft*>(getObject());
// get the Sketch
Sketcher::SketchObject *pcSketch = 0;
if (pcLoft->Sketch.getValue())
pcSketch = static_cast<Sketcher::SketchObject*>(pcLoft->Sketch.getValue());
// if abort command deleted the object the sketch is visible again
if (pcSketch && Gui::Application::Instance->getViewProvider(pcSketch))
Gui::Application::Instance->getViewProvider(pcSketch)->show();
return ViewProvider::onDelete(s);*/
}
void ViewProviderLoft::highlightReferences(const bool on, bool auxillery)
{/*
PartDesign::Loft* pcLoft = static_cast<PartDesign::Loft*>(getObject());
Part::Feature* base;
if(!auxillery)
base = static_cast<Part::Feature*>(pcLoft->Spine.getValue());
else
base = static_cast<Part::Feature*>(pcLoft->AuxillerySpine.getValue());
if (base == NULL) return;
PartGui::ViewProviderPart* svp = dynamic_cast<PartGui::ViewProviderPart*>(
Gui::Application::Instance->getViewProvider(base));
if (svp == NULL) return;
std::vector<std::string> edges;
if(!auxillery)
edges = pcLoft->Spine.getSubValuesStartsWith("Edge");
else
edges = pcLoft->AuxillerySpine.getSubValuesStartsWith("Edge");
if (on) {
if (!edges.empty() && originalLineColors.empty()) {
TopTools_IndexedMapOfShape eMap;
TopExp::MapShapes(base->Shape.getValue(), TopAbs_EDGE, eMap);
originalLineColors = svp->LineColorArray.getValues();
std::vector<App::Color> colors = originalLineColors;
colors.resize(eMap.Extent(), svp->LineColor.getValue());
for (std::string e : edges) {
int idx = atoi(e.substr(4).c_str()) - 1;
if (idx < colors.size())
colors[idx] = App::Color(1.0,0.0,1.0); // magenta
}
svp->LineColorArray.setValues(colors);
}
} else {
if (!edges.empty() && !originalLineColors.empty()) {
svp->LineColorArray.setValues(originalLineColors);
originalLineColors.clear();
}
}*/
}
QIcon ViewProviderLoft::getIcon(void) const {
QString str = QString::fromAscii("PartDesign_");
auto* prim = static_cast<PartDesign::Loft*>(getObject());
if(prim->getAddSubType() == PartDesign::FeatureAddSub::Additive)
str += QString::fromAscii("Additive_");
else
str += QString::fromAscii("Subtractive_");
str += QString::fromAscii("Loft.svg");
return Gui::BitmapFactory().pixmap(str.toStdString().c_str());
}

View File

@ -0,0 +1,62 @@
/***************************************************************************
* Copyright (c) 2015 Stefan Tröger <stefantroeger@gmx.net> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef PARTGUI_ViewProviderLoft_H
#define PARTGUI_ViewProviderLoft_H
#include "ViewProviderAddSub.h"
namespace PartDesignGui {
class PartDesignGuiExport ViewProviderLoft : public ViewProviderAddSub
{
PROPERTY_HEADER(PartDesignGui::ViewProviderLoft);
public:
/// constructor
ViewProviderLoft();
/// destructor
virtual ~ViewProviderLoft();
/// grouping handling
std::vector<App::DocumentObject*> claimChildren(void)const;
void setupContextMenu(QMenu*, QObject*, const char*);
bool doubleClicked();
virtual bool onDelete(const std::vector<std::string> &);
void highlightReferences(const bool on, bool auxillery);
protected:
virtual bool setEdit(int ModNum);
virtual void unsetEdit(int ModNum);
virtual QIcon getIcon(void) const;
private:
std::vector<App::Color> originalLineColors;
};
} // namespace PartDesignGui
#endif // PARTGUI_ViewProviderLoft_H