mirror of https://github.com/vitalif/openscad
Clifford Wolf:
Fixed segfault on invalid polygon/polyhedron vetrex indices git-svn-id: http://svn.clifford.at/openscad/trunk@246 b57f626f-c46c-0410-a088-ec61d464b74cstl_dim
parent
3939d27266
commit
961f5e5991
|
@ -397,13 +397,14 @@ sphere_next_r2:
|
|||
p->append_poly();
|
||||
for (int j=0; j<triangles.vec[i]->vec.size(); j++) {
|
||||
int pt = triangles.vec[i]->vec[j]->num;
|
||||
double px = points.vec[pt]->vec[0]->num;
|
||||
double py = points.vec[pt]->vec[1]->num;
|
||||
double pz = points.vec[pt]->vec[2]->num;
|
||||
if (pt < points.vec.size()) {
|
||||
double px, py, pz;
|
||||
if (points.vec[pt]->getv3(px, py, pz))
|
||||
p->insert_vertex(px, py, pz);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (type == SQUARE)
|
||||
{
|
||||
|
@ -463,12 +464,16 @@ sphere_next_r2:
|
|||
{
|
||||
dd.paths.append(DxfData::Path());
|
||||
for (int i=0; i<points.vec.size(); i++) {
|
||||
if (i < dd.points.size()) {
|
||||
DxfData::Point *p = &dd.points[i];
|
||||
dd.paths.last().points.append(p);
|
||||
}
|
||||
}
|
||||
if (dd.paths.last().points.size() > 0) {
|
||||
dd.paths.last().points.append(dd.paths.last().points.first());
|
||||
dd.paths.last().is_closed = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i=0; i<paths.vec.size(); i++)
|
||||
|
|
Loading…
Reference in New Issue