Class LayerMap (version 0.18)

Description: An object representing an arbitrary mapping of physical layers to logical layers

"Physical" layers are stream layers or other separated layers in a CAD file. "Logical" layers are the layers present in a Layout object. Logical layers are represented by an integer index while physical layers are given by a layer and datatype number or name. A logical layer is created automatically in the layout on reading if it does not exist yet.

The mapping describes an association of a set of physical layers to a set of logical ones, where multiple physical layers can be mapped to a single logical one, which effectively merges the layers.

This class has been introduced in version 0.18.

Class overview

Index

Method Overview

[const] bool is_mapped?( LayerInfo layer )Check, if a given physical layer is mapped.
[const] int logical( LayerInfo layer )Returns the logical layer (the layer index in the layout object) for a given physical layer.
[const] string mapping_str( unsigned int log_layer )Returns the mapping string for a given logical layer.
[const] LayerInfo mapping( unsigned int log_layer )Returns the mapped physical layer for a given logical layer.
map( LayerInfo phys_layer, unsigned int log_layer )Maps a physical layer to a logical one.
map( LayerInfo pl_start, LayerInfo pl_stop, unsigned int log_layer )Maps a physical layer interval to a logical one.
map( string map_expr, unsigned int log_layer )Maps a physical layer given by a string to a logical one.
clearClears the map.
assign( LayerMap other )Assign the contents of another object to self
[const] LayerMap dupCreates a copy of self.
destroyExplicitly destroy the object
[const] bool destroyedTell, if the object was destroyed

assign( LayerMap 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.

clear

Description: Clears the map.

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: Tell, if the object was 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] LayerMap dup

Description: Creates a copy of self.

[const] bool is_mapped?( LayerInfo layer )

Description: Check, if a given physical layer is mapped.

returns:True, if the layer is mapped.

[const] int logical( LayerInfo layer )

Description: Returns the logical layer (the layer index in the layout object) for a given physical layer.

layer:The physical layer specified with an LayerInfo object.
returns:The logical layer index or -1 if the layer is not mapped.

map( LayerInfo phys_layer, unsigned int log_layer )

Description: Maps a physical layer to a logical one.

In general, there may be more than one physical layer mapped to one logical layer. This method will add the given physical layer to the mapping for the logical layer.

phys_layer:The physical layer (a LayerInfo object).
log_layer:The logical layer to which the physical layer is mapped.

map( LayerInfo pl_start, LayerInfo pl_stop, unsigned int log_layer )

Description: Maps a physical layer interval to a logical one.

This method maps an interval of layers l1..l2 and datatypes d1..d2 to the mapping for the given logical layer. l1 and d1 are given by the pl_start argument, while l2 and d2 are given by the pl_stop argument.

pl_start:The first physical layer (a LayerInfo object).
pl_stop:The last physical layer (a LayerInfo object).
log_layer:The logical layer to which the physical layers are mapped.

map( string map_expr, unsigned int log_layer )

Description: Maps a physical layer given by a string to a logical one.

The string expression is constructed using the syntax: "list[/list][;..]" for layer/datatype pairs. "list" is a sequence of numbers, separated by comma values or a range separated by a hyphen. Examples are: "1/2", "1-5/0", "1,2,5/0", "1/5;5/6".

map_expr:The string describing the physical layer to map.
log_layer:The logical layer to which the physical layers are mapped.

[const] LayerInfo mapping( unsigned int log_layer )

Description: Returns the mapped physical layer for a given logical layer.

In general, there may be more than one physical layer mapped to one logical layer. This method will return a single one of them. It will return the one with the lowest layer and datatype.

log_layer:The logical layer for which the mapping is requested.
returns:A LayerInfo object which is the physical layer mapped to the logical layer.

[const] string mapping_str( unsigned int log_layer )

Description: Returns the mapping string for a given logical layer.

The mapping string is compatible with the string that the "map" method accepts.

log_layer:The logical layer for which the mapping is requested.
returns:A string describing the mapping.