bool ChimeraWriter::handle_polygon(PolygonGeometry *g, Color color, std::string name) { cleanup(name, false, true); Ints triangles = internal::get_triangles(g); get_stream() << "v=["; for (unsigned int i = 0; i < g->get_geometry().size(); ++i) { get_stream() << "(" << commas_io(g->get_geometry()[i]) << "), "; } get_stream() << "]\n"; get_stream() << "vi=["; for (unsigned int i = 0; i < triangles.size() / 3; ++i) { get_stream() << "(" << triangles[3 * i] << ", " << triangles[3 * i + 1] << ", " << triangles[3 * i + 2] << "), "; } get_stream() << "]\n"; get_stream() << "m.addPiece(v, vi, (" << commas_io(color) << ", 1))\n"; return true; }
bool ChimeraWriter::handle_triangle(TriangleGeometry *g, Color color, std::string name) { cleanup(name, false, true); get_stream() << "v=["; for (unsigned int i=0; i< 3; ++i) { get_stream() << "(" << commas_io(g->get_geometry().get_point(i)) << "), "; } get_stream() << "]\n"; get_stream() << "vi=["; for (unsigned int i=2; i< 3; ++i) { get_stream() << "("; get_stream() << "0" << ", " << i-1 << ", " << i; get_stream() << "), "; } get_stream() << "]\n"; get_stream() << "m.addPiece(v, vi, (" << commas_io(color) << ", 1))\n"; return true; }
bool ChimeraWriter::handle_segment(SegmentGeometry *g, Color color, std::string name) { cleanup(name, true); write_marker(get_stream(), g->get_geometry().get_point(0), color, 0); get_stream() << "ml=mark\n"; write_marker(get_stream(), g->get_geometry().get_point(1), color, 0); get_stream() << "Link(ml, mark, (" << commas_io(color) << ")"; get_stream() << ", .1)\n"; get_stream() << "ml=mark\n"; return true; }