[TD]getters and setters for geometry
- make attributes private (or protected) and use getters and setters instead of accessing attributes directly.
This commit is contained in:
@@ -598,8 +598,8 @@ private:
|
||||
std::vector<TechDraw::BaseGeomPtr> geoms = dvp->getEdgeGeometry();
|
||||
std::vector<TopoDS_Edge> cosmeticEdges;
|
||||
for (auto& g : geoms) {
|
||||
if (g->hlrVisible && g->cosmetic) {
|
||||
cosmeticEdges.push_back(g->occEdge);
|
||||
if (g->getHlrVisible() && g->getCosmetic()) {
|
||||
cosmeticEdges.push_back(g->getOCCEdge());
|
||||
}
|
||||
}
|
||||
if (!cosmeticEdges.empty()) {
|
||||
|
||||
@@ -365,8 +365,8 @@ CosmeticEdge::CosmeticEdge(TechDraw::BaseGeomPtr g)
|
||||
//we assume input edge is already in Yinverted coordinates
|
||||
permaStart = m_geometry->getStartPoint();
|
||||
permaEnd = m_geometry->getEndPoint();
|
||||
if ((g->geomType == TechDraw::GeomType::CIRCLE) ||
|
||||
(g->geomType == TechDraw::GeomType::ARCOFCIRCLE)) {
|
||||
if ((g->getGeomType() == TechDraw::GeomType::CIRCLE) ||
|
||||
(g->getGeomType() == TechDraw::GeomType::ARCOFCIRCLE)) {
|
||||
TechDraw::CirclePtr circ = std::static_pointer_cast<TechDraw::Circle>(g);
|
||||
permaStart = circ->center;
|
||||
permaEnd = circ->center;
|
||||
@@ -382,9 +382,9 @@ CosmeticEdge::~CosmeticEdge()
|
||||
|
||||
void CosmeticEdge::initialize()
|
||||
{
|
||||
m_geometry->classOfEdge = ecHARD;
|
||||
m_geometry->hlrVisible = true;
|
||||
m_geometry->cosmetic = true;
|
||||
m_geometry->setClassOfEdge(ecHARD);
|
||||
m_geometry->setHlrVisible( true);
|
||||
m_geometry->setCosmetic(true);
|
||||
m_geometry->source(COSMETICEDGE);
|
||||
|
||||
createNewTag();
|
||||
@@ -404,13 +404,13 @@ TopoDS_Edge CosmeticEdge::TopoDS_EdgeFromVectors(Base::Vector3d pt1, Base::Vecto
|
||||
|
||||
TechDraw::BaseGeomPtr CosmeticEdge::scaledGeometry(double scale)
|
||||
{
|
||||
TopoDS_Edge e = m_geometry->occEdge;
|
||||
TopoDS_Edge e = m_geometry->getOCCEdge();
|
||||
TopoDS_Shape s = TechDraw::scaleShape(e, scale);
|
||||
TopoDS_Edge newEdge = TopoDS::Edge(s);
|
||||
TechDraw::BaseGeomPtr newGeom = TechDraw::BaseGeom::baseFactory(newEdge);
|
||||
newGeom->classOfEdge = ecHARD;
|
||||
newGeom->hlrVisible = true;
|
||||
newGeom->cosmetic = true;
|
||||
newGeom->setClassOfEdge(ecHARD);
|
||||
newGeom->setHlrVisible( true);
|
||||
newGeom->setCosmetic(true);
|
||||
newGeom->source(COSMETICEDGE);
|
||||
newGeom->setCosmeticTag(getTagAsString());
|
||||
return newGeom;
|
||||
@@ -421,7 +421,7 @@ std::string CosmeticEdge::toString() const
|
||||
std::stringstream ss;
|
||||
ss << getTagAsString() << ", $$$, ";
|
||||
if (m_geometry) {
|
||||
ss << m_geometry->geomType <<
|
||||
ss << m_geometry->getGeomType() <<
|
||||
", $$$, " <<
|
||||
m_geometry->toString() <<
|
||||
", $$$, " <<
|
||||
@@ -450,18 +450,18 @@ void CosmeticEdge::Save(Base::Writer &writer) const
|
||||
const char v = m_format.m_visible?'1':'0';
|
||||
writer.Stream() << writer.ind() << "<Visible value=\"" << v << "\"/>" << endl;
|
||||
|
||||
writer.Stream() << writer.ind() << "<GeometryType value=\"" << m_geometry->geomType <<"\"/>" << endl;
|
||||
if (m_geometry->geomType == TechDraw::GeomType::GENERIC) {
|
||||
writer.Stream() << writer.ind() << "<GeometryType value=\"" << m_geometry->getGeomType() <<"\"/>" << endl;
|
||||
if (m_geometry->getGeomType() == TechDraw::GeomType::GENERIC) {
|
||||
GenericPtr gen = std::static_pointer_cast<Generic>(m_geometry);
|
||||
gen->Save(writer);
|
||||
} else if (m_geometry->geomType == TechDraw::GeomType::CIRCLE) {
|
||||
} else if (m_geometry->getGeomType() == TechDraw::GeomType::CIRCLE) {
|
||||
TechDraw::CirclePtr circ = std::static_pointer_cast<TechDraw::Circle>(m_geometry);
|
||||
circ->Save(writer);
|
||||
} else if (m_geometry->geomType == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
} else if (m_geometry->getGeomType() == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
TechDraw::AOCPtr aoc = std::static_pointer_cast<TechDraw::AOC>(m_geometry);
|
||||
aoc->Save(writer);
|
||||
} else {
|
||||
Base::Console().Warning("CE::Save - unimplemented geomType: %d\n", m_geometry->geomType);
|
||||
Base::Console().Warning("CE::Save - unimplemented geomType: %d\n", m_geometry->getGeomType());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -486,14 +486,14 @@ void CosmeticEdge::Restore(Base::XMLReader &reader)
|
||||
if (gType == TechDraw::GeomType::GENERIC) {
|
||||
TechDraw::GenericPtr gen = std::make_shared<TechDraw::Generic> ();
|
||||
gen->Restore(reader);
|
||||
gen->occEdge = GeometryUtils::edgeFromGeneric(gen);
|
||||
gen->setOCCEdge(GeometryUtils::edgeFromGeneric(gen));
|
||||
m_geometry = gen;
|
||||
permaStart = gen->getStartPoint();
|
||||
permaEnd = gen->getEndPoint();
|
||||
} else if (gType == TechDraw::GeomType::CIRCLE) {
|
||||
TechDraw::CirclePtr circ = std::make_shared<TechDraw::Circle> ();
|
||||
circ->Restore(reader);
|
||||
circ->occEdge = GeometryUtils::edgeFromCircle(circ);
|
||||
circ->setOCCEdge(GeometryUtils::edgeFromCircle(circ));
|
||||
m_geometry = circ;
|
||||
permaRadius = circ->radius;
|
||||
permaStart = circ->center;
|
||||
@@ -501,7 +501,7 @@ void CosmeticEdge::Restore(Base::XMLReader &reader)
|
||||
} else if (gType == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
TechDraw::AOCPtr aoc = std::make_shared<TechDraw::AOC> ();
|
||||
aoc->Restore(reader);
|
||||
aoc->occEdge = GeometryUtils::edgeFromCircleArc(aoc);
|
||||
aoc->setOCCEdge(GeometryUtils::edgeFromCircleArc(aoc));
|
||||
m_geometry = aoc;
|
||||
permaStart = aoc->startPnt;
|
||||
permaEnd = aoc->endPnt;
|
||||
@@ -648,9 +648,9 @@ CenterLine::~CenterLine()
|
||||
|
||||
void CenterLine::initialize()
|
||||
{
|
||||
m_geometry->classOfEdge = ecHARD;
|
||||
m_geometry->hlrVisible = true;
|
||||
m_geometry->cosmetic = true;
|
||||
m_geometry->setClassOfEdge(ecHARD);
|
||||
m_geometry->setHlrVisible( true);
|
||||
m_geometry->setCosmetic(true);
|
||||
m_geometry->source(CENTERLINE);
|
||||
|
||||
createNewTag();
|
||||
@@ -777,9 +777,9 @@ TechDraw::BaseGeomPtr CenterLine::scaledGeometry(TechDraw::DrawViewPart* partFea
|
||||
TopoDS_Shape s = TechDraw::scaleShape(e, scale);
|
||||
TopoDS_Edge newEdge = TopoDS::Edge(s);
|
||||
TechDraw::BaseGeomPtr newGeom = TechDraw::BaseGeom::baseFactory(newEdge);
|
||||
newGeom->classOfEdge = ecHARD;
|
||||
newGeom->hlrVisible = true;
|
||||
newGeom->cosmetic = true;
|
||||
newGeom->setClassOfEdge(ecHARD);
|
||||
newGeom->setHlrVisible( true);
|
||||
newGeom->setCosmetic(true);
|
||||
newGeom->source(CENTERLINE);
|
||||
newGeom->setCosmeticTag(getTagAsString());
|
||||
|
||||
@@ -911,8 +911,8 @@ std::pair<Base::Vector3d, Base::Vector3d> CenterLine::calcEndPoints(DrawViewPart
|
||||
partFeat->getFaceEdgesByIndex(idx);
|
||||
if (!faceEdges.empty()) {
|
||||
for (auto& fe: faceEdges) {
|
||||
if (!fe->cosmetic) {
|
||||
BRepBndLib::AddOptimal(fe->occEdge, faceBox);
|
||||
if (!fe->getCosmetic()) {
|
||||
BRepBndLib::AddOptimal(fe->getOCCEdge(), faceBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1251,18 +1251,18 @@ void CenterLine::Save(Base::Writer &writer) const
|
||||
return Base::Console().Error("CL::Save - m_geometry is null\n");
|
||||
}
|
||||
|
||||
writer.Stream() << writer.ind() << "<GeometryType value=\"" << m_geometry->geomType <<"\"/>" << endl;
|
||||
if (m_geometry->geomType == TechDraw::GeomType::GENERIC) {
|
||||
writer.Stream() << writer.ind() << "<GeometryType value=\"" << m_geometry->getGeomType() <<"\"/>" << endl;
|
||||
if (m_geometry->getGeomType() == TechDraw::GeomType::GENERIC) {
|
||||
GenericPtr gen = std::static_pointer_cast<Generic>(m_geometry);
|
||||
gen->Save(writer);
|
||||
} else if (m_geometry->geomType == TechDraw::GeomType::CIRCLE) {
|
||||
} else if (m_geometry->getGeomType() == TechDraw::GeomType::CIRCLE) {
|
||||
TechDraw::CirclePtr circ = std::static_pointer_cast<TechDraw::Circle>(m_geometry);
|
||||
circ->Save(writer);
|
||||
} else if (m_geometry->geomType == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
} else if (m_geometry->getGeomType() == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
TechDraw::AOCPtr aoc = std::static_pointer_cast<TechDraw::AOC>(m_geometry);
|
||||
aoc->Save(writer);
|
||||
} else {
|
||||
Base::Console().Message("CL::Save - unimplemented geomType: %d\n", m_geometry->geomType);
|
||||
Base::Console().Message("CL::Save - unimplemented geomType: %d\n", m_geometry->getGeomType());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1349,17 +1349,17 @@ void CenterLine::Restore(Base::XMLReader &reader)
|
||||
if (gType == TechDraw::GeomType::GENERIC) {
|
||||
TechDraw::GenericPtr gen = std::make_shared<TechDraw::Generic> ();
|
||||
gen->Restore(reader);
|
||||
gen->occEdge = GeometryUtils::edgeFromGeneric(gen);
|
||||
gen->setOCCEdge(GeometryUtils::edgeFromGeneric(gen));
|
||||
m_geometry = gen;
|
||||
} else if (gType == TechDraw::GeomType::CIRCLE) {
|
||||
TechDraw::CirclePtr circ = std::make_shared<TechDraw::Circle> ();
|
||||
circ->Restore(reader);
|
||||
circ->occEdge = GeometryUtils::edgeFromCircle(circ);
|
||||
circ->setOCCEdge(GeometryUtils::edgeFromCircle(circ));
|
||||
m_geometry = circ;
|
||||
} else if (gType == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
TechDraw::AOCPtr aoc = std::make_shared<TechDraw::AOC> ();
|
||||
aoc->Restore(reader);
|
||||
aoc->occEdge = GeometryUtils::edgeFromCircleArc(aoc);
|
||||
aoc->setOCCEdge(GeometryUtils::edgeFromCircleArc(aoc));
|
||||
m_geometry = aoc;
|
||||
} else {
|
||||
Base::Console().Warning("CL::Restore - unimplemented geomType: %d\n", gType);
|
||||
|
||||
@@ -229,7 +229,7 @@ void CosmeticEdgePy::setEnd(Py::Vector arg)
|
||||
|
||||
Py::Float CosmeticEdgePy::getRadius() const
|
||||
{
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->geomType;
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->getGeomType();
|
||||
if ( (gt != TechDraw::GeomType::CIRCLE) &&
|
||||
(gt != TechDraw::GeomType::ARCOFCIRCLE) ) {
|
||||
throw Py::TypeError("Not a circle. Can not get radius");
|
||||
@@ -240,7 +240,7 @@ Py::Float CosmeticEdgePy::getRadius() const
|
||||
|
||||
void CosmeticEdgePy::setRadius(Py::Float arg)
|
||||
{
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->geomType;
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->getGeomType();
|
||||
if ( (gt != TechDraw::GeomType::CIRCLE) &&
|
||||
(gt != TechDraw::GeomType::ARCOFCIRCLE) ) {
|
||||
throw Py::TypeError("Not a circle. Can not set radius");
|
||||
@@ -256,7 +256,7 @@ void CosmeticEdgePy::setRadius(Py::Float arg)
|
||||
|
||||
Py::Vector CosmeticEdgePy::getCenter() const
|
||||
{
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->geomType;
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->getGeomType();
|
||||
if ( (gt != TechDraw::GeomType::CIRCLE) &&
|
||||
(gt != TechDraw::GeomType::ARCOFCIRCLE) ) {
|
||||
throw Py::TypeError("Not a circle. Can not get center");
|
||||
@@ -268,7 +268,7 @@ Py::Vector CosmeticEdgePy::getCenter() const
|
||||
|
||||
void CosmeticEdgePy::setCenter(Py::Vector arg)
|
||||
{
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->geomType;
|
||||
TechDraw::GeomType gt = getCosmeticEdgePtr()->m_geometry->getGeomType();
|
||||
// PyObject* p = arg.ptr();
|
||||
if ( (gt != TechDraw::GeomType::CIRCLE) &&
|
||||
(gt != TechDraw::GeomType::ARCOFCIRCLE) ) {
|
||||
|
||||
@@ -110,8 +110,8 @@ TechDraw::CosmeticVertex* CosmeticExtension::getCosmeticVertexBySelection(std::s
|
||||
TechDraw::VertexPtr v = dvp->getProjVertexByIndex(idx);
|
||||
if (!v)
|
||||
return result;
|
||||
if (!v->cosmeticTag.empty())
|
||||
result = getCosmeticVertex(v->cosmeticTag);
|
||||
if (!v->getCosmeticTag().empty())
|
||||
result = getCosmeticVertex(v->getCosmeticTag());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,10 +42,10 @@ TopoDS_Shape ReferenceEntry::getGeometry() const
|
||||
std::string gType = geomType();
|
||||
if (gType == "Vertex") {
|
||||
auto vgeom = dvp->getVertex(getSubName());
|
||||
return vgeom->occVertex;
|
||||
return vgeom->getOCCVertex();
|
||||
} else if (gType == "Edge") {
|
||||
auto egeom = dvp->getEdge(getSubName());
|
||||
return egeom->occEdge;
|
||||
return egeom->getOCCEdge();
|
||||
} else if (gType == "Face") {
|
||||
auto fgeom = dvp->getFace(getSubName());
|
||||
return fgeom->toOccFace();
|
||||
|
||||
@@ -207,8 +207,8 @@ DrawDimHelper::minMax(DrawViewPart* dvp, std::vector<std::string> edgeNames, int
|
||||
|
||||
std::vector<TopoDS_Edge> inEdges;
|
||||
for (auto& bg : edgeGeomList) {
|
||||
inEdges.push_back(bg->occEdge);
|
||||
BRepBndLib::Add(bg->occEdge, edgeBbx);
|
||||
inEdges.push_back(bg->getOCCEdge());
|
||||
BRepBndLib::Add(bg->getOCCEdge(), edgeBbx);
|
||||
}
|
||||
|
||||
double minX, minY, minZ, maxX, maxY, maxZ;
|
||||
@@ -323,8 +323,8 @@ DrawDimHelper::minMax3d(DrawViewPart* dvp, ReferenceVector references, int direc
|
||||
|
||||
std::vector<TopoDS_Edge> inEdges;
|
||||
for (auto& bg : edges) {
|
||||
inEdges.push_back(bg->occEdge);
|
||||
BRepBndLib::Add(bg->occEdge, shapeBbx);
|
||||
inEdges.push_back(bg->getOCCEdge());
|
||||
BRepBndLib::Add(bg->getOCCEdge(), shapeBbx);
|
||||
}
|
||||
|
||||
//from here on this is the same as 2d method
|
||||
|
||||
@@ -88,7 +88,7 @@ std::vector<TopoDS_Edge> DrawProjectSplit::getEdgesForWalker(TopoDS_Shape shape,
|
||||
TechDraw::GeometryObjectPtr go = buildGeometryObject(scaledShape, viewAxis);
|
||||
const std::vector<TechDraw::BaseGeomPtr>& goEdges = go->getVisibleFaceEdges(false, false);
|
||||
for (auto& e: goEdges){
|
||||
edgesIn.push_back(e->occEdge);
|
||||
edgesIn.push_back(e->getOCCEdge());
|
||||
}
|
||||
|
||||
std::vector<TopoDS_Edge> nonZero;
|
||||
@@ -126,7 +126,7 @@ std::vector<TopoDS_Edge> DrawProjectSplit::getEdges(TechDraw::GeometryObject* ge
|
||||
std::vector<TechDraw::BaseGeomPtr>::const_iterator itEdge = goEdges.begin();
|
||||
std::vector<TopoDS_Edge> origEdges;
|
||||
for (;itEdge != goEdges.end(); itEdge++) {
|
||||
origEdges.push_back((*itEdge)->occEdge);
|
||||
origEdges.push_back((*itEdge)->getOCCEdge());
|
||||
}
|
||||
|
||||
std::vector<TopoDS_Edge> faceEdges;
|
||||
@@ -499,8 +499,8 @@ std::vector<TopoDS_Edge> DrawProjectSplit::scrubEdges(const std::vector<TechDraw
|
||||
bool copyGeometry = true;
|
||||
bool copyMesh = false;
|
||||
for (const auto& tdEdge: origEdges) {
|
||||
if (!DrawUtil::isZeroEdge(tdEdge->occEdge, 2.0 * EWTOLERANCE)) {
|
||||
BRepBuilderAPI_Copy copier(tdEdge->occEdge, copyGeometry, copyMesh);
|
||||
if (!DrawUtil::isZeroEdge(tdEdge->getOCCEdge(), 2.0 * EWTOLERANCE)) {
|
||||
BRepBuilderAPI_Copy copier(tdEdge->getOCCEdge(), copyGeometry, copyMesh);
|
||||
copyEdges.push_back(TopoDS::Edge(copier.Shape()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -591,7 +591,7 @@ pointPair DrawViewDimension::getPointsOneEdge(ReferenceVector references)
|
||||
ssMessage << getNameInDocument() << " can not find geometry for 2d reference (1)";
|
||||
throw Base::RuntimeError(ssMessage.str());
|
||||
}
|
||||
if (geom->geomType != TechDraw::GeomType::GENERIC) {
|
||||
if (geom->getGeomType() != TechDraw::GeomType::GENERIC) {
|
||||
std::stringstream ssMessage;
|
||||
ssMessage << getNameInDocument() << " 2d reference is a " << geom->geomTypeName();
|
||||
throw Base::RuntimeError(ssMessage.str());
|
||||
@@ -635,7 +635,7 @@ pointPair DrawViewDimension::getPointsTwoEdges(ReferenceVector references)
|
||||
ssMessage << getNameInDocument() << " can not find geometry for 2d reference (2)";
|
||||
throw Base::RuntimeError(ssMessage.str());
|
||||
}
|
||||
return closestPoints(geom0->occEdge, geom1->occEdge);
|
||||
return closestPoints(geom0->getOCCEdge(), geom1->getOCCEdge());
|
||||
}
|
||||
|
||||
//this is a 3d object
|
||||
@@ -671,7 +671,7 @@ pointPair DrawViewDimension::getPointsTwoVerts(ReferenceVector references)
|
||||
throw Base::RuntimeError(ssMessage.str());
|
||||
}
|
||||
|
||||
return {v0->pnt, v1->pnt};
|
||||
return {v0->point(), v1->point()};
|
||||
}
|
||||
|
||||
//this is a 3d object
|
||||
@@ -716,7 +716,7 @@ pointPair DrawViewDimension::getPointsEdgeVert(ReferenceVector references)
|
||||
if (!vertex || !edge) {
|
||||
throw Base::RuntimeError("Missing geometry for dimension (4)");
|
||||
}
|
||||
return closestPoints(edge->occEdge, vertex->occVertex);
|
||||
return closestPoints(edge->getOCCEdge(), vertex->getOCCVertex());
|
||||
}
|
||||
|
||||
//this is a 3d object
|
||||
@@ -772,12 +772,12 @@ arcPoints DrawViewDimension::arcPointsFromBaseGeom(TechDraw::BaseGeomPtr base)
|
||||
arcPoints pts;
|
||||
pts.center = Base::Vector3d(0.0, 0.0, 0.0);
|
||||
pts.radius = 0.0;
|
||||
if ((base && base->geomType == TechDraw::GeomType::CIRCLE)
|
||||
|| (base && base->geomType == TechDraw::GeomType::ARCOFCIRCLE)) {
|
||||
if ((base && base->getGeomType() == TechDraw::GeomType::CIRCLE)
|
||||
|| (base && base->getGeomType() == TechDraw::GeomType::ARCOFCIRCLE)) {
|
||||
circle = std::static_pointer_cast<TechDraw::Circle>(base);
|
||||
pts.center = Base::Vector3d(circle->center.x, circle->center.y, 0.0);
|
||||
pts.radius = circle->radius;
|
||||
if (base->geomType == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
if (base->getGeomType() == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
TechDraw::AOCPtr aoc = std::static_pointer_cast<TechDraw::AOC>(circle);
|
||||
pts.isArc = true;
|
||||
pts.onCurve.first(Base::Vector3d(aoc->midPnt.x, aoc->midPnt.y, 0.0));
|
||||
@@ -794,8 +794,8 @@ arcPoints DrawViewDimension::arcPointsFromBaseGeom(TechDraw::BaseGeomPtr base)
|
||||
pts.center + Base::Vector3d(-1, 0, 0) * circle->radius);//arbitrary point on edge
|
||||
}
|
||||
}
|
||||
else if ((base && base->geomType == TechDraw::GeomType::ELLIPSE)
|
||||
|| (base && base->geomType == TechDraw::GeomType::ARCOFELLIPSE)) {
|
||||
else if ((base && base->getGeomType() == TechDraw::GeomType::ELLIPSE)
|
||||
|| (base && base->getGeomType() == TechDraw::GeomType::ARCOFELLIPSE)) {
|
||||
TechDraw::EllipsePtr ellipse = std::static_pointer_cast<TechDraw::Ellipse>(base);
|
||||
if (ellipse->closed()) {
|
||||
double r1 = ellipse->minor;
|
||||
@@ -826,14 +826,14 @@ arcPoints DrawViewDimension::arcPointsFromBaseGeom(TechDraw::BaseGeomPtr base)
|
||||
+ Base::Vector3d(-1, 0, 0) * rAvg);//arbitrary point on edge
|
||||
}
|
||||
}
|
||||
else if (base && base->geomType == TechDraw::GeomType::BSPLINE) {
|
||||
else if (base && base->getGeomType() == TechDraw::GeomType::BSPLINE) {
|
||||
TechDraw::BSplinePtr spline = std::static_pointer_cast<TechDraw::BSpline>(base);
|
||||
if (spline->isCircle()) {
|
||||
bool arc;
|
||||
double rad;
|
||||
Base::Vector3d center;
|
||||
//bool circ =
|
||||
GeometryUtils::getCircleParms(spline->occEdge, rad, center, arc);
|
||||
GeometryUtils::getCircleParms(spline->getOCCEdge(), rad, center, arc);
|
||||
pts.center = Base::Vector3d(center.x, center.y, 0.0);
|
||||
pts.radius = rad;
|
||||
pts.arcEnds.first(Base::Vector3d(spline->startPnt.x, spline->startPnt.y, 0.0));
|
||||
@@ -980,13 +980,13 @@ anglePoints DrawViewDimension::getAnglePointsTwoEdges(ReferenceVector references
|
||||
ssMessage << getNameInDocument() << " can not find geometry for 2d reference (5)";
|
||||
throw Base::RuntimeError(ssMessage.str());
|
||||
}
|
||||
if (geom0->geomType != TechDraw::GeomType::GENERIC) {
|
||||
if (geom0->getGeomType() != TechDraw::GeomType::GENERIC) {
|
||||
std::stringstream ssMessage;
|
||||
ssMessage << getNameInDocument() << " first 2d reference is a "
|
||||
<< geom0->geomTypeName();
|
||||
throw Base::RuntimeError(ssMessage.str());
|
||||
}
|
||||
if (geom1->geomType != TechDraw::GeomType::GENERIC) {
|
||||
if (geom1->getGeomType() != TechDraw::GeomType::GENERIC) {
|
||||
std::stringstream ssMessage;
|
||||
ssMessage << getNameInDocument() << " second 2d reference is a "
|
||||
<< geom0->geomTypeName();
|
||||
@@ -1436,13 +1436,13 @@ bool DrawViewDimension::leaderIntersectsArc(Base::Vector3d s, Base::Vector3d poi
|
||||
const std::vector<std::string>& subElements = References2D.getSubValues();
|
||||
int idx = DrawUtil::getIndexFromName(subElements[0]);
|
||||
TechDraw::BaseGeomPtr base = getViewPart()->getGeomByIndex(idx);
|
||||
if (base && base->geomType == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
if (base && base->getGeomType() == TechDraw::GeomType::ARCOFCIRCLE) {
|
||||
TechDraw::AOCPtr aoc = std::static_pointer_cast<TechDraw::AOC>(base);
|
||||
if (aoc->intersectsArc(s, pointOnCircle)) {
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
else if (base && base->geomType == TechDraw::GeomType::BSPLINE) {
|
||||
else if (base && base->getGeomType() == TechDraw::GeomType::BSPLINE) {
|
||||
TechDraw::BSplinePtr spline = std::static_pointer_cast<TechDraw::BSpline>(base);
|
||||
if (spline->isCircle()) {
|
||||
if (spline->intersectsArc(s, pointOnCircle)) {
|
||||
|
||||
@@ -569,7 +569,7 @@ void DrawViewPart::extractFaces()
|
||||
bool copyGeometry = true;
|
||||
bool copyMesh = false;
|
||||
for (const auto& e : goEdges) {
|
||||
BRepBuilderAPI_Copy copier(e->occEdge, copyGeometry, copyMesh);
|
||||
BRepBuilderAPI_Copy copier(e->getOCCEdge(), copyGeometry, copyMesh);
|
||||
copyEdges.push_back(TopoDS::Edge(copier.Shape()));
|
||||
}
|
||||
std::vector<TopoDS_Edge> nonZero;
|
||||
@@ -865,7 +865,7 @@ TechDraw::VertexPtr DrawViewPart::getProjVertexByCosTag(std::string cosTag)
|
||||
}
|
||||
|
||||
for (auto& gv : gVerts) {
|
||||
if (gv->cosmeticTag == cosTag) {
|
||||
if (gv->getCosmeticTag() == cosTag) {
|
||||
result = gv;
|
||||
break;
|
||||
}
|
||||
@@ -883,7 +883,7 @@ std::vector<TechDraw::BaseGeomPtr> DrawViewPart::getFaceEdgesByIndex(int idx) co
|
||||
TechDraw::FacePtr projFace = faces.at(idx);
|
||||
for (auto& w : projFace->wires) {
|
||||
for (auto& g : w->geoms) {
|
||||
if (g->cosmetic) {
|
||||
if (g->getCosmetic()) {
|
||||
//if g is cosmetic, we should skip it
|
||||
continue;
|
||||
}
|
||||
@@ -904,10 +904,8 @@ std::vector<TopoDS_Wire> DrawViewPart::getWireForFace(int idx) const
|
||||
TechDraw::FacePtr ourFace = faces.at(idx);
|
||||
for (auto& w : ourFace->wires) {
|
||||
edges.clear();
|
||||
int i = 0;
|
||||
for (auto& g : w->geoms) {
|
||||
edges.push_back(g->occEdge);
|
||||
i++;
|
||||
edges.push_back(g->getOCCEdge());
|
||||
}
|
||||
TopoDS_Wire occwire = EdgeWalker::makeCleanWire(edges);
|
||||
result.push_back(occwire);
|
||||
@@ -1279,9 +1277,6 @@ bool DrawViewPart::checkXDirection() const
|
||||
// Base::Console().Message("DVP::checkXDirection()\n");
|
||||
Base::Vector3d xDir = XDirection.getValue();
|
||||
if (DrawUtil::fpCompare(xDir.Length(), 0.0)) {
|
||||
Base::Vector3d dir = Direction.getValue();
|
||||
Base::Vector3d origin(0.0, 0.0, 0.0);
|
||||
xDir = getLegacyX(origin, dir);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -1326,7 +1321,7 @@ void DrawViewPart::updateReferenceVert(std::string tag, Base::Vector3d loc2d)
|
||||
{
|
||||
for (auto& v : m_referenceVerts) {
|
||||
if (v->getTagAsString() == tag) {
|
||||
v->pnt = loc2d;
|
||||
v->point(loc2d);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1351,7 +1346,7 @@ std::string DrawViewPart::addReferenceVertex(Base::Vector3d v)
|
||||
// TechDraw::Vertex* ref = new TechDraw::Vertex(scaledV);
|
||||
Base::Vector3d scaledV = v;
|
||||
TechDraw::VertexPtr ref(std::make_shared<TechDraw::Vertex>(scaledV));
|
||||
ref->reference = true;
|
||||
ref->isReference(true);
|
||||
refTag = ref->getTagAsString();
|
||||
m_referenceVerts.push_back(ref);
|
||||
return refTag;
|
||||
@@ -1379,7 +1374,7 @@ void DrawViewPart::removeAllReferencesFromGeom()
|
||||
std::vector<TechDraw::VertexPtr> gVerts = getVertexGeometry();
|
||||
std::vector<TechDraw::VertexPtr> newVerts;
|
||||
for (auto& gv : gVerts) {
|
||||
if (!gv->reference) {
|
||||
if (!gv->isReference()) {
|
||||
newVerts.push_back(gv);
|
||||
}
|
||||
}
|
||||
@@ -1436,7 +1431,7 @@ void DrawViewPart::refreshCVGeoms()
|
||||
std::vector<TechDraw::VertexPtr> gVerts = getVertexGeometry();
|
||||
std::vector<TechDraw::VertexPtr> newGVerts;
|
||||
for (auto& gv : gVerts) {
|
||||
if (gv->cosmeticTag.empty()) {//keep only non-cv vertices
|
||||
if (gv->getCosmeticTag().empty()) {//keep only non-cv vertices
|
||||
newGVerts.push_back(gv);
|
||||
}
|
||||
}
|
||||
@@ -1455,7 +1450,7 @@ int DrawViewPart::getCVIndex(std::string tag)
|
||||
int i = 0;
|
||||
bool found = false;
|
||||
for (auto& gv : gVerts) {
|
||||
if (gv->cosmeticTag == tag) {
|
||||
if (gv->getCosmeticTag() == tag) {
|
||||
result = i;
|
||||
found = true;
|
||||
break;
|
||||
|
||||
@@ -69,8 +69,8 @@ PyObject* DrawViewPartPy::getVisibleEdges(PyObject *args)
|
||||
Py::List pEdgeList;
|
||||
std::vector<TechDraw::BaseGeomPtr> geoms = dvp->getEdgeGeometry();
|
||||
for (auto& g: geoms) {
|
||||
if (g->hlrVisible) {
|
||||
PyObject* pEdge = new Part::TopoShapeEdgePy(new Part::TopoShape(g->occEdge));
|
||||
if (g->getHlrVisible()) {
|
||||
PyObject* pEdge = new Part::TopoShapeEdgePy(new Part::TopoShape(g->getOCCEdge()));
|
||||
pEdgeList.append(Py::asObject(pEdge));
|
||||
}
|
||||
}
|
||||
@@ -88,8 +88,8 @@ PyObject* DrawViewPartPy::getHiddenEdges(PyObject *args)
|
||||
Py::List pEdgeList;
|
||||
std::vector<TechDraw::BaseGeomPtr> geoms = dvp->getEdgeGeometry();
|
||||
for (auto& g: geoms) {
|
||||
if (!g->hlrVisible) {
|
||||
PyObject* pEdge = new Part::TopoShapeEdgePy(new Part::TopoShape(g->occEdge));
|
||||
if (!g->getHlrVisible()) {
|
||||
PyObject* pEdge = new Part::TopoShapeEdgePy(new Part::TopoShape(g->getOCCEdge()));
|
||||
pEdgeList.append(Py::asObject(pEdge));
|
||||
}
|
||||
}
|
||||
@@ -657,7 +657,7 @@ PyObject* DrawViewPartPy::getEdgeByIndex(PyObject *args)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TopoDS_Shape temp = TechDraw::mirrorShapeVec(geom->occEdge,
|
||||
TopoDS_Shape temp = TechDraw::mirrorShapeVec(geom->getOCCEdge(),
|
||||
Base::Vector3d(0.0, 0.0, 0.0),
|
||||
1.0 / dvp->getScale());
|
||||
|
||||
@@ -711,7 +711,7 @@ PyObject* DrawViewPartPy::getEdgeBySelection(PyObject *args)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TopoDS_Shape temp = TechDraw::mirrorShapeVec(geom->occEdge,
|
||||
TopoDS_Shape temp = TechDraw::mirrorShapeVec(geom->getOCCEdge(),
|
||||
Base::Vector3d(0.0, 0.0, 0.0),
|
||||
1.0 / dvp->getScale());
|
||||
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
#include <Base/Writer.h>
|
||||
|
||||
#include "Geometry.h"
|
||||
#include "GeometryObject.h"
|
||||
#include "DrawUtil.h"
|
||||
|
||||
|
||||
@@ -116,7 +117,7 @@ TopoDS_Wire Wire::toOccWire() const
|
||||
{
|
||||
BRepBuilderAPI_MakeWire mkWire;
|
||||
for (auto& g: geoms) {
|
||||
TopoDS_Edge e = g->occEdge;
|
||||
TopoDS_Edge e = g->getOCCEdge();
|
||||
mkWire.Add(e);
|
||||
}
|
||||
if (mkWire.IsDone()) {
|
||||
@@ -187,7 +188,7 @@ BaseGeomPtr BaseGeom::copy()
|
||||
|
||||
result->extractType = extractType;
|
||||
result->classOfEdge = classOfEdge;
|
||||
result->hlrVisible = hlrVisible;
|
||||
result->setHlrVisible( hlrVisible);
|
||||
result->reversed = reversed;
|
||||
result->ref3D = ref3D;
|
||||
result->cosmetic = cosmetic;
|
||||
@@ -367,7 +368,7 @@ double BaseGeom::minDist(Base::Vector3d p)
|
||||
//!find point on me nearest to p
|
||||
Base::Vector3d BaseGeom::nearPoint(const BaseGeomPtr p)
|
||||
{
|
||||
TopoDS_Edge pEdge = p->occEdge;
|
||||
TopoDS_Edge pEdge = p->getOCCEdge();
|
||||
BRepExtrema_DistShapeShape extss(occEdge, pEdge);
|
||||
if (!extss.IsDone() || extss.NbSolution() == 0) {
|
||||
return Base::Vector3d(0.0, 0.0, 0.0);
|
||||
@@ -413,6 +414,15 @@ bool BaseGeom::closed()
|
||||
return false;
|
||||
}
|
||||
|
||||
// return a BaseGeom similar to this, but inverted with respect to Y axis
|
||||
BaseGeomPtr BaseGeom::inverted()
|
||||
{
|
||||
Base::Console().Message("BG::inverted()\n");
|
||||
TopoDS_Shape invertedShape = GeometryObject::invertGeometry(occEdge);
|
||||
TopoDS_Edge invertedEdge = TopoDS::Edge(invertedShape);
|
||||
return baseFactory(invertedEdge);
|
||||
}
|
||||
|
||||
//keep this in sync with enum GeomType
|
||||
std::string BaseGeom::geomTypeName()
|
||||
{
|
||||
@@ -539,15 +549,15 @@ std::vector<Base::Vector3d> BaseGeom::intersection(TechDraw::BaseGeomPtr geom2)
|
||||
# define isArcOrCircle 2
|
||||
// we check the type of the two objects
|
||||
int edge1(unknown), edge2(unknown);
|
||||
if (this->geomType == TechDraw::CIRCLE ||
|
||||
this->geomType == TechDraw::ARCOFCIRCLE)
|
||||
if (this->getGeomType() == TechDraw::CIRCLE ||
|
||||
this->getGeomType() == TechDraw::ARCOFCIRCLE)
|
||||
edge1 = isArcOrCircle;
|
||||
else if (this->geomType == TechDraw::GENERIC)
|
||||
else if (this->getGeomType() == TechDraw::GENERIC)
|
||||
edge1 = isGeneric;
|
||||
if (geom2->geomType == TechDraw::CIRCLE ||
|
||||
geom2->geomType == TechDraw::ARCOFCIRCLE)
|
||||
if (geom2->getGeomType() == TechDraw::CIRCLE ||
|
||||
geom2->getGeomType() == TechDraw::ARCOFCIRCLE)
|
||||
edge2 = isArcOrCircle;
|
||||
else if (geom2->geomType == TechDraw::GENERIC)
|
||||
else if (geom2->getGeomType() == TechDraw::GENERIC)
|
||||
edge2 = isGeneric;
|
||||
// we calculate the intersections
|
||||
std::vector<Base::Vector3d> interPoints;
|
||||
@@ -1334,28 +1344,28 @@ Vertex::Vertex()
|
||||
extractType = ExtractionType::Plain; //obs?
|
||||
hlrVisible = false;
|
||||
ref3D = -1; //obs. never used.
|
||||
isCenter = false;
|
||||
m_center = false;
|
||||
BRepBuilderAPI_MakeVertex mkVert(gp_Pnt(0.0, 0.0, 0.0));
|
||||
occVertex = mkVert.Vertex();
|
||||
cosmetic = false;
|
||||
cosmeticLink = -1;
|
||||
cosmeticTag = std::string();
|
||||
reference = false;
|
||||
m_reference = false;
|
||||
createNewTag();
|
||||
}
|
||||
|
||||
Vertex::Vertex(const Vertex* v)
|
||||
{
|
||||
pnt = v->pnt;
|
||||
pnt = v->point();
|
||||
extractType = v->extractType; //obs?
|
||||
hlrVisible = v->hlrVisible;
|
||||
ref3D = v->ref3D; //obs. never used.
|
||||
isCenter = v->isCenter;
|
||||
m_center = v->m_center;
|
||||
occVertex = v->occVertex;
|
||||
cosmetic = v->cosmetic;
|
||||
cosmeticLink = v->cosmeticLink;
|
||||
cosmeticTag = v->cosmeticTag;
|
||||
reference = false;
|
||||
m_reference = false;
|
||||
createNewTag();
|
||||
}
|
||||
|
||||
@@ -1365,13 +1375,13 @@ Vertex::Vertex(double x, double y)
|
||||
extractType = ExtractionType::Plain; //obs?
|
||||
hlrVisible = false;
|
||||
ref3D = -1; //obs. never used.
|
||||
isCenter = false;
|
||||
m_center = false;
|
||||
BRepBuilderAPI_MakeVertex mkVert(gp_Pnt(x, y, 0.0));
|
||||
occVertex = mkVert.Vertex();
|
||||
cosmetic = false;
|
||||
cosmeticLink = -1;
|
||||
cosmeticTag = std::string();
|
||||
reference = false;
|
||||
m_reference = false;
|
||||
createNewTag();
|
||||
}
|
||||
|
||||
@@ -1400,10 +1410,10 @@ void Vertex::Save(Base::Writer &writer) const
|
||||
"\"/>" << endl;
|
||||
|
||||
writer.Stream() << writer.ind() << "<Extract value=\"" << extractType << "\"/>" << endl;
|
||||
const char v = hlrVisible?'1':'0';
|
||||
const char v = hlrVisible ? '1':'0';
|
||||
writer.Stream() << writer.ind() << "<HLRVisible value=\"" << v << "\"/>" << endl;
|
||||
writer.Stream() << writer.ind() << "<Ref3D value=\"" << ref3D << "\"/>" << endl;
|
||||
const char c = isCenter?'1':'0';
|
||||
const char c = m_center ?'1':'0';
|
||||
writer.Stream() << writer.ind() << "<IsCenter value=\"" << c << "\"/>" << endl;
|
||||
const char c2 = cosmetic?'1':'0';
|
||||
writer.Stream() << writer.ind() << "<Cosmetic value=\"" << c2 << "\"/>" << endl;
|
||||
@@ -1441,7 +1451,7 @@ void Vertex::Restore(Base::XMLReader &reader)
|
||||
|
||||
//will restore read to eof looking for "Reference" in old docs?? YES!!
|
||||
// reader.readElement("Reference");
|
||||
// reference = (bool)reader.getAttributeAsInteger("value")==0?false:true;
|
||||
// m_reference = (bool)reader.getAttributeAsInteger("value")==0?false:true;
|
||||
|
||||
reader.readElement("VertexTag");
|
||||
std::string temp = reader.getAttribute("value");
|
||||
@@ -1510,7 +1520,7 @@ BaseGeomPtrVector GeometryUtils::chainGeoms(BaseGeomPtrVector geoms)
|
||||
if (next.index) { //found an unused edge with vertex == atPoint
|
||||
BaseGeomPtr nextEdge = geoms.at(next.index);
|
||||
used[next.index] = true;
|
||||
nextEdge->reversed = next.reversed;
|
||||
nextEdge->setReversed(next.reversed);
|
||||
result.push_back(nextEdge);
|
||||
if (next.reversed) {
|
||||
atPoint = nextEdge->getStartPoint();
|
||||
|
||||
@@ -95,25 +95,9 @@ class TechDrawExport BaseGeom : public std::enable_shared_from_this<BaseGeom>
|
||||
//BaseGeom(BaseGeomPtr bg); //do we need a copy constructor too?
|
||||
virtual ~BaseGeom() = default;
|
||||
|
||||
public:
|
||||
GeomType geomType;
|
||||
ExtractionType extractType; //obs
|
||||
edgeClass classOfEdge;
|
||||
bool hlrVisible;
|
||||
bool reversed;
|
||||
int ref3D; //obs?
|
||||
TopoDS_Edge occEdge; //projected Edge
|
||||
bool cosmetic;
|
||||
int source() { return m_source; }
|
||||
void source(int s) { m_source = s; }
|
||||
int sourceIndex() { return m_sourceIndex; }
|
||||
void sourceIndex(int si) { m_sourceIndex = si; }
|
||||
std::string getCosmeticTag() { return cosmeticTag; }
|
||||
void setCosmeticTag(std::string t) { cosmeticTag = t; }
|
||||
|
||||
virtual std::string toString() const;
|
||||
virtual void Save(Base::Writer& w) const;
|
||||
virtual void Restore(Base::XMLReader& r);
|
||||
|
||||
std::vector<Base::Vector3d> findEndPoints();
|
||||
Base::Vector3d getStartPoint();
|
||||
Base::Vector3d getEndPoint();
|
||||
@@ -127,6 +111,7 @@ class TechDrawExport BaseGeom : public std::enable_shared_from_this<BaseGeom>
|
||||
bool closed();
|
||||
BaseGeomPtr copy();
|
||||
std::string dump();
|
||||
virtual std::string toString() const;
|
||||
std::vector<Base::Vector3d> intersection(TechDraw::BaseGeomPtr geom2);
|
||||
|
||||
//Uniqueness
|
||||
@@ -134,8 +119,33 @@ class TechDrawExport BaseGeom : public std::enable_shared_from_this<BaseGeom>
|
||||
virtual std::string getTagAsString() const;
|
||||
|
||||
std::string geomTypeName();
|
||||
BaseGeomPtr inverted();
|
||||
|
||||
// attribute setters and getters
|
||||
GeomType getGeomType() { return geomType; }
|
||||
void setGeomType(GeomType type) { geomType = type; }
|
||||
edgeClass getClassOfEdge() { return classOfEdge; }
|
||||
void setClassOfEdge(edgeClass newClass) { classOfEdge = newClass; }
|
||||
bool getHlrVisible() { return hlrVisible; }
|
||||
void setHlrVisible(bool state) { hlrVisible = state; }
|
||||
bool getReversed() { return reversed; }
|
||||
void setReversed(bool state) { reversed = state; }
|
||||
int getRef3d() { return ref3D; }
|
||||
void setRef3d(int ref) { ref3D = ref; }
|
||||
TopoDS_Edge getOCCEdge() { return occEdge; }
|
||||
void setOCCEdge(TopoDS_Edge newEdge) { occEdge = newEdge; }
|
||||
bool getCosmetic() { return cosmetic; }
|
||||
void setCosmetic (bool state) { cosmetic = state; }
|
||||
int source() { return m_source; }
|
||||
void source(int s) { m_source = s; }
|
||||
int sourceIndex() { return m_sourceIndex; }
|
||||
void sourceIndex(int si) { m_sourceIndex = si; }
|
||||
std::string getCosmeticTag() { return cosmeticTag; }
|
||||
void setCosmeticTag(std::string t) { cosmeticTag = t; }
|
||||
|
||||
protected:
|
||||
void createNewTag();
|
||||
|
||||
private:
|
||||
void intersectionLL(TechDraw::BaseGeomPtr geom1,
|
||||
TechDraw::BaseGeomPtr geom2,
|
||||
std::vector<Base::Vector3d>& interPoints);
|
||||
@@ -146,14 +156,20 @@ private:
|
||||
TechDraw::BaseGeomPtr geom2,
|
||||
std::vector<Base::Vector3d>& interPoints);
|
||||
|
||||
protected:
|
||||
GeomType geomType;
|
||||
ExtractionType extractType; //obs
|
||||
edgeClass classOfEdge;
|
||||
bool hlrVisible;
|
||||
bool reversed;
|
||||
int ref3D; //obs?
|
||||
TopoDS_Edge occEdge; //projected Edge
|
||||
bool cosmetic;
|
||||
//TODO: all these attributes should be private
|
||||
int m_source; //0 - geom, 1 - cosmetic edge, 2 - centerline
|
||||
int m_sourceIndex;
|
||||
std::string cosmeticTag;
|
||||
|
||||
void createNewTag();
|
||||
|
||||
boost::uuids::uuid tag;
|
||||
|
||||
};
|
||||
using BaseGeomPtrVector = std::vector<BaseGeomPtr>; //new style
|
||||
|
||||
@@ -335,19 +351,9 @@ class TechDrawExport Vertex
|
||||
virtual void Restore(Base::XMLReader &/*reader*/);
|
||||
virtual void dump(const char* title = "");
|
||||
|
||||
Base::Vector3d pnt;
|
||||
ExtractionType extractType; //obs?
|
||||
bool hlrVisible; //visible according to HLR
|
||||
int ref3D; //obs. never used.
|
||||
bool isCenter;
|
||||
TopoDS_Vertex occVertex;
|
||||
bool isEqual(const Vertex& v, double tol);
|
||||
Base::Vector3d point() const { return Base::Vector3d(pnt.x, pnt.y, 0.0); }
|
||||
void point(Base::Vector3d v){ pnt = Base::Vector3d(v.x, v.y); }
|
||||
bool cosmetic;
|
||||
int cosmeticLink; //deprec. use cosmeticTag
|
||||
std::string cosmeticTag;
|
||||
bool reference; //reference vertex (ex robust dimension)
|
||||
|
||||
double x() {return pnt.x;}
|
||||
double y() {return pnt.y;}
|
||||
@@ -355,11 +361,38 @@ class TechDrawExport Vertex
|
||||
boost::uuids::uuid getTag() const;
|
||||
virtual std::string getTagAsString() const;
|
||||
|
||||
// attribute setters and getters
|
||||
bool getHlrVisible() { return hlrVisible; }
|
||||
void setHlrVisible(bool state) { hlrVisible = state; }
|
||||
int getRef3d() { return ref3D; }
|
||||
void setRef3d(int ref) { ref3D = ref; }
|
||||
TopoDS_Vertex getOCCVertex() { return occVertex; }
|
||||
void setOCCVertex(TopoDS_Vertex newVertex) { occVertex = newVertex; }
|
||||
bool getCosmetic() { return cosmetic; }
|
||||
void setCosmetic (bool state) { cosmetic = state; }
|
||||
std::string getCosmeticTag() { return cosmeticTag; }
|
||||
void setCosmeticTag(std::string t) { cosmeticTag = t; }
|
||||
bool isCenter() {return m_center;}
|
||||
void isCenter(bool state) { m_center = state; }
|
||||
bool isReference() { return m_reference; }
|
||||
void isReference(bool state) { m_reference = state; }
|
||||
|
||||
protected:
|
||||
//Uniqueness
|
||||
void createNewTag();
|
||||
void assignTag(const TechDraw::Vertex* v);
|
||||
|
||||
Base::Vector3d pnt;
|
||||
ExtractionType extractType; //obs?
|
||||
bool hlrVisible; //visible according to HLR
|
||||
int ref3D; //obs. never used.
|
||||
bool m_center;
|
||||
TopoDS_Vertex occVertex;
|
||||
bool cosmetic;
|
||||
int cosmeticLink; //deprec. use cosmeticTag
|
||||
std::string cosmeticTag;
|
||||
bool m_reference; //reference vertex (ex robust dimension)
|
||||
|
||||
boost::uuids::uuid tag;
|
||||
};
|
||||
using VertexPtr = std::shared_ptr<Vertex>;
|
||||
|
||||
@@ -98,8 +98,8 @@ const BaseGeomPtrVector GeometryObject::getVisibleFaceEdges(const bool smooth,
|
||||
bool seamOK = seam;
|
||||
|
||||
for (auto& e : edgeGeom) {
|
||||
if (e->hlrVisible) {
|
||||
switch (e->classOfEdge) {
|
||||
if (e->getHlrVisible()) {
|
||||
switch (e->getClassOfEdge()) {
|
||||
case ecHARD:
|
||||
case ecOUTLINE:
|
||||
result.push_back(e);
|
||||
@@ -124,7 +124,7 @@ const BaseGeomPtrVector GeometryObject::getVisibleFaceEdges(const bool smooth,
|
||||
// TopoDS_Compound comp;
|
||||
// builder.MakeCompound(comp);
|
||||
// for (auto& r: result) {
|
||||
// builder.Add(comp, r->occEdge);
|
||||
// builder.Add(comp, r->getOCCEdge());
|
||||
// }
|
||||
// BRepTools::Write(comp, "GOVizFaceEdges.brep"); //debug
|
||||
|
||||
@@ -562,8 +562,8 @@ void GeometryObject::addGeomFromCompound(TopoDS_Shape edgeCompound, edgeClass ca
|
||||
|
||||
base->source(0);//object geometry
|
||||
base->sourceIndex(i - 1);
|
||||
base->classOfEdge = category;
|
||||
base->hlrVisible = hlrVisible;
|
||||
base->setClassOfEdge(category);
|
||||
base->setHlrVisible(hlrVisible);
|
||||
edgeGeom.push_back(base);
|
||||
|
||||
//add vertices of new edge if not already in list
|
||||
@@ -577,8 +577,8 @@ void GeometryObject::addGeomFromCompound(TopoDS_Shape edgeCompound, edgeClass ca
|
||||
TechDraw::VertexPtr c1;
|
||||
if (circle) {
|
||||
c1 = std::make_shared<TechDraw::Vertex>(circle->center);
|
||||
c1->isCenter = true;
|
||||
c1->hlrVisible = true;
|
||||
c1->isCenter(true);
|
||||
c1->setHlrVisible(true);
|
||||
}
|
||||
|
||||
std::vector<VertexPtr>::iterator itVertex = vertexGeom.begin();
|
||||
@@ -597,14 +597,14 @@ void GeometryObject::addGeomFromCompound(TopoDS_Shape edgeCompound, edgeClass ca
|
||||
}
|
||||
if (v1Add) {
|
||||
vertexGeom.push_back(v1);
|
||||
v1->hlrVisible = true;
|
||||
v1->setHlrVisible( true);
|
||||
}
|
||||
else {
|
||||
// delete v1;
|
||||
}
|
||||
if (v2Add) {
|
||||
vertexGeom.push_back(v2);
|
||||
v2->hlrVisible = true;
|
||||
v2->setHlrVisible( true);
|
||||
}
|
||||
else {
|
||||
// delete v2;
|
||||
@@ -613,7 +613,7 @@ void GeometryObject::addGeomFromCompound(TopoDS_Shape edgeCompound, edgeClass ca
|
||||
if (circle) {
|
||||
if (c1Add) {
|
||||
vertexGeom.push_back(c1);
|
||||
c1->hlrVisible = true;
|
||||
c1->setHlrVisible( true);
|
||||
}
|
||||
else {
|
||||
// delete c1;
|
||||
@@ -638,10 +638,10 @@ int GeometryObject::addCosmeticVertex(CosmeticVertex* cv)
|
||||
double scale = m_parent->getScale();
|
||||
Base::Vector3d pos = cv->scaled(scale);
|
||||
TechDraw::VertexPtr v(std::make_shared<TechDraw::Vertex>(pos.x, pos.y));
|
||||
v->cosmetic = true;
|
||||
v->cosmeticLink = -1;//obs??
|
||||
v->cosmeticTag = cv->getTagAsString();
|
||||
v->hlrVisible = true;
|
||||
v->setCosmetic(true);
|
||||
// v->setCosmeticLink = -1;//obs??
|
||||
v->setCosmeticTag(cv->getTagAsString());
|
||||
v->setHlrVisible(true);
|
||||
int idx = vertexGeom.size();
|
||||
vertexGeom.push_back(v);
|
||||
return idx;
|
||||
@@ -653,9 +653,9 @@ int GeometryObject::addCosmeticVertex(Base::Vector3d pos)
|
||||
{
|
||||
Base::Console().Message("GO::addCosmeticVertex() 1 - deprec?\n");
|
||||
TechDraw::VertexPtr v(std::make_shared<TechDraw::Vertex>(pos.x, pos.y));
|
||||
v->cosmetic = true;
|
||||
v->cosmeticTag = "tbi";//not connected to CV
|
||||
v->hlrVisible = true;
|
||||
v->setCosmetic(true);
|
||||
v->setCosmeticTag("tbi");//not connected to CV
|
||||
v->setHlrVisible(true);
|
||||
int idx = vertexGeom.size();
|
||||
vertexGeom.push_back(v);
|
||||
return idx;
|
||||
@@ -665,9 +665,9 @@ int GeometryObject::addCosmeticVertex(Base::Vector3d pos, std::string tagString)
|
||||
{
|
||||
// Base::Console().Message("GO::addCosmeticVertex() 2\n");
|
||||
TechDraw::VertexPtr v(std::make_shared<TechDraw::Vertex>(pos.x, pos.y));
|
||||
v->cosmetic = true;
|
||||
v->cosmeticTag = tagString;//connected to CV
|
||||
v->hlrVisible = true;
|
||||
v->setCosmetic(true);
|
||||
v->setCosmeticTag(tagString);//connected to CV
|
||||
v->setHlrVisible(true);
|
||||
int idx = vertexGeom.size();
|
||||
vertexGeom.push_back(v);
|
||||
return idx;
|
||||
@@ -683,9 +683,9 @@ int GeometryObject::addCosmeticEdge(CosmeticEdge* ce)
|
||||
// Base::Console().Message("GO::addCosmeticEdge(%X) 0\n", ce);
|
||||
double scale = m_parent->getScale();
|
||||
TechDraw::BaseGeomPtr e = ce->scaledGeometry(scale);
|
||||
e->cosmetic = true;
|
||||
e->setCosmetic(true);
|
||||
e->setCosmeticTag(ce->getTagAsString());
|
||||
e->hlrVisible = true;
|
||||
e->setHlrVisible(true);
|
||||
int idx = edgeGeom.size();
|
||||
edgeGeom.push_back(e);
|
||||
return idx;
|
||||
@@ -700,10 +700,10 @@ int GeometryObject::addCosmeticEdge(Base::Vector3d start, Base::Vector3d end)
|
||||
gp_Pnt gp2(end.x, end.y, end.z);
|
||||
TopoDS_Edge occEdge = BRepBuilderAPI_MakeEdge(gp1, gp2);
|
||||
TechDraw::BaseGeomPtr e = BaseGeom::baseFactory(occEdge);
|
||||
e->cosmetic = true;
|
||||
e->setCosmetic(true);
|
||||
// e->cosmeticLink = link;
|
||||
e->setCosmeticTag("tbi");
|
||||
e->hlrVisible = true;
|
||||
e->setHlrVisible(true);
|
||||
int idx = edgeGeom.size();
|
||||
edgeGeom.push_back(e);
|
||||
return idx;
|
||||
@@ -716,10 +716,10 @@ int GeometryObject::addCosmeticEdge(Base::Vector3d start, Base::Vector3d end, st
|
||||
gp_Pnt gp2(end.x, end.y, end.z);
|
||||
TopoDS_Edge occEdge = BRepBuilderAPI_MakeEdge(gp1, gp2);
|
||||
TechDraw::BaseGeomPtr base = BaseGeom::baseFactory(occEdge);
|
||||
base->cosmetic = true;
|
||||
base->setCosmetic(true);
|
||||
base->setCosmeticTag(tagString);
|
||||
base->source(1);//1-CosmeticEdge, 2-CenterLine
|
||||
base->hlrVisible = true;
|
||||
base->setHlrVisible(true);
|
||||
int idx = edgeGeom.size();
|
||||
edgeGeom.push_back(base);
|
||||
return idx;
|
||||
@@ -728,8 +728,8 @@ int GeometryObject::addCosmeticEdge(Base::Vector3d start, Base::Vector3d end, st
|
||||
int GeometryObject::addCosmeticEdge(TechDraw::BaseGeomPtr base, std::string tagString)
|
||||
{
|
||||
// Base::Console().Message("GO::addCosmeticEdge(%X, %s) 3\n", base, tagString.c_str());
|
||||
base->cosmetic = true;
|
||||
base->hlrVisible = true;
|
||||
base->setCosmetic(true);
|
||||
base->setHlrVisible(true);
|
||||
base->source(1);//1-CosmeticEdge, 2-CenterLine
|
||||
base->setCosmeticTag(tagString);
|
||||
base->sourceIndex(-1);
|
||||
@@ -742,7 +742,7 @@ int GeometryObject::addCenterLine(TechDraw::BaseGeomPtr base, std::string tag)
|
||||
// int s, int si)
|
||||
{
|
||||
// Base::Console().Message("GO::addCenterLine()\n");
|
||||
base->cosmetic = true;
|
||||
base->setCosmetic(true);
|
||||
base->setCosmeticTag(tag);
|
||||
base->source(2);
|
||||
// base->sourceIndex(si); //index into source;
|
||||
@@ -819,7 +819,7 @@ Base::BoundBox3d GeometryObject::calcBoundingBox() const
|
||||
testBox.SetGap(0.0);
|
||||
if (!edgeGeom.empty()) {
|
||||
for (BaseGeomPtrVector::const_iterator it(edgeGeom.begin()); it != edgeGeom.end(); ++it) {
|
||||
BRepBndLib::AddOptimal((*it)->occEdge, testBox);
|
||||
BRepBndLib::AddOptimal((*it)->getOCCEdge(), testBox);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -854,7 +854,7 @@ bool GeometryObject::findVertex(Base::Vector3d v)
|
||||
bool found = false;
|
||||
std::vector<VertexPtr>::iterator it = vertexGeom.begin();
|
||||
for (; it != vertexGeom.end(); it++) {
|
||||
double dist = (v - (*it)->pnt).Length();
|
||||
double dist = (v - (*it)->point()).Length();
|
||||
if (dist < Precision::Confusion()) {
|
||||
found = true;
|
||||
break;
|
||||
|
||||
@@ -1080,7 +1080,7 @@ void execLine2Points(Gui::Command* cmd)
|
||||
int idx = DrawUtil::getIndexFromName(v2d);
|
||||
TechDraw::VertexPtr v = baseFeat->getProjVertexByIndex(idx);
|
||||
if (v) {
|
||||
Base::Vector3d p = DrawUtil::invertY(v->pnt);
|
||||
Base::Vector3d p = DrawUtil::invertY(v->point());
|
||||
points.push_back(p / scale);
|
||||
is3d.push_back(false);
|
||||
}
|
||||
@@ -1182,7 +1182,7 @@ void CmdTechDrawCosmeticEraser::activated(int iMsg)
|
||||
std::string geomType = TechDraw::DrawUtil::getGeomTypeFromName(s);
|
||||
if (geomType == "Edge") {
|
||||
TechDraw::BaseGeomPtr bg = objFeat->getGeomByIndex(idx);
|
||||
if (bg && bg->cosmetic) {
|
||||
if (bg && bg->getCosmetic()) {
|
||||
int source = bg->source();
|
||||
std::string tag = bg->getCosmeticTag();
|
||||
if (source == COSMETICEDGE) {
|
||||
@@ -1199,7 +1199,7 @@ void CmdTechDrawCosmeticEraser::activated(int iMsg)
|
||||
if (!tdv)
|
||||
Base::Console().Message("CMD::eraser - geom: %d not found!\n", idx);
|
||||
|
||||
std::string delTag = tdv->cosmeticTag;
|
||||
std::string delTag = tdv->getCosmeticTag();
|
||||
if (delTag.empty())
|
||||
Base::Console().Warning("Vertex%d is not cosmetic! Can not erase.\n", idx);
|
||||
cv2Delete.push_back(delTag);
|
||||
|
||||
@@ -2149,7 +2149,7 @@ void CmdTechDrawExtensionCreateLengthArc::activated(int iMsg) {
|
||||
int geoId = TechDraw::DrawUtil::getIndexFromName(subNames[0]);
|
||||
TechDraw::BaseGeomPtr geom = objFeat->getGeomByIndex(geoId);
|
||||
std::string geoType = TechDraw::DrawUtil::getGeomTypeFromName(subNames[0]);
|
||||
if (geoType == "Edge" && geom->geomType == TechDraw::ARCOFCIRCLE) {
|
||||
if (geoType == "Edge" && geom->getGeomType() == TechDraw::ARCOFCIRCLE) {
|
||||
TechDraw::AOCPtr arcTag = std::static_pointer_cast<TechDraw::AOC>(geom);
|
||||
float radius = arcTag->radius;
|
||||
Base::Vector3d centerPt = arcTag->center;
|
||||
|
||||
@@ -102,7 +102,7 @@ void execHoleCircle(Gui::Command* cmd)
|
||||
std::string GeoType = TechDraw::DrawUtil::getGeomTypeFromName(Name);
|
||||
TechDraw::BaseGeomPtr geom = objFeat->getGeomByIndex(GeoId);
|
||||
if (GeoType == "Edge") {
|
||||
if (geom->geomType == TechDraw::CIRCLE || geom->geomType == TechDraw::ARCOFCIRCLE) {
|
||||
if (geom->getGeomType() == TechDraw::CIRCLE || geom->getGeomType() == TechDraw::ARCOFCIRCLE) {
|
||||
TechDraw::CirclePtr cgen = std::static_pointer_cast<TechDraw::Circle>(geom);
|
||||
Circles.push_back(cgen);
|
||||
}
|
||||
@@ -192,7 +192,7 @@ void execCircleCenterLines(Gui::Command* cmd)
|
||||
TechDraw::BaseGeomPtr geom = objFeat->getGeomByIndex(GeoId);
|
||||
std::string GeoType = TechDraw::DrawUtil::getGeomTypeFromName(Name);
|
||||
if (GeoType == "Edge") {
|
||||
if (geom->geomType == TechDraw::CIRCLE || geom->geomType == TechDraw::ARCOFCIRCLE) {
|
||||
if (geom->getGeomType() == TechDraw::CIRCLE || geom->getGeomType() == TechDraw::ARCOFCIRCLE) {
|
||||
TechDraw::CirclePtr cgen = std::static_pointer_cast<TechDraw::Circle>(geom);
|
||||
Base::Vector3d center = cgen->center;
|
||||
center.y = -center.y;
|
||||
@@ -769,7 +769,7 @@ void CmdTechDrawExtensionChangeLineAttributes::activated(int iMsg)
|
||||
int num = DrawUtil::getIndexFromName(name);
|
||||
BaseGeomPtr baseGeo = objFeat->getGeomByIndex(num);
|
||||
if (baseGeo) {
|
||||
if (baseGeo->cosmetic) {
|
||||
if (baseGeo->getCosmetic()) {
|
||||
if (baseGeo->source() == 1) {
|
||||
TechDraw::CosmeticEdge* cosEdgeTag = objFeat->getCosmeticEdgeBySelection(name);
|
||||
_setLineAttributes(cosEdgeTag);
|
||||
@@ -1525,14 +1525,14 @@ void execExtendShortenLine(Gui::Command* cmd, bool extend)
|
||||
if (geoType == "Edge") {
|
||||
TechDraw::BaseGeomPtr baseGeo = objFeat->getGeomByIndex(num);
|
||||
if (baseGeo) {
|
||||
if (baseGeo->geomType == TechDraw::GENERIC) {
|
||||
if (baseGeo->getGeomType() == TechDraw::GENERIC) {
|
||||
TechDraw::GenericPtr genLine =
|
||||
std::static_pointer_cast<TechDraw::Generic>(baseGeo);
|
||||
Base::Vector3d P0 = genLine->points.at(0);
|
||||
Base::Vector3d P1 = genLine->points.at(1);
|
||||
bool isCenterLine = false;
|
||||
TechDraw::CenterLine* centerEdge = nullptr;
|
||||
if (baseGeo->cosmetic) {
|
||||
if (baseGeo->getCosmetic()) {
|
||||
std::string uniTag = baseGeo->getCosmeticTag();
|
||||
int oldStyle = 1;
|
||||
float oldWeight = 1.0f;
|
||||
@@ -1789,7 +1789,7 @@ void CmdTechDrawExtensionAreaAnnotation::activated(int iMsg)
|
||||
std::vector<TechDraw::BaseGeomPtr> faceEdges = objFeat->getFaceEdgesByIndex(idx);
|
||||
// We filter arcs, circles etc. which are not allowed.
|
||||
for (const TechDraw::BaseGeomPtr& geoPtr : faceEdges)
|
||||
if (geoPtr->geomType != TechDraw::GENERIC)
|
||||
if (geoPtr->getGeomType() != TechDraw::GENERIC)
|
||||
throw Base::TypeError(
|
||||
"CmdTechDrawAreaAnnotation - forbidden border element found\n");
|
||||
// We create a list of all points along the boundary of the face.
|
||||
@@ -1990,7 +1990,7 @@ void _createThreadCircle(std::string Name, TechDraw::DrawViewPart* objFeat, floa
|
||||
TechDraw::BaseGeomPtr geom = objFeat->getGeomByIndex(GeoId);
|
||||
std::string GeoType = TechDraw::DrawUtil::getGeomTypeFromName(Name);
|
||||
|
||||
if (GeoType == "Edge" && geom->geomType == TechDraw::CIRCLE) {
|
||||
if (GeoType == "Edge" && geom->getGeomType() == TechDraw::CIRCLE) {
|
||||
TechDraw::CirclePtr cgen = std::static_pointer_cast<TechDraw::Circle>(geom);
|
||||
Base::Vector3d center = cgen->center;
|
||||
float radius = cgen->radius;
|
||||
@@ -2014,7 +2014,7 @@ void _createThreadLines(std::vector<std::string> SubNames, TechDraw::DrawViewPar
|
||||
int GeoId1 = TechDraw::DrawUtil::getIndexFromName(SubNames[1]);
|
||||
TechDraw::BaseGeomPtr geom0 = objFeat->getGeomByIndex(GeoId0);
|
||||
TechDraw::BaseGeomPtr geom1 = objFeat->getGeomByIndex(GeoId1);
|
||||
if (geom0->geomType != TechDraw::GENERIC || geom1->geomType != TechDraw::GENERIC) {
|
||||
if (geom0->getGeomType() != TechDraw::GENERIC || geom1->getGeomType() != TechDraw::GENERIC) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("TechDraw Thread Hole Side"),
|
||||
QObject::tr("Please select two straight lines"));
|
||||
return;
|
||||
|
||||
@@ -383,7 +383,7 @@ DimensionGeometryType TechDraw::isValidSingleEdge(ReferenceEntry ref)
|
||||
return isInvalid;
|
||||
}
|
||||
|
||||
if (geom->geomType == TechDraw::GENERIC) {
|
||||
if (geom->getGeomType() == TechDraw::GENERIC) {
|
||||
TechDraw::GenericPtr gen1 = std::static_pointer_cast<TechDraw::Generic>(geom);
|
||||
if (gen1->points.size() < 2) {
|
||||
return isInvalid;
|
||||
@@ -396,11 +396,11 @@ DimensionGeometryType TechDraw::isValidSingleEdge(ReferenceEntry ref)
|
||||
} else {
|
||||
return TechDraw::isDiagonal;
|
||||
}
|
||||
} else if (geom->geomType == TechDraw::CIRCLE || geom->geomType == TechDraw::ARCOFCIRCLE) {
|
||||
} else if (geom->getGeomType() == TechDraw::CIRCLE || geom->getGeomType() == TechDraw::ARCOFCIRCLE) {
|
||||
return isCircle;
|
||||
} else if (geom->geomType == TechDraw::ELLIPSE || geom->geomType == TechDraw::ARCOFELLIPSE) {
|
||||
} else if (geom->getGeomType() == TechDraw::ELLIPSE || geom->getGeomType() == TechDraw::ARCOFELLIPSE) {
|
||||
return isEllipse;
|
||||
} else if (geom->geomType == TechDraw::BSPLINE) {
|
||||
} else if (geom->getGeomType() == TechDraw::BSPLINE) {
|
||||
TechDraw::BSplinePtr spline = std::static_pointer_cast<TechDraw::BSpline>(geom);
|
||||
if (spline->isCircle()) {
|
||||
return isBSplineCircle;
|
||||
@@ -493,7 +493,7 @@ DimensionGeometryType TechDraw::isValidMultiEdge(ReferenceVector refs)
|
||||
TechDraw::BaseGeomPtr geom0 = objFeat0->getGeomByIndex(GeoId0);
|
||||
TechDraw::BaseGeomPtr geom1 = objFeat0->getGeomByIndex(GeoId1);
|
||||
|
||||
if (geom0->geomType == TechDraw::GENERIC && geom1->geomType == TechDraw::GENERIC) {
|
||||
if (geom0->getGeomType() == TechDraw::GENERIC && geom1->getGeomType() == TechDraw::GENERIC) {
|
||||
TechDraw::GenericPtr gen0 = std::static_pointer_cast<TechDraw::Generic>(geom0);
|
||||
TechDraw::GenericPtr gen1 = std::static_pointer_cast<TechDraw::Generic>(geom1);
|
||||
if (gen0->points.size() > 2 || gen1->points.size() > 2) {//the edge is a polyline
|
||||
|
||||
@@ -86,7 +86,7 @@ void QGIDrawingTemplate::draw()
|
||||
// Draw Edges
|
||||
// iterate through all the geometries
|
||||
for(; it != geoms.end(); ++it) {
|
||||
switch((*it)->geomType) {
|
||||
switch((*it)->getGeomType()) {
|
||||
case TechDraw::GENERIC: {
|
||||
|
||||
TechDraw::GenericPtr geom = std::static_pointer_cast<TechDraw::Generic>(*it);
|
||||
|
||||
@@ -132,7 +132,7 @@ QPainterPath QGIViewPart::geomToPainterPath(BaseGeomPtr baseGeom, double rot)
|
||||
if (!baseGeom)
|
||||
return path;
|
||||
|
||||
switch (baseGeom->geomType) {
|
||||
switch (baseGeom->getGeomType()) {
|
||||
case CIRCLE: {
|
||||
TechDraw::CirclePtr geom = std::static_pointer_cast<TechDraw::Circle>(baseGeom);
|
||||
|
||||
@@ -144,7 +144,7 @@ QPainterPath QGIViewPart::geomToPainterPath(BaseGeomPtr baseGeom, double rot)
|
||||
} break;
|
||||
case ARCOFCIRCLE: {
|
||||
TechDraw::AOCPtr geom = std::static_pointer_cast<TechDraw::AOC>(baseGeom);
|
||||
if (baseGeom->reversed) {
|
||||
if (baseGeom->getReversed()) {
|
||||
path.moveTo(Rez::guiX(geom->endPnt.x), Rez::guiX(geom->endPnt.y));
|
||||
pathArc(path, Rez::guiX(geom->radius), Rez::guiX(geom->radius), 0., geom->largeArc,
|
||||
!geom->cw, Rez::guiX(geom->startPnt.x), Rez::guiX(geom->startPnt.y),
|
||||
@@ -174,7 +174,7 @@ QPainterPath QGIViewPart::geomToPainterPath(BaseGeomPtr baseGeom, double rot)
|
||||
} break;
|
||||
case TechDraw::ARCOFELLIPSE: {
|
||||
TechDraw::AOEPtr geom = std::static_pointer_cast<TechDraw::AOE>(baseGeom);
|
||||
if (baseGeom->reversed) {
|
||||
if (baseGeom->getReversed()) {
|
||||
path.moveTo(Rez::guiX(geom->endPnt.x), Rez::guiX(geom->endPnt.y));
|
||||
pathArc(path, Rez::guiX(geom->major), Rez::guiX(geom->minor), geom->angle,
|
||||
geom->largeArc, !geom->cw, Rez::guiX(geom->startPnt.x),
|
||||
@@ -192,7 +192,7 @@ QPainterPath QGIViewPart::geomToPainterPath(BaseGeomPtr baseGeom, double rot)
|
||||
case TechDraw::BEZIER: {
|
||||
TechDraw::BezierSegmentPtr geom =
|
||||
std::static_pointer_cast<TechDraw::BezierSegment>(baseGeom);
|
||||
if (baseGeom->reversed) {
|
||||
if (baseGeom->getReversed()) {
|
||||
if (!geom->pnts.empty()) {
|
||||
Base::Vector3d rStart = geom->pnts.back();
|
||||
path.moveTo(Rez::guiX(rStart.x), Rez::guiX(rStart.y));
|
||||
@@ -248,7 +248,7 @@ QPainterPath QGIViewPart::geomToPainterPath(BaseGeomPtr baseGeom, double rot)
|
||||
} break;
|
||||
case TechDraw::BSPLINE: {
|
||||
TechDraw::BSplinePtr geom = std::static_pointer_cast<TechDraw::BSpline>(baseGeom);
|
||||
if (baseGeom->reversed) {
|
||||
if (baseGeom->getReversed()) {
|
||||
// Move painter to the end of our last segment
|
||||
std::vector<TechDraw::BezierSegment>::const_reverse_iterator it =
|
||||
geom->segments.rbegin();
|
||||
@@ -311,7 +311,7 @@ QPainterPath QGIViewPart::geomToPainterPath(BaseGeomPtr baseGeom, double rot)
|
||||
} break;
|
||||
case TechDraw::GENERIC: {
|
||||
TechDraw::GenericPtr geom = std::static_pointer_cast<TechDraw::Generic>(baseGeom);
|
||||
if (baseGeom->reversed) {
|
||||
if (baseGeom->getReversed()) {
|
||||
if (!geom->points.empty()) {
|
||||
Base::Vector3d rStart = geom->points.back();
|
||||
path.moveTo(Rez::guiX(rStart.x), Rez::guiX(rStart.y));
|
||||
@@ -331,7 +331,7 @@ QPainterPath QGIViewPart::geomToPainterPath(BaseGeomPtr baseGeom, double rot)
|
||||
} break;
|
||||
default: {
|
||||
Base::Console().Error("Error - geomToPainterPath - UNKNOWN geomType: %d\n",
|
||||
baseGeom->geomType);
|
||||
baseGeom->getGeomType());
|
||||
} break;
|
||||
}//sb end of switch
|
||||
|
||||
@@ -488,20 +488,20 @@ void QGIViewPart::drawViewPart()
|
||||
QGIEdge* item;
|
||||
for (int i = 0; itGeom != geoms.end(); itGeom++, i++) {
|
||||
bool showEdge = false;
|
||||
if ((*itGeom)->hlrVisible) {
|
||||
if (((*itGeom)->classOfEdge == ecHARD) || ((*itGeom)->classOfEdge == ecOUTLINE)
|
||||
|| (((*itGeom)->classOfEdge == ecSMOOTH) && viewPart->SmoothVisible.getValue())
|
||||
|| (((*itGeom)->classOfEdge == ecSEAM) && viewPart->SeamVisible.getValue())
|
||||
|| (((*itGeom)->classOfEdge == ecUVISO) && viewPart->IsoVisible.getValue())) {
|
||||
if ((*itGeom)->getHlrVisible()) {
|
||||
if (((*itGeom)->getClassOfEdge() == ecHARD) || ((*itGeom)->getClassOfEdge() == ecOUTLINE)
|
||||
|| (((*itGeom)->getClassOfEdge() == ecSMOOTH) && viewPart->SmoothVisible.getValue())
|
||||
|| (((*itGeom)->getClassOfEdge() == ecSEAM) && viewPart->SeamVisible.getValue())
|
||||
|| (((*itGeom)->getClassOfEdge() == ecUVISO) && viewPart->IsoVisible.getValue())) {
|
||||
showEdge = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((((*itGeom)->classOfEdge == ecHARD) && (viewPart->HardHidden.getValue()))
|
||||
|| (((*itGeom)->classOfEdge == ecOUTLINE) && (viewPart->HardHidden.getValue()))
|
||||
|| (((*itGeom)->classOfEdge == ecSMOOTH) && (viewPart->SmoothHidden.getValue()))
|
||||
|| (((*itGeom)->classOfEdge == ecSEAM) && (viewPart->SeamHidden.getValue()))
|
||||
|| (((*itGeom)->classOfEdge == ecUVISO) && (viewPart->IsoHidden.getValue()))) {
|
||||
if ((((*itGeom)->getClassOfEdge() == ecHARD) && (viewPart->HardHidden.getValue()))
|
||||
|| (((*itGeom)->getClassOfEdge() == ecOUTLINE) && (viewPart->HardHidden.getValue()))
|
||||
|| (((*itGeom)->getClassOfEdge() == ecSMOOTH) && (viewPart->SmoothHidden.getValue()))
|
||||
|| (((*itGeom)->getClassOfEdge() == ecSEAM) && (viewPart->SeamHidden.getValue()))
|
||||
|| (((*itGeom)->getClassOfEdge() == ecUVISO) && (viewPart->IsoHidden.getValue()))) {
|
||||
showEdge = true;
|
||||
}
|
||||
}
|
||||
@@ -511,7 +511,7 @@ void QGIViewPart::drawViewPart()
|
||||
item->setWidth(lineWidth);
|
||||
item->setNormalColor(edgeColor);
|
||||
item->setStyle(Qt::SolidLine);
|
||||
if ((*itGeom)->cosmetic) {
|
||||
if ((*itGeom)->getCosmetic()) {
|
||||
int source = (*itGeom)->source();
|
||||
if (source == COSMETICEDGE) {
|
||||
std::string cTag = (*itGeom)->getCosmeticTag();
|
||||
@@ -541,12 +541,12 @@ void QGIViewPart::drawViewPart()
|
||||
item->setPos(0.0, 0.0);//now at group(0, 0)
|
||||
item->setPath(drawPainterPath(*itGeom));
|
||||
item->setZValue(ZVALUE::EDGE);
|
||||
if (!(*itGeom)->hlrVisible) {
|
||||
if (!(*itGeom)->getHlrVisible()) {
|
||||
item->setWidth(lineWidthHid);
|
||||
item->setHiddenEdge(true);
|
||||
item->setZValue(ZVALUE::HIDEDGE);
|
||||
}
|
||||
if ((*itGeom)->classOfEdge == ecUVISO) {
|
||||
if ((*itGeom)->getClassOfEdge() == ecUVISO) {
|
||||
item->setWidth(lineWidthIso);
|
||||
}
|
||||
item->setPrettyNormal();
|
||||
@@ -597,7 +597,7 @@ void QGIViewPart::drawViewPart()
|
||||
double cAdjust = vp->CenterScale.getValue();
|
||||
|
||||
for (int i = 0; vert != verts.end(); ++vert, i++) {
|
||||
if ((*vert)->isCenter) {
|
||||
if ((*vert)->isCenter()) {
|
||||
if (showCenterMarks) {
|
||||
QGICMark* cmItem = new QGICMark(i);
|
||||
addToGroup(cmItem);
|
||||
|
||||
@@ -106,7 +106,7 @@ void TaskLineDecor::getDefaults()
|
||||
int num = DrawUtil::getIndexFromName(m_edges.front());
|
||||
BaseGeomPtr bg = m_partFeat->getGeomByIndex(num);
|
||||
if (bg) {
|
||||
if (bg->cosmetic) {
|
||||
if (bg->getCosmetic()) {
|
||||
if (bg->source() == 1) {
|
||||
TechDraw::CosmeticEdge* ce = m_partFeat->getCosmeticEdgeBySelection(m_edges.front());
|
||||
m_style = ce->m_format.m_style;
|
||||
@@ -178,7 +178,7 @@ void TaskLineDecor::applyDecorations()
|
||||
int num = DrawUtil::getIndexFromName(e);
|
||||
BaseGeomPtr bg = m_partFeat->getGeomByIndex(num);
|
||||
if (bg) {
|
||||
if (bg->cosmetic) {
|
||||
if (bg->getCosmetic()) {
|
||||
if (bg->source() == 1) {
|
||||
TechDraw::CosmeticEdge* ce = m_partFeat->getCosmeticEdgeBySelection(e);
|
||||
ce->m_format.m_style = m_style;
|
||||
|
||||
Reference in New Issue
Block a user