diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp index a760fbd1a7109bb32b300bb22b868016a30c010c..5a1336d981681e31c211ad2c97dc795fa6564c6d 100644 --- a/Geo/GEdge.cpp +++ b/Geo/GEdge.cpp @@ -547,7 +547,8 @@ static void _discretize(double tol, GEdge * edge, std::vector<sortedPoint> &upts const double d2 = sqDistPointSegment(pmid, p0, p1); if (d2 < tol * tol) return; - upts.push_back((sortedPoint){pmid, tmid, pos1}); + sortedPoint pnt = {pmid, tmid, pos1}; + upts.push_back(pnt); const int posmid = upts.size() - 1; upts[pos0].next = posmid; _discretize(tol, edge, upts, pos0); @@ -557,8 +558,10 @@ static void _discretize(double tol, GEdge * edge, std::vector<sortedPoint> &upts void GEdge::discretize(double tol, std::vector<SPoint3> &dpts, std::vector<double> &ts) { std::vector<sortedPoint> upts; - upts.push_back((sortedPoint){getBeginVertex()->xyz(), 0., 1}); - upts.push_back((sortedPoint){getEndVertex()->xyz(), 1., -1}); + sortedPoint pnt1 = {getBeginVertex()->xyz(), 0., 1}; + upts.push_back(pnt1); + sortedPoint pnt2 = {getEndVertex()->xyz(), 1., -1}; + upts.push_back(pnt2); _discretize(tol, this, upts, 0); dpts.clear(); dpts.reserve(upts.size()); diff --git a/Numeric/decasteljau.cpp b/Numeric/decasteljau.cpp index f967f2a7b1ccee1c695b0ae9475553efabb5d1b3..d56c866445198dbbc50131390d61bd268963da56 100644 --- a/Numeric/decasteljau.cpp +++ b/Numeric/decasteljau.cpp @@ -10,7 +10,8 @@ typedef struct { static int sortedPointInsert(const SPoint3 &p, const double t, std::vector<sortedPoint> &pts, int pos) { - pts.push_back((sortedPoint) {p, t, pts[pos].next}); + sortedPoint pnt = {p, t, pts[pos].next}; + pts.push_back(pnt); int newp = pts.size() - 1; pts[pos].next = newp; return newp; @@ -55,8 +56,10 @@ static void decasteljau(double tol, std::vector<sortedPoint> &discrete, int pos, void decasteljau(double tol, const SPoint3 &p0, const SPoint3 &p1, const SPoint3 &p2, std::vector<SPoint3> &pts, std::vector<double> &ts) { std::vector<sortedPoint> discrete; - discrete.push_back((sortedPoint) {p0, 0., 1}); - discrete.push_back((sortedPoint) {p2, 1., -1}); + sortedPoint pnt1 = {p0, 0., 1}; + discrete.push_back(pnt1); + sortedPoint pnt2 = {p2, 1., -1}; + discrete.push_back(pnt2); decasteljau(tol, discrete, 0, p0, p1, p2, 0., 1); sortedPointToVector(discrete, pts, ts); } @@ -80,8 +83,10 @@ static void decasteljau(double tol, std::vector<sortedPoint> &discrete, int pos, void decasteljau(double tol, const SPoint3 &p0, const SPoint3 &p1, const SPoint3 &p2, const SPoint3 &p3, std::vector<SPoint3> &pts, std::vector<double> &ts) { std::vector<sortedPoint> discrete; - discrete.push_back((sortedPoint) {p0, 0., 1}); - discrete.push_back((sortedPoint) {p3, 1., -1}); + sortedPoint pnt1 = {p0, 0., 1}; + discrete.push_back(pnt1); + sortedPoint pnt2 = {p3, 1., -1}; + discrete.push_back(pnt2); decasteljau(tol, discrete, 0, p0, p1, p2, p3, 0., 1); sortedPointToVector(discrete, pts, ts); } @@ -110,8 +115,10 @@ static void decasteljau(double tol, std::vector<sortedPoint> &discrete, int pos, void decasteljau(double tol, const std::vector<SPoint3> &controlPoints, std::vector<SPoint3> &pts, std::vector<double> &ts) { std::vector<sortedPoint> discrete; - discrete.push_back((sortedPoint) {controlPoints[0], 0., 1}); - discrete.push_back((sortedPoint) {controlPoints.back(), 1., -1}); + sortedPoint pnt1 = {controlPoints[0], 0., 1}; + discrete.push_back(pnt1); + sortedPoint pnt2 = {controlPoints.back(), 1., -1}; + discrete.push_back(pnt2); decasteljau(tol, discrete, 0, controlPoints, 0., 1); sortedPointToVector(discrete, pts, ts); }