TD: replace usage of raw pointers of Vertex and Face with shared pointers.
This fixes issue 4741: Broken File After Using Landmark Dimension in TechDraw
This commit is contained in:
@@ -823,7 +823,7 @@ bool _checkDirectPlacement(const QGIViewPart *viewPart, const std::vector<std::s
|
||||
std::string geoType = TechDraw::DrawUtil::getGeomTypeFromName(subNames[0]);
|
||||
if (geoType == "Vertex") {
|
||||
int index = TechDraw::DrawUtil::getIndexFromName(subNames[0]);
|
||||
TechDraw::Vertex *vertex = static_cast<DrawViewPart *>(viewPart->getViewObject())->getProjVertexByIndex(index);
|
||||
TechDraw::VertexPtr vertex = static_cast<DrawViewPart *>(viewPart->getViewObject())->getProjVertexByIndex(index);
|
||||
if (vertex) {
|
||||
placement = viewPart->mapToScene(Rez::guiX(vertex->x()), Rez::guiX(vertex->y()));
|
||||
return true;
|
||||
|
||||
@@ -1094,7 +1094,7 @@ void execLine2Points(Gui::Command* cmd)
|
||||
if (!vertexNames.empty()) {
|
||||
for (auto& v2d: vertexNames) {
|
||||
int idx = DrawUtil::getIndexFromName(v2d);
|
||||
TechDraw::Vertex* v = baseFeat->getProjVertexByIndex(idx);
|
||||
TechDraw::VertexPtr v = baseFeat->getProjVertexByIndex(idx);
|
||||
if (v) {
|
||||
Base::Vector3d p = DrawUtil::invertY(v->pnt);
|
||||
points.push_back(p / scale);
|
||||
@@ -1213,7 +1213,7 @@ void CmdTechDrawCosmeticEraser::activated(int iMsg)
|
||||
}
|
||||
}
|
||||
} else if (geomType == "Vertex") {
|
||||
TechDraw::Vertex* tdv = objFeat->getProjVertexByIndex(idx);
|
||||
TechDraw::VertexPtr tdv = objFeat->getProjVertexByIndex(idx);
|
||||
if (tdv != nullptr) {
|
||||
std::string delTag = tdv->cosmeticTag;
|
||||
if (!delTag.empty()) {
|
||||
|
||||
@@ -1610,7 +1610,7 @@ bool _isValidVertexToEdge(Gui::Command* cmd) {
|
||||
if(SubNames.size() == 2) { //there are 2
|
||||
int eId,vId;
|
||||
TechDraw::BaseGeom* e;
|
||||
TechDraw::Vertex* v;
|
||||
TechDraw::VertexPtr v;
|
||||
if (TechDraw::DrawUtil::getGeomTypeFromName(SubNames[0]) == "Edge" &&
|
||||
TechDraw::DrawUtil::getGeomTypeFromName(SubNames[1]) == "Vertex") {
|
||||
eId = TechDraw::DrawUtil::getIndexFromName(SubNames[0]);
|
||||
|
||||
@@ -470,8 +470,8 @@ void QGIViewPart::drawViewPart()
|
||||
// Draw Faces
|
||||
std::vector<TechDraw::DrawHatch*> hatchObjs = viewPart->getHatches();
|
||||
std::vector<TechDraw::DrawGeomHatch*> geomObjs = viewPart->getGeomHatches();
|
||||
const std::vector<TechDraw::Face *> &faceGeoms = viewPart->getFaceGeometry();
|
||||
std::vector<TechDraw::Face *>::const_iterator fit = faceGeoms.begin();
|
||||
const std::vector<TechDraw::FacePtr> &faceGeoms = viewPart->getFaceGeometry();
|
||||
std::vector<TechDraw::FacePtr>::const_iterator fit = faceGeoms.begin();
|
||||
for(int i = 0 ; fit != faceGeoms.end(); fit++, i++) {
|
||||
QGIFace* newFace = drawFace(*fit,i);
|
||||
newFace->isHatched(false);
|
||||
@@ -637,8 +637,8 @@ void QGIViewPart::drawViewPart()
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<TechDraw::Vertex *> &verts = viewPart->getVertexGeometry();
|
||||
std::vector<TechDraw::Vertex *>::const_iterator vert = verts.begin();
|
||||
const std::vector<TechDraw::VertexPtr> &verts = viewPart->getVertexGeometry();
|
||||
std::vector<TechDraw::VertexPtr>::const_iterator vert = verts.begin();
|
||||
double cAdjust = vp->CenterScale.getValue();
|
||||
|
||||
for(int i = 0 ; vert != verts.end(); ++vert, i++) {
|
||||
@@ -711,7 +711,7 @@ bool QGIViewPart::formatGeomFromCenterLine(std::string cTag, QGIEdge* item)
|
||||
return result;
|
||||
}
|
||||
|
||||
QGIFace* QGIViewPart::drawFace(TechDraw::Face* f, int idx)
|
||||
QGIFace* QGIViewPart::drawFace(TechDraw::FacePtr f, int idx)
|
||||
{
|
||||
// Base::Console().Message("QGIVP::drawFace - %d\n", idx);
|
||||
std::vector<TechDraw::Wire *> fWires = f->wires;
|
||||
|
||||
@@ -96,7 +96,7 @@ public:
|
||||
protected:
|
||||
QPainterPath drawPainterPath(TechDraw::BaseGeom *baseGeom) const;
|
||||
void drawViewPart();
|
||||
QGIFace* drawFace(TechDraw::Face* f, int idx);
|
||||
QGIFace* drawFace(TechDraw::FacePtr f, int idx);
|
||||
|
||||
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ void QGIViewSection::drawSectionFace()
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<TechDraw::Face *>::iterator fit = sectionFaces.begin();
|
||||
std::vector<TechDraw::FacePtr>::iterator fit = sectionFaces.begin();
|
||||
int i = 0;
|
||||
for(; fit != sectionFaces.end(); fit++, i++) {
|
||||
QGIFace* newFace = drawFace(*fit,-1);
|
||||
|
||||
Reference in New Issue
Block a user