Merge pull request #20050 from captain0xff/gp_pnt-conversion
TechDraw: removed gp_* conversion code from TechDraw workbench
This commit is contained in:
@@ -32,6 +32,7 @@
|
||||
#include <BRepTools.hxx>
|
||||
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
|
||||
#include "CenterLine.h"
|
||||
#include "DrawUtil.h"
|
||||
@@ -320,8 +321,8 @@ TechDraw::BaseGeomPtr CenterLine::scaledAndRotatedGeometry(TechDraw::DrawViewPar
|
||||
|
||||
TopoDS_Edge newEdge;
|
||||
if (getType() == Type::FACE ) {
|
||||
gp_Pnt gp1(DU::to<gp_Pnt>(p1));
|
||||
gp_Pnt gp2(DU::to<gp_Pnt>(p2));
|
||||
gp_Pnt gp1(Base::convertTo<gp_Pnt>(p1));
|
||||
gp_Pnt gp2(Base::convertTo<gp_Pnt>(p2));
|
||||
TopoDS_Edge e = BRepBuilderAPI_MakeEdge(gp1, gp2);
|
||||
// Mirror shape in Y and scale
|
||||
TopoDS_Shape s = ShapeUtils::mirrorShape(e, gp_Pnt(0.0, 0.0, 0.0), scale);
|
||||
@@ -330,8 +331,8 @@ TechDraw::BaseGeomPtr CenterLine::scaledAndRotatedGeometry(TechDraw::DrawViewPar
|
||||
newEdge = TopoDS::Edge(s);
|
||||
} else if (getType() == Type::EDGE ||
|
||||
getType() == Type::VERTEX) {
|
||||
gp_Pnt gp1(DU::to<gp_Pnt>(DU::invertY(p1 * scale)));
|
||||
gp_Pnt gp2(DU::to<gp_Pnt>(DU::invertY(p2 * scale)));
|
||||
gp_Pnt gp1(Base::convertTo<gp_Pnt>(DU::invertY(p1 * scale)));
|
||||
gp_Pnt gp2(Base::convertTo<gp_Pnt>(DU::invertY(p2 * scale)));
|
||||
newEdge = BRepBuilderAPI_MakeEdge(gp1, gp2);
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#endif
|
||||
|
||||
#include <App/Application.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/Vector3D.h>
|
||||
#include <Mod/TechDraw/App/CosmeticEdgePy.h>
|
||||
#include <Mod/TechDraw/App/GeomFormatPy.h>
|
||||
@@ -160,8 +161,8 @@ TechDraw::BaseGeomPtr CosmeticEdge::makeCanonicalLine(DrawViewPart* dvp, Base::V
|
||||
{
|
||||
Base::Vector3d cStart = CosmeticVertex::makeCanonicalPoint(dvp, start);
|
||||
Base::Vector3d cEnd = CosmeticVertex::makeCanonicalPoint(dvp, end);
|
||||
gp_Pnt gStart = DU::to<gp_Pnt>(cStart);
|
||||
gp_Pnt gEnd = DU::to<gp_Pnt>(cEnd);
|
||||
gp_Pnt gStart = Base::convertTo<gp_Pnt>(cStart);
|
||||
gp_Pnt gEnd = Base::convertTo<gp_Pnt>(cEnd);
|
||||
TopoDS_Edge edge = BRepBuilderAPI_MakeEdge(gStart, gEnd);
|
||||
return TechDraw::BaseGeom::baseFactory(edge);
|
||||
}
|
||||
@@ -169,8 +170,8 @@ TechDraw::BaseGeomPtr CosmeticEdge::makeCanonicalLine(DrawViewPart* dvp, Base::V
|
||||
//! makes an unscaled, unrotated line from two canonical points.
|
||||
TechDraw::BaseGeomPtr CosmeticEdge::makeLineFromCanonicalPoints(Base::Vector3d start, Base::Vector3d end)
|
||||
{
|
||||
gp_Pnt gStart = DU::to<gp_Pnt>(start);
|
||||
gp_Pnt gEnd = DU::to<gp_Pnt>(end);
|
||||
gp_Pnt gStart = Base::convertTo<gp_Pnt>(start);
|
||||
gp_Pnt gEnd = Base::convertTo<gp_Pnt>(end);
|
||||
TopoDS_Edge edge = BRepBuilderAPI_MakeEdge(gStart, gEnd);
|
||||
return TechDraw::BaseGeom::baseFactory(edge);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#endif
|
||||
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/Tools.h>
|
||||
|
||||
#include "DimensionGeometry.h"
|
||||
@@ -97,10 +98,10 @@ void pointPair::mapToPage(const DrawViewPart* dvp)
|
||||
gp_Ax3 OXYZ;
|
||||
xOXYZ.SetTransformation(OXYZ, gp_Ax3(dvp->getRotatedCS()));
|
||||
|
||||
gp_Vec gvFirst = DU::to<gp_Vec>(m_first).Transformed(xOXYZ);
|
||||
m_first = DU::toVector3d(gvFirst);
|
||||
gp_Vec gvSecond = DU::to<gp_Vec>(m_second).Transformed(xOXYZ);
|
||||
m_second = DU::toVector3d(gvSecond);
|
||||
gp_Vec gvFirst = Base::convertTo<gp_Vec>(m_first).Transformed(xOXYZ);
|
||||
m_first = Base::convertTo<Base::Vector3d>(gvFirst);
|
||||
gp_Vec gvSecond = Base::convertTo<gp_Vec>(m_second).Transformed(xOXYZ);
|
||||
m_second = Base::convertTo<Base::Vector3d>(gvSecond);
|
||||
}
|
||||
|
||||
// this routine is no longer needed since we now use the dvp's projectPoint
|
||||
@@ -194,8 +195,8 @@ void anglePoints::mapToPage(const DrawViewPart* dvp)
|
||||
gp_Trsf xOXYZ;
|
||||
gp_Ax3 OXYZ;
|
||||
xOXYZ.SetTransformation(OXYZ, gp_Ax3(dvp->getRotatedCS()));
|
||||
gp_Vec gvVertex = DU::to<gp_Vec>(m_vertex).Transformed(xOXYZ);
|
||||
m_vertex = DU::toVector3d(gvVertex);
|
||||
gp_Vec gvVertex = Base::convertTo<gp_Vec>(m_vertex).Transformed(xOXYZ);
|
||||
m_vertex = Base::convertTo<Base::Vector3d>(gvVertex);
|
||||
}
|
||||
|
||||
// map the points onto the coordinate system used for drawing where -Y direction is "up"
|
||||
@@ -291,18 +292,18 @@ void arcPoints::mapToPage(const DrawViewPart* dvp)
|
||||
gp_Ax3 OXYZ;
|
||||
xOXYZ.SetTransformation(OXYZ, gp_Ax3(dvp->getRotatedCS()));
|
||||
|
||||
gp_Vec gvCenter = DU::to<gp_Vec>(center).Transformed(xOXYZ);
|
||||
center = DU::toVector3d(gvCenter);
|
||||
gp_Vec gvOnCurve1 = DU::to<gp_Vec>(onCurve.first()).Transformed(xOXYZ);
|
||||
onCurve.first(DU::toVector3d(gvOnCurve1));
|
||||
gp_Vec gvOnCurve2 = DU::to<gp_Vec>(onCurve.second()).Transformed(xOXYZ);
|
||||
onCurve.second(DU::toVector3d(gvOnCurve2));
|
||||
gp_Vec gvArcEnds1 = DU::to<gp_Vec>(arcEnds.first()).Transformed(xOXYZ);
|
||||
arcEnds.first(DU::toVector3d(gvArcEnds1));
|
||||
gp_Vec gvArcEnds2 = DU::to<gp_Vec>(arcEnds.second()).Transformed(xOXYZ);
|
||||
arcEnds.second(DU::toVector3d(gvArcEnds2));
|
||||
gp_Vec gvMidArc = DU::to<gp_Vec>(midArc).Transformed(xOXYZ);
|
||||
midArc = DU::toVector3d(gvMidArc);
|
||||
gp_Vec gvCenter = Base::convertTo<gp_Vec>(center).Transformed(xOXYZ);
|
||||
center = Base::convertTo<Base::Vector3d>(gvCenter);
|
||||
gp_Vec gvOnCurve1 = Base::convertTo<gp_Vec>(onCurve.first()).Transformed(xOXYZ);
|
||||
onCurve.first(Base::convertTo<Base::Vector3d>(gvOnCurve1));
|
||||
gp_Vec gvOnCurve2 = Base::convertTo<gp_Vec>(onCurve.second()).Transformed(xOXYZ);
|
||||
onCurve.second(Base::convertTo<Base::Vector3d>(gvOnCurve2));
|
||||
gp_Vec gvArcEnds1 = Base::convertTo<gp_Vec>(arcEnds.first()).Transformed(xOXYZ);
|
||||
arcEnds.first(Base::convertTo<Base::Vector3d>(gvArcEnds1));
|
||||
gp_Vec gvArcEnds2 = Base::convertTo<gp_Vec>(arcEnds.second()).Transformed(xOXYZ);
|
||||
arcEnds.second(Base::convertTo<Base::Vector3d>(gvArcEnds2));
|
||||
gp_Vec gvMidArc = Base::convertTo<gp_Vec>(midArc).Transformed(xOXYZ);
|
||||
midArc = Base::convertTo<Base::Vector3d>(gvMidArc);
|
||||
}
|
||||
|
||||
// obsolete. see above
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
#include <App/Document.h>
|
||||
#include <Base/BoundBox.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/FileInfo.h>
|
||||
#include <Base/Parameter.h>
|
||||
|
||||
@@ -244,7 +245,7 @@ TopoDS_Shape DrawBrokenView::compressHorizontal(const TopoDS_Shape& shapeToComp
|
||||
{
|
||||
auto pieces = getPieces(shapeToCompress);
|
||||
auto breaksAll = Breaks.getValues();
|
||||
auto moveDirection = DU::closestBasisOriented(DU::toVector3d(getProjectionCS().XDirection()));
|
||||
auto moveDirection = DU::closestBasisOriented(Base::convertTo<Base::Vector3d>(getProjectionCS().XDirection()));
|
||||
bool descend = false;
|
||||
auto sortedBreaks = makeSortedBreakList(breaksAll, moveDirection, descend);
|
||||
auto limits = getPieceLimits(pieces, moveDirection);
|
||||
@@ -283,7 +284,7 @@ TopoDS_Shape DrawBrokenView::compressVertical(const TopoDS_Shape& shapeToCompre
|
||||
auto pieces = getPieces(shapeToCompress);
|
||||
auto breaksAll = Breaks.getValues();
|
||||
// not sure about using closestBasis here. may prevent oblique breaks later.
|
||||
auto moveDirection = DU::closestBasisOriented(DU::toVector3d(getProjectionCS().YDirection()));
|
||||
auto moveDirection = DU::closestBasisOriented(Base::convertTo<Base::Vector3d>(getProjectionCS().YDirection()));
|
||||
|
||||
bool descend = false;
|
||||
auto sortedBreaks = makeSortedBreakList(breaksAll, moveDirection, descend);
|
||||
@@ -323,11 +324,11 @@ TopoDS_Shape DrawBrokenView::makeHalfSpace(const Base::Vector3d& planePoint,
|
||||
const Base::Vector3d& planeNormal,
|
||||
const Base::Vector3d& pointInSpace) const
|
||||
{
|
||||
auto origin = DU::to<gp_Pnt>(planePoint);
|
||||
auto axis = DU::to<gp_Dir>(planeNormal);
|
||||
auto origin = Base::convertTo<gp_Pnt>(planePoint);
|
||||
auto axis = Base::convertTo<gp_Dir>(planeNormal);
|
||||
gp_Pln plane(origin, axis);
|
||||
BRepBuilderAPI_MakeFace mkFace(plane);
|
||||
BRepPrimAPI_MakeHalfSpace mkHalf(mkFace.Face(), DU::to<gp_Pnt>(pointInSpace));
|
||||
BRepPrimAPI_MakeHalfSpace mkHalf(mkFace.Face(), Base::convertTo<gp_Pnt>(pointInSpace));
|
||||
|
||||
return mkHalf.Solid();
|
||||
}
|
||||
@@ -478,7 +479,7 @@ std::pair<Base::Vector3d, Base::Vector3d> DrawBrokenView::breakPointsFromEdge(co
|
||||
TopoDS_Edge edge = TopoDS::Edge(locShape);
|
||||
gp_Pnt start = BRep_Tool::Pnt(TopExp::FirstVertex(edge));
|
||||
gp_Pnt end = BRep_Tool::Pnt(TopExp::LastVertex(edge));
|
||||
return {DU::toVector3d(start), DU::toVector3d(end)};
|
||||
return {Base::convertTo<Base::Vector3d>(start), Base::convertTo<Base::Vector3d>(end)};
|
||||
}
|
||||
|
||||
|
||||
@@ -641,7 +642,7 @@ bool DrawBrokenView::isVertical(const TopoDS_Edge& edge, const bool projected) c
|
||||
auto edgeDir = ends.second - ends.first;
|
||||
edgeDir.Normalize();
|
||||
|
||||
auto upDir = DU::toVector3d(getProjectionCS().YDirection());
|
||||
auto upDir = Base::convertTo<Base::Vector3d>(getProjectionCS().YDirection());
|
||||
if (projected) {
|
||||
upDir = stdY;
|
||||
}
|
||||
@@ -657,7 +658,7 @@ bool DrawBrokenView::isVertical(std::pair<Base::Vector3d, Base::Vector3d> inPoin
|
||||
auto pointDir = inPoints.second - inPoints.first;
|
||||
pointDir.Normalize();
|
||||
|
||||
auto upDir = DU::toVector3d(getProjectionCS().YDirection());
|
||||
auto upDir = Base::convertTo<Base::Vector3d>(getProjectionCS().YDirection());
|
||||
if (projected) {
|
||||
upDir = stdY;
|
||||
}
|
||||
@@ -673,7 +674,7 @@ bool DrawBrokenView::isHorizontal(const TopoDS_Edge& edge, bool projected) const
|
||||
auto edgeDir = ends.second - ends.first;
|
||||
edgeDir.Normalize();
|
||||
|
||||
auto sideDir = DU::toVector3d(getProjectionCS().XDirection());
|
||||
auto sideDir = Base::convertTo<Base::Vector3d>(getProjectionCS().XDirection());
|
||||
if (projected) {
|
||||
sideDir = stdX;
|
||||
}
|
||||
@@ -876,7 +877,7 @@ Base::Vector3d DrawBrokenView::mapPoint3dToView(Base::Vector3d point3d) const
|
||||
|
||||
auto breaksAll = Breaks.getValues();
|
||||
bool descend = false;
|
||||
auto moveXDirection = DU::closestBasisOriented(DU::toVector3d(getProjectionCS().XDirection()));
|
||||
auto moveXDirection = DU::closestBasisOriented(Base::convertTo<Base::Vector3d>(getProjectionCS().XDirection()));
|
||||
|
||||
// get the breaks that move us in X
|
||||
auto sortedXBreaks = makeSortedBreakList(breaksAll, moveXDirection, descend);
|
||||
@@ -885,7 +886,7 @@ Base::Vector3d DrawBrokenView::mapPoint3dToView(Base::Vector3d point3d) const
|
||||
double xShift = shiftAmountShrink(xLimit, moveXDirection, sortedXBreaks);
|
||||
Base::Vector3d xMove = moveXDirection * xShift; // move to the right (+X)
|
||||
|
||||
auto moveYDirection = DU::closestBasisOriented(DU::toVector3d(getProjectionCS().YDirection()));
|
||||
auto moveYDirection = DU::closestBasisOriented(Base::convertTo<Base::Vector3d>(getProjectionCS().YDirection()));
|
||||
descend = false;
|
||||
// get the breaks that move us in Y
|
||||
auto sortedYBreaks = makeSortedBreakList(breaksAll, moveYDirection, descend);
|
||||
@@ -913,12 +914,12 @@ Base::Vector3d DrawBrokenView::mapPoint2dFromView(Base::Vector3d point2d) const
|
||||
gp_Ax3 projCS3(getProjectionCS(getCompressedCentroid()));
|
||||
gp_Trsf xTo3d;
|
||||
xTo3d.SetTransformation(projCS3, OXYZ);
|
||||
auto pseudo3d = DU::toVector3d(DU::to<gp_Pnt>(point2d).Transformed(xTo3d));
|
||||
auto pseudo3d = Base::convertTo<Base::Vector3d>(Base::convertTo<gp_Pnt>(point2d).Transformed(xTo3d));
|
||||
|
||||
// now shift down and left
|
||||
auto breaksAll = Breaks.getValues();
|
||||
|
||||
auto moveXDirection = DU::closestBasisOriented(DU::toVector3d(getProjectionCS().XDirection()));
|
||||
auto moveXDirection = DU::closestBasisOriented(Base::convertTo<Base::Vector3d>(getProjectionCS().XDirection()));
|
||||
// we are expanding, so the direction should be to the "left"/"down" which is the opposite of
|
||||
// our XDirection
|
||||
auto moveXReverser = isDirectionReversed(moveXDirection) ? 1.0 : -1.0;
|
||||
@@ -941,7 +942,7 @@ Base::Vector3d DrawBrokenView::mapPoint2dFromView(Base::Vector3d point2d) const
|
||||
}
|
||||
double xCoord2 = xLimit + breakSum * moveXReverser;
|
||||
|
||||
auto moveYDirection = DU::closestBasisOriented(DU::toVector3d(getProjectionCS().YDirection()));
|
||||
auto moveYDirection = DU::closestBasisOriented(Base::convertTo<Base::Vector3d>(getProjectionCS().YDirection()));
|
||||
auto moveYReverser = isDirectionReversed(moveYDirection) ? 1.0 : -1.0;
|
||||
descend = false;
|
||||
auto sortedYBreaks = makeSortedBreakList(breaksAll, moveYDirection, descend);
|
||||
@@ -1102,18 +1103,18 @@ Base::Vector3d DrawBrokenView::getCompressedCentroid() const
|
||||
}
|
||||
gp_Ax2 cs = getProjectionCS();
|
||||
gp_Pnt gCenter = ShapeUtils::findCentroid(m_compressedShape, cs);
|
||||
return DU::toVector3d(gCenter);
|
||||
return Base::convertTo<Base::Vector3d>(gCenter);
|
||||
}
|
||||
|
||||
//! construct a perpendicular direction in the projection CS
|
||||
Base::Vector3d DrawBrokenView::makePerpendicular(Base::Vector3d inDir) const
|
||||
{
|
||||
auto gDir = DU::to<gp_Dir>(inDir);
|
||||
auto gDir = Base::convertTo<gp_Dir>(inDir);
|
||||
gp_Pnt origin(0.0, 0.0, 0.0);
|
||||
auto dir = getProjectionCS().Direction();
|
||||
gp_Ax1 axis(origin, dir);
|
||||
auto gRotated = gDir.Rotated(axis, M_PI_2);
|
||||
return DU::toVector3d(gRotated);
|
||||
return Base::convertTo<Base::Vector3d>(gRotated);
|
||||
}
|
||||
|
||||
//! true if this piece should be moved
|
||||
|
||||
@@ -110,6 +110,7 @@
|
||||
#include <App/Material.h>
|
||||
#include <Base/BoundBox.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/Exception.h>
|
||||
#include <Base/FileInfo.h>
|
||||
#include <Base/Interpreter.h>
|
||||
@@ -550,7 +551,7 @@ void DrawComplexSection::makeAlignedPieces(const TopoDS_Shape& rawShape)
|
||||
}
|
||||
|
||||
//center the compound along SectionCS XDirection
|
||||
Base::Vector3d centerVector = DU::toVector3d(gMovementVector) * distanceToMove / -2.0;
|
||||
Base::Vector3d centerVector = Base::convertTo<Base::Vector3d>(gMovementVector) * distanceToMove / -2.0;
|
||||
TopoDS_Shape centeredCompound = ShapeUtils::moveShape(comp, centerVector);
|
||||
|
||||
if (debugSection()) {
|
||||
@@ -796,7 +797,7 @@ std::pair<Base::Vector3d, Base::Vector3d> DrawComplexSection::sectionArrowDirs()
|
||||
}
|
||||
|
||||
gp_Vec gProfileVector = makeProfileVector(profileWire);
|
||||
gp_Vec gSectionNormal = gp_Vec(DU::to<gp_Dir>(SectionNormal.getValue()));
|
||||
gp_Vec gSectionNormal = gp_Vec(Base::convertTo<gp_Dir>(SectionNormal.getValue()));
|
||||
gp_Vec gExtrudeVector = (gSectionNormal.Crossed(gProfileVector)).Normalized();
|
||||
Base::Vector3d vClosestBasis = DrawUtil::closestBasis(gp_Dir(gExtrudeVector), getSectionCS());
|
||||
gp_Dir gExtrudeDir = gp_Dir(vClosestBasis.x, vClosestBasis.y, vClosestBasis.z);
|
||||
@@ -826,8 +827,8 @@ std::pair<Base::Vector3d, Base::Vector3d> DrawComplexSection::sectionArrowDirs()
|
||||
}
|
||||
|
||||
//TODO: similar code elsewhere. Opportunity for reuse.
|
||||
Base::Vector3d vDir0 = DU::toVector3d(gDir0);
|
||||
Base::Vector3d vDir1 = DU::toVector3d(gDir1);
|
||||
Base::Vector3d vDir0 = Base::convertTo<Base::Vector3d>(gDir0);
|
||||
Base::Vector3d vDir1 = Base::convertTo<Base::Vector3d>(gDir1);
|
||||
vDir0.Normalize();
|
||||
vDir1.Normalize();
|
||||
DrawViewPart* baseDvp = dynamic_cast<DrawViewPart*>(BaseView.getValue());
|
||||
@@ -981,8 +982,8 @@ std::pair<Base::Vector3d, Base::Vector3d> DrawComplexSection::getSegmentEnds(Top
|
||||
gp_Pnt gpFirst = BRep_Tool::Pnt(tvFirst);
|
||||
gp_Pnt gpLast = BRep_Tool::Pnt(tvLast);
|
||||
std::pair<Base::Vector3d, Base::Vector3d> result;
|
||||
result.first = DU::toVector3d(gpFirst);
|
||||
result.second = DU::toVector3d(gpLast);
|
||||
result.first = Base::convertTo<Base::Vector3d>(gpFirst);
|
||||
result.second = Base::convertTo<Base::Vector3d>(gpLast);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include <App/Application.h>
|
||||
#include <App/Document.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/FileInfo.h>
|
||||
#include <Base/Parameter.h>
|
||||
|
||||
@@ -336,7 +337,7 @@ std::vector<LineSet> DrawGeomHatch::getTrimmedLines(DrawViewPart* source,
|
||||
|
||||
TopoDS_Shape grid = gridComp;
|
||||
gp_Trsf xGridTranslate;
|
||||
xGridTranslate.SetTranslation(DrawUtil::to<gp_Vec>(hatchOffset));
|
||||
xGridTranslate.SetTranslation(Base::convertTo<gp_Vec>(hatchOffset));
|
||||
BRepBuilderAPI_Transform mkTransTranslate(grid, xGridTranslate, true);
|
||||
grid = mkTransTranslate.Shape();
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
#endif
|
||||
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/FileInfo.h>
|
||||
#include <Base/Parameter.h>
|
||||
#include <Base/Stream.h>
|
||||
@@ -414,7 +415,7 @@ bool DrawUtil::apparentIntersection(const Handle(Geom_Curve) curve1,
|
||||
//for our purposes, only one intersection point is required.
|
||||
gp_Pnt p1, p2;
|
||||
intersector.Points(1, p1, p2);
|
||||
result = toVector3d(p1);
|
||||
result = Base::convertTo<Base::Vector3d>(p1);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -520,6 +521,15 @@ std::string DrawUtil::formatVector(const Base::Vector3d& v)
|
||||
}
|
||||
//template std::string DrawUtil::formatVector<Base::Vector3d>(const Base::Vector3d &v);
|
||||
|
||||
// template specialization
|
||||
std::string DrawUtil::formatVector(const QPointF& v)
|
||||
{
|
||||
std::stringstream builder;
|
||||
builder << std::fixed << std::setprecision(Base::UnitsApi::getDecimals());
|
||||
builder << " (" << v.x() << ", " << v.y() << ") ";
|
||||
return builder.str();
|
||||
}
|
||||
|
||||
//! compare 2 vectors for sorting - true if v1 < v2
|
||||
//! precision::Confusion() is too strict for vertex - vertex comparisons
|
||||
bool DrawUtil::vectorLess(const Base::Vector3d& v1, const Base::Vector3d& v2)
|
||||
@@ -648,7 +658,7 @@ Base::Vector3d DrawUtil::vecRotate(Base::Vector3d vec, double angle, Base::Vecto
|
||||
|
||||
gp_Vec DrawUtil::closestBasis(gp_Vec inVec)
|
||||
{
|
||||
return gp_Vec(to<gp_Dir>(closestBasis(toVector3d(inVec))));
|
||||
return gp_Vec(Base::convertTo<gp_Dir>(closestBasis(Base::convertTo<Base::Vector3d>(inVec))));
|
||||
}
|
||||
|
||||
//! returns stdX, stdY or stdZ.
|
||||
@@ -836,7 +846,7 @@ double DrawUtil::getWidthInDirection(gp_Dir direction, TopoDS_Shape& shape)
|
||||
Base::Vector3d stdXr(-1.0, 0.0, 0.0);
|
||||
Base::Vector3d stdYr(0.0, -1.0, 0.0);
|
||||
Base::Vector3d stdZr(0.0, 0.0, -1.0);
|
||||
Base::Vector3d vClosestBasis = closestBasis(toVector3d(direction));
|
||||
Base::Vector3d vClosestBasis = closestBasis(Base::convertTo<Base::Vector3d>(direction));
|
||||
|
||||
Bnd_Box shapeBox;
|
||||
shapeBox.SetGap(0.0);
|
||||
@@ -888,7 +898,7 @@ gp_Vec DrawUtil::maskDirection(gp_Vec inVec, gp_Dir directionToMask)
|
||||
|
||||
Base::Vector3d DrawUtil::maskDirection(Base::Vector3d inVec, Base::Vector3d directionToMask)
|
||||
{
|
||||
return toVector3d(maskDirection(to<gp_Vec>(inVec), to<gp_Vec>(directionToMask)));
|
||||
return Base::convertTo<Base::Vector3d>(maskDirection(Base::convertTo<gp_Vec>(inVec), Base::convertTo<gp_Vec>(directionToMask)));
|
||||
}
|
||||
|
||||
//! get the coordinate of inPoint for the cardinal unit direction.
|
||||
|
||||
@@ -44,7 +44,9 @@
|
||||
#include <gp_Vec.hxx>
|
||||
|
||||
#include <Base/Vector3D.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Mod/Part/App/PartFeature.h>
|
||||
#include <Mod/Part/App/Tools.h>
|
||||
#include <Mod/TechDraw/TechDrawGlobal.h>
|
||||
|
||||
|
||||
@@ -121,9 +123,10 @@ public:
|
||||
template <typename T>
|
||||
static std::string formatVector(const T& v)
|
||||
{
|
||||
return formatVector(toVector3d(v));
|
||||
return formatVector(Base::convertTo<Base::Vector3d>(v));
|
||||
}
|
||||
static std::string formatVector(const Base::Vector3d& v);
|
||||
static std::string formatVector(const QPointF& v);
|
||||
|
||||
static bool vectorLess(const Base::Vector3d& v1, const Base::Vector3d& v2);
|
||||
//!std::map require comparator to be a type not a function
|
||||
@@ -171,25 +174,11 @@ public:
|
||||
Base::Vector2d d2);
|
||||
|
||||
|
||||
template <typename T>
|
||||
static Base::Vector3d toVector3d(const T& v)
|
||||
{
|
||||
return Base::Vector3d(v.X(), v.Y(), v.Z());
|
||||
}
|
||||
|
||||
static Base::Vector3d toVector3d(const QPointF& v)
|
||||
{
|
||||
return Base::Vector3d(v.x(), v.y(), 0);
|
||||
}
|
||||
|
||||
//! To gp_*
|
||||
// TODO: Would this be relevant to move to Base::Vector3d? Probably
|
||||
template <typename T>
|
||||
static T to(const Base::Vector3d &v)
|
||||
{
|
||||
return T(v.x, v.y, v.z);
|
||||
}
|
||||
|
||||
static QPointF toQPointF(const Base::Vector3d &v)
|
||||
{
|
||||
return QPointF(v.x, v.y);
|
||||
@@ -290,8 +279,5 @@ public:
|
||||
// GCC BUG 85282, wanting this to be outside class body. This is only the declaration, the definition .cpp
|
||||
//template<> std::string DrawUtil::formatVector<Base::Vector3d>(const Base::Vector3d &v);
|
||||
|
||||
// GCC BUG 85282, wanting this to be outside class body. This is only the declaration, the definition .cpp
|
||||
//template<> Base::Vector3d DrawUtil::toVector3d<QPointF>(const QPointF& v);
|
||||
|
||||
}//end namespace TechDraw
|
||||
#endif
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
#include <App/Application.h>
|
||||
#include <App/Document.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/Parameter.h>
|
||||
#include <Base/Quantity.h>
|
||||
#include <Base/Tools.h>
|
||||
@@ -842,7 +843,7 @@ pointPair DrawViewDimension::getPointsOneEdge(ReferenceVector references)
|
||||
gp_Pnt gEnd0 = BRep_Tool::Pnt(TopExp::FirstVertex(edge));
|
||||
gp_Pnt gEnd1 = BRep_Tool::Pnt(TopExp::LastVertex(edge));
|
||||
|
||||
pointPair pts(DrawUtil::toVector3d(gEnd0), DrawUtil::toVector3d(gEnd1));
|
||||
pointPair pts(Base::convertTo<Base::Vector3d>(gEnd0), Base::convertTo<Base::Vector3d>(gEnd1));
|
||||
pts.move(getViewPart()->getCurrentCentroid());
|
||||
pts.project(getViewPart());
|
||||
return pts;
|
||||
@@ -911,7 +912,7 @@ pointPair DrawViewDimension::getPointsTwoVerts(ReferenceVector references)
|
||||
gp_Pnt gPoint0 = BRep_Tool::Pnt(vertex0);
|
||||
gp_Pnt gPoint1 = BRep_Tool::Pnt(vertex1);
|
||||
|
||||
pointPair pts(DrawUtil::toVector3d(gPoint0), DrawUtil::toVector3d(gPoint1));
|
||||
pointPair pts(Base::convertTo<Base::Vector3d>(gPoint0), Base::convertTo<Base::Vector3d>(gPoint1));
|
||||
pts.move(getViewPart()->getCurrentCentroid());
|
||||
pts.project(getViewPart());
|
||||
return pts;
|
||||
@@ -1117,23 +1118,23 @@ arcPoints DrawViewDimension::arcPointsFromEdge(TopoDS_Edge occEdge)
|
||||
double pLast = adapt.LastParameter();
|
||||
double pMid = (pFirst + pLast) / 2;
|
||||
BRepLProp_CLProps props(adapt, pFirst, 0, Precision::Confusion());
|
||||
pts.arcEnds.first(DrawUtil::toVector3d(props.Value()));
|
||||
pts.arcEnds.first(Base::convertTo<Base::Vector3d>(props.Value()));
|
||||
props.SetParameter(pLast);
|
||||
pts.arcEnds.second(DrawUtil::toVector3d(props.Value()));
|
||||
pts.arcEnds.second(Base::convertTo<Base::Vector3d>(props.Value()));
|
||||
props.SetParameter(pMid);
|
||||
pts.onCurve.first(DrawUtil::toVector3d(props.Value()));
|
||||
pts.onCurve.second(DrawUtil::toVector3d(props.Value()));
|
||||
pts.midArc = DrawUtil::toVector3d(props.Value());
|
||||
pts.onCurve.first(Base::convertTo<Base::Vector3d>(props.Value()));
|
||||
pts.onCurve.second(Base::convertTo<Base::Vector3d>(props.Value()));
|
||||
pts.midArc = Base::convertTo<Base::Vector3d>(props.Value());
|
||||
|
||||
if (adapt.GetType() == GeomAbs_Circle) {
|
||||
gp_Circ circle = adapt.Circle();
|
||||
pts.center = DrawUtil::toVector3d(circle.Location());
|
||||
pts.center = Base::convertTo<Base::Vector3d>(circle.Location());
|
||||
pts.radius = circle.Radius();
|
||||
if (pts.isArc) {
|
||||
// part of circle
|
||||
gp_Ax1 axis = circle.Axis();
|
||||
gp_Vec startVec = DrawUtil::to<gp_Vec>(pts.arcEnds.first() - pts.center);
|
||||
gp_Vec endVec = DrawUtil::to<gp_Vec>(pts.arcEnds.second() - pts.center);
|
||||
gp_Vec startVec = Base::convertTo<gp_Vec>(pts.arcEnds.first() - pts.center);
|
||||
gp_Vec endVec = Base::convertTo<gp_Vec>(pts.arcEnds.second() - pts.center);
|
||||
double angle = startVec.AngleWithRef(endVec, axis.Direction().XYZ());
|
||||
pts.arcCW = (angle < 0.0);
|
||||
}
|
||||
@@ -1147,13 +1148,13 @@ arcPoints DrawViewDimension::arcPointsFromEdge(TopoDS_Edge occEdge)
|
||||
}
|
||||
else if (adapt.GetType() == GeomAbs_Ellipse) {
|
||||
gp_Elips ellipse = adapt.Ellipse();
|
||||
pts.center = DrawUtil::toVector3d(ellipse.Location());
|
||||
pts.center = Base::convertTo<Base::Vector3d>(ellipse.Location());
|
||||
pts.radius = (ellipse.MajorRadius() + ellipse.MinorRadius()) / 2.0;
|
||||
if (pts.isArc) {
|
||||
// part of ellipse
|
||||
gp_Ax1 axis = ellipse.Axis();
|
||||
gp_Vec startVec = DrawUtil::to<gp_Vec>(pts.arcEnds.first() - pts.center);
|
||||
gp_Vec endVec = DrawUtil::to<gp_Vec>(pts.arcEnds.second() - pts.center);
|
||||
gp_Vec startVec = Base::convertTo<gp_Vec>(pts.arcEnds.first() - pts.center);
|
||||
gp_Vec endVec = Base::convertTo<gp_Vec>(pts.arcEnds.second() - pts.center);
|
||||
double angle = startVec.AngleWithRef(endVec, axis.Direction().XYZ());
|
||||
pts.arcCW = (angle < 0.0);
|
||||
}
|
||||
@@ -1176,13 +1177,13 @@ arcPoints DrawViewDimension::arcPointsFromEdge(TopoDS_Edge occEdge)
|
||||
}
|
||||
gp_Circ circle = adapt.Circle();
|
||||
// TODO: same code as above. reuse opportunity.
|
||||
pts.center = DrawUtil::toVector3d(circle.Location());
|
||||
pts.center = Base::convertTo<Base::Vector3d>(circle.Location());
|
||||
pts.radius = circle.Radius();
|
||||
if (pts.isArc) {
|
||||
// part of circle
|
||||
gp_Ax1 axis = circle.Axis();
|
||||
gp_Vec startVec = DrawUtil::to<gp_Vec>(pts.arcEnds.first() - pts.center);
|
||||
gp_Vec endVec = DrawUtil::to<gp_Vec>(pts.arcEnds.second() - pts.center);
|
||||
gp_Vec startVec = Base::convertTo<gp_Vec>(pts.arcEnds.first() - pts.center);
|
||||
gp_Vec endVec = Base::convertTo<gp_Vec>(pts.arcEnds.second() - pts.center);
|
||||
double angle = startVec.AngleWithRef(endVec, axis.Direction().XYZ());
|
||||
pts.arcCW = (angle < 0.0);
|
||||
}
|
||||
@@ -1310,15 +1311,15 @@ anglePoints DrawViewDimension::getAnglePointsTwoEdges(ReferenceVector references
|
||||
gp_Pnt gEnd1 = BRep_Tool::Pnt(TopExp::LastVertex(edge1));
|
||||
gp_Vec gDir1(gEnd1.XYZ() - gStart1.XYZ());
|
||||
Base::Vector3d vApex;
|
||||
bool haveIntersection = DrawUtil::intersect2Lines3d(DrawUtil::toVector3d(gStart0),
|
||||
DrawUtil::toVector3d(gDir0),
|
||||
DrawUtil::toVector3d(gStart1),
|
||||
DrawUtil::toVector3d(gDir1),
|
||||
bool haveIntersection = DrawUtil::intersect2Lines3d(Base::convertTo<Base::Vector3d>(gStart0),
|
||||
Base::convertTo<Base::Vector3d>(gDir0),
|
||||
Base::convertTo<Base::Vector3d>(gStart1),
|
||||
Base::convertTo<Base::Vector3d>(gDir1),
|
||||
vApex);
|
||||
if (!haveIntersection) {
|
||||
throw Base::RuntimeError("Geometry for 3d angle dimension does not intersect");
|
||||
}
|
||||
gp_Pnt gApex = DrawUtil::to<gp_Pnt>(vApex);
|
||||
gp_Pnt gApex = Base::convertTo<gp_Pnt>(vApex);
|
||||
|
||||
gp_Pnt gFar0 = gEnd0;
|
||||
if (gStart0.Distance(gApex) > gEnd0.Distance(gApex)) {
|
||||
@@ -1329,9 +1330,9 @@ anglePoints DrawViewDimension::getAnglePointsTwoEdges(ReferenceVector references
|
||||
if (gStart1.Distance(gApex) > gEnd1.Distance(gApex)) {
|
||||
gFar1 = gStart1;
|
||||
}
|
||||
anglePoints pts(DrawUtil::toVector3d(gApex),
|
||||
DrawUtil::toVector3d(gFar0),
|
||||
DrawUtil::toVector3d(gFar1));
|
||||
anglePoints pts(Base::convertTo<Base::Vector3d>(gApex),
|
||||
Base::convertTo<Base::Vector3d>(gFar0),
|
||||
Base::convertTo<Base::Vector3d>(gFar1));
|
||||
pts.move(getViewPart()->getCurrentCentroid());
|
||||
pts.project(getViewPart());
|
||||
return pts;
|
||||
@@ -1376,9 +1377,9 @@ anglePoints DrawViewDimension::getAnglePointsThreeVerts(ReferenceVector referenc
|
||||
gp_Pnt point1 = BRep_Tool::Pnt(vertex1);
|
||||
TopoDS_Vertex vertex2 = TopoDS::Vertex(geometry2);
|
||||
gp_Pnt point2 = BRep_Tool::Pnt(vertex2);
|
||||
anglePoints pts(DrawUtil::toVector3d(point1),
|
||||
DrawUtil::toVector3d(point0),
|
||||
DrawUtil::toVector3d(point2));
|
||||
anglePoints pts(Base::convertTo<Base::Vector3d>(point1),
|
||||
Base::convertTo<Base::Vector3d>(point0),
|
||||
Base::convertTo<Base::Vector3d>(point2));
|
||||
pts.move(getViewPart()->getCurrentCentroid());
|
||||
pts.project(getViewPart());
|
||||
return pts;
|
||||
@@ -1435,7 +1436,7 @@ Base::Vector3d DrawViewDimension::getFaceCenter(const TopoDS_Face& face)
|
||||
{
|
||||
GProp_GProps props;
|
||||
BRepGProp::SurfaceProperties(face, props);
|
||||
auto center = DrawUtil::toVector3d(props.CentreOfMass());
|
||||
auto center = Base::convertTo<Base::Vector3d>(props.CentreOfMass());
|
||||
return center;
|
||||
}
|
||||
|
||||
@@ -1718,9 +1719,9 @@ double DrawViewDimension::getArcAngle(Base::Vector3d center, Base::Vector3d star
|
||||
auto leg0 = startPoint - center;
|
||||
auto leg1 = endPoint - startPoint;
|
||||
auto referenceDirection = leg0.Cross(leg1);
|
||||
gp_Ax1 axis{DU::to<gp_Pnt>(center), DU::to<gp_Vec>(referenceDirection)};
|
||||
gp_Vec startVec = DrawUtil::to<gp_Vec>(leg0);
|
||||
gp_Vec endVec = DrawUtil::to<gp_Vec>(leg1);
|
||||
gp_Ax1 axis{Base::convertTo<gp_Pnt>(center), Base::convertTo<gp_Vec>(referenceDirection)};
|
||||
gp_Vec startVec = Base::convertTo<gp_Vec>(leg0);
|
||||
gp_Vec endVec = Base::convertTo<gp_Vec>(leg1);
|
||||
double angle = startVec.AngleWithRef(endVec, axis.Direction().XYZ());
|
||||
return angle;
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
#include <App/Document.h>
|
||||
#include <Base/BoundBox.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/Exception.h>
|
||||
#include <Base/Parameter.h>
|
||||
|
||||
@@ -312,7 +313,7 @@ GeometryObjectPtr DrawViewPart::makeGeometryForShape(TopoDS_Shape& shape)
|
||||
TopoDS_Shape localShape = copier.Shape();
|
||||
|
||||
gp_Pnt gCentroid = ShapeUtils::findCentroid(localShape, getProjectionCS());
|
||||
m_saveCentroid = DU::toVector3d(gCentroid);
|
||||
m_saveCentroid = Base::convertTo<Base::Vector3d>(gCentroid);
|
||||
m_saveShape = centerScaleRotate(this, localShape, m_saveCentroid);
|
||||
|
||||
return buildGeometryObject(localShape, getProjectionCS());
|
||||
@@ -1075,7 +1076,7 @@ Base::Vector3d DrawViewPart::localVectorToDirection(const Base::Vector3d localUn
|
||||
{
|
||||
// Base::Console().Message("DVP::localVectorToDirection() - localUnit: %s\n", DrawUtil::formatVector(localUnit).c_str());
|
||||
gp_Ax2 cs = localVectorToCS(localUnit);
|
||||
return DrawUtil::toVector3d(cs.Direction());
|
||||
return Base::convertTo<Base::Vector3d>(cs.Direction());
|
||||
}
|
||||
|
||||
gp_Ax2 DrawViewPart::getProjectionCS(const Base::Vector3d pt) const
|
||||
@@ -1100,7 +1101,7 @@ gp_Ax2 DrawViewPart::getRotatedCS(const Base::Vector3d basePoint) const
|
||||
{
|
||||
// Base::Console().Message("DVP::getRotatedCS() - %s - %s\n", getNameInDocument(), Label.getValue());
|
||||
gp_Ax2 unrotated = getProjectionCS(basePoint);
|
||||
gp_Ax1 rotationAxis(DU::to<gp_Pnt>(basePoint), unrotated.Direction());
|
||||
gp_Ax1 rotationAxis(Base::convertTo<gp_Pnt>(basePoint), unrotated.Direction());
|
||||
double angleRad = Rotation.getValue() * M_PI / 180.0;
|
||||
gp_Ax2 rotated = unrotated.Rotated(rotationAxis, -angleRad);
|
||||
return rotated;
|
||||
@@ -1127,7 +1128,7 @@ Base::Vector3d DrawViewPart::getCurrentCentroid() const
|
||||
}
|
||||
gp_Ax2 cs = getProjectionCS();
|
||||
gp_Pnt gCenter = ShapeUtils::findCentroid(shape, cs);
|
||||
return DU::toVector3d(gCenter);
|
||||
return Base::convertTo<Base::Vector3d>(gCenter);
|
||||
}
|
||||
|
||||
std::vector<DrawViewSection*> DrawViewPart::getSectionRefs() const
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
#include <App/Document.h>
|
||||
#include <Base/BoundBox.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/FileInfo.h>
|
||||
#include <Base/Parameter.h>
|
||||
#include <Base/Tools.h>
|
||||
@@ -979,8 +980,8 @@ ChangePointVector DrawViewSection::getChangePointsFromSectionLine()
|
||||
if (baseDvp) {
|
||||
std::pair<Base::Vector3d, Base::Vector3d> lineEnds = sectionLineEnds();
|
||||
// make start and end marks
|
||||
gp_Pnt location0 = DU::to<gp_Pnt>(lineEnds.first);
|
||||
gp_Pnt location1 = DU::to<gp_Pnt>(lineEnds.second);
|
||||
gp_Pnt location0 = Base::convertTo<gp_Pnt>(lineEnds.first);
|
||||
gp_Pnt location1 = Base::convertTo<gp_Pnt>(lineEnds.second);
|
||||
gp_Dir postDir = gp_Dir(location1.XYZ() - location0.XYZ());
|
||||
gp_Dir preDir = postDir.Reversed();
|
||||
ChangePoint startPoint(location0, preDir, postDir);
|
||||
@@ -1078,13 +1079,13 @@ void DrawViewSection::setCSFromLocalUnit(const Base::Vector3d localUnit)
|
||||
// Base::Console().Message("DVS::setCSFromLocalUnit(%s)\n",
|
||||
// DrawUtil::formatVector(localUnit).c_str());
|
||||
gp_Dir verticalDir = getSectionCS().YDirection();
|
||||
gp_Ax1 verticalAxis(DrawUtil::to<gp_Pnt>(SectionOrigin.getValue()), verticalDir);
|
||||
gp_Ax1 verticalAxis(Base::convertTo<gp_Pnt>(SectionOrigin.getValue()), verticalDir);
|
||||
gp_Dir oldNormal = getSectionCS().Direction();
|
||||
gp_Dir newNormal = DrawUtil::to<gp_Dir>(projectPoint(localUnit));
|
||||
gp_Dir newNormal = Base::convertTo<gp_Dir>(projectPoint(localUnit));
|
||||
double angle = oldNormal.AngleWithRef(newNormal, verticalDir);
|
||||
gp_Ax2 newCS = getSectionCS().Rotated(verticalAxis, angle);
|
||||
SectionNormal.setValue(DrawUtil::toVector3d(newCS.Direction()));
|
||||
XDirection.setValue(DrawUtil::toVector3d(newCS.XDirection()));
|
||||
SectionNormal.setValue(Base::convertTo<Base::Vector3d>(newCS.Direction()));
|
||||
XDirection.setValue(Base::convertTo<Base::Vector3d>(newCS.XDirection()));
|
||||
}
|
||||
|
||||
gp_Ax2 DrawViewSection::getCSFromBase(const std::string sectionName) const
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
#endif // #ifndef _PreComp_
|
||||
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Base/Parameter.h>
|
||||
#include <Base/Reader.h>
|
||||
#include <Base/Tools.h>
|
||||
@@ -167,7 +168,7 @@ Base::Vector3d Face::getCenter() const {
|
||||
GProp_GProps faceProps;
|
||||
BRepGProp::SurfaceProperties(toOccFace(), faceProps);
|
||||
|
||||
return DrawUtil::toVector3d(faceProps.CentreOfMass());
|
||||
return Base::convertTo<Base::Vector3d>(faceProps.CentreOfMass());
|
||||
}
|
||||
|
||||
double Face::getArea() const {
|
||||
@@ -607,7 +608,7 @@ std::vector<Base::Vector3d> BaseGeom::intersection(TechDraw::BaseGeomPtr geom2)
|
||||
if (!sectionShape.IsNull()) {
|
||||
TopExp_Explorer explorer(sectionShape, TopAbs_VERTEX);
|
||||
while (explorer.More()) {
|
||||
Base::Vector3d pt(DrawUtil::toVector3d(BRep_Tool::Pnt(TopoDS::Vertex(explorer.Current()))));
|
||||
Base::Vector3d pt(Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopoDS::Vertex(explorer.Current()))));
|
||||
interPoints.push_back(pt);
|
||||
explorer.Next();
|
||||
}
|
||||
@@ -800,9 +801,9 @@ AOC::AOC(const TopoDS_Edge &e) : Circle(e)
|
||||
cw = (a < 0) ? true: false;
|
||||
largeArc = (fabs(l-f) > M_PI) ? true : false;
|
||||
|
||||
startPnt = DU::toVector3d(s);
|
||||
endPnt = DU::toVector3d(ePt);
|
||||
midPnt = DU::toVector3d(m);
|
||||
startPnt = Base::convertTo<Base::Vector3d>(s);
|
||||
endPnt = Base::convertTo<Base::Vector3d>(ePt);
|
||||
midPnt = Base::convertTo<Base::Vector3d>(m);
|
||||
if (e.Orientation() == TopAbs_REVERSED) {
|
||||
reversed = true;
|
||||
}
|
||||
@@ -848,9 +849,9 @@ AOC::AOC(Base::Vector3d c, double r, double sAng, double eAng) : Circle()
|
||||
cw = (a < 0) ? true: false;
|
||||
largeArc = (fabs(l-f) > M_PI) ? true : false;
|
||||
|
||||
startPnt = DU::toVector3d(s);
|
||||
endPnt = DU::toVector3d(ePt);
|
||||
midPnt = DU::toVector3d(m);
|
||||
startPnt = Base::convertTo<Base::Vector3d>(s);
|
||||
endPnt = Base::convertTo<Base::Vector3d>(ePt);
|
||||
midPnt = Base::convertTo<Base::Vector3d>(m);
|
||||
if (edge.Orientation() == TopAbs_REVERSED) {
|
||||
reversed = true;
|
||||
}
|
||||
@@ -1379,9 +1380,9 @@ void Vertex::dump(const char* title)
|
||||
|
||||
TopoShape Vertex::asTopoShape(double scale)
|
||||
{
|
||||
Base::Vector3d point = DU::toVector3d(BRep_Tool::Pnt(getOCCVertex()));
|
||||
Base::Vector3d point = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(getOCCVertex()));
|
||||
point = point / scale;
|
||||
BRepBuilderAPI_MakeVertex mkVert(DU::to<gp_Pnt>(point));
|
||||
BRepBuilderAPI_MakeVertex mkVert(Base::convertTo<gp_Pnt>(point));
|
||||
return TopoShape(mkVert.Vertex());
|
||||
}
|
||||
|
||||
@@ -1529,7 +1530,7 @@ bool GeometryUtils::getCircleParms(TopoDS_Edge occEdge, double& radius, Base::Ve
|
||||
sumCurvature += prop.Curvature();
|
||||
prop.CentreOfCurvature(curveCenter);
|
||||
centers.push_back(curveCenter);
|
||||
sumCenter += DrawUtil::toVector3d(curveCenter);
|
||||
sumCenter += Base::convertTo<Base::Vector3d>(curveCenter);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1547,7 +1548,7 @@ bool GeometryUtils::getCircleParms(TopoDS_Edge occEdge, double& radius, Base::Ve
|
||||
|
||||
double errorCenter{0};
|
||||
for (auto& observe : centers) {
|
||||
auto error = (DU::toVector3d(observe)- avgCenter).Length();
|
||||
auto error = (Base::convertTo<Base::Vector3d>(observe)- avgCenter).Length();
|
||||
errorCenter += error;
|
||||
}
|
||||
|
||||
@@ -1582,7 +1583,7 @@ TopoDS_Edge GeometryUtils::asCircle(TopoDS_Edge splineEdge, bool& arc)
|
||||
throw Base::RuntimeError("GU::asCircle received non-circular edge!");
|
||||
}
|
||||
|
||||
gp_Pnt gCenter = DU::to<gp_Pnt>(center);
|
||||
gp_Pnt gCenter = Base::convertTo<gp_Pnt>(center);
|
||||
gp_Dir gNormal{0, 0, 1};
|
||||
Handle(Geom_Circle) circleFromParms = GC_MakeCircle(gCenter, gNormal, radius);
|
||||
|
||||
@@ -1624,8 +1625,8 @@ bool GeometryUtils::isLine(TopoDS_Edge occEdge)
|
||||
return false;
|
||||
}
|
||||
|
||||
Base::Vector3d vs = DrawUtil::toVector3d(s);
|
||||
Base::Vector3d ve = DrawUtil::toVector3d(e);
|
||||
Base::Vector3d vs = Base::convertTo<Base::Vector3d>(s);
|
||||
Base::Vector3d ve = Base::convertTo<Base::Vector3d>(e);
|
||||
double endLength = (vs - ve).Length();
|
||||
int low = 0;
|
||||
int high = spline->NbPoles() - 1;
|
||||
@@ -1634,9 +1635,9 @@ bool GeometryUtils::isLine(TopoDS_Edge occEdge)
|
||||
double lenTotal = 0.0;
|
||||
for (int i = 0; i < high; i++) {
|
||||
gp_Pnt p1 = poles(i);
|
||||
Base::Vector3d v1 = DrawUtil::toVector3d(p1);
|
||||
Base::Vector3d v1 = Base::convertTo<Base::Vector3d>(p1);
|
||||
gp_Pnt p2 = poles(i+1);
|
||||
Base::Vector3d v2 = DrawUtil::toVector3d(p2);
|
||||
Base::Vector3d v2 = Base::convertTo<Base::Vector3d>(p2);
|
||||
lenTotal += (v2-v1).Length();
|
||||
}
|
||||
|
||||
@@ -1764,7 +1765,7 @@ std::vector<FacePtr> GeometryUtils::findHolesInFace(const DrawViewPart* dvp, con
|
||||
iFace++;
|
||||
continue;
|
||||
}
|
||||
auto faceCenter = DU::to<gp_Pnt>(face->getCenter());
|
||||
auto faceCenter = Base::convertTo<gp_Pnt>(face->getCenter());
|
||||
auto faceCenterVertex = BRepBuilderAPI_MakeVertex(faceCenter);
|
||||
auto distance = DU::simpleMinDist(faceCenterVertex, bigCheeseOCCFace);
|
||||
if (distance > EWTOLERANCE) {
|
||||
|
||||
@@ -90,9 +90,9 @@ bool GeometryMatcher::comparePoints(const TopoDS_Shape& shape1, const TopoDS_Sha
|
||||
return false;
|
||||
}
|
||||
auto vert1 = TopoDS::Vertex(shape1);
|
||||
Base::Vector3d point1 = DU::toVector3d(BRep_Tool::Pnt(vert1));
|
||||
Base::Vector3d point1 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(vert1));
|
||||
auto vert2 = TopoDS::Vertex(shape2);
|
||||
Base::Vector3d point2 = DU::toVector3d(BRep_Tool::Pnt(vert2));
|
||||
Base::Vector3d point2 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(vert2));
|
||||
return point1.IsEqual(point2, EWTOLERANCE);
|
||||
}
|
||||
|
||||
@@ -179,8 +179,8 @@ bool GeometryMatcher::compareCircles(const TopoDS_Edge& edge1, const TopoDS_Edge
|
||||
gp_Circ circle2 = adapt2.Circle();
|
||||
double radius1 = circle1.Radius();
|
||||
double radius2 = circle2.Radius();
|
||||
auto center1 = DU::toVector3d(circle1.Location());
|
||||
auto center2 = DU::toVector3d(circle2.Location());
|
||||
auto center1 = Base::convertTo<Base::Vector3d>(circle1.Location());
|
||||
auto center2 = Base::convertTo<Base::Vector3d>(circle2.Location());
|
||||
return DU::fpCompare(radius1, radius2, EWTOLERANCE) && center1.IsEqual(center2, EWTOLERANCE);
|
||||
}
|
||||
|
||||
@@ -199,8 +199,8 @@ bool GeometryMatcher::compareEllipses(const TopoDS_Edge& edge1, const TopoDS_Edg
|
||||
double minor1 = ellipse1.MinorRadius();
|
||||
double major2 = ellipse2.MajorRadius();
|
||||
double minor2 = ellipse2.MinorRadius();
|
||||
auto center1 = DU::toVector3d(ellipse1.Location());
|
||||
auto center2 = DU::toVector3d(ellipse2.Location());
|
||||
auto center1 = Base::convertTo<Base::Vector3d>(ellipse1.Location());
|
||||
auto center2 = Base::convertTo<Base::Vector3d>(ellipse2.Location());
|
||||
return (DU::fpCompare(major1, major2, EWTOLERANCE) &&
|
||||
DU::fpCompare(minor1, minor2, EWTOLERANCE) &&
|
||||
center1.IsEqual(center2, EWTOLERANCE));
|
||||
|
||||
@@ -399,8 +399,8 @@ std::pair<Base::Vector3d, Base::Vector3d> ShapeUtils::getEdgeEnds(TopoDS_Edge ed
|
||||
gp_Pnt gpFirst = BRep_Tool::Pnt(tvFirst);
|
||||
gp_Pnt gpLast = BRep_Tool::Pnt(tvLast);
|
||||
|
||||
result.first = DU::toVector3d(gpFirst);
|
||||
result.second = DU::toVector3d(gpLast);
|
||||
result.first = Base::convertTo<Base::Vector3d>(gpFirst);
|
||||
result.second = Base::convertTo<Base::Vector3d>(gpLast);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -1811,7 +1811,7 @@ void CmdTechDrawExtensionAreaAnnotation::activated(int iMsg)
|
||||
|
||||
double faceArea = faceProps.Mass();
|
||||
totalArea += faceArea;
|
||||
center += faceArea*DrawUtil::toVector3d(faceProps.CentreOfMass());
|
||||
center += faceArea*Base::convertTo<Base::Vector3d>(faceProps.CentreOfMass());
|
||||
}
|
||||
if (totalArea > 0.0) {
|
||||
center /= totalArea;
|
||||
@@ -1976,7 +1976,7 @@ void CmdTechDrawExtensionArcLengthAnnotation::activated(int iMsg)
|
||||
}
|
||||
|
||||
double scale = objFeat->getScale();
|
||||
Base::Vector3d anchor = DrawUtil::invertY(DrawUtil::toVector3d(midPoint)/scale);
|
||||
Base::Vector3d anchor = DrawUtil::invertY(Base::convertTo<Base::Vector3d>(midPoint)/scale);
|
||||
totalLength /= scale;
|
||||
|
||||
// Use virtual dimension view helper to format resulting value
|
||||
|
||||
@@ -426,9 +426,9 @@ DimensionGeometry TechDraw::isValidSingleEdge3d(DrawViewPart* dvp, ReferenceEntr
|
||||
TopoDS_Edge occEdge = TopoDS::Edge(refShape);
|
||||
BRepAdaptor_Curve adapt(occEdge);
|
||||
if (adapt.GetType() == GeomAbs_Line) {
|
||||
Base::Vector3d point0 = DU::toVector3d(BRep_Tool::Pnt(TopExp::FirstVertex(occEdge)));
|
||||
Base::Vector3d point0 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopExp::FirstVertex(occEdge)));
|
||||
point0 = dvp->projectPoint(point0);
|
||||
Base::Vector3d point1 = DU::toVector3d(BRep_Tool::Pnt(TopExp::LastVertex(occEdge)));
|
||||
Base::Vector3d point1 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopExp::LastVertex(occEdge)));
|
||||
point1 = dvp->projectPoint(point1);
|
||||
Base::Vector3d line = point1 - point0;
|
||||
if (fabs(line.y) < FLT_EPSILON) {
|
||||
@@ -594,11 +594,11 @@ DimensionGeometry TechDraw::isValidMultiEdge3d(DrawViewPart* dvp, ReferenceVecto
|
||||
}
|
||||
|
||||
if (edgesAll.size() == 2) {
|
||||
Base::Vector3d first0 = DU::toVector3d(BRep_Tool::Pnt(TopExp::FirstVertex(edgesAll.at(0))));
|
||||
Base::Vector3d last0 = DU::toVector3d(BRep_Tool::Pnt(TopExp::LastVertex(edgesAll.at(1))));
|
||||
Base::Vector3d first0 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopExp::FirstVertex(edgesAll.at(0))));
|
||||
Base::Vector3d last0 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopExp::LastVertex(edgesAll.at(1))));
|
||||
Base::Vector3d line0 = last0 - first0;
|
||||
Base::Vector3d first1 = DU::toVector3d(BRep_Tool::Pnt(TopExp::FirstVertex(edgesAll.at(0))));
|
||||
Base::Vector3d last1 = DU::toVector3d(BRep_Tool::Pnt(TopExp::LastVertex(edgesAll.at(1))));
|
||||
Base::Vector3d first1 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopExp::FirstVertex(edgesAll.at(0))));
|
||||
Base::Vector3d last1 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopExp::LastVertex(edgesAll.at(1))));
|
||||
Base::Vector3d line1 = last1 - first1;
|
||||
line0.Normalize();
|
||||
line1.Normalize();
|
||||
@@ -666,9 +666,9 @@ DimensionGeometry TechDraw::isValidVertexes3d(DrawViewPart* dvp, ReferenceVector
|
||||
|| geometry1.ShapeType() != TopAbs_VERTEX) {
|
||||
return DimensionGeometry::isInvalid;
|
||||
}
|
||||
Base::Vector3d point0 = DU::toVector3d(BRep_Tool::Pnt(TopoDS::Vertex(geometry0)));
|
||||
Base::Vector3d point0 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopoDS::Vertex(geometry0)));
|
||||
point0 = dvp->projectPoint(point0);
|
||||
Base::Vector3d point1 = DU::toVector3d(BRep_Tool::Pnt(TopoDS::Vertex(geometry1)));
|
||||
Base::Vector3d point1 = Base::convertTo<Base::Vector3d>(BRep_Tool::Pnt(TopoDS::Vertex(geometry1)));
|
||||
point1 = dvp->projectPoint(point1);
|
||||
Base::Vector3d line = point1 - point0;
|
||||
if (fabs(line.y) < FLT_EPSILON) {
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <App/Document.h>
|
||||
#include <App/Link.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Converter.h>
|
||||
#include <Gui/BitmapFactory.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Control.h>
|
||||
@@ -501,8 +502,8 @@ bool TaskComplexSection::apply(bool forceUpdate)
|
||||
}
|
||||
else {
|
||||
gp_Pnt stdOrigin(0.0, 0.0, 0.0);
|
||||
gp_Ax2 sectionCS(stdOrigin, DrawUtil::to<gp_Dir>(m_saveNormal),
|
||||
DrawUtil::to<gp_Dir>(m_saveXDir));
|
||||
gp_Ax2 sectionCS(stdOrigin, Base::convertTo<gp_Dir>(m_saveNormal),
|
||||
Base::convertTo<gp_Dir>(m_saveXDir));
|
||||
if (!DrawComplexSection::canBuild(sectionCS, m_profileObject)) {
|
||||
Base::Console().Error(
|
||||
"Can not build Complex Section with this profile and direction (2)\n");
|
||||
|
||||
Reference in New Issue
Block a user