Initial version of Cosmetic Eraser
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
@@ -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>
|
||||
|
||||
476
src/Mod/TechDraw/Gui/Resources/icons/actions/techdraw-eraser.svg
Normal file
476
src/Mod/TechDraw/Gui/Resources/icons/actions/techdraw-eraser.svg
Normal 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 |
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user