mirror of https://github.com/KLayout/klayout.git
Providing meta info (boundary per mask) from MALY reader
This commit is contained in:
parent
30ac61ea20
commit
149b051dce
|
|
@ -33,8 +33,6 @@
|
||||||
namespace db
|
namespace db
|
||||||
{
|
{
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
// GDS2ReaderBase
|
// GDS2ReaderBase
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@ public:
|
||||||
virtual std::string format_name () const { return "MALY"; }
|
virtual std::string format_name () const { return "MALY"; }
|
||||||
virtual std::string format_desc () const { return "MALY jobdeck"; }
|
virtual std::string format_desc () const { return "MALY jobdeck"; }
|
||||||
virtual std::string format_title () const { return "MALY (MALY jobdeck format)"; }
|
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
|
virtual bool detect (tl::InputStream &s) const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -99,11 +99,26 @@ MALYReader::read (db::Layout &layout, const db::LoadLayoutOptions &options)
|
||||||
|
|
||||||
MALYData data = read_maly_file ();
|
MALYData data = read_maly_file ();
|
||||||
import_data (layout, data);
|
import_data (layout, data);
|
||||||
|
create_metadata (layout, data);
|
||||||
|
|
||||||
finish_layers (layout);
|
finish_layers (layout);
|
||||||
return layer_map_out ();
|
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
|
void
|
||||||
MALYReader::import_data (db::Layout &layout, const MALYData &data)
|
MALYReader::import_data (db::Layout &layout, const MALYData &data)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -230,6 +230,7 @@ private:
|
||||||
std::list<std::string> m_sections;
|
std::list<std::string> m_sections;
|
||||||
|
|
||||||
void import_data (db::Layout &layout, const MALYData &data);
|
void import_data (db::Layout &layout, const MALYData &data);
|
||||||
|
void create_metadata (db::Layout &layout, const MALYData &data);
|
||||||
tl::Extractor read_record ();
|
tl::Extractor read_record ();
|
||||||
void unget_record ();
|
void unget_record ();
|
||||||
std::string read_record_internal ();
|
std::string read_record_internal ();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue