update to print visitor

This commit is contained in:
supermerill 2019-12-13 19:08:18 +01:00
parent 8eae40a3a8
commit b06a3bff80
2 changed files with 10 additions and 2 deletions

View File

@ -289,7 +289,9 @@ std::string ExtrusionEntity::role_to_string(ExtrusionRole role)
ss << "ExtrusionPath{";
for (int i = 0; i < path.polyline.points.size(); i++) {
if (i != 0) ss << ",";
ss << "{"<<(int)(100 * unscale_(path.polyline.points[i].x())) << "," << (int)(100 * unscale_(path.polyline.points[i].y()))<<"}";
double x = (mult * (path.polyline.points[i].x()));
double y = (mult * (path.polyline.points[i].y()));
ss << std::fixed << "{"<<(trunc?(int)x:x) << "," << (trunc ? (int)y : y) <<"}";
}
ss << "}";
}
@ -297,7 +299,10 @@ void ExtrusionPrinter::use(const ExtrusionPath3D &path3D) {
ss << "ExtrusionPath3D{";
for (int i = 0; i < path3D.polyline.points.size();i++){
if (i != 0) ss << ",";
ss << "{"<<(int)(100 * unscale_(path3D.polyline.points[i].x())) << "," << (int)(100 * unscale_(path3D.polyline.points[i].y())) << ":" << (path3D.z_offsets.size()>i ? unscale_(path3D.z_offsets[i]) : -1) <<"}";
double x = (mult * (path3D.polyline.points[i].x()));
double y = (mult * (path3D.polyline.points[i].y()));
double z = (path3D.z_offsets.size() > i ? mult * (path3D.z_offsets[i]) : -1);
ss << std::fixed << "{" << (trunc ? (int)x : x) << "," << (trunc ? (int)y : y) << "," << (trunc ? (int)z : z) << "}";
}
ss << "}";
}

View File

@ -535,7 +535,10 @@ inline void extrusion_entities_append_loops(ExtrusionEntitiesPtr &dst, Polygons
class ExtrusionPrinter : public ExtrusionVisitorConst {
std::stringstream ss;
double mult;
bool trunc;
public:
ExtrusionPrinter(double mult = 0.0001, bool trunc = false) : mult(mult), trunc(trunc) { }
virtual void use(const ExtrusionPath &path) override;
virtual void use(const ExtrusionPath3D &path3D) override;
virtual void use(const ExtrusionMultiPath &multipath) override;