mirror of https://github.com/KLayout/klayout.git
Added trans and name attributes to db::SubCircuit
This commit is contained in:
parent
4dd17c3cd4
commit
80999475f4
|
|
@ -68,6 +68,16 @@ SubCircuit::SubCircuit (Circuit *circuit)
|
||||||
// .. nothing yet ..
|
// .. nothing yet ..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SubCircuit::set_name (const std::string &n)
|
||||||
|
{
|
||||||
|
m_name = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SubCircuit::set_trans (const db::DCplxTrans &t)
|
||||||
|
{
|
||||||
|
m_trans = t;
|
||||||
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------
|
||||||
// NetPortRef class implementation
|
// NetPortRef class implementation
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
#include "dbCommon.h"
|
#include "dbCommon.h"
|
||||||
#include "dbTypes.h"
|
#include "dbTypes.h"
|
||||||
|
#include "dbTrans.h"
|
||||||
#include "tlObjectCollection.h"
|
#include "tlObjectCollection.h"
|
||||||
#include "tlVector.h"
|
#include "tlVector.h"
|
||||||
|
|
||||||
|
|
@ -183,8 +184,43 @@ public:
|
||||||
m_circuit.reset (c);
|
m_circuit.reset (c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets the name of the subcircuit
|
||||||
|
*
|
||||||
|
* The name is one way to identify the subcircuit. The transformation is
|
||||||
|
* another one.
|
||||||
|
*/
|
||||||
|
void set_name (const std::string &n);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets the name of the subcircuit
|
||||||
|
*/
|
||||||
|
const std::string &name () const
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets the transformation describing the subcircuit
|
||||||
|
*
|
||||||
|
* The transformation is a natural description of a subcircuit
|
||||||
|
* (in contrast to the name) when deriving it from a layout.
|
||||||
|
*/
|
||||||
|
void set_trans (const db::DCplxTrans &trans);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets the transformation describing the subcircuit
|
||||||
|
*/
|
||||||
|
const db::DCplxTrans &trans () const
|
||||||
|
{
|
||||||
|
return m_trans;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
tl::weak_ptr<Circuit> m_circuit;
|
tl::weak_ptr<Circuit> m_circuit;
|
||||||
|
std::string m_name;
|
||||||
|
db::DCplxTrans m_trans;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -306,3 +306,17 @@ TEST(4_NetlistSubcircuits)
|
||||||
"D:B,+c2p2\n"
|
"D:B,+c2p2\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(5_SubCircuit)
|
||||||
|
{
|
||||||
|
db::SubCircuit sc, sc2;
|
||||||
|
|
||||||
|
sc.set_name ("sc");
|
||||||
|
EXPECT_EQ (sc.name (), "sc");
|
||||||
|
sc.set_trans (db::DCplxTrans (2.5));
|
||||||
|
EXPECT_EQ (sc.trans ().to_string (), "r0 *2.5 0,0");
|
||||||
|
|
||||||
|
sc2 = sc;
|
||||||
|
EXPECT_EQ (sc2.name (), "sc");
|
||||||
|
EXPECT_EQ (sc2.trans ().to_string (), "r0 *2.5 0,0");
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue