[TD]Py routines for CenterLines
This commit is contained in:
@@ -753,8 +753,10 @@ void execCenterLine(Gui::Command* cmd)
|
||||
int geomIdx = DrawUtil::getIndexFromName(edgeName);
|
||||
const std::vector<TechDraw::BaseGeom *> &geoms = baseFeat->getEdgeGeometry();
|
||||
BaseGeom* bg = geoms.at(geomIdx);
|
||||
int clIdx = bg->sourceIndex();
|
||||
TechDraw::CenterLine* cl = baseFeat->getCenterLineByIndex(clIdx);
|
||||
// int clIdx = bg->sourceIndex();
|
||||
// TechDraw::CenterLine* cl = baseFeat->getCenterLineByIndex(clIdx);
|
||||
std::string tag = bg->getCosmeticTag();
|
||||
TechDraw::CenterLine* cl = baseFeat->getCenterLine(tag);
|
||||
if (cl == nullptr) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong Selection"),
|
||||
QObject::tr("No CenterLine in selection."));
|
||||
@@ -829,8 +831,10 @@ void exec2LineCenterLine(Gui::Command* cmd)
|
||||
int geomIdx = DrawUtil::getIndexFromName(edgeName);
|
||||
const std::vector<TechDraw::BaseGeom *> &geoms = dvp->getEdgeGeometry();
|
||||
BaseGeom* bg = geoms.at(geomIdx);
|
||||
int clIdx = bg->sourceIndex();
|
||||
TechDraw::CenterLine* cl = dvp->getCenterLineByIndex(clIdx);
|
||||
// int clIdx = bg->sourceIndex();
|
||||
// TechDraw::CenterLine* cl = dvp->getCenterLineByIndex(clIdx);
|
||||
std::string tag = bg->getCosmeticTag();
|
||||
TechDraw::CenterLine* cl = dvp->getCenterLine(tag);
|
||||
if (cl == nullptr) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong Selection"),
|
||||
QObject::tr("No CenterLine in selection."));
|
||||
|
||||
@@ -568,12 +568,12 @@ void QGIViewPart::drawViewPart()
|
||||
item->setStyle(Qt::SolidLine);
|
||||
if ((*itGeom)->cosmetic == true) {
|
||||
int source = (*itGeom)->source();
|
||||
int sourceIndex = (*itGeom)->sourceIndex();
|
||||
if (source == COSMETICEDGE) {
|
||||
std::string cTag = (*itGeom)->getCosmeticTag();
|
||||
showItem = formatGeomFromCosmetic(cTag, item);
|
||||
} else if (source == CENTERLINE) {
|
||||
showItem = formatGeomFromCenterLine(sourceIndex, item);
|
||||
std::string cTag = (*itGeom)->getCosmeticTag();
|
||||
showItem = formatGeomFromCenterLine(cTag, item);
|
||||
} else {
|
||||
Base::Console().Message("QGIVP::drawVP - edge: %d is confused - source: %d\n",i,source);
|
||||
}
|
||||
@@ -702,12 +702,12 @@ bool QGIViewPart::formatGeomFromCosmetic(std::string cTag, QGIEdge* item)
|
||||
}
|
||||
|
||||
|
||||
bool QGIViewPart::formatGeomFromCenterLine(int sourceIndex, QGIEdge* item)
|
||||
bool QGIViewPart::formatGeomFromCenterLine(std::string cTag, QGIEdge* item)
|
||||
{
|
||||
// Base::Console().Message("QGIVP::formatGeomFromCenterLine(%d)\n",sourceIndex);
|
||||
bool result = true;
|
||||
auto partFeat( dynamic_cast<TechDraw::DrawViewPart *>(getViewObject()) );
|
||||
TechDraw::CenterLine* cl = partFeat->getCenterLineByIndex(sourceIndex);
|
||||
TechDraw::CenterLine* cl = partFeat->getCenterLine(cTag);
|
||||
if (cl != nullptr) {
|
||||
item->setNormalColor(cl->m_format.m_color.asValue<QColor>());
|
||||
item->setWidth(cl->m_format.m_weight * lineScaleFactor);
|
||||
@@ -926,6 +926,7 @@ void QGIViewPart::drawSectionLine(TechDraw::DrawViewSection* viewSection, bool b
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: use Cosmetic::CenterLine object for this to make it usable for dims.
|
||||
void QGIViewPart::drawCenterLines(bool b)
|
||||
{
|
||||
TechDraw::DrawViewPart *viewPart = dynamic_cast<TechDraw::DrawViewPart *>(getViewObject());
|
||||
|
||||
@@ -107,7 +107,7 @@ protected:
|
||||
bool prefPrintCenters(void);
|
||||
|
||||
bool formatGeomFromCosmetic(std::string cTag, QGIEdge* item);
|
||||
bool formatGeomFromCenterLine(int sourceIndex, QGIEdge* item);
|
||||
bool formatGeomFromCenterLine(std::string cTag, QGIEdge* item);
|
||||
|
||||
private:
|
||||
QList<QGraphicsItem*> deleteItems;
|
||||
|
||||
@@ -91,8 +91,8 @@ TaskCenterLine::TaskCenterLine(TechDraw::DrawViewPart* partFeat,
|
||||
m_geomIndex = DrawUtil::getIndexFromName(m_edgeName);
|
||||
const std::vector<TechDraw::BaseGeom *> &geoms = partFeat->getEdgeGeometry();
|
||||
BaseGeom* bg = geoms.at(m_geomIndex);
|
||||
m_clIdx = bg->sourceIndex();
|
||||
m_cl = partFeat->getCenterLineByIndex(m_clIdx);
|
||||
std::string tag = bg->getCosmeticTag();
|
||||
m_cl = partFeat->getCenterLine(tag);
|
||||
if (m_cl == nullptr) { //checked by CommandAnnotate. Should never happen.
|
||||
Base::Console().Message("TCL::TCL() - no centerline found\n");
|
||||
}
|
||||
@@ -291,7 +291,8 @@ void TaskCenterLine::updateCenterLine(void)
|
||||
m_cl->m_extendBy = ui->qsbExtend->rawValue();
|
||||
m_cl->m_type = m_type;
|
||||
m_cl->m_flip2Line = m_flipped;
|
||||
m_partFeat->replaceCenterLine(m_clIdx, m_cl);
|
||||
m_partFeat->replaceCenterLine(m_cl);
|
||||
m_partFeat->refreshCLGeoms();
|
||||
m_partFeat->requestPaint();
|
||||
|
||||
Gui::Command::updateActive();
|
||||
|
||||
@@ -125,7 +125,8 @@ void TaskLineDecor::getDefaults(void)
|
||||
m_weight = ce->m_format.m_weight;
|
||||
m_visible = ce->m_format.m_visible;
|
||||
} else if (bg->source() == 2) {
|
||||
TechDraw::CenterLine* cl = m_partFeat->getCenterLineByIndex(bg->sourceIndex());
|
||||
// TechDraw::CenterLine* cl = m_partFeat->getCenterLine(bg->getCosmeticTag);
|
||||
TechDraw::CenterLine* cl = m_partFeat->getCenterLineBySelection(m_edges.front());
|
||||
m_style = cl->m_format.m_style;
|
||||
m_color = cl->m_format.m_color;
|
||||
m_weight = cl->m_format.m_weight;
|
||||
@@ -192,7 +193,8 @@ void TaskLineDecor::applyDecorations(void)
|
||||
ce->m_format.m_weight = m_weight;
|
||||
ce->m_format.m_visible = m_visible;
|
||||
} else if (bg->source() == 2) {
|
||||
TechDraw::CenterLine* cl = m_partFeat->getCenterLineByIndex(bg->sourceIndex());
|
||||
// TechDraw::CenterLine* cl = m_partFeat->getCenterLine(bg->getCosmeticTag());
|
||||
TechDraw::CenterLine* cl = m_partFeat->getCenterLineBySelection(e);
|
||||
cl->m_format.m_style = m_style;
|
||||
cl->m_format.m_color = m_color;
|
||||
cl->m_format.m_weight = m_weight;
|
||||
|
||||
Reference in New Issue
Block a user