mirror of https://github.com/vitalif/openscad
Moved Polygon typedef out of PolySet class
parent
0b58b7d2b3
commit
819f5d085f
|
@ -573,7 +573,7 @@ Response GeometryEvaluator::visit(State &state, const TransformNode &node)
|
|||
|
||||
static void translate_PolySet(PolySet &ps, const Vector3d &translation)
|
||||
{
|
||||
BOOST_FOREACH(PolySet::Polygon &p, ps.polygons) {
|
||||
BOOST_FOREACH(Polygon &p, ps.polygons) {
|
||||
BOOST_FOREACH(Vector3d &v, p) {
|
||||
v += translation;
|
||||
}
|
||||
|
@ -651,7 +651,7 @@ static Geometry *extrudePolygon(const LinearExtrudeNode &node, const Polygon2d &
|
|||
PolySet *ps_bottom = poly.tessellate(); // bottom
|
||||
|
||||
// Flip vertex ordering for bottom polygon
|
||||
BOOST_FOREACH(PolySet::Polygon &p, ps_bottom->polygons) {
|
||||
BOOST_FOREACH(Polygon &p, ps_bottom->polygons) {
|
||||
std::reverse(p.begin(), p.end());
|
||||
}
|
||||
translate_PolySet(*ps_bottom, Vector3d(0,0,h1));
|
||||
|
|
|
@ -62,6 +62,7 @@ typedef CGAL::Polyhedron_incremental_builder_3<CGAL_HDS> CGAL_Polybuilder;
|
|||
|
||||
typedef CGAL::Point_3<CGAL_Kernel3> CGAL_Point_3;
|
||||
typedef CGAL::Iso_cuboid_3<CGAL_Kernel3> CGAL_Iso_cuboid_3;
|
||||
typedef std::vector<CGAL_Point_3> CGAL_Polygon_3;
|
||||
|
||||
// CGAL_Nef_polyhedron2 uses CGAL_Kernel2, but Iso_rectangle_2 needs to match
|
||||
// CGAL_Nef_polyhedron2::Explorer::Point which is different than
|
||||
|
|
|
@ -67,7 +67,7 @@ namespace /* anonymous */ {
|
|||
Grid3d<int> grid(GRID_FINE);
|
||||
std::vector<size_t> indices(3);
|
||||
|
||||
BOOST_FOREACH(const PolySet::Polygon &p, ps.polygons) {
|
||||
BOOST_FOREACH(const Polygon &p, ps.polygons) {
|
||||
BOOST_REVERSE_FOREACH(Vector3d v, p) {
|
||||
if (!grid.has(v[0], v[1], v[2])) {
|
||||
// align v to the grid; the CGALPoint will receive the aligned vertex
|
||||
|
@ -85,7 +85,7 @@ namespace /* anonymous */ {
|
|||
BOOST_FOREACH(const CGALPoint &p, vertices) {
|
||||
B.add_vertex(p);
|
||||
}
|
||||
BOOST_FOREACH(const PolySet::Polygon &p, ps.polygons) {
|
||||
BOOST_FOREACH(const Polygon &p, ps.polygons) {
|
||||
#ifdef GEN_SURFACE_DEBUG
|
||||
if (pidx++ > 0) printf(",");
|
||||
#endif
|
||||
|
@ -148,7 +148,7 @@ namespace /* anonymous */ {
|
|||
#ifdef GEN_SURFACE_DEBUG
|
||||
printf("polyhedron(faces=[");
|
||||
#endif
|
||||
BOOST_FOREACH(const PolySet::Polygon &p, ps.polygons) {
|
||||
BOOST_FOREACH(const Polygon &p, ps.polygons) {
|
||||
#ifdef GEN_SURFACE_DEBUG
|
||||
if (pidx++ > 0) printf(",");
|
||||
#endif
|
||||
|
@ -373,7 +373,7 @@ namespace CGALUtils {
|
|||
} else {
|
||||
const PolySet *ps = dynamic_cast<const PolySet *>(chgeom.get());
|
||||
if (ps) {
|
||||
BOOST_FOREACH(const PolySet::Polygon &p, ps->polygons) {
|
||||
BOOST_FOREACH(const Polygon &p, ps->polygons) {
|
||||
BOOST_FOREACH(const Vector3d &v, p) {
|
||||
points.insert(K::Point_3(v[0], v[1], v[2]));
|
||||
}
|
||||
|
|
|
@ -133,7 +133,7 @@ void export_stl(const PolySet &ps, std::ostream &output)
|
|||
|
||||
setlocale(LC_NUMERIC, "C"); // Ensure radix is . (not ,) in output
|
||||
output << "solid OpenSCAD_Model\n";
|
||||
BOOST_FOREACH(const PolySet::Polygon &p, triangulated.polygons) {
|
||||
BOOST_FOREACH(const Polygon &p, triangulated.polygons) {
|
||||
assert(p.size() == 3); // STL only allows triangles
|
||||
std::stringstream stream;
|
||||
stream << p[0][0] << " " << p[0][1] << " " << p[0][2];
|
||||
|
|
|
@ -17,6 +17,9 @@ using Eigen::Matrix4d;
|
|||
#define Transform3d Eigen::Affine3d
|
||||
#define Transform2d Eigen::Affine2d
|
||||
|
||||
typedef std::vector<Vector3d> Polygon;
|
||||
typedef std::vector<Polygon> Polygons;
|
||||
|
||||
bool matrix_contains_infinity( const Transform3d &m );
|
||||
bool matrix_contains_nan( const Transform3d &m );
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace PolysetUtils {
|
|||
Polygon2d *project(const PolySet &ps) {
|
||||
Polygon2d *poly = new Polygon2d;
|
||||
|
||||
BOOST_FOREACH(const PolySet::Polygon &p, ps.polygons) {
|
||||
BOOST_FOREACH(const Polygon &p, ps.polygons) {
|
||||
Outline2d outline;
|
||||
BOOST_FOREACH(const Vector3d &v, p) {
|
||||
outline.vertices.push_back(Vector2d(v[0], v[1]));
|
||||
|
@ -65,12 +65,12 @@ namespace PolysetUtils {
|
|||
void tessellate_faces(const PolySet &inps, PolySet &outps) {
|
||||
int degeneratePolygons = 0;
|
||||
for (size_t i = 0; i < inps.polygons.size(); i++) {
|
||||
const PolySet::Polygon pgon = inps.polygons[i];
|
||||
const Polygon pgon = inps.polygons[i];
|
||||
if (pgon.size() < 3) {
|
||||
degeneratePolygons++;
|
||||
continue;
|
||||
}
|
||||
std::vector<PolySet::Polygon> triangles;
|
||||
std::vector<Polygon> triangles;
|
||||
if (pgon.size() == 3) {
|
||||
triangles.push_back(pgon);
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ namespace PolysetUtils {
|
|||
// Iterate over the resulting faces
|
||||
CDT::Finite_faces_iterator fit;
|
||||
for (fit=cdt.finite_faces_begin(); fit!=cdt.finite_faces_end(); fit++) {
|
||||
PolySet::Polygon pgon;
|
||||
Polygon pgon;
|
||||
for (int i=0;i<3;i++) {
|
||||
K::Point_3 v = cdt.triangle(fit)[i];
|
||||
pgon.push_back(Vector3d(v.x(), v.y(), v.z()));
|
||||
|
@ -109,7 +109,7 @@ namespace PolysetUtils {
|
|||
|
||||
// ..and pass to the output polyhedron
|
||||
for (size_t j=0;j<triangles.size();j++) {
|
||||
PolySet::Polygon t = triangles[j];
|
||||
Polygon t = triangles[j];
|
||||
outps.append_poly();
|
||||
outps.append_vertex(t[0].x(),t[0].y(),t[0].z());
|
||||
outps.append_vertex(t[1].x(),t[1].y(),t[1].z());
|
||||
|
|
|
@ -309,7 +309,7 @@ void PolySet::render_surface(Renderer::csgmode_e csgmode, const Transform3d &m,
|
|||
else {
|
||||
// If we don't have borders, use the polygons as borders.
|
||||
// FIXME: When is this used?
|
||||
const std::vector<Polygon> *borders_p = &polygons;
|
||||
const Polygons *borders_p = &polygons;
|
||||
for (size_t i = 0; i < borders_p->size(); i++) {
|
||||
const Polygon *poly = &borders_p->at(i);
|
||||
for (size_t j = 1; j <= poly->size(); j++) {
|
||||
|
|
|
@ -14,8 +14,7 @@ BOOST_TRIBOOL_THIRD_STATE(unknown)
|
|||
class PolySet : public Geometry
|
||||
{
|
||||
public:
|
||||
typedef std::vector<Vector3d> Polygon;
|
||||
std::vector<Polygon> polygons;
|
||||
Polygons polygons;
|
||||
|
||||
PolySet(unsigned int dim, boost::tribool convex = unknown);
|
||||
PolySet(const Polygon2d &origin);
|
||||
|
|
Loading…
Reference in New Issue