Providing meta info (boundary per mask) from MALY reader

This commit is contained in:
Matthias Koefferlein 2025-05-02 14:49:13 +02:00
parent 30ac61ea20
commit 149b051dce
4 changed files with 17 additions and 3 deletions

View File

@ -33,8 +33,6 @@
namespace db
{
// ---------------------------------------------------------------
// ---------------------------------------------------------------
// GDS2ReaderBase

View File

@ -133,7 +133,7 @@ public:
virtual std::string format_name () const { return "MALY"; }
virtual std::string format_desc () const { return "MALY jobdeck"; }
virtual std::string format_title () const { return "MALY (MALY jobdeck format)"; }
virtual std::string file_format () const { return "MALY jobdeck files (*.maly *.MALY)"; }
virtual std::string file_format () const { return "MALY jobdeck files (*.maly *.MALY *.mly *.MLY)"; }
virtual bool detect (tl::InputStream &s) const
{

View File

@ -99,11 +99,26 @@ MALYReader::read (db::Layout &layout, const db::LoadLayoutOptions &options)
MALYData data = read_maly_file ();
import_data (layout, data);
create_metadata (layout, data);
finish_layers (layout);
return layer_map_out ();
}
void
MALYReader::create_metadata (db::Layout &layout, const MALYData &data)
{
tl::Variant boundary_per_mask = tl::Variant::empty_array ();
for (auto m = data.masks.begin (); m != data.masks.end (); ++m) {
double ms = m->size_um;
db::DBox box (-0.5 * ms, -0.5 * ms, 0.5 * ms, 0.5 * ms);
boundary_per_mask.insert (m->name, box);
}
layout.add_meta_info ("boundary_per_mask", MetaInfo (tl::to_string (tr ("Physical mask boundary per mask name")), boundary_per_mask));
}
void
MALYReader::import_data (db::Layout &layout, const MALYData &data)
{

View File

@ -230,6 +230,7 @@ private:
std::list<std::string> m_sections;
void import_data (db::Layout &layout, const MALYData &data);
void create_metadata (db::Layout &layout, const MALYData &data);
tl::Extractor read_record ();
void unget_record ();
std::string read_record_internal ();