From 5ec06b9f24208c66da236bace304c3164b5b13a7 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 3 Aug 2019 00:17:02 +0200 Subject: [PATCH] WIP: library browser - show BASIC PCell variants with more parameters so they can be told apart. --- src/lib/lib/libBasicArc.cc | 8 +++++++- src/lib/lib/libBasicCircle.cc | 5 ++++- src/lib/lib/libBasicDonut.cc | 6 +++++- src/lib/lib/libBasicEllipse.cc | 6 +++++- src/lib/lib/libBasicPie.cc | 7 ++++++- src/lib/lib/libBasicRoundPath.cc | 5 ++++- src/lib/lib/libBasicRoundPolygon.cc | 5 ++++- src/lib/lib/libBasicStrokedPolygon.cc | 7 ++++++- src/lib/lib/libBasicText.cc | 3 ++- 9 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/lib/lib/libBasicArc.cc b/src/lib/lib/libBasicArc.cc index 27112d4d3..0ad950218 100644 --- a/src/lib/lib/libBasicArc.cc +++ b/src/lib/lib/libBasicArc.cc @@ -204,7 +204,13 @@ BasicArc::produce (const db::Layout &layout, const std::vector &la std::string BasicArc::get_display_name (const db::pcell_parameters_type ¶meters) const { - return std::string("ARC(r=") + tl::micron_to_string (parameters [p_actual_radius1].to_double ()) + ".." + tl::micron_to_string (parameters [p_actual_radius2].to_double ()) + ",a=" + tl::to_string (parameters [p_start_angle].to_double (), 6) + ".." + tl::to_string (parameters [p_end_angle].to_double (), 6) + ")"; + return "ARC(l=" + std::string (parameters [p_layer].to_string ()) + + ",r=" + tl::to_string (parameters [p_actual_radius1].to_double ()) + + ".." + tl::to_string (parameters [p_actual_radius2].to_double ()) + + ",a=" + tl::to_string (parameters [p_start_angle].to_double (), 6) + + ".." + tl::to_string (parameters [p_end_angle].to_double (), 6) + + ",n=" + tl::to_string (parameters [p_npoints].to_int ()) + + ")"; } std::vector diff --git a/src/lib/lib/libBasicCircle.cc b/src/lib/lib/libBasicCircle.cc index bcc29411c..049387f1c 100644 --- a/src/lib/lib/libBasicCircle.cc +++ b/src/lib/lib/libBasicCircle.cc @@ -142,7 +142,10 @@ BasicCircle::produce (const db::Layout &layout, const std::vector std::string BasicCircle::get_display_name (const db::pcell_parameters_type ¶meters) const { - return std::string("CIRCLE(r=") + tl::micron_to_string (parameters [p_actual_radius].to_double ()) + ")"; + return "CIRCLE(l=" + std::string (parameters [p_layer].to_string ()) + + ",r=" + tl::to_string (parameters [p_actual_radius].to_double ()) + + ",n=" + tl::to_string (parameters [p_npoints].to_int ()) + + ")"; } std::vector diff --git a/src/lib/lib/libBasicDonut.cc b/src/lib/lib/libBasicDonut.cc index 9b1a53ad2..504534288 100644 --- a/src/lib/lib/libBasicDonut.cc +++ b/src/lib/lib/libBasicDonut.cc @@ -169,7 +169,11 @@ BasicDonut::produce (const db::Layout &layout, const std::vector & std::string BasicDonut::get_display_name (const db::pcell_parameters_type ¶meters) const { - return std::string("DONUT(r=") + tl::micron_to_string (parameters [p_actual_radius1].to_double ()) + ".." + tl::micron_to_string (parameters [p_actual_radius2].to_double ()) + ")"; + return "DONUT(l=" + std::string (parameters [p_layer].to_string ()) + + ",r=" + tl::to_string (parameters [p_actual_radius1].to_double ()) + + ".." + tl::to_string (parameters [p_actual_radius2].to_double ()) + + ",n=" + tl::to_string (parameters [p_npoints].to_int ()) + + ")"; } std::vector diff --git a/src/lib/lib/libBasicEllipse.cc b/src/lib/lib/libBasicEllipse.cc index 1d213452e..d0eb147ef 100644 --- a/src/lib/lib/libBasicEllipse.cc +++ b/src/lib/lib/libBasicEllipse.cc @@ -173,7 +173,11 @@ BasicEllipse::produce (const db::Layout &layout, const std::vector std::string BasicEllipse::get_display_name (const db::pcell_parameters_type ¶meters) const { - return std::string("ELLIPSE(rx=") + tl::micron_to_string (parameters [p_actual_radius_x].to_double ()) + ",ry=" + tl::micron_to_string (parameters [p_actual_radius_y].to_double ()) + ")"; + return "ELLIPSE(l=" + std::string (parameters [p_layer].to_string ()) + + ",rx=" + tl::to_string (parameters [p_actual_radius_x].to_double ()) + + ",ry=" + tl::to_string (parameters [p_actual_radius_y].to_double ()) + + ",n=" + tl::to_string (parameters [p_npoints].to_int ()) + + ")"; } std::vector diff --git a/src/lib/lib/libBasicPie.cc b/src/lib/lib/libBasicPie.cc index bd3bc6d12..46e8b766b 100644 --- a/src/lib/lib/libBasicPie.cc +++ b/src/lib/lib/libBasicPie.cc @@ -186,7 +186,12 @@ BasicPie::produce (const db::Layout &layout, const std::vector &la std::string BasicPie::get_display_name (const db::pcell_parameters_type ¶meters) const { - return std::string("PIE(r=") + tl::micron_to_string (parameters [p_actual_radius].to_double ()) + ",a=" + tl::to_string (parameters [p_start_angle].to_double (), 6) + ".." + tl::to_string (parameters [p_end_angle].to_double (), 6) + ")"; + return "PIE(l=" + std::string (parameters [p_layer].to_string ()) + + ",r=" + tl::to_string (parameters [p_actual_radius].to_double ()) + + ",a=" + tl::to_string (parameters [p_start_angle].to_double (), 6) + + ".." + tl::to_string (parameters [p_end_angle].to_double (), 6) + + ",n=" + tl::to_string (parameters [p_npoints].to_int ()) + + ")"; } std::vector diff --git a/src/lib/lib/libBasicRoundPath.cc b/src/lib/lib/libBasicRoundPath.cc index 20931f27b..11844284d 100644 --- a/src/lib/lib/libBasicRoundPath.cc +++ b/src/lib/lib/libBasicRoundPath.cc @@ -108,7 +108,10 @@ BasicRoundPath::produce (const db::Layout &layout, const std::vector diff --git a/src/lib/lib/libBasicRoundPolygon.cc b/src/lib/lib/libBasicRoundPolygon.cc index 110679a1b..da14fc4ea 100644 --- a/src/lib/lib/libBasicRoundPolygon.cc +++ b/src/lib/lib/libBasicRoundPolygon.cc @@ -112,7 +112,10 @@ BasicRoundPolygon::produce (const db::Layout &layout, const std::vector diff --git a/src/lib/lib/libBasicStrokedPolygon.cc b/src/lib/lib/libBasicStrokedPolygon.cc index fb910acbb..94b834163 100644 --- a/src/lib/lib/libBasicStrokedPolygon.cc +++ b/src/lib/lib/libBasicStrokedPolygon.cc @@ -134,7 +134,12 @@ BasicStrokedPolygon::produce (const db::Layout &layout, const std::vector diff --git a/src/lib/lib/libBasicText.cc b/src/lib/lib/libBasicText.cc index 84d95a761..b20683c7f 100644 --- a/src/lib/lib/libBasicText.cc +++ b/src/lib/lib/libBasicText.cc @@ -177,7 +177,8 @@ BasicText::get_display_name (const db::pcell_parameters_type ¶meters) const if (! parameters.empty ()) { t = parameters [p_text].to_string (); } - return std::string("TEXT('") + t + "')"; + return "TEXT(l=" + std::string (parameters [p_layer].to_string ()) + + ",'" + t + "')"; } std::vector