From d0390c41a2268ce23d3010c7085e4365725d2f49 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sat, 28 Aug 2010 21:21:44 +0200 Subject: Added AbstractNode::name(), changed CSGTextRenderer to use this instead of the rtti name diff --git a/src/cgaladv.cc b/src/cgaladv.cc index 0b38bc0..d71e5b0 100644 --- a/src/cgaladv.cc +++ b/src/cgaladv.cc @@ -63,6 +63,21 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const { + switch (this->type) { + case MINKOWSKI: + return "minkowski"; + break; + case GLIDE: + return "glide"; + break; + case SUBDIV: + return "subdiv"; + break; + default: + assert(false); + } + } Value path; QString subdiv_type; @@ -134,15 +149,16 @@ std::string CgaladvNode::toString() const { std::stringstream stream; + stream << this->name(); switch (type) { case MINKOWSKI: - stream << "minkowski(convexity = " << this->convexity << ")"; + stream << "(convexity = " << this->convexity << ")"; break; case GLIDE: - stream << "glide(path = " << this->path.dump() << ", convexity = " << this->convexity << ")"; + stream << "(path = " << this->path.dump() << ", convexity = " << this->convexity << ")"; break; case SUBDIV: - stream << "subdiv(level = " << this->level << ", convexity = " << this->convexity << ")"; + stream << "(level = " << this->level << ", convexity = " << this->convexity << ")"; break; default: assert(false); diff --git a/src/csgnode.h b/src/csgnode.h index d5ebfc2..2e1d9fb 100644 --- a/src/csgnode.h +++ b/src/csgnode.h @@ -19,6 +19,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const; }; #endif diff --git a/src/csgops.cc b/src/csgops.cc index bddb5a0..c7251f8 100644 --- a/src/csgops.cc +++ b/src/csgops.cc @@ -53,23 +53,24 @@ AbstractNode *CsgModule::evaluate(const Context*, const ModuleInstantiation *ins std::string CsgNode::toString() const { - std::stringstream stream; + return this->name() + "()"; +} +std::string CsgNode::name() const +{ switch (this->type) { case CSG_TYPE_UNION: - stream << "union()"; + return "union"; break; case CSG_TYPE_DIFFERENCE: - stream << "difference()"; + return "difference"; break; case CSG_TYPE_INTERSECTION: - stream << "intersection()"; + return "intersection"; break; default: assert(false); } - - return stream.str(); } void register_builtin_csgops() diff --git a/src/dxflinextrude.cc b/src/dxflinextrude.cc index 3c8d7ac..d11a875 100644 --- a/src/dxflinextrude.cc +++ b/src/dxflinextrude.cc @@ -154,7 +154,7 @@ std::string DxfLinearExtrudeNode::toString() const memset(&st, 0, sizeof(struct stat)); stat(this->filename.toAscii().data(), &st); - stream << "linear_extrude(" + stream << this->name() << "(" "file = \"" << this->filename << "\", " "cache = \"" << std::hex << (int)st.st_mtime << "." << (int)st.st_size << "\", " "layer = \"" << this->layername << "\", " diff --git a/src/dxflinextrudenode.h b/src/dxflinextrudenode.h index f333491..564ee55 100644 --- a/src/dxflinextrudenode.h +++ b/src/dxflinextrudenode.h @@ -17,6 +17,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const { return "linear_extrude"; } int convexity, slices; double fn, fs, fa, height, twist; diff --git a/src/dxfrotextrude.cc b/src/dxfrotextrude.cc index 36e6cdf..67a1c8c 100644 --- a/src/dxfrotextrude.cc +++ b/src/dxfrotextrude.cc @@ -128,7 +128,7 @@ std::string DxfRotateExtrudeNode::toString() const struct stat st; memset(&st, 0, sizeof(struct stat)); stat(filename.toAscii().data(), &st); - stream << "rotate_extrude(" + stream << this->name() << "(" "file = \"" << this->filename << "\", " "cache = \"" << std::hex << (int)st.st_mtime << "." << (int)st.st_size << "\", " "layer = \"" << this->layername << "\", " diff --git a/src/dxfrotextrudenode.h b/src/dxfrotextrudenode.h index 5c2ef2b..dbf33a6 100644 --- a/src/dxfrotextrudenode.h +++ b/src/dxfrotextrudenode.h @@ -16,6 +16,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const { return "rotate_extrude"; } int convexity; double fn, fs, fa; diff --git a/src/import.cc b/src/import.cc index b7e3d7c..f70930e 100644 --- a/src/import.cc +++ b/src/import.cc @@ -198,19 +198,20 @@ std::string ImportNode::toString() const memset(&st, 0, sizeof(struct stat)); stat(this->filename.toAscii().data(), &st); + stream << this->name(); switch (this->type) { case TYPE_STL: - stream << "import_stl(file = \"" << this->filename << "\", " + stream << "(file = \"" << this->filename << "\", " "cache = \"" << std::hex << (int)st.st_mtime << "." << (int)st.st_size << "\", " "convexity = " << std::dec << this->convexity << ")"; break; case TYPE_OFF: - stream << "import_off(file = \"" << this->filename << "\", " + stream << "(file = \"" << this->filename << "\", " "cache = \"" << std::hex << (int)st.st_mtime << "." << (int)st.st_size << "\", " "convexity = " << std::dec << this->convexity << ")"; break; case TYPE_DXF: - stream << "import_dxf(file = \"" << this->filename << "\", " + stream << "(file = \"" << this->filename << "\", " "cache = \"" << std::hex << (int)st.st_mtime << "." << (int)st.st_size << "\", " "layer = \"" << this->layername << "\", " "origin = [ " << std::dec << this->origin_x << " " << this->origin_y << " ], " @@ -224,3 +225,20 @@ std::string ImportNode::toString() const return stream.str(); } + +std::string ImportNode::name() const +{ + switch (this->type) { + case TYPE_STL: + return "import_stl"; + break; + case TYPE_OFF: + return "import_off"; + break; + case TYPE_DXF: + return "import_dxf"; + break; + default: + assert(false); + } +} diff --git a/src/importnode.h b/src/importnode.h index 111b854..b45ce22 100644 --- a/src/importnode.h +++ b/src/importnode.h @@ -18,6 +18,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const; import_type_e type; QString filename; diff --git a/src/node.cc b/src/node.cc index 96a24ba..9607b27 100644 --- a/src/node.cc +++ b/src/node.cc @@ -66,16 +66,22 @@ Response AbstractPolyNode::accept(class State &state, Visitor &visitor) const std::string AbstractNode::toString() const { - std::stringstream stream; - stream << "group()"; - return stream.str(); + return this->name() + "()"; +} + +std::string AbstractNode::name() const +{ + return "group"; } std::string AbstractIntersectionNode::toString() const { - std::stringstream stream; - stream << "intersection()"; - return stream.str(); + return this->name() + "()"; +} + +std::string AbstractIntersectionNode::name() const +{ + return "intersection_for"; } void AbstractNode::progress_prepare() diff --git a/src/node.h b/src/node.h index 9980baa..db1f8e2 100644 --- a/src/node.h +++ b/src/node.h @@ -29,6 +29,10 @@ public: virtual ~AbstractNode(); virtual Response accept(class State &state, class Visitor &visitor) const; virtual std::string toString() const; + /*! The 'OpenSCAD name' of this node, defaults to classname, but can be + overloaded to provide specialization for e.g. CSG nodes, primitive nodes etc. + Used for human-readable output. */ + virtual std::string name() const; // FIXME: Make return value a reference const std::list getChildren() const { @@ -64,6 +68,7 @@ public: virtual ~AbstractIntersectionNode() { }; virtual Response accept(class State &state, class Visitor &visitor) const; virtual std::string toString() const; + virtual std::string name() const; }; class AbstractPolyNode : public AbstractNode diff --git a/src/primitives.cc b/src/primitives.cc index 7efe679..301df24 100644 --- a/src/primitives.cc +++ b/src/primitives.cc @@ -62,6 +62,34 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const { + switch (this->type) { + case CUBE: + return "cube"; + break; + case SPHERE: + return "sphere"; + break; + case CYLINDER: + return "cylinder"; + break; + case POLYHEDRON: + return "polyhedron"; + break; + case SQUARE: + return "square"; + break; + case CIRCLE: + return "circle"; + break; + case POLYGON: + return "polygon"; + break; + default: + assert(false && "PrimitiveNode::name(): Unknown primitive type"); + return AbstractPolyNode::name(); + } + } bool center; double x, y, z, h, r1, r2; @@ -74,7 +102,7 @@ public: AbstractNode *PrimitiveModule::evaluate(const Context *ctx, const ModuleInstantiation *inst) const { - PrimitiveNode *node = new PrimitiveNode(inst, type); + PrimitiveNode *node = new PrimitiveNode(inst, this->type); node->center = false; node->x = node->y = node->z = node->h = node->r1 = node->r2 = 1; @@ -82,26 +110,30 @@ AbstractNode *PrimitiveModule::evaluate(const Context *ctx, const ModuleInstanti QVector argnames; QVector argexpr; - if (type == CUBE) { + switch (this->type) { + case CUBE: argnames = QVector() << "size" << "center"; - } - if (type == SPHERE) { + break; + case SPHERE: argnames = QVector() << "r"; - } - if (type == CYLINDER) { + break; + case CYLINDER: argnames = QVector() << "h" << "r1" << "r2" << "center"; - } - if (type == POLYHEDRON) { + break; + case POLYHEDRON: argnames = QVector() << "points" << "triangles" << "convexity"; - } - if (type == SQUARE) { + break; + case SQUARE: argnames = QVector() << "size" << "center"; - } - if (type == CIRCLE) { + break; + case CIRCLE: argnames = QVector() << "r"; - } - if (type == POLYGON) { + break; + case POLYGON: argnames = QVector() << "points" << "paths" << "convexity"; + break; + default: + assert(false && "PrimitiveModule::evaluate(): Unknown node type"); } Context c(ctx); @@ -218,21 +250,21 @@ PolySet *PrimitiveNode::render_polyset(render_mode_e) const { PolySet *p = new PolySet(); - if (type == CUBE && x > 0 && y > 0 && z > 0) + if (this->type == CUBE && this->x > 0 && this->y > 0 && this->z > 0) { double x1, x2, y1, y2, z1, z2; - if (center) { - x1 = -x/2; - x2 = +x/2; - y1 = -y/2; - y2 = +y/2; - z1 = -z/2; - z2 = +z/2; + if (this->center) { + x1 = -this->x/2; + x2 = +this->x/2; + y1 = -this->y/2; + y2 = +this->y/2; + z1 = -this->z/2; + z2 = +this->z/2; } else { x1 = y1 = z1 = 0; - x2 = x; - y2 = y; - z2 = z; + x2 = this->x; + y2 = this->y; + z2 = this->z; } p->append_poly(); // top @@ -272,7 +304,7 @@ PolySet *PrimitiveNode::render_polyset(render_mode_e) const p->append_vertex(x1, y2, z2); } - if (type == SPHERE && r1 > 0) + if (this->type == SPHERE && this->r1 > 0) { struct point2d { double x, y; @@ -284,14 +316,14 @@ PolySet *PrimitiveNode::render_polyset(render_mode_e) const double r, z; }; - int rings = get_fragments_from_r(r1, fn, fs, fa); + int rings = get_fragments_from_r(this->r1, this->fn, this->fs, this->fa); ring_s ring[rings]; for (int i = 0; i < rings; i++) { double phi = (M_PI * (i + 0.5)) / rings; - ring[i].r = r1 * sin(phi); - ring[i].z = r1 * cos(phi); - ring[i].fragments = get_fragments_from_r(ring[i].r, fn, fs, fa); + ring[i].r = this->r1 * sin(phi); + ring[i].z = this->r1 * cos(phi); + ring[i].fragments = get_fragments_from_r(ring[i].r, this->fn, this->fs, this->fa); ring[i].points = new point2d[ring[i].fragments]; for (int j = 0; j < ring[i].fragments; j++) { phi = (M_PI*2*j) / ring[i].fragments; @@ -314,8 +346,7 @@ PolySet *PrimitiveNode::render_polyset(render_mode_e) const goto sphere_next_r2; if (r2i >= r2->fragments) goto sphere_next_r1; - if ((double)r1i / r1->fragments < - (double)r2i / r2->fragments) + if ((double)r1i / r1->fragments < (double)r2i / r2->fragments) { sphere_next_r1: p->append_poly(); @@ -341,17 +372,18 @@ sphere_next_r2: p->insert_vertex(ring[rings-1].points[i].x, ring[rings-1].points[i].y, ring[rings-1].z); } - if (type == CYLINDER && h > 0 && r1 >=0 && r2 >= 0 && (r1 > 0 || r2 > 0)) + if (this->type == CYLINDER && + this->h > 0 && this->r1 >=0 && this->r2 >= 0 && (this->r1 > 0 || this->r2 > 0)) { - int fragments = get_fragments_from_r(fmax(r1, r2), fn, fs, fa); + int fragments = get_fragments_from_r(fmax(this->r1, this->r2), this->fn, this->fs, this->fa); double z1, z2; - if (center) { - z1 = -h/2; - z2 = +h/2; + if (this->center) { + z1 = -this->h/2; + z2 = +this->h/2; } else { z1 = 0; - z2 = h; + z2 = this->h; } struct point2d { @@ -363,16 +395,16 @@ sphere_next_r2: for (int i=0; i 0) { - circle1[i].x = r1*cos(phi); - circle1[i].y = r1*sin(phi); + if (this->r1 > 0) { + circle1[i].x = this->r1*cos(phi); + circle1[i].y = this->r1*sin(phi); } else { circle1[i].x = 0; circle1[i].y = 0; } - if (r2 > 0) { - circle2[i].x = r2*cos(phi); - circle2[i].y = r2*sin(phi); + if (this->r2 > 0) { + circle2[i].x = this->r2*cos(phi); + circle2[i].y = this->r2*sin(phi); } else { circle2[i].x = 0; circle2[i].y = 0; @@ -381,13 +413,13 @@ sphere_next_r2: for (int i=0; i 0) { + if (this->r1 > 0) { p->append_poly(); p->insert_vertex(circle1[i].x, circle1[i].y, z1); p->insert_vertex(circle2[i].x, circle2[i].y, z2); p->insert_vertex(circle1[j].x, circle1[j].y, z1); } - if (r2 > 0) { + if (this->r2 > 0) { p->append_poly(); p->insert_vertex(circle2[i].x, circle2[i].y, z2); p->insert_vertex(circle2[j].x, circle2[j].y, z2); @@ -395,48 +427,48 @@ sphere_next_r2: } } - if (r1 > 0) { + if (this->r1 > 0) { p->append_poly(); for (int i=0; iinsert_vertex(circle1[i].x, circle1[i].y, z1); } - if (r2 > 0) { + if (this->r2 > 0) { p->append_poly(); for (int i=0; iappend_vertex(circle2[i].x, circle2[i].y, z2); } } - if (type == POLYHEDRON) + if (this->type == POLYHEDRON) { - p->convexity = convexity; - for (int i=0; iconvexity = this->convexity; + for (int i=0; itriangles.vec.size(); i++) { p->append_poly(); - for (int j=0; jvec.size(); j++) { - int pt = triangles.vec[i]->vec[j]->num; - if (pt < points.vec.size()) { + for (int j=0; jtriangles.vec[i]->vec.size(); j++) { + int pt = this->triangles.vec[i]->vec[j]->num; + if (pt < this->points.vec.size()) { double px, py, pz; - if (points.vec[pt]->getv3(px, py, pz)) + if (this->points.vec[pt]->getv3(px, py, pz)) p->insert_vertex(px, py, pz); } } } } - if (type == SQUARE) + if (this->type == SQUARE) { double x1, x2, y1, y2; - if (center) { - x1 = -x/2; - x2 = +x/2; - y1 = -y/2; - y2 = +y/2; + if (this->center) { + x1 = -this->x/2; + x2 = +this->x/2; + y1 = -this->y/2; + y2 = +this->y/2; } else { x1 = y1 = 0; - x2 = x; - y2 = y; + x2 = this->x; + y2 = this->y; } p->is2d = true; @@ -447,9 +479,9 @@ sphere_next_r2: p->append_vertex(x1, y2); } - if (type == CIRCLE) + if (this->type == CIRCLE) { - int fragments = get_fragments_from_r(r1, fn, fs, fa); + int fragments = get_fragments_from_r(this->r1, this->fn, this->fs, this->fa); struct point2d { double x, y; @@ -459,8 +491,8 @@ sphere_next_r2: for (int i=0; ir1*cos(phi); + circle[i].y = this->r1*sin(phi); } p->is2d = true; @@ -469,13 +501,13 @@ sphere_next_r2: p->append_vertex(circle[i].x, circle[i].y); } - if (type == POLYGON) + if (this->type == POLYGON) { DxfData dd; - for (int i=0; ipoints.vec.size(); i++) { double x,y; - if (!points.vec[i]->getv2(x, y)) { + if (!this->points.vec[i]->getv2(x, y)) { PRINTF("ERROR: Unable to convert point at index %d to a vec2 of numbers", i); // FIXME: Return NULL and make sure this is checked by all callers? return p; @@ -483,10 +515,10 @@ sphere_next_r2: dd.points.append(DxfData::Point(x, y)); } - if (paths.vec.size() == 0) + if (this->paths.vec.size() == 0) { dd.paths.append(DxfData::Path()); - for (int i=0; ipoints.vec.size(); i++) { assert(i < dd.points.size()); // FIXME: Not needed, but this used to be an 'if' DxfData::Point *p = &dd.points[i]; dd.paths.last().points.append(p); @@ -498,11 +530,11 @@ sphere_next_r2: } else { - for (int i=0; ipaths.vec.size(); i++) { dd.paths.append(DxfData::Path()); - for (int j=0; jvec.size(); j++) { - int idx = paths.vec[i]->vec[j]->num; + for (int j=0; jpaths.vec[i]->vec.size(); j++) { + int idx = this->paths.vec[i]->vec[j]->num; if (idx < dd.points.size()) { DxfData::Point *p = &dd.points[idx]; dd.paths.last().points.append(p); @@ -530,35 +562,37 @@ std::string PrimitiveNode::toString() const { std::stringstream stream; + stream << this->name(); + switch (this->type) { case CUBE: - stream << "cube(size = [" << this->x << ", " << this->y << ", " << this->z << "], " + stream << "(size = [" << this->x << ", " << this->y << ", " << this->z << "], " << "center = " << (center ? "true" : "false") << ")"; break; case SPHERE: - stream << "sphere($fn = " << this->fn << ", $fa = " << this->fa + stream << "($fn = " << this->fn << ", $fa = " << this->fa << ", $fs = " << this->fs << ", r = " << this->r1 << ")"; break; case CYLINDER: - stream << "cylinder($fn = " << this->fn << ", $fa = " << this->fa + stream << "($fn = " << this->fn << ", $fa = " << this->fa << ", $fs = " << this->fs << ", h = " << this->h << ", r1 = " << this->r1 << ", r2 = " << this->r2 << ", center = " << (center ? "true" : "false") << ")"; break; case POLYHEDRON: - stream << "polyhedron(points = " << this->points.dump() + stream << "(points = " << this->points.dump() << ", triangles = " << this->triangles.dump() << ", convexity = " << this->convexity << ")"; break; case SQUARE: - stream << "square(size = [" << this->x << ", " << this->y << "], " + stream << "(size = [" << this->x << ", " << this->y << "], " << "center = " << (center ? "true" : "false") << ")"; break; case CIRCLE: - stream << "circle($fn = " << this->fn << ", $fa = " << this->fa + stream << "($fn = " << this->fn << ", $fa = " << this->fa << ", $fs = " << this->fs << ", r = " << this->r1 << ")"; break; case POLYGON: - stream << "polygon(points = " << this->points.dump() << ", paths = " << this->paths.dump() << ", convexity = " << this->convexity << ")"; + stream << "(points = " << this->points.dump() << ", paths = " << this->paths.dump() << ", convexity = " << this->convexity << ")"; break; default: assert(false); diff --git a/src/projectionnode.h b/src/projectionnode.h index 3646d84..9cc7918 100644 --- a/src/projectionnode.h +++ b/src/projectionnode.h @@ -14,6 +14,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const { return "projection"; } int convexity; bool cut_mode; diff --git a/src/render.cc b/src/render.cc index 54eb9c7..b85c446 100644 --- a/src/render.cc +++ b/src/render.cc @@ -81,7 +81,7 @@ std::string RenderNode::toString() const { std::stringstream stream; - stream << "render(convexity = " << convexity << ")"; + stream << this->name() << "(convexity = " << convexity << ")"; return stream.str(); } diff --git a/src/rendernode.h b/src/rendernode.h index 99a5316..c5ebdae 100644 --- a/src/rendernode.h +++ b/src/rendernode.h @@ -12,6 +12,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const { return "render"; } int convexity; }; diff --git a/src/surface.cc b/src/surface.cc index 9b05fe9..b5f631e 100644 --- a/src/surface.cc +++ b/src/surface.cc @@ -51,6 +51,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const { return "surface"; } QString filename; bool center; @@ -207,7 +208,7 @@ std::string SurfaceNode::toString() const { std::stringstream stream; - stream << "surface(file = \"" << this->filename + stream << this->name() << "(file = \"" << this->filename << "\", center = " << (this->center ? "true" : "false") << ")"; return stream.str(); diff --git a/src/transform.cc b/src/transform.cc index 6b4d926..ccfc1aa 100644 --- a/src/transform.cc +++ b/src/transform.cc @@ -34,6 +34,7 @@ #include "printutils.h" #include "visitor.h" #include +#include enum transform_type_e { SCALE, @@ -64,29 +65,33 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti QVector argnames; QVector argexpr; - if (type == SCALE) { + switch (this->type) { + case SCALE: argnames = QVector() << "v"; - } - if (type == ROTATE) { + break; + case ROTATE: argnames = QVector() << "a" << "v"; - } - if (type == MIRROR) { + break; + case MIRROR: argnames = QVector() << "v"; - } - if (type == TRANSLATE) { + break; + case TRANSLATE: argnames = QVector() << "v"; - } - if (type == MULTMATRIX) { + break; + case MULTMATRIX: argnames = QVector() << "m"; - } - if (type == COLOR) { + break; + case COLOR: argnames = QVector() << "c"; + break; + default: + assert(false); } Context c(ctx); c.args(argnames, argexpr, inst->argnames, inst->argvalues); - if (type == SCALE) + if (this->type == SCALE) { Value v = c.lookup_variable("v"); v.getnum(node->matrix[0]); @@ -96,7 +101,7 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti if (node->matrix[10] <= 0) node->matrix[10] = 1; } - if (type == ROTATE) + else if (this->type == ROTATE) { Value val_a = c.lookup_variable("a"); if (val_a.type == Value::VECTOR) @@ -167,7 +172,7 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti } } } - if (type == MIRROR) + else if (this->type == MIRROR) { Value val_v = c.lookup_variable("v"); double x = 1, y = 0, z = 0; @@ -194,12 +199,12 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti node->matrix[10] = 1-2*z*z; } } - if (type == TRANSLATE) + else if (this->type == TRANSLATE) { Value v = c.lookup_variable("v"); v.getv3(node->matrix[12], node->matrix[13], node->matrix[14]); } - if (type == MULTMATRIX) + else if (this->type == MULTMATRIX) { Value v = c.lookup_variable("m"); if (v.type == Value::VECTOR) { @@ -210,7 +215,7 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti } } } - if (type == COLOR) + else if (this->type == COLOR) { Value v = c.lookup_variable("c"); if (v.type == Value::VECTOR) { @@ -253,6 +258,11 @@ std::string TransformNode::toString() const return stream.str(); } +std::string TransformNode::name() const +{ + return "transform"; +} + void register_builtin_transform() { builtin_modules["scale"] = new TransformModule(SCALE); diff --git a/src/transformnode.h b/src/transformnode.h index 95057f6..9afa9be 100644 --- a/src/transformnode.h +++ b/src/transformnode.h @@ -12,6 +12,7 @@ public: return visitor.visit(state, *this); } virtual std::string toString() const; + virtual std::string name() const; double matrix[20]; }; diff --git a/test-code/CSGTextRenderer.cc b/test-code/CSGTextRenderer.cc index 6f1010c..b55c88f 100644 --- a/test-code/CSGTextRenderer.cc +++ b/test-code/CSGTextRenderer.cc @@ -50,8 +50,7 @@ CSGTextRenderer::process(string &target, const string &src, CSGTextRenderer::Csg void CSGTextRenderer::applyToChildren(const AbstractNode &node, CSGTextRenderer::CsgOp op) { std::stringstream stream; - stream << typeid(node).name(); - stream << "<" << node.index() << ">"; + stream << node.name() << node.index(); string N = stream.str(); if (this->visitedchildren[node.index()].size() > 0) { // FIXME: assert that cache contains nodes in code below @@ -84,7 +83,7 @@ void CSGTextRenderer::applyToChildren(const AbstractNode &node, CSGTextRenderer: o In postfix: addToParent() */ -Response CSGTextRenderer::visit(const State &state, const AbstractNode &node) +Response CSGTextRenderer::visit(State &state, const AbstractNode &node) { if (state.isPrefix() && isCached(node)) return PruneTraversal; if (state.isPostfix()) { @@ -94,7 +93,7 @@ Response CSGTextRenderer::visit(const State &state, const AbstractNode &node) return ContinueTraversal; } -Response CSGTextRenderer::visit(const State &state, const AbstractIntersectionNode &node) +Response CSGTextRenderer::visit(State &state, const AbstractIntersectionNode &node) { if (state.isPrefix() && isCached(node)) return PruneTraversal; if (state.isPostfix()) { @@ -104,7 +103,7 @@ Response CSGTextRenderer::visit(const State &state, const AbstractIntersectionNo return ContinueTraversal; } -Response CSGTextRenderer::visit(const State &state, const CsgNode &node) +Response CSGTextRenderer::visit(State &state, const CsgNode &node) { if (state.isPrefix() && isCached(node)) return PruneTraversal; if (state.isPostfix()) { @@ -128,7 +127,7 @@ Response CSGTextRenderer::visit(const State &state, const CsgNode &node) return ContinueTraversal; } -Response CSGTextRenderer::visit(const State &state, const TransformNode &node) +Response CSGTextRenderer::visit(State &state, const TransformNode &node) { if (state.isPrefix() && isCached(node)) return PruneTraversal; if (state.isPostfix()) { @@ -151,7 +150,7 @@ Response CSGTextRenderer::visit(const State &state, const TransformNode &node) // DxfRotateExtrudeNode // (SurfaceNode) // (PrimitiveNode) -Response CSGTextRenderer::visit(const State &state, const AbstractPolyNode &node) +Response CSGTextRenderer::visit(State &state, const AbstractPolyNode &node) { if (state.isPrefix() && isCached(node)) return PruneTraversal; if (state.isPostfix()) { @@ -160,7 +159,7 @@ Response CSGTextRenderer::visit(const State &state, const AbstractPolyNode &node // FIXME: Manage caching // FIXME: Will generate one single Nef polyhedron (no csg ops necessary) - string N = typeid(node).name(); + string N = node.name(); this->cache.insert(node, N); // std::cout << "Insert: " << N << "\n"; diff --git a/test-code/CSGTextRenderer.h b/test-code/CSGTextRenderer.h index 4085e60..79a8a96 100644 --- a/test-code/CSGTextRenderer.h +++ b/test-code/CSGTextRenderer.h @@ -17,11 +17,11 @@ public: CSGTextRenderer(CSGTextCache &cache) : cache(cache) {} virtual ~CSGTextRenderer() {} - virtual Response visit(const State &state, const AbstractNode &node); - virtual Response visit(const State &state, const AbstractIntersectionNode &node); - virtual Response visit(const State &state, const CsgNode &node); - virtual Response visit(const State &state, const TransformNode &node); - virtual Response visit(const State &state, const AbstractPolyNode &node); + virtual Response visit(State &state, const AbstractNode &node); + virtual Response visit(State &state, const AbstractIntersectionNode &node); + virtual Response visit(State &state, const CsgNode &node); + virtual Response visit(State &state, const TransformNode &node); + virtual Response visit(State &state, const AbstractPolyNode &node); private: enum CsgOp {UNION, INTERSECTION, DIFFERENCE, MINKOWSKI}; diff --git a/tests/regression/csgtexttest/allmodules-expected.txt b/tests/regression/csgtexttest/allmodules-expected.txt index 049d3cd..722315b 100644 --- a/tests/regression/csgtexttest/allmodules-expected.txt +++ b/tests/regression/csgtexttest/allmodules-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(11CgaladvNode<2>+11CgaladvNode<3>+11CgaladvNode<4>+12AbstractNode<5>+12AbstractNode<5>+12AbstractNode<5>+24AbstractIntersectionNode<8>+12AbstractNode<5>+7CsgNode<10>+7CsgNode<11>+24AbstractIntersectionNode<8>+20DxfLinearExtrudeNode+20DxfLinearExtrudeNode+20DxfRotateExtrudeNode+20DxfRotateExtrudeNode+10ImportNode+10ImportNode+10ImportNode+12AbstractNode<5>+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+14ProjectionNode+10RenderNode<29>+11SurfaceNode+13TransformNode<31>+13TransformNode<31>+13TransformNode<33>+13TransformNode<31>+13TransformNode<31>+13TransformNode<31>) +group1(minkowski2+glide3+subdiv4+group5+group5+group5+intersection_for8+group5+union10+difference11+intersection12+linear_extrude+linear_extrude+rotate_extrude+rotate_extrude+import_stl+import_off+import_dxf+group5+cube+sphere+cylinder+polyhedron+square+circle+polygon+projection+render29+surface+transform31+transform31+transform33+transform31+transform31+transform31) diff --git a/tests/regression/csgtexttest/assign-expected.txt b/tests/regression/csgtexttest/assign-expected.txt index 986a051..a08e59e 100644 --- a/tests/regression/csgtexttest/assign-expected.txt +++ b/tests/regression/csgtexttest/assign-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(12AbstractNode<2>) +group1(group2) diff --git a/tests/regression/csgtexttest/child-expected.txt b/tests/regression/csgtexttest/child-expected.txt index d24c663..331822f 100644 --- a/tests/regression/csgtexttest/child-expected.txt +++ b/tests/regression/csgtexttest/child-expected.txt @@ -1 +1 @@ -12AbstractNode<1> +group1 diff --git a/tests/regression/csgtexttest/circle-expected.txt b/tests/regression/csgtexttest/circle-expected.txt index 4c6db24..44ca16a 100644 --- a/tests/regression/csgtexttest/circle-expected.txt +++ b/tests/regression/csgtexttest/circle-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(circle) diff --git a/tests/regression/csgtexttest/color-expected.txt b/tests/regression/csgtexttest/color-expected.txt index d71cebb..80024d2 100644 --- a/tests/regression/csgtexttest/color-expected.txt +++ b/tests/regression/csgtexttest/color-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13TransformNode<2>) +group1(transform2) diff --git a/tests/regression/csgtexttest/cube-expected.txt b/tests/regression/csgtexttest/cube-expected.txt index 4c6db24..07b688d 100644 --- a/tests/regression/csgtexttest/cube-expected.txt +++ b/tests/regression/csgtexttest/cube-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(cube) diff --git a/tests/regression/csgtexttest/cylinder-expected.txt b/tests/regression/csgtexttest/cylinder-expected.txt index 4c6db24..3f8a41f 100644 --- a/tests/regression/csgtexttest/cylinder-expected.txt +++ b/tests/regression/csgtexttest/cylinder-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(cylinder) diff --git a/tests/regression/csgtexttest/difference-expected.txt b/tests/regression/csgtexttest/difference-expected.txt index 832439e..551bb16 100644 --- a/tests/regression/csgtexttest/difference-expected.txt +++ b/tests/regression/csgtexttest/difference-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(7CsgNode<2>) +group1(difference2) diff --git a/tests/regression/csgtexttest/difference-tests-expected.txt b/tests/regression/csgtexttest/difference-tests-expected.txt index a2e8bbd..6bbfe30 100644 --- a/tests/regression/csgtexttest/difference-tests-expected.txt +++ b/tests/regression/csgtexttest/difference-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(7CsgNode<2>(13PrimitiveNode-13PrimitiveNode)) +group1(difference2(sphere-cube)) diff --git a/tests/regression/csgtexttest/dim-all-expected.txt b/tests/regression/csgtexttest/dim-all-expected.txt index d107210..6c127a8 100644 --- a/tests/regression/csgtexttest/dim-all-expected.txt +++ b/tests/regression/csgtexttest/dim-all-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(12AbstractNode<2>+12AbstractNode<2>+12AbstractNode<2>+12AbstractNode<2>+12AbstractNode<2>+12AbstractNode<2>+12AbstractNode<2>+12AbstractNode<2>) +group1(group2+group2+group2+group2+group2+group2+group2+group2) diff --git a/tests/regression/csgtexttest/dxf_linear_extrude-expected.txt b/tests/regression/csgtexttest/dxf_linear_extrude-expected.txt index 7c186b4..fa1671c 100644 --- a/tests/regression/csgtexttest/dxf_linear_extrude-expected.txt +++ b/tests/regression/csgtexttest/dxf_linear_extrude-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfLinearExtrudeNode) +group1(linear_extrude) diff --git a/tests/regression/csgtexttest/dxf_rotate_extrude-expected.txt b/tests/regression/csgtexttest/dxf_rotate_extrude-expected.txt index 91497f9..452f8e4 100644 --- a/tests/regression/csgtexttest/dxf_rotate_extrude-expected.txt +++ b/tests/regression/csgtexttest/dxf_rotate_extrude-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfRotateExtrudeNode) +group1(rotate_extrude) diff --git a/tests/regression/csgtexttest/echo-expected.txt b/tests/regression/csgtexttest/echo-expected.txt index 986a051..a08e59e 100644 --- a/tests/regression/csgtexttest/echo-expected.txt +++ b/tests/regression/csgtexttest/echo-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(12AbstractNode<2>) +group1(group2) diff --git a/tests/regression/csgtexttest/for-expected.txt b/tests/regression/csgtexttest/for-expected.txt index 986a051..a08e59e 100644 --- a/tests/regression/csgtexttest/for-expected.txt +++ b/tests/regression/csgtexttest/for-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(12AbstractNode<2>) +group1(group2) diff --git a/tests/regression/csgtexttest/glide-expected.txt b/tests/regression/csgtexttest/glide-expected.txt index 53d5c8c..a792750 100644 --- a/tests/regression/csgtexttest/glide-expected.txt +++ b/tests/regression/csgtexttest/glide-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(11CgaladvNode<2>) +group1(glide2) diff --git a/tests/regression/csgtexttest/group-expected.txt b/tests/regression/csgtexttest/group-expected.txt index 986a051..a08e59e 100644 --- a/tests/regression/csgtexttest/group-expected.txt +++ b/tests/regression/csgtexttest/group-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(12AbstractNode<2>) +group1(group2) diff --git a/tests/regression/csgtexttest/if-expected.txt b/tests/regression/csgtexttest/if-expected.txt index 986a051..a08e59e 100644 --- a/tests/regression/csgtexttest/if-expected.txt +++ b/tests/regression/csgtexttest/if-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(12AbstractNode<2>) +group1(group2) diff --git a/tests/regression/csgtexttest/import_dxf-expected.txt b/tests/regression/csgtexttest/import_dxf-expected.txt index 44bc994..ffb96fc 100644 --- a/tests/regression/csgtexttest/import_dxf-expected.txt +++ b/tests/regression/csgtexttest/import_dxf-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(10ImportNode) +group1(import_dxf) diff --git a/tests/regression/csgtexttest/import_off-expected.txt b/tests/regression/csgtexttest/import_off-expected.txt index 44bc994..8a3bafa 100644 --- a/tests/regression/csgtexttest/import_off-expected.txt +++ b/tests/regression/csgtexttest/import_off-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(10ImportNode) +group1(import_off) diff --git a/tests/regression/csgtexttest/import_stl-expected.txt b/tests/regression/csgtexttest/import_stl-expected.txt index 44bc994..47c4707 100644 --- a/tests/regression/csgtexttest/import_stl-expected.txt +++ b/tests/regression/csgtexttest/import_stl-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(10ImportNode) +group1(import_stl) diff --git a/tests/regression/csgtexttest/import_stl-tests-expected.txt b/tests/regression/csgtexttest/import_stl-tests-expected.txt index 44bc994..47c4707 100644 --- a/tests/regression/csgtexttest/import_stl-tests-expected.txt +++ b/tests/regression/csgtexttest/import_stl-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(10ImportNode) +group1(import_stl) diff --git a/tests/regression/csgtexttest/intersection-expected.txt b/tests/regression/csgtexttest/intersection-expected.txt index 832439e..0ce0967 100644 --- a/tests/regression/csgtexttest/intersection-expected.txt +++ b/tests/regression/csgtexttest/intersection-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(7CsgNode<2>) +group1(intersection2) diff --git a/tests/regression/csgtexttest/intersection-tests-expected.txt b/tests/regression/csgtexttest/intersection-tests-expected.txt index c45076e..3077e22 100644 --- a/tests/regression/csgtexttest/intersection-tests-expected.txt +++ b/tests/regression/csgtexttest/intersection-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(7CsgNode<2>(13PrimitiveNode*13PrimitiveNode)) +group1(intersection2(sphere*cube)) diff --git a/tests/regression/csgtexttest/intersection_for-expected.txt b/tests/regression/csgtexttest/intersection_for-expected.txt index 833471a..b503644 100644 --- a/tests/regression/csgtexttest/intersection_for-expected.txt +++ b/tests/regression/csgtexttest/intersection_for-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(24AbstractIntersectionNode<2>) +group1(intersection_for2) diff --git a/tests/regression/csgtexttest/linear_extrude-expected.txt b/tests/regression/csgtexttest/linear_extrude-expected.txt index 7c186b4..fa1671c 100644 --- a/tests/regression/csgtexttest/linear_extrude-expected.txt +++ b/tests/regression/csgtexttest/linear_extrude-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfLinearExtrudeNode) +group1(linear_extrude) diff --git a/tests/regression/csgtexttest/linear_extrude-tests-expected.txt b/tests/regression/csgtexttest/linear_extrude-tests-expected.txt index cb86e16..f9639c9 100644 --- a/tests/regression/csgtexttest/linear_extrude-tests-expected.txt +++ b/tests/regression/csgtexttest/linear_extrude-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfLinearExtrudeNode+13TransformNode<4>(20DxfLinearExtrudeNode)+13TransformNode<7>(20DxfLinearExtrudeNode)+13TransformNode<10>(20DxfLinearExtrudeNode)+13TransformNode<13>(20DxfLinearExtrudeNode)+13TransformNode<16>(20DxfLinearExtrudeNode)) +group1(linear_extrude+transform4(linear_extrude)+transform7(linear_extrude)+transform10(linear_extrude)+transform13(linear_extrude)+transform16(linear_extrude)) diff --git a/tests/regression/csgtexttest/minkowski-expected.txt b/tests/regression/csgtexttest/minkowski-expected.txt index 53d5c8c..e601bac 100644 --- a/tests/regression/csgtexttest/minkowski-expected.txt +++ b/tests/regression/csgtexttest/minkowski-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(11CgaladvNode<2>) +group1(minkowski2) diff --git a/tests/regression/csgtexttest/mirror-expected.txt b/tests/regression/csgtexttest/mirror-expected.txt index d71cebb..80024d2 100644 --- a/tests/regression/csgtexttest/mirror-expected.txt +++ b/tests/regression/csgtexttest/mirror-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13TransformNode<2>) +group1(transform2) diff --git a/tests/regression/csgtexttest/multmatrix-expected.txt b/tests/regression/csgtexttest/multmatrix-expected.txt index d71cebb..80024d2 100644 --- a/tests/regression/csgtexttest/multmatrix-expected.txt +++ b/tests/regression/csgtexttest/multmatrix-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13TransformNode<2>) +group1(transform2) diff --git a/tests/regression/csgtexttest/null-polygons-expected.txt b/tests/regression/csgtexttest/null-polygons-expected.txt index 42cbc30..4afd2e4 100644 --- a/tests/regression/csgtexttest/null-polygons-expected.txt +++ b/tests/regression/csgtexttest/null-polygons-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfLinearExtrudeNode+20DxfLinearExtrudeNode) +group1(linear_extrude+linear_extrude) diff --git a/tests/regression/csgtexttest/polygon-expected.txt b/tests/regression/csgtexttest/polygon-expected.txt index 4c6db24..e308e30 100644 --- a/tests/regression/csgtexttest/polygon-expected.txt +++ b/tests/regression/csgtexttest/polygon-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(polygon) diff --git a/tests/regression/csgtexttest/polygon-illegal-winding-expected.txt b/tests/regression/csgtexttest/polygon-illegal-winding-expected.txt index 4c6db24..994b16d 100644 --- a/tests/regression/csgtexttest/polygon-illegal-winding-expected.txt +++ b/tests/regression/csgtexttest/polygon-illegal-winding-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(polyhedron) diff --git a/tests/regression/csgtexttest/polyhedron-expected.txt b/tests/regression/csgtexttest/polyhedron-expected.txt index 4c6db24..994b16d 100644 --- a/tests/regression/csgtexttest/polyhedron-expected.txt +++ b/tests/regression/csgtexttest/polyhedron-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(polyhedron) diff --git a/tests/regression/csgtexttest/polyset-reduce-crash-expected.txt b/tests/regression/csgtexttest/polyset-reduce-crash-expected.txt index b30be1f..93ab028 100644 --- a/tests/regression/csgtexttest/polyset-reduce-crash-expected.txt +++ b/tests/regression/csgtexttest/polyset-reduce-crash-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13TransformNode<2>(7CsgNode<3>(13TransformNode<4>(13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode+13PrimitiveNode)+13PrimitiveNode))) +group1(transform2(union3(transform4(polygon+polygon+polygon+polygon+polygon+polygon+polygon+polygon)+circle))) diff --git a/tests/regression/csgtexttest/projection-expected.txt b/tests/regression/csgtexttest/projection-expected.txt index a36633d..38b6abf 100644 --- a/tests/regression/csgtexttest/projection-expected.txt +++ b/tests/regression/csgtexttest/projection-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(14ProjectionNode) +group1(projection) diff --git a/tests/regression/csgtexttest/projection-tests-expected.txt b/tests/regression/csgtexttest/projection-tests-expected.txt index 9da48a0..aa9c079 100644 --- a/tests/regression/csgtexttest/projection-tests-expected.txt +++ b/tests/regression/csgtexttest/projection-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfLinearExtrudeNode+13TransformNode<5>(20DxfLinearExtrudeNode)+13TransformNode<10>(20DxfLinearExtrudeNode)) +group1(linear_extrude+transform5(linear_extrude)+transform10(linear_extrude)) diff --git a/tests/regression/csgtexttest/render-expected.txt b/tests/regression/csgtexttest/render-expected.txt index d7c1c47..b53708e 100644 --- a/tests/regression/csgtexttest/render-expected.txt +++ b/tests/regression/csgtexttest/render-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(10RenderNode<2>) +group1(render2) diff --git a/tests/regression/csgtexttest/rotate-expected.txt b/tests/regression/csgtexttest/rotate-expected.txt index d71cebb..80024d2 100644 --- a/tests/regression/csgtexttest/rotate-expected.txt +++ b/tests/regression/csgtexttest/rotate-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13TransformNode<2>) +group1(transform2) diff --git a/tests/regression/csgtexttest/rotate_extrude-expected.txt b/tests/regression/csgtexttest/rotate_extrude-expected.txt index 91497f9..452f8e4 100644 --- a/tests/regression/csgtexttest/rotate_extrude-expected.txt +++ b/tests/regression/csgtexttest/rotate_extrude-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfRotateExtrudeNode) +group1(rotate_extrude) diff --git a/tests/regression/csgtexttest/rotate_extrude-tests-expected.txt b/tests/regression/csgtexttest/rotate_extrude-tests-expected.txt index 91497f9..452f8e4 100644 --- a/tests/regression/csgtexttest/rotate_extrude-tests-expected.txt +++ b/tests/regression/csgtexttest/rotate_extrude-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(20DxfRotateExtrudeNode) +group1(rotate_extrude) diff --git a/tests/regression/csgtexttest/scale-expected.txt b/tests/regression/csgtexttest/scale-expected.txt index d71cebb..80024d2 100644 --- a/tests/regression/csgtexttest/scale-expected.txt +++ b/tests/regression/csgtexttest/scale-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13TransformNode<2>) +group1(transform2) diff --git a/tests/regression/csgtexttest/sphere-expected.txt b/tests/regression/csgtexttest/sphere-expected.txt index 4c6db24..2bf6a72 100644 --- a/tests/regression/csgtexttest/sphere-expected.txt +++ b/tests/regression/csgtexttest/sphere-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(sphere) diff --git a/tests/regression/csgtexttest/sphere-tests-expected.txt b/tests/regression/csgtexttest/sphere-tests-expected.txt index 5449500..94323fd 100644 --- a/tests/regression/csgtexttest/sphere-tests-expected.txt +++ b/tests/regression/csgtexttest/sphere-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode+13TransformNode<3>(13PrimitiveNode)+13TransformNode<5>(13PrimitiveNode)+13TransformNode<7>(13PrimitiveNode)) +group1(sphere+transform3(sphere)+transform5(sphere)+transform7(sphere)) diff --git a/tests/regression/csgtexttest/square-expected.txt b/tests/regression/csgtexttest/square-expected.txt index 4c6db24..e235806 100644 --- a/tests/regression/csgtexttest/square-expected.txt +++ b/tests/regression/csgtexttest/square-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13PrimitiveNode) +group1(square) diff --git a/tests/regression/csgtexttest/subdiv-expected.txt b/tests/regression/csgtexttest/subdiv-expected.txt index 53d5c8c..b096229 100644 --- a/tests/regression/csgtexttest/subdiv-expected.txt +++ b/tests/regression/csgtexttest/subdiv-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(11CgaladvNode<2>) +group1(subdiv2) diff --git a/tests/regression/csgtexttest/surface-expected.txt b/tests/regression/csgtexttest/surface-expected.txt index 17cbda1..7c822d3 100644 --- a/tests/regression/csgtexttest/surface-expected.txt +++ b/tests/regression/csgtexttest/surface-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(11SurfaceNode) +group1(surface) diff --git a/tests/regression/csgtexttest/surface-tests-expected.txt b/tests/regression/csgtexttest/surface-tests-expected.txt index 17cbda1..7c822d3 100644 --- a/tests/regression/csgtexttest/surface-tests-expected.txt +++ b/tests/regression/csgtexttest/surface-tests-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(11SurfaceNode) +group1(surface) diff --git a/tests/regression/csgtexttest/transform-insert-expected.txt b/tests/regression/csgtexttest/transform-insert-expected.txt index 44bc994..ffb96fc 100644 --- a/tests/regression/csgtexttest/transform-insert-expected.txt +++ b/tests/regression/csgtexttest/transform-insert-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(10ImportNode) +group1(import_dxf) diff --git a/tests/regression/csgtexttest/translate-expected.txt b/tests/regression/csgtexttest/translate-expected.txt index d71cebb..80024d2 100644 --- a/tests/regression/csgtexttest/translate-expected.txt +++ b/tests/regression/csgtexttest/translate-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(13TransformNode<2>) +group1(transform2) diff --git a/tests/regression/csgtexttest/union-expected.txt b/tests/regression/csgtexttest/union-expected.txt index 832439e..1884c0f 100644 --- a/tests/regression/csgtexttest/union-expected.txt +++ b/tests/regression/csgtexttest/union-expected.txt @@ -1 +1 @@ -12AbstractNode<1>(7CsgNode<2>) +group1(union2) -- cgit v0.10.1