mirror of https://github.com/KLayout/klayout.git
Bugfixed GSI binding of compound DRC operation nodes.
This commit is contained in:
parent
44fd6bff11
commit
44aef92160
|
|
@ -64,6 +64,9 @@ public:
|
|||
std::string description () const;
|
||||
void set_description (const std::string &d);
|
||||
|
||||
// NOTE: it's probably going to be difficult to compute a different value here:
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const { return OnEmptyIntruderHint::Ignore; }
|
||||
|
||||
virtual db::Coord dist () const = 0;
|
||||
virtual std::vector<db::Region *> inputs () const = 0;
|
||||
|
||||
|
|
@ -990,7 +993,7 @@ protected:
|
|||
}
|
||||
|
||||
virtual db::Coord dist () const { return mp_node->dist (); }
|
||||
// @@@ TODO: virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const { return mp_node->on_empty_intruder_hint (); }
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const { return mp_node->on_empty_intruder_hint (); }
|
||||
virtual std::string description () const { return mp_node->description (); }
|
||||
|
||||
const TransformationReducer *vars () const { return mp_node->vars (); }
|
||||
|
|
|
|||
|
|
@ -1123,7 +1123,7 @@ public:
|
|||
|
||||
}
|
||||
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const
|
||||
{
|
||||
if (m_inverse) {
|
||||
return Copy;
|
||||
|
|
@ -1184,7 +1184,7 @@ public:
|
|||
|
||||
}
|
||||
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const
|
||||
{
|
||||
return Drop;
|
||||
}
|
||||
|
|
@ -1257,7 +1257,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const
|
||||
{
|
||||
if (m_inverse) {
|
||||
return Copy;
|
||||
|
|
@ -1340,7 +1340,7 @@ public:
|
|||
scanner.process (filter, 1, db::box_convert<db::Edge> (), db::box_convert<db::Polygon> ());
|
||||
}
|
||||
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const
|
||||
{
|
||||
return Drop;
|
||||
}
|
||||
|
|
@ -1533,7 +1533,7 @@ public:
|
|||
return m_check.distance ();
|
||||
}
|
||||
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const
|
||||
{
|
||||
return Drop;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -511,7 +511,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const
|
||||
{
|
||||
if (m_inverse) {
|
||||
return Copy;
|
||||
|
|
@ -594,7 +594,7 @@ public:
|
|||
scanner.process (filter, 1, db::box_convert<db::TextRef> (), db::box_convert<db::Polygon> ());
|
||||
}
|
||||
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const
|
||||
{
|
||||
return Drop;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1787,7 +1787,7 @@ local_processor<TS, TI, TR>::compute_local_cell (const db::local_processor_conte
|
|||
subject_id0 = id;
|
||||
}
|
||||
|
||||
if (op->on_empty_intruder_hint () != local_operation<TS, TI, TR>::Drop) {
|
||||
if (op->on_empty_intruder_hint () != OnEmptyIntruderHint::Drop) {
|
||||
const TS *ref = i->basic_ptr (typename TS::tag ());
|
||||
interactions.add_subject (id, *ref);
|
||||
}
|
||||
|
|
@ -1856,8 +1856,8 @@ local_processor<TS, TI, TR>::compute_local_cell (const db::local_processor_conte
|
|||
|
||||
if (interactions.begin_intruders () == interactions.end_intruders ()) {
|
||||
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode eh = op->on_empty_intruder_hint ();
|
||||
if (eh == local_operation<TS, TI, TR>::Drop) {
|
||||
OnEmptyIntruderHint eh = op->on_empty_intruder_hint ();
|
||||
if (eh == OnEmptyIntruderHint::Drop) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2022,7 +2022,7 @@ local_processor<TS, TI, TR>::run_flat (const generic_shape_iterator<TS> &subject
|
|||
tl_assert (mp_intruder_top == 0);
|
||||
|
||||
shape_interactions<TS, TI> interactions;
|
||||
bool needs_isolated_subjects = (op->on_empty_intruder_hint () != local_operation<TS, TI, TR>::Drop);
|
||||
bool needs_isolated_subjects = (op->on_empty_intruder_hint () != OnEmptyIntruderHint::Drop);
|
||||
|
||||
for (typename std::vector<generic_shape_iterator<TI> >::const_iterator il = intruders.begin (); il != intruders.end (); ++il) {
|
||||
if (*il == subjects) {
|
||||
|
|
@ -2036,8 +2036,8 @@ local_processor<TS, TI, TR>::run_flat (const generic_shape_iterator<TS> &subject
|
|||
|
||||
if (interactions.begin_intruders () == interactions.end_intruders ()) {
|
||||
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode eh = op->on_empty_intruder_hint ();
|
||||
if (eh == local_operation<TS, TI, TR>::Drop) {
|
||||
OnEmptyIntruderHint eh = op->on_empty_intruder_hint ();
|
||||
if (eh == OnEmptyIntruderHint::Drop) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ BoolAndOrNotLocalOperation::BoolAndOrNotLocalOperation (bool is_and)
|
|||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>::on_empty_intruder_mode
|
||||
OnEmptyIntruderHint
|
||||
BoolAndOrNotLocalOperation::on_empty_intruder_hint () const
|
||||
{
|
||||
return m_is_and ? Drop : Copy;
|
||||
|
|
@ -251,7 +251,7 @@ SelfOverlapMergeLocalOperation::compute_local (db::Layout *layout, const shape_i
|
|||
ep.process (pg, op);
|
||||
}
|
||||
|
||||
SelfOverlapMergeLocalOperation::on_empty_intruder_mode SelfOverlapMergeLocalOperation::on_empty_intruder_hint () const
|
||||
OnEmptyIntruderHint SelfOverlapMergeLocalOperation::on_empty_intruder_hint () const
|
||||
{
|
||||
return m_wrap_count > 1 ? Drop : Copy;
|
||||
}
|
||||
|
|
@ -270,7 +270,7 @@ EdgeBoolAndOrNotLocalOperation::EdgeBoolAndOrNotLocalOperation (EdgeBoolOp op)
|
|||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
local_operation<db::Edge, db::Edge, db::Edge>::on_empty_intruder_mode
|
||||
OnEmptyIntruderHint
|
||||
EdgeBoolAndOrNotLocalOperation::on_empty_intruder_hint () const
|
||||
{
|
||||
return (m_op == EdgeAnd || m_op == EdgeIntersections) ? Drop : Copy;
|
||||
|
|
@ -349,7 +349,7 @@ EdgeToPolygonLocalOperation::EdgeToPolygonLocalOperation (bool outside, bool inc
|
|||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
local_operation<db::Edge, db::PolygonRef, db::Edge>::on_empty_intruder_mode
|
||||
OnEmptyIntruderHint
|
||||
EdgeToPolygonLocalOperation::on_empty_intruder_hint () const
|
||||
{
|
||||
return m_outside ? Copy : Drop;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,26 @@ namespace db
|
|||
|
||||
template <class TS, class TI> class shape_interactions;
|
||||
|
||||
/**
|
||||
* @brief Indicates the desired behaviour for subject shapes for which there is no intruder
|
||||
*/
|
||||
enum OnEmptyIntruderHint {
|
||||
/**
|
||||
* @brief Don't imply a specific behaviour
|
||||
*/
|
||||
Ignore = 0,
|
||||
|
||||
/**
|
||||
* @brief Copy the subject shape
|
||||
*/
|
||||
Copy,
|
||||
|
||||
/**
|
||||
* @brief Drop the subject shape
|
||||
*/
|
||||
Drop
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief A base class for "local operations"
|
||||
* A local operation is any operation whose result can be computed by
|
||||
|
|
@ -54,26 +74,6 @@ template <class TS, class TI, class TR>
|
|||
class DB_PUBLIC local_operation
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @brief Indicates the desired behaviour for subject shapes for which there is no intruder
|
||||
*/
|
||||
enum on_empty_intruder_mode {
|
||||
/**
|
||||
* @brief Don't imply a specific behaviour
|
||||
*/
|
||||
Ignore = 0,
|
||||
|
||||
/**
|
||||
* @brief Copy the subject shape
|
||||
*/
|
||||
Copy,
|
||||
|
||||
/**
|
||||
* @brief Drop the subject shape
|
||||
*/
|
||||
Drop
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Constructor
|
||||
*/
|
||||
|
|
@ -95,7 +95,7 @@ public:
|
|||
/**
|
||||
* @brief Indicates the desired behaviour when a shape does not have an intruder
|
||||
*/
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const { return Ignore; }
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const { return Ignore; }
|
||||
|
||||
/**
|
||||
* @brief Gets a description text for this operation
|
||||
|
|
@ -119,7 +119,7 @@ public:
|
|||
BoolAndOrNotLocalOperation (bool is_and);
|
||||
|
||||
virtual void compute_local (db::Layout *layout, const shape_interactions<db::PolygonRef, db::PolygonRef> &interactions, std::vector<std::unordered_set<db::PolygonRef> > &result, size_t max_vertex_count, double area_ratio) const;
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
private:
|
||||
|
|
@ -154,7 +154,7 @@ public:
|
|||
SelfOverlapMergeLocalOperation (unsigned int wrap_count);
|
||||
|
||||
virtual void compute_local (db::Layout *layout, const shape_interactions<db::PolygonRef, db::PolygonRef> &interactions, std::vector<std::unordered_set<db::PolygonRef> > &result, size_t max_vertex_count, double area_ratio) const;
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
private:
|
||||
|
|
@ -171,7 +171,7 @@ public:
|
|||
EdgeBoolAndOrNotLocalOperation (EdgeBoolOp op);
|
||||
|
||||
virtual void compute_local (db::Layout *layout, const shape_interactions<db::Edge, db::Edge> &interactions, std::vector<std::unordered_set<db::Edge> > &result, size_t max_vertex_count, double area_ratio) const;
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
// edge interaction distance is 1 to force overlap between edges and edge/boxes
|
||||
|
|
@ -194,7 +194,7 @@ public:
|
|||
EdgeToPolygonLocalOperation (bool outside, bool include_borders);
|
||||
|
||||
virtual void compute_local (db::Layout *layout, const shape_interactions<db::Edge, db::PolygonRef> &interactions, std::vector<std::unordered_set<db::Edge> > &result, size_t max_vertex_count, double area_ratio) const;
|
||||
virtual on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
// edge interaction distance is 1 to force overlap between edges and edge/boxes
|
||||
|
|
|
|||
|
|
@ -238,10 +238,10 @@ check_local_operation<TS, TI, TR>::dist () const
|
|||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
typename db::local_operation<TS, TI, TR>::on_empty_intruder_mode
|
||||
OnEmptyIntruderHint
|
||||
check_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
{
|
||||
return m_different_polygons ? db::local_operation<TS, TI, TR>::Drop : db::local_operation<TS, TI, TR>::Ignore;
|
||||
return m_different_polygons ? OnEmptyIntruderHint::Drop : OnEmptyIntruderHint::Ignore;
|
||||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
|
|
@ -339,13 +339,13 @@ void interacting_local_operation<TS, TI, TR>::compute_local (db::Layout * /*layo
|
|||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode
|
||||
OnEmptyIntruderHint
|
||||
interacting_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
{
|
||||
if ((m_mode <= 0) != m_inverse) {
|
||||
return local_operation<TS, TI, TR>::Drop;
|
||||
return OnEmptyIntruderHint::Drop;
|
||||
} else {
|
||||
return local_operation<TS, TI, TR>::Copy;
|
||||
return OnEmptyIntruderHint::Copy;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -424,9 +424,9 @@ void pull_local_operation<TS, TI, TR>::compute_local (db::Layout * /*layout*/, c
|
|||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode pull_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
OnEmptyIntruderHint pull_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
{
|
||||
return local_operation<TS, TI, TR>::Drop;
|
||||
return OnEmptyIntruderHint::Drop;
|
||||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
|
|
@ -506,12 +506,12 @@ void interacting_with_edge_local_operation<TS, TI, TR>::compute_local (db::Layou
|
|||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode interacting_with_edge_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
OnEmptyIntruderHint interacting_with_edge_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
{
|
||||
if (!m_inverse) {
|
||||
return local_operation<TS, TI, TR>::Drop;
|
||||
return OnEmptyIntruderHint::Drop;
|
||||
} else {
|
||||
return local_operation<TS, TI, TR>::Copy;
|
||||
return OnEmptyIntruderHint::Copy;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -571,9 +571,9 @@ void pull_with_edge_local_operation<TS, TI, TR>::compute_local (db::Layout *layo
|
|||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode pull_with_edge_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
OnEmptyIntruderHint pull_with_edge_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
{
|
||||
return local_operation<TS, TI, TR>::Drop;
|
||||
return OnEmptyIntruderHint::Drop;
|
||||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
|
|
@ -638,9 +638,9 @@ void pull_with_text_local_operation<TS, TI, TR>::compute_local (db::Layout *layo
|
|||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode pull_with_text_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
OnEmptyIntruderHint pull_with_text_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
{
|
||||
return local_operation<TS, TI, TR>::Drop;
|
||||
return OnEmptyIntruderHint::Drop;
|
||||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
|
|
@ -719,12 +719,12 @@ void interacting_with_text_local_operation<TS, TI, TR>::compute_local (db::Layou
|
|||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
typename local_operation<TS, TI, TR>::on_empty_intruder_mode interacting_with_text_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
OnEmptyIntruderHint interacting_with_text_local_operation<TS, TI, TR>::on_empty_intruder_hint () const
|
||||
{
|
||||
if (!m_inverse) {
|
||||
return local_operation<TS, TI, TR>::Drop;
|
||||
return OnEmptyIntruderHint::Drop;
|
||||
} else {
|
||||
return local_operation<TS, TI, TR>::Copy;
|
||||
return OnEmptyIntruderHint::Copy;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public:
|
|||
virtual void compute_local (db::Layout * /*layout*/, const shape_interactions<TS, TI> &interactions, std::vector<std::unordered_set<TR> > &results, size_t /*max_vertex_count*/, double /*area_ratio*/) const;
|
||||
|
||||
virtual db::Coord dist () const;
|
||||
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
private:
|
||||
|
|
@ -64,7 +64,7 @@ public:
|
|||
|
||||
virtual db::Coord dist () const;
|
||||
virtual void compute_local (db::Layout * /*layout*/, const shape_interactions<TS, TI> &interactions, std::vector<std::unordered_set<TR> > &results, size_t /*max_vertex_count*/, double /*area_ratio*/) const;
|
||||
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
private:
|
||||
|
|
@ -85,7 +85,7 @@ public:
|
|||
|
||||
virtual db::Coord dist () const;
|
||||
virtual void compute_local (db::Layout * /*layout*/, const shape_interactions<TS, TI> &interactions, std::vector<std::unordered_set<TR> > &results, size_t /*max_vertex_count*/, double /*area_ratio*/) const;
|
||||
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
private:
|
||||
|
|
@ -104,7 +104,7 @@ public:
|
|||
|
||||
virtual db::Coord dist () const;
|
||||
virtual void compute_local (db::Layout *layout, const shape_interactions<TS, TI> &interactions, std::vector<std::unordered_set<TR> > &results, size_t /*max_vertex_count*/, double /*area_ratio*/) const;
|
||||
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
private:
|
||||
|
|
@ -123,7 +123,7 @@ public:
|
|||
|
||||
virtual db::Coord dist () const;
|
||||
virtual void compute_local (db::Layout *, const shape_interactions<TS, TI> &interactions, std::vector<std::unordered_set<TR> > &results, size_t /*max_vertex_count*/, double /*area_ratio*/) const;
|
||||
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
};
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ public:
|
|||
|
||||
virtual db::Coord dist () const;
|
||||
virtual void compute_local (db::Layout *layout, const shape_interactions<TS, TI> &interactions, std::vector<std::unordered_set<TR> > &results, size_t /*max_vertex_count*/, double /*area_ratio*/) const;
|
||||
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
|
||||
private:
|
||||
|
|
@ -157,7 +157,7 @@ public:
|
|||
|
||||
virtual db::Coord dist () const;
|
||||
virtual void compute_local (db::Layout *, const shape_interactions<TS, TI> &interactions, std::vector<std::unordered_set<TR> > &results, size_t /*max_vertex_count*/, double /*area_ratio*/) const;
|
||||
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const;
|
||||
virtual OnEmptyIntruderHint on_empty_intruder_hint () const;
|
||||
virtual std::string description () const;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include "gsiDecl.h"
|
||||
#include "gsiEnums.h"
|
||||
|
||||
#include "dbCompoundOperation.h"
|
||||
|
||||
|
|
@ -347,5 +348,114 @@ Class<db::CompoundRegionOperationNode> decl_CompoundRegionOperationNode ("db", "
|
|||
"This class has been introduced in version 0.27."
|
||||
);
|
||||
|
||||
gsi::EnumIn<db::CompoundRegionOperationNode, db::CompoundRegionLogicalBoolOperationNode::LogicalOp> decl_dbCompoundRegionLogicalBoolOperationNode_LogicalOp ("db", "LogicalOp",
|
||||
gsi::enum_const ("And", db::CompoundRegionLogicalBoolOperationNode::LogicalOp::And,
|
||||
"@brief Indicates a logical '&&' (and)."
|
||||
) +
|
||||
gsi::enum_const ("Or", db::CompoundRegionLogicalBoolOperationNode::LogicalOp::Or,
|
||||
"@brief Indicates a logical '||' (or)."
|
||||
),
|
||||
"@brief This class represents the CompoundRegionOperationNode::LogicalOp enum\n"
|
||||
"\n"
|
||||
"This enum has been introduced in version 0.27."
|
||||
);
|
||||
|
||||
gsi::EnumIn<db::CompoundRegionOperationNode, db::CompoundRegionGeometricalBoolOperationNode::GeometricalOp> decl_dbCompoundRegionGeometricalBoolOperationNode_GeometricalOp ("db", "GeometricalOp",
|
||||
gsi::enum_const ("And", db::CompoundRegionGeometricalBoolOperationNode::GeometricalOp::And,
|
||||
"@brief Indicates a geometrical '&' (and)."
|
||||
) +
|
||||
gsi::enum_const ("Not", db::CompoundRegionGeometricalBoolOperationNode::GeometricalOp::Not,
|
||||
"@brief Indicates a geometrical '-' (not)."
|
||||
) +
|
||||
gsi::enum_const ("Xor", db::CompoundRegionGeometricalBoolOperationNode::GeometricalOp::Xor,
|
||||
"@brief Indicates a geometrical '^' (xor)."
|
||||
) +
|
||||
gsi::enum_const ("Or", db::CompoundRegionGeometricalBoolOperationNode::GeometricalOp::Or,
|
||||
"@brief Indicates a geometrical '|' (or)."
|
||||
),
|
||||
"@brief This class represents the CompoundRegionOperationNode::GeometricalOp enum\n"
|
||||
"\n"
|
||||
"This enum has been introduced in version 0.27."
|
||||
);
|
||||
|
||||
gsi::EnumIn<db::CompoundRegionOperationNode, db::CompoundRegionOperationNode::ResultType> decl_dbCompoundRegionOperationNode_ResultType ("db", "ResultType",
|
||||
gsi::enum_const ("Region", db::CompoundRegionOperationNode::ResultType::Region,
|
||||
"@brief Indicates polygon result type."
|
||||
) +
|
||||
gsi::enum_const ("Edges", db::CompoundRegionOperationNode::ResultType::Edges,
|
||||
"@brief Indicates edge result type."
|
||||
) +
|
||||
gsi::enum_const ("EdgePairs", db::CompoundRegionOperationNode::ResultType::EdgePairs,
|
||||
"@brief Indicates edge pair result type."
|
||||
),
|
||||
"@brief This class represents the CompoundRegionOperationNode::ResultType enum\n"
|
||||
"\n"
|
||||
"This enum has been introduced in version 0.27."
|
||||
);
|
||||
|
||||
gsi::Enum<db::TrapezoidDecompositionMode> decl_dbTrapezoidDecompositionMode ("db", "TrapezoidDecompositionMode",
|
||||
gsi::enum_const ("TD_simple", db::TrapezoidDecompositionMode::TD_simple,
|
||||
"@brief Indicates unspecific decomposition."
|
||||
) +
|
||||
gsi::enum_const ("TD_htrapezoids", db::TrapezoidDecompositionMode::TD_htrapezoids,
|
||||
"@brief Indicates horizontal trapezoid decomposition."
|
||||
) +
|
||||
gsi::enum_const ("TD_vtrapezoids", db::TrapezoidDecompositionMode::TD_vtrapezoids,
|
||||
"@brief Indicates vertical trapezoid decomposition."
|
||||
),
|
||||
"@brief This class represents the TrapezoidDecompositionMode enum used within trapezoid decomposition\n"
|
||||
"\n"
|
||||
"This enum has been introduced in version 0.27."
|
||||
);
|
||||
|
||||
gsi::Enum<db::PreferredOrientation> decl_dbPreferredOrientation ("db", "PreferredOrientation",
|
||||
gsi::enum_const ("PO_any", db::PreferredOrientation::PO_any,
|
||||
"@brief Indicates any orientation."
|
||||
) +
|
||||
gsi::enum_const ("PO_horizontal", db::PreferredOrientation::PO_horizontal,
|
||||
"@brief Indicates horizontal orientation."
|
||||
) +
|
||||
gsi::enum_const ("PO_vertical", db::PreferredOrientation::PO_vertical,
|
||||
"@brief Indicates vertical orientation."
|
||||
) +
|
||||
gsi::enum_const ("PO_htrapezoids", db::PreferredOrientation::PO_htrapezoids,
|
||||
"@brief Indicates horizontal trapezoid decomposition."
|
||||
) +
|
||||
gsi::enum_const ("PO_vtrapezoids", db::PreferredOrientation::PO_vtrapezoids,
|
||||
"@brief Indicates vertical trapezoid decomposition."
|
||||
),
|
||||
"@brief This class represents the PreferredOrientation enum used within polygon decomposition\n"
|
||||
"\n"
|
||||
"This enum has been introduced in version 0.27."
|
||||
);
|
||||
|
||||
gsi::Enum<db::metrics_type> decl_dbMetricsType ("db", "MetricsType",
|
||||
gsi::enum_const ("Euclidian", db::metrics_type::Euclidian,
|
||||
"@brief Euclidian metrics\n"
|
||||
"\n"
|
||||
"The distance between two points is defined as the euclidian\n"
|
||||
"distance, i.e. d = sqrt(dx * dx + dy * dy).\n"
|
||||
"All points within a circle with radius r around another point \n"
|
||||
"have a distance less than r to this point.\n"
|
||||
) +
|
||||
gsi::enum_const ("Square", db::metrics_type::Square,
|
||||
"@brief Square metrics\n"
|
||||
"\n"
|
||||
"The distance between two points is the minimum of x and\n"
|
||||
"y distance, i.e. d = min(abs(dx), abs(dy)).\n"
|
||||
"All points within a square with length 2*r round another point\n"
|
||||
"have a distance less than r to this point.\n"
|
||||
) +
|
||||
gsi::enum_const ("Projection", db::metrics_type::Projection,
|
||||
"@brief Projection metrics\n"
|
||||
"\n"
|
||||
"The distance between a point and another point on an edge\n"
|
||||
"is measured by the distance of the point to the edge.\n"
|
||||
),
|
||||
"@brief This class represents the MetricsType enum used within DRC functions\n"
|
||||
"\n"
|
||||
"This enum has been introduced in version 0.27."
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -722,7 +722,7 @@ gsi::EnumIn<db::LayoutToNetlist, db::LayoutToNetlist::BuildNetHierarchyMode> dec
|
|||
"This enum is used for \\LayoutToNetlist#build_all_nets and \\LayoutToNetlist#build_net."
|
||||
);
|
||||
|
||||
// Inject the NetlistCrossReference::Status declarations into NetlistCrossReference:
|
||||
// Inject the NetlistCrossReference::BuildNetHierarchyMode declarations into NetlistCrossReference:
|
||||
gsi::ClassExt<db::LayoutToNetlist> inject_dbLayoutToNetlist_BuildNetHierarchyMode_in_parent (decl_dbLayoutToNetlist_BuildNetHierarchyMode.defs ());
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue