KLayout Manual: Main Index » Class Index » API reference - Class CellMapping

API reference - Class CellMapping

Notation used in Ruby API documentation

Description: A cell mapping derived from two hierarchies

A cell mapping is an association of cells in two layouts forming pairs of cells, i.e. on cell corresponds to another cell in the other layout. Correspondency is defined by exact identity of both flat instantiations in the given staring cell. Therefore, when a cell is mapped to another cell, shapes can be transferred from one cell to another while effectively rendering the same flat geometry (in the context of the given starting cells).

A cell might not be mapped to another cell which basically means that there is no corresponding cell. In this case, flattening to the next mapped cell is an option to transfer geometries despite the missing mapping.

A cell mapping is created by instantiating a cell mapping object. Pass two layouts and two starting cells to specify which cell trees to map.

Public constructors

new CellMappingnew(const Layout layout_a,
unsigned int cell_index_a,
const Layout layout_b,
unsigned int cell_index_b)
Create a new cell mapping

Public methods

[const]voidassign(const CellMapping other)Assign the contents of another object to self
[const]unsigned intcell_mapping(unsigned int cell_index_b)Determine cell mapping to a layout_b cell to the corresponding layout_a cell.
voidcreateEnsures the C++ object is created
voiddestroyExplicitly destroy the object
[const]booldestroyed?Returns a value indicating whether the object was already destroyed
[const]CellMappingdupCreates a copy of self
[const]boolhas_mapping?(unsigned int cell_index_b)Determine if a cell layout_b has a mapping to a layout_a cell.
[const]boolis_const_object?Returns a value indicating whether the reference is a const reference

Detailed description

[const] void assign(const CellMapping other)

Description: Assign the contents of another object to self

This method assigns the contents of another object to self. This is a deep copy that does not only copy the reference but the actual content.

[const] unsigned int cell_mapping(unsigned int cell_index_b)

Description: Determine cell mapping to a layout_b cell to the corresponding layout_a cell.

cell_index_b:The index of the cell in layout_b whose mapping is requested.
Returns:the cell index in layout_a.

void create

Description: Ensures the C++ object is created

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

void destroy

Description: Explicitly destroy the object

Explicitly destroy the object on C++ side if it was owned by the Ruby interpreter. Subsequent access to this object will throw an exception. If the object is not owned by Ruby, this method will do nothing.

[const] bool destroyed?

Description: Returns a value indicating whether the object was already destroyed

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

[const] CellMapping dup

Description: Creates a copy of self

[const] bool has_mapping?(unsigned int cell_index_b)

Description: Determine if a cell layout_b has a mapping to a layout_a cell.

cell_index_b:The index of the cell in layout_b whose mapping is requested.
Returns:true, if the cell has a mapping

[const] bool is_const_object?

Description: Returns a value indicating whether the reference is a const reference

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

[static] new CellMapping new(const Layout layout_a,unsigned int cell_index_a,const Layout layout_b,unsigned int cell_index_b)

Description: Create a new cell mapping

The cell mapping is created for cells below cell_a and cell_b in the respective layouts.