Initial version of Cosmetic Eraser

This commit is contained in:
wandererfan
2019-05-31 15:11:02 -04:00
committed by WandererFan
parent 448c68cd41
commit 4a2720cf51
9 changed files with 696 additions and 35 deletions

View File

@@ -256,7 +256,6 @@ bool CosmeticEdge::fromCSV(std::string& lineSpec)
return false;
}
std::vector<std::string> values = split(lineSpec);
Base::Console().Message("CE::fromCSV - values: %d\n",values.size());
if (values.size() < maxCells) {
Base::Console().Message( "CosmeticEdge::fromCSV(%s) invalid CSV entry\n",lineSpec.c_str() );
return false;
@@ -293,7 +292,7 @@ bool CosmeticEdge::fromCSV(std::string& lineSpec)
//duplicate of CV routine. make static? or base class?
std::vector<std::string> CosmeticEdge::split(std::string csvLine)
{
Base::Console().Message("CE::split - csvLine: %s\n",csvLine.c_str());
// Base::Console().Message("CE::split - csvLine: %s\n",csvLine.c_str());
std::vector<std::string> result;
std::stringstream lineStream(csvLine);
std::string cell;

View File

@@ -1019,8 +1019,13 @@ int DrawViewPart::addRandomVertex(Base::Vector3d pos)
int newIdx = -1;
TechDraw::CosmeticVertex* rVert = new TechDraw::CosmeticVertex(pos);
cosmoVertex.push_back(rVert);
stuffCosmeticVertexList();
return newIdx;
}
//stuff stringList
void DrawViewPart::stuffCosmeticVertexList(void)
{
// Base::Console().Message("DVP::stuffCosmeticVertexList()\n");
std::vector<std::string> saveVerts;
const std::vector<TechDraw::CosmeticVertex*> cosVerts = getCosmeticVertex();
for (auto& cv: cosVerts) {
@@ -1028,18 +1033,50 @@ int DrawViewPart::addRandomVertex(Base::Vector3d pos)
saveVerts.push_back(csv);
}
CosmeticVertexList.setValues(saveVerts);
return newIdx;
}
void DrawViewPart::removeRandomVertex(TechDraw::CosmeticVertex* cv)
{
// Base::Console().Message("DVP::removeRandomVertex(cv) - cvs in: %d\n", cosmoVertex.size());
bool found = false;
std::vector<TechDraw::CosmeticVertex*> newCosmoVertex;
for (auto& v: cosmoVertex) {
if (cv == v) {
found = true;
continue;
} else {
newCosmoVertex.push_back(v);
}
}
if ( (cv != nullptr) &&
(found) ) {
delete cv;
}
cosmoVertex = newCosmoVertex;
stuffCosmeticVertexList();
recomputeFeature();
}
void DrawViewPart::removeRandomVertex(int idx)
{
if (idx < (int) cosmoVertex.size()) {
TechDraw::CosmeticVertex* cvSave = cosmoVertex.at(idx);
cosmoVertex.erase(cosmoVertex.begin() + idx);
delete cvSave;
}
stuffCosmeticVertexList();
recomputeFeature();
}
TechDraw::CosmeticVertex* DrawViewPart::getCosmeticVertexByIndex(int idx) const
{
// Base::Console().Message("DVP::getCosmeticVertexByIndex(%d)\n", idx);
int cosmoOffset = 1000;
int realIdx = idx - cosmoOffset;
CosmeticVertex* result = nullptr;
const std::vector<TechDraw::CosmeticVertex*> verts = getCosmeticVertex();
if ((unsigned) realIdx < verts.size()) {
result = verts.at(realIdx);
if ((unsigned) idx < verts.size()) {
result = verts.at(idx);
}
return result;
}
@@ -1084,7 +1121,7 @@ int DrawViewPart::addRandomEdge(Base::Vector3d p1, Base::Vector3d p2)
std::string csv = ce->toCSV();
saveEdges.push_back(csv);
}
CosmeticEdgeList.setValues(saveEdges);
stuffCosmeticEdgeList();
return newIdx;
}
@@ -1094,15 +1131,7 @@ int DrawViewPart::addRandomEdge(TopoDS_Edge e)
int newIdx = -1;
TechDraw::CosmeticEdge* rEdge = new TechDraw::CosmeticEdge(e);
cosmoEdge.push_back(rEdge);
//stuff stringList
std::vector<std::string> saveEdges;
const std::vector<TechDraw::CosmeticEdge*> cosEdges = getCosmeticEdge();
for (auto& ce: cosEdges) {
std::string csv = ce->toCSV();
saveEdges.push_back(csv);
}
CosmeticEdgeList.setValues(saveEdges);
stuffCosmeticEdgeList();
return newIdx;
}
@@ -1111,8 +1140,13 @@ int DrawViewPart::addRandomEdge(CosmeticEdge* ce)
// Base::Console().Message("DVP::addRandomEdge(CosmeticEdge)\n");
int newIdx = -1;
cosmoEdge.push_back(ce);
stuffCosmeticEdgeList();
return newIdx;
}
//stuff stringList
void DrawViewPart::stuffCosmeticEdgeList(void)
{
// Base::Console().Message("DVP::stuffCosmeticEdgeList()\n");
std::vector<std::string> saveEdges;
const std::vector<TechDraw::CosmeticEdge*> cosEdges = getCosmeticEdge();
for (auto& ce: cosEdges) {
@@ -1120,18 +1154,49 @@ int DrawViewPart::addRandomEdge(CosmeticEdge* ce)
saveEdges.push_back(csv);
}
CosmeticEdgeList.setValues(saveEdges);
return newIdx;
}
void DrawViewPart::removeRandomEdge(TechDraw::CosmeticEdge* ce)
{
// Base::Console().Message("DVP::removeRandomEdge(ce) - ces in: %d\n", cosmoEdge.size());
bool found = false;
std::vector<TechDraw::CosmeticEdge*> newCosmoEdge;
for (auto& e: cosmoEdge) {
if (ce == e) {
found = true;
continue;
} else {
newCosmoEdge.push_back(e);
}
}
if ( (ce != nullptr) &&
(found) ) {
delete ce;
}
cosmoEdge = newCosmoEdge;
stuffCosmeticEdgeList();
recomputeFeature();
}
void DrawViewPart::removeRandomEdge(int idx)
{
// Base::Console().Message("DVP::removeRandomEdge(%d) - ces in: %d\n", idx, cosmoEdge.size());
if (idx < (int) cosmoEdge.size()) {
TechDraw::CosmeticEdge* ceSave = cosmoEdge.at(idx);
cosmoEdge.erase(cosmoEdge.begin() + idx);
delete ceSave;
}
stuffCosmeticEdgeList();
recomputeFeature();
}
TechDraw::CosmeticEdge* DrawViewPart::getCosmeticEdgeByIndex(int idx) const
{
// Base::Console().Message("DVP::getCosmeticEdgeByIndex(%d)\n", idx);
int cosmoOffset = 1000;
int realIdx = idx - cosmoOffset;
CosmeticEdge* result = nullptr;
const std::vector<TechDraw::CosmeticEdge*> edges = getCosmeticEdge();
if ((unsigned) realIdx < edges.size()) {
result = edges.at(realIdx);
if (idx < (int) edges.size()) {
result = edges.at(idx);
}
return result;
}

View File

@@ -168,6 +168,8 @@ public:
bool isIso(void) const;
virtual int addRandomVertex(Base::Vector3d pos);
virtual void removeRandomVertex(TechDraw::CosmeticVertex* cv);
virtual void removeRandomVertex(int idx);
const std::vector<TechDraw::CosmeticVertex*> & getCosmeticVertex(void) const { return cosmoVertex; }
TechDraw::CosmeticVertex* getCosmeticVertexByIndex(int idx) const;
TechDraw::CosmeticVertex* getCosmeticVertexByLink(int idx) const;
@@ -176,6 +178,8 @@ public:
virtual int addRandomEdge(Base::Vector3d start, Base::Vector3d end);
virtual int addRandomEdge(TopoDS_Edge e);
virtual int addRandomEdge(TechDraw::CosmeticEdge*);
virtual void removeRandomEdge(TechDraw::CosmeticEdge* ce);
virtual void removeRandomEdge(int idx);
const std::vector<TechDraw::CosmeticEdge*> & getCosmeticEdge(void) const { return cosmoEdge; }
TechDraw::CosmeticEdge* getCosmeticEdgeByIndex(int idx) const;
TechDraw::CosmeticEdge* getCosmeticEdgeByLink(int idx) const;
@@ -205,9 +209,12 @@ protected:
//Cosmetics
std::vector<TechDraw::CosmeticVertex*> cosmoVertex;
void rebuildCosmoVertex(void);
void stuffCosmeticVertexList(void);
std::vector<TechDraw::CosmeticEdge*> cosmoEdge;
void rebuildCosmoEdge(void);
void stuffCosmeticEdgeList(void);
private:
bool nowUnsetting;

View File

@@ -481,6 +481,18 @@ int GeometryObject::addRandomVertex(Base::Vector3d pos)
return idx;
}
//void GeometryObject::removeRandomVertex(TechDraw::CosmeticVertex* cv)
//{
// Base::Console().Message("GO::removeRandomVertex(cv)\n");
//}
//void GeometryObject::removeRandomVertex(int idx)
//{
// Base::Console().Message("GO::removeRandomVertex(%d)\n", idx);
//}
int GeometryObject::addRandomEdge(TechDrawGeometry::BaseGeom* base)
{
// Base::Console().Message("GO::addRandomEdge() - cosmetic: %d\n", base->cosmetic);
@@ -490,6 +502,18 @@ int GeometryObject::addRandomEdge(TechDrawGeometry::BaseGeom* base)
return idx;
}
//void GeometryObject::removeRandomEdge(TechDraw::CosmeticEdge* ce)
//{
// Base::Console().Message("GO::removeRandomEdge(ce)\n");
//}
//void GeometryObject::removeRandomEdge(int idx)
//{
// Base::Console().Message("GO::removeRandomEdge(%d)\n",idx);
//}
//! empty Face geometry
void GeometryObject::clearFaceGeom()
{

View File

@@ -127,8 +127,13 @@ public:
TopoDS_Shape getHidSeam(void) { return hidSeam; }
TopoDS_Shape getHidIso(void) { return hidIso; }
//Are removeXXXXX functions really needed for GO?
int addRandomVertex(Base::Vector3d pos);
/* void removeRandomVertex(TechDraw::CosmeticVertex* cv);*/
/* void removeRandomVertex(int idx);*/
int addRandomEdge(TechDrawGeometry::BaseGeom* bg);
/* void removeRandomEdge(TechDraw::CosmeticEdge* ce);*/
/* void removeRandomEdge(int idx);*/
protected:
//HLR output

View File

@@ -659,6 +659,97 @@ bool CmdTechDrawCenterLine::isActive(void)
return (havePage && haveView);
}
//===========================================================================
// TechDraw_CosmeticEraser
//===========================================================================
DEF_STD_CMD_A(CmdTechDrawCosmeticEraser);
CmdTechDrawCosmeticEraser::CmdTechDrawCosmeticEraser()
: Command("TechDraw_CosmeticEraser")
{
sAppModule = "TechDraw";
sGroup = QT_TR_NOOP("TechDraw");
sMenuText = QT_TR_NOOP("Remove a cosmetic object");
sToolTipText = QT_TR_NOOP("Remove a cosmetic object");
sWhatsThis = "TechDraw_CosmeticEraser";
sStatusTip = sToolTipText;
sPixmap = "actions/techdraw-eraser";
}
void CmdTechDrawCosmeticEraser::activated(int iMsg)
{
Q_UNUSED(iMsg);
Gui::TaskView::TaskDialog *dlg = Gui::Control().activeDialog();
if (dlg != nullptr) {
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Task In Progress"),
QObject::tr("Close active task dialog and try again."));
return;
}
TechDraw::DrawPage* page = DrawGuiUtil::findPage(this);
if (!page) {
return;
}
std::vector<Gui::SelectionObject> selection = getSelection().getSelectionEx();
if (selection.empty()) {
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
QObject::tr("Nothing selected"));
return;
}
bool selectionError = false;
for (auto& s: selection) {
TechDraw::DrawViewPart * objFeat = static_cast<TechDraw::DrawViewPart*> (s.getObject());
if (!objFeat->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
selectionError = true;
break;
}
}
if (selectionError) {
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
QObject::tr("At least 1 object in selection is not a part view"));
return;
}
TechDraw::DrawViewPart * objFeat = nullptr;
std::vector<std::string> SubNames;
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
for (; itSel != selection.end(); itSel++) {
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
SubNames = (*itSel).getSubNames();
}
for (auto& s: SubNames) {
int idx = TechDraw::DrawUtil::getIndexFromName(s);
std::string geomType = TechDraw::DrawUtil::getGeomTypeFromName(s);
if (geomType == "Edge") {
TechDraw::CosmeticEdge* ce = objFeat->getCosmeticEdgeByLink(idx);
if (ce != nullptr) {
objFeat->removeRandomEdge(ce);
}
} else if (geomType == "Vertex") {
TechDraw::CosmeticVertex* cv = objFeat->getCosmeticVertexByLink(idx);
if (cv != nullptr) {
objFeat->removeRandomVertex(cv);
}
} else {
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
QObject::tr("Unknown object type in selection"));
return;
}
}
}
}
bool CmdTechDrawCosmeticEraser::isActive(void)
{
bool havePage = DrawGuiUtil::needPage(this);
bool haveView = DrawGuiUtil::needView(this);
return (havePage && haveView);
}
void CreateTechDrawCommandsAnnotate(void)
{
@@ -672,6 +763,7 @@ void CreateTechDrawCommandsAnnotate(void)
rcCmdMgr.addCommand(new CmdTechDrawQuadrant());
rcCmdMgr.addCommand(new CmdTechDrawAnnotation());
rcCmdMgr.addCommand(new CmdTechDrawCenterLine());
rcCmdMgr.addCommand(new CmdTechDrawCosmeticEraser());
}
//===========================================================================

View File

@@ -67,6 +67,7 @@
<file>icons/actions/techdraw-midpoint.svg</file>
<file>icons/actions/techdraw-quadrant.svg</file>
<file>icons/actions/techdraw-centerline.svg</file>
<file>icons/actions/techdraw-eraser.svg</file>
<file>icons/actions/section-up.svg</file>
<file>icons/actions/section-down.svg</file>
<file>icons/actions/section-left.svg</file>

View File

@@ -0,0 +1,476 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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="64"
height="64"
version="1.1"
id="svg1018"
sodipodi:docname="techdraw-eraser.svg"
inkscape:version="0.92.4 (unknown)">
<metadata
id="metadata1024">
<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>
<defs
id="defs1022">
<linearGradient
inkscape:collect="always"
id="linearGradient5062">
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="0"
id="stop5058" />
<stop
style="stop-color:#204a87;stop-opacity:1"
offset="1"
id="stop5060" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#b"
id="linearGradient1044"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.18171768,-0.0126506,0,0.249343,-4.2259388,-15.512353)"
x1="136.557"
y1="213.436"
x2="54.608"
y2="250.543" />
<linearGradient
inkscape:collect="always"
xlink:href="#b"
id="linearGradient1046"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.16804313,-0.01169865,0,0.26963402,-4.2259388,-15.512353)"
x1="159.182"
y1="219.685"
x2="184.119"
y2="234.354" />
<linearGradient
inkscape:collect="always"
xlink:href="#e"
id="linearGradient1048"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25349833,-0.01764786,0,0.17873787,-4.2259339,-11.41898)"
x1="124.513"
y1="199.205"
x2="99.415"
y2="224.954" />
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1358"
inkscape:window-height="703"
id="namedview1020"
showgrid="false"
inkscape:zoom="8.03125"
inkscape:cx="32.747082"
inkscape:cy="36.980545"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:current-layer="svg1018" />
<linearGradient
id="a">
<stop
offset="0"
stop-color="#fff"
id="stop894" />
<stop
offset="1"
stop-color="#d5d4d4"
id="stop896" />
</linearGradient>
<linearGradient
id="c">
<stop
offset="0"
stop-color="#ff0d00"
id="stop899" />
<stop
offset=".746"
stop-color="#ff3900"
id="stop901" />
<stop
offset="1"
stop-color="#d05521"
id="stop903" />
</linearGradient>
<linearGradient
id="d">
<stop
offset="0"
stop-color="#7d7d7d"
id="stop906" />
<stop
offset="1"
id="stop908" />
</linearGradient>
<linearGradient
id="e">
<stop
offset="0"
id="stop911" />
<stop
offset="1"
stop-opacity="0"
id="stop913" />
</linearGradient>
<linearGradient
id="f">
<stop
offset="0"
stop-color="#ff8b00"
id="stop916" />
<stop
offset="1"
stop-color="#4d0200"
id="stop918" />
</linearGradient>
<linearGradient
id="b">
<stop
offset="0"
stop-color="#fff"
id="stop921" />
<stop
offset="1"
stop-color="#fff"
stop-opacity="0"
id="stop923" />
</linearGradient>
<radialGradient
id="g"
cx="86.514"
cy="332.373"
r="83.26"
gradientTransform="matrix(0.26149829,-0.01820471,0,0.17327001,-4.2259388,8.487647)"
gradientUnits="userSpaceOnUse"
xlink:href="#a" />
<linearGradient
id="h"
x1="86.514"
x2="73.286"
y1="335.761"
y2="247.073"
gradientTransform="matrix(0.26149829,-0.01820471,0,0.17327001,-4.2259388,16.487647)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<linearGradient
id="i"
x1="132.73"
x2="84.004"
y1="279.475"
y2="210.463"
gradientTransform="matrix(0.18171768,-0.0126506,0,0.249343,-4.2259388,-15.512353)"
gradientUnits="userSpaceOnUse"
xlink:href="#a" />
<linearGradient
id="j"
x1="136.557"
x2="54.608"
y1="213.436"
y2="250.543"
gradientTransform="matrix(0.18171768,-0.0126506,0,0.249343,-4.2259388,0.487647)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<linearGradient
id="k"
x1="145.422"
x2="198.285"
y1="264.702"
y2="218.749"
gradientTransform="matrix(0.18171768,-0.0126506,0,0.249343,-4.2259388,-15.512353)"
gradientUnits="userSpaceOnUse"
xlink:href="#a" />
<linearGradient
id="l"
x1="159.182"
x2="184.119"
y1="219.685"
y2="234.354"
gradientTransform="matrix(0.16804313,-0.01169865,0,0.26963402,-4.2259388,-15.512353)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<linearGradient
id="m"
x1="36.606998"
x2="28.653999"
y1="4.8839998"
y2="47.244999"
gradientTransform="matrix(1.1821306,-0.0822963,0,0.75809133,-0.15633749,0.657662)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5062" />
<linearGradient
id="n"
x1="134.593"
x2="126.826"
y1="300.555"
y2="189.893"
gradientTransform="matrix(0.26580774,-0.01850477,0,0.17046024,-4.2259388,-15.512353)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<linearGradient
id="o"
x1="77.830002"
x2="40.120998"
y1="43.692001"
y2="18.128"
gradientTransform="matrix(0.808151,-0.05626094,0,1.1089053,-0.15633749,0.6576617)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5062" />
<linearGradient
id="p"
x1="188.097"
x2="269.306"
y1="173.354"
y2="220.313"
gradientTransform="matrix(0.20242949,-0.01409254,0,0.22382999,-4.2259388,-15.512353)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<linearGradient
id="q"
x1="138.685"
x2="90.955"
y1="221.05"
y2="574.67"
gradientTransform="matrix(0.24332835,-0.01693977,0,0.2100845,-4.2259388,-16.298147)"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#d" />
<linearGradient
id="r"
x1="124.513"
x2="99.415"
y1="199.205"
y2="224.954"
gradientTransform="matrix(0.25349833,-0.01764786,0,0.17873787,-4.2259339,-11.41898)"
gradientUnits="userSpaceOnUse"
xlink:href="#e" />
<linearGradient
id="s"
x1="163.743"
x2="137.31"
y1="301.157"
y2="301.158"
gradientTransform="matrix(0.25349833,-0.01764786,0,0.17873787,-4.2259339,-11.41898)"
gradientUnits="userSpaceOnUse"
xlink:href="#e" />
<radialGradient
id="t"
cx="145.828"
cy="265.9"
r="24.113"
gradientTransform="matrix(0.2619203,-0.01823413,0,0.17299112,-4.2259339,-11.41898)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#fff"
stop-opacity=".475"
id="stop939" />
<stop
offset=".5"
stop-color="#fff"
stop-opacity=".258"
id="stop941" />
<stop
offset="1"
stop-color="#fff"
stop-opacity=".108"
id="stop943" />
</radialGradient>
<linearGradient
id="u"
x1="119.803"
x2="129.065"
y1="179.833"
y2="189.546"
gradientTransform="matrix(0.28059176,-0.0196554,0.01607953,0.18105957,-5.527166,-17.74138)"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#f" />
<linearGradient
id="v"
x1="119.803"
x2="129.065"
y1="179.833"
y2="189.546"
gradientTransform="matrix(0.28059176,-0.0196554,0.01607953,0.18105957,-0.53364433,-14.471893)"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#f" />
<linearGradient
id="w"
x1="119.803"
x2="129.065"
y1="179.833"
y2="189.546"
gradientTransform="matrix(0.28059176,-0.0196554,0.01607953,0.18105957,4.3965676,-11.296804)"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#f" />
<linearGradient
id="x"
x1="203.795"
x2="120.083"
y1="203.681"
y2="229.926"
gradientTransform="matrix(0.2326593,0,0,0.21971869,-4.2259388,-8.298147)"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#f" />
<radialGradient
id="y"
cx="86.514"
cy="332.373"
r="83.26"
gradientTransform="matrix(0.26149829,-0.01820471,0,0.17327001,-4.2259388,16.487647)"
gradientUnits="userSpaceOnUse"
xlink:href="#d" />
<linearGradient
id="z"
x1="24.254"
x2="189.539"
y1="213.059"
y2="213.059"
gradientTransform="matrix(0.30805706,0,0,0.16594284,-4.2259339,39.701841)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<linearGradient
id="A"
x1="145.422"
x2="198.285"
y1="264.702"
y2="218.749"
gradientTransform="matrix(0.18171768,-0.0126506,0,0.249343,-4.2259388,-15.512353)"
gradientUnits="userSpaceOnUse"
xlink:href="#d" />
<linearGradient
id="B"
x1="132.73"
x2="84.004"
y1="279.475"
y2="210.463"
gradientTransform="matrix(0.18171768,-0.0126506,0,0.249343,-4.2259388,0.487647)"
gradientUnits="userSpaceOnUse"
xlink:href="#d" />
<linearGradient
id="C"
x1="42.081"
x2="88.821"
y1="215.05"
y2="172.018"
gradientTransform="matrix(0.16916851,0,0,0.30218186,-4.2259339,-16.298159)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<linearGradient
id="D"
x1="149.748"
x2="144.137"
y1="120.636"
y2="216.482"
gradientTransform="matrix(0.30805706,0,0,0.16594284,-4.2259339,31.701841)"
gradientUnits="userSpaceOnUse"
xlink:href="#b" />
<path
d="M 3.191861,42.532867 20.497915,53.079425 20.679319,40.829091 3.30605,30.181698 Z"
id="path976"
style="fill:url(#i);fill-rule:evenodd;stroke:url(#linearGradient1044);stroke-width:0.82201391;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0" />
<path
d="m 32.487255,45.016755 -11.98934,8.06267 0.181404,-12.250334 11.922124,-8.163505 z"
id="path978"
style="fill:url(#k);fill-rule:evenodd;stroke:url(#linearGradient1046);stroke-width:0.7657451;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0" />
<path
d="M 15.272436,21.867305 32.57849,32.581396 56.860637,16.140267 39.487371,5.49287 Z"
id="path980"
style="fill:url(#m);fill-opacity:1;fill-rule:evenodd;stroke:url(#n);stroke-width:0.7657451;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0" />
<path
d="M 32.487255,45.016755 56.800041,28.438033 56.981445,16.187699 32.601443,32.665586 Z"
id="path982"
style="fill:url(#o);fill-rule:evenodd;stroke:url(#p);stroke-width:0.7376107;stroke-linecap:round;stroke-linejoin:round;fill-opacity:1.0"
inkscape:connector-curvature="0" />
<path
d="M 39.523176,5.4604248 56.878648,16.013243 56.898306,28.329938 20.519667,53.120447 3.2952513,42.626424 3.2136737,30.096021 Z"
id="path984"
style="fill:none;stroke:url(#q);stroke-width:1.07766998;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="fill:url(#linearGradient1048);fill-rule:evenodd;stroke-width:1.22323501"
id="path988"
d="M 15.525813,21.962938 32.301765,32.60066 30.641416,33.7396 14.03792,22.871083 Z" />
<path
inkscape:connector-curvature="0"
style="fill:url(#r);fill-rule:evenodd;stroke-width:1.22323501"
id="path990"
d="m 32.136605,44.931064 0.16516,-12.330404 -1.660349,1.13894 0.0073,12.099612 z" />
<path
inkscape:connector-curvature="0"
style="fill:url(#s);fill-rule:evenodd;stroke-width:1.22323501"
id="path992"
d="m 32.136605,44.931064 0.16516,-12.330404 -1.660349,1.13894 0.0073,12.099612 z" />
<path
inkscape:connector-curvature="0"
style="fill:url(#t);fill-rule:evenodd;stroke-width:1.22323501"
id="path994"
d="m 56.358158,16.495653 -22.672767,14.86923 c -0.69747,0.33704 -1.636554,0.244147 -2.092413,0.0059 L 15.854189,21.92123 30.918141,31.929419 c 0.224946,0.400183 0.02707,1.164863 -0.412416,1.443775 l -10.103131,7.47511 10.515547,-6.872182 c 0.639141,-0.458784 0.795062,0.232952 0.830174,0.709723 l 0.518337,10.180273 0.715593,-11.033696 c 0.02461,-0.625078 0.472036,-1.335433 0.979871,-1.603239 z" />
<path
inkscape:connector-curvature="0"
style="opacity:0.45100014;fill:#729fcf;fill-rule:evenodd;stroke-width:1.22323501"
id="path996"
d="M 21.211228,20.988832 24.081089,22.83351 42.36871,9.9109229 39.455947,8.1129329 Z" />
<path
inkscape:connector-curvature="0"
style="opacity:0.45100014;fill:#729fcf;fill-rule:evenodd;stroke-width:1.22323501"
id="path998"
d="m 28.516923,22.844535 2.86986,1.844678 15.975433,-11.508791 -2.912762,-1.797989 z" />
<path
inkscape:connector-curvature="0"
style="opacity:0.45100014;fill:#729fcf;fill-rule:evenodd;stroke-width:1.22323501"
id="path1000"
d="M 35.998525,24.189994 38.868384,26.034672 52.29244,16.3555 49.379678,14.557511 Z" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#204a87;stroke-width:1.14494801;stroke-linecap:round"
id="path1002"
d="M 15.466415,21.844611 39.496613,5.469047 56.935993,16.078863 56.77709,28.423566 32.57849,44.894256" />
<path
inkscape:connector-curvature="0"
style="fill:url(#z);fill-rule:evenodd;stroke-width:1.22323501"
id="path1006"
d="m 39.530309,61.576719 c 4.898877,3.081096 9.733847,5.928877 14.632726,9.009971 C 49.84633,74.272028 41.762124,73.622079 33.957451,73.908405 26.232506,74.194734 11.691086,81.155689 7.813381,88.771229 6.2908033,87.80908 4.939076,87.052571 3.4164983,86.090421 15.490082,77.909955 27.456724,69.757185 39.530309,61.576719 Z" />
<path
inkscape:connector-curvature="0"
style="opacity:0.09899998;fill:url(#A);fill-rule:evenodd;stroke:url(#l);stroke-width:0.7657451;stroke-linecap:round;stroke-linejoin:round"
id="path1008"
d="m 32.487255,45.016755 -11.98934,8.06267 0.181404,-12.250334 11.922124,-8.163505 z" />
<path
inkscape:connector-curvature="0"
style="fill:url(#C);fill-rule:evenodd;stroke-width:1.22323501"
id="path1012"
d="m 3.4282047,42.434768 c 4.8988788,3.081097 4.4558145,3.001945 10.5506503,6.748355 0.546858,-4.298456 -6.3540246,-9.97263 -6.165474,-16.411894 -1.5225777,-0.962149 -2.8708004,-1.730546 -4.3933781,-2.69269 -0.190021,3.808931 0.024746,10.572495 0.0082,12.356229 z" />
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -93,6 +93,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
*draw << "TechDraw_CosmeticVertex";
*draw << "TechDraw_Midpoints";
*draw << "TechDraw_Quadrant";
*draw << "TechDraw_CosmeticEraser";
return root;
}
@@ -112,7 +113,6 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
*views << "TechDraw_ProjGroup";
*views << "TechDraw_NewViewSection";
*views << "TechDraw_NewViewDetail";
// *views << "TechDraw_Annotation";
*views << "TechDraw_DraftView";
*views << "TechDraw_ArchView";
*views << "TechDraw_Spreadsheet";
@@ -157,9 +157,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
*anno << "TechDraw_RichAnno";
*anno << "TechDraw_CosmeticVertexGrp";
*anno << "TechDraw_CenterLine";
// *anno << "TechDraw_CosmeticVertex";
// *anno << "TechDraw_Midpoints";
// *anno << "TechDraw_Quadrant";
*anno << "TechDraw_CosmeticEraser";
return root;
}
@@ -179,7 +177,6 @@ Gui::ToolBarItem* Workbench::setupCommandBars() const
*views << "TechDraw_ProjGroup";
*views << "TechDraw_NewViewSection";
*views << "TechDraw_NewViewDetail";
// *views << "TechDraw_Annotation";
*views << "TechDraw_DraftView";
*views << "TechDraw_Spreadsheet";
@@ -214,9 +211,6 @@ Gui::ToolBarItem* Workbench::setupCommandBars() const
*decor << "TechDraw_Symbol";
*decor << "TechDraw_Image";
*decor << "TechDraw_ToggleFrame";
// *decor << "TechDraw_RedrawPage";
// *decor << "TechDraw_LeaderLine";
// *decor << "TechDraw_RichAnno";
Gui::ToolBarItem *anno = new Gui::ToolBarItem(root);
anno->setCommand("TechDraw Annotation");
@@ -225,9 +219,7 @@ Gui::ToolBarItem* Workbench::setupCommandBars() const
*anno << "TechDraw_RichAnno";
*anno << "TechDraw_CosmeticVertexGrp";
*anno << "TechDraw_CenterLine";
// *anno << "TechDraw_CosmeticVertex";
// *anno << "TechDraw_Midpoints";
// *anno << "TechDraw_Quadrant";
*anno << "TechDraw_CosmeticEraser";
return root;
}