Skip to content
Snippets Groups Projects
Commit 0cec6fb2 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

fix compile woth MSVC 2012 (thanks to Wendy!)

parent a811e902
Branches
Tags
No related merge requests found
...@@ -547,7 +547,8 @@ static void _discretize(double tol, GEdge * edge, std::vector<sortedPoint> &upts ...@@ -547,7 +547,8 @@ static void _discretize(double tol, GEdge * edge, std::vector<sortedPoint> &upts
const double d2 = sqDistPointSegment(pmid, p0, p1); const double d2 = sqDistPointSegment(pmid, p0, p1);
if (d2 < tol * tol) if (d2 < tol * tol)
return; return;
upts.push_back((sortedPoint){pmid, tmid, pos1}); sortedPoint pnt = {pmid, tmid, pos1};
upts.push_back(pnt);
const int posmid = upts.size() - 1; const int posmid = upts.size() - 1;
upts[pos0].next = posmid; upts[pos0].next = posmid;
_discretize(tol, edge, upts, pos0); _discretize(tol, edge, upts, pos0);
...@@ -557,8 +558,10 @@ static void _discretize(double tol, GEdge * edge, std::vector<sortedPoint> &upts ...@@ -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) void GEdge::discretize(double tol, std::vector<SPoint3> &dpts, std::vector<double> &ts)
{ {
std::vector<sortedPoint> upts; std::vector<sortedPoint> upts;
upts.push_back((sortedPoint){getBeginVertex()->xyz(), 0., 1}); sortedPoint pnt1 = {getBeginVertex()->xyz(), 0., 1};
upts.push_back((sortedPoint){getEndVertex()->xyz(), 1., -1}); upts.push_back(pnt1);
sortedPoint pnt2 = {getEndVertex()->xyz(), 1., -1};
upts.push_back(pnt2);
_discretize(tol, this, upts, 0); _discretize(tol, this, upts, 0);
dpts.clear(); dpts.clear();
dpts.reserve(upts.size()); dpts.reserve(upts.size());
......
...@@ -10,7 +10,8 @@ typedef struct { ...@@ -10,7 +10,8 @@ typedef struct {
static int sortedPointInsert(const SPoint3 &p, const double t, std::vector<sortedPoint> &pts, int pos) 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; int newp = pts.size() - 1;
pts[pos].next = newp; pts[pos].next = newp;
return newp; return newp;
...@@ -55,8 +56,10 @@ static void decasteljau(double tol, std::vector<sortedPoint> &discrete, int pos, ...@@ -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) 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; std::vector<sortedPoint> discrete;
discrete.push_back((sortedPoint) {p0, 0., 1}); sortedPoint pnt1 = {p0, 0., 1};
discrete.push_back((sortedPoint) {p2, 1., -1}); discrete.push_back(pnt1);
sortedPoint pnt2 = {p2, 1., -1};
discrete.push_back(pnt2);
decasteljau(tol, discrete, 0, p0, p1, p2, 0., 1); decasteljau(tol, discrete, 0, p0, p1, p2, 0., 1);
sortedPointToVector(discrete, pts, ts); sortedPointToVector(discrete, pts, ts);
} }
...@@ -80,8 +83,10 @@ static void decasteljau(double tol, std::vector<sortedPoint> &discrete, int pos, ...@@ -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) 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; std::vector<sortedPoint> discrete;
discrete.push_back((sortedPoint) {p0, 0., 1}); sortedPoint pnt1 = {p0, 0., 1};
discrete.push_back((sortedPoint) {p3, 1., -1}); discrete.push_back(pnt1);
sortedPoint pnt2 = {p3, 1., -1};
discrete.push_back(pnt2);
decasteljau(tol, discrete, 0, p0, p1, p2, p3, 0., 1); decasteljau(tol, discrete, 0, p0, p1, p2, p3, 0., 1);
sortedPointToVector(discrete, pts, ts); sortedPointToVector(discrete, pts, ts);
} }
...@@ -110,8 +115,10 @@ static void decasteljau(double tol, std::vector<sortedPoint> &discrete, int pos, ...@@ -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) void decasteljau(double tol, const std::vector<SPoint3> &controlPoints, std::vector<SPoint3> &pts, std::vector<double> &ts)
{ {
std::vector<sortedPoint> discrete; std::vector<sortedPoint> discrete;
discrete.push_back((sortedPoint) {controlPoints[0], 0., 1}); sortedPoint pnt1 = {controlPoints[0], 0., 1};
discrete.push_back((sortedPoint) {controlPoints.back(), 1., -1}); discrete.push_back(pnt1);
sortedPoint pnt2 = {controlPoints.back(), 1., -1};
discrete.push_back(pnt2);
decasteljau(tol, discrete, 0, controlPoints, 0., 1); decasteljau(tol, discrete, 0, controlPoints, 0., 1);
sortedPointToVector(discrete, pts, ts); sortedPointToVector(discrete, pts, ts);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment