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

API reference - Class Shape

Notation used in Ruby API documentation

Description: A shape proxy

The shape proxy is basically a pointer to a shape of different kinds. No copy of the shape is created: if the shape proxy is copied the copy still points to the original shape. If the original shape is modified or deleted, the shape proxy will also point to a modified or invalid shape. The proxy can be "null" which indicates an invalid reference.

Shape objects are used together with the Shapes container object which stores the actual shape objects and uses Shape references as pointers inside the actual data storage. Shape references are used in various places, i.e. when removing or transforming objects inside a Shapes container.

Public constructors

ShapenewCreates a new object of this class

Public methods

[const]bool!=(const Shape arg1)Inequality operator
[const]bool==(const Shape arg1)Equality operator
[const]long longareaReturns the area of the shape.
[const]Transarray_transGet the array instance member transformation
[const]voidassign(const Shape other)Assign the contents of another object to self
[const]BoxbboxReturns the bounding box of the shape.
[const]BoxboxGets the box object
voidbox=(const Box box)Replaces the shape by the given box
Cell ptrcellGets a reference to the Cell the shape belongs to
voidcreateEnsures the C++ object is created
voiddelete_property(variant key)Deletes the user property with the given key
voiddestroyExplicitly destroy the object
[const]booldestroyed?Returns a value indicating whether the object was already destroyed
[const]ShapedupCreates a copy of self
[iter]Edgeeach_edgeIterate over the edges of the object
[const,iter]Pointeach_pointIterate over all points of the object
[const,iter]Pointeach_point_hole(unsigned int hole_index)Iterate over the points of a hole contour
[const,iter]Pointeach_point_hullIterate over the hull contour of the object
[const]EdgeedgeReturns the edge object
voidedge=(const Edge box)Replaces the shape by the given edge
[const]boolhas_prop_id?Returns true, if the shape has properties, i.e. has a properties ID.
[const]unsigned intholesReturn the number of holes
[const]boolis_array_member?Returns true, if the shape is a member of a shape array
[const]boolis_box?Returns true if the shape is a box.
[const]boolis_const_object?Returns a value indicating whether the reference is a const reference
[const]boolis_edge?Returns true, if the object is an edge
[const]boolis_null?Returns true, if the shape reference is a null reference (not referring to a shape)
[const]boolis_path?Returns true, if the shape is a path. Will throw an exception if the object is not a path.
[const]boolis_polygon?Returns true, if the shape is a polygon.
[const]boolis_simple_polygon?Returns true, if the shape is a simple polygon.
[const]boolis_text?Returns true, if the object is a text
[const]boolis_user_object?Returns true if the shape is a user defined object
Layout ptrlayoutGets a reference to the Layout the shape belongs to
[const]PathpathReturns the path object
voidpath=(const Path box)Replaces the shape by the given path object
[const]intpath_bgnextObtain the path's starting vertex extension
[const]intpath_endextObtain the path's end vertex extension
[const]intpath_widthObtain the path width
[const]PolygonpolygonReturns the polygon object
voidpolygon=(const Polygon box)Replaces the shape by the given polygon object
[const]unsigned intprop_idGet the properties ID associated with the shape
voidprop_id=(unsigned int arg1)Sets the properties ID of this shape
variantproperty(variant key)Gets the user property with the given key
[const]boolround_path?Returns true, if the path has round ends
voidset_property(variant key,
variant value)
Set the user property with the given key to the given value
Shapes ptrshapesGets a reference to the Shapes container the shape lives in
[const]SimplePolygonsimple_polygonReturns the simple polygon object
voidsimple_polygon=(const SimplePolygon box)Replaces the shape by the given simple polygon object
[const]TexttextReturns the text object
voidtext=(const Text box)Replaces the shape by the given text object
[const]inttext_fontObtain the text's font
[const]inttext_halignObtain the text's horizontal alignment
[const]inttext_sizeObtain the text size
[const]stringtext_stringObtain the text string
[const]Transtext_transObtain the text transformation
[const]inttext_valignObtain the text's vertical alignment
[const]stringto_sCreate a string showing the contents of the reference
[const]inttypeReturn the type of the shape

Public static methods and constants

intTBox
intTBoxArray
intTBoxArrayMember
intTEdge
intTNull
intTPath
intTPathPtrArray
intTPathPtrArrayMember
intTPathRef
intTPolygon
intTPolygonPtrArray
intTPolygonPtrArrayMember
intTPolygonRef
intTShortBox
intTShortBoxArray
intTShortBoxArrayMember
intTSimplePolygon
intTSimplePolygonPtrArray
intTSimplePolygonPtrArrayMember
intTSimplePolygonRef
intTText
intTTextPtrArray
intTTextPtrArrayMember
intTTextRef
intTUserObject

Deprecated methods (protected, public, static, non-static and constructors)

[static]intt_boxUse of this method is deprecated. Use TBox instead
[static]intt_box_arrayUse of this method is deprecated. Use TBoxArray instead
[static]intt_box_array_memberUse of this method is deprecated. Use TBoxArrayMember instead
[static]intt_edgeUse of this method is deprecated. Use TEdge instead
[static]intt_nullUse of this method is deprecated. Use TNull instead
[static]intt_pathUse of this method is deprecated. Use TPath instead
[static]intt_path_ptr_arrayUse of this method is deprecated. Use TPathPtrArray instead
[static]intt_path_ptr_array_memberUse of this method is deprecated. Use TPathPtrArrayMember instead
[static]intt_path_refUse of this method is deprecated. Use TPathRef instead
[static]intt_polygonUse of this method is deprecated. Use TPolygon instead
[static]intt_polygon_ptr_arrayUse of this method is deprecated. Use TPolygonPtrArray instead
[static]intt_polygon_ptr_array_memberUse of this method is deprecated. Use TPolygonPtrArrayMember instead
[static]intt_polygon_refUse of this method is deprecated. Use TPolygonRef instead
[static]intt_short_boxUse of this method is deprecated. Use TShortBox instead
[static]intt_short_box_arrayUse of this method is deprecated. Use TShortBoxArray instead
[static]intt_short_box_array_memberUse of this method is deprecated. Use TShortBoxArrayMember instead
[static]intt_simple_polygonUse of this method is deprecated. Use TSimplePolygon instead
[static]intt_simple_polygon_ptr_arrayUse of this method is deprecated. Use TSimplePolygonPtrArray instead
[static]intt_simple_polygon_ptr_array_memberUse of this method is deprecated. Use TSimplePolygonPtrArrayMember instead
[static]intt_simple_polygon_refUse of this method is deprecated. Use TSimplePolygonRef instead
[static]intt_textUse of this method is deprecated. Use TText instead
[static]intt_text_ptr_arrayUse of this method is deprecated. Use TTextPtrArray instead
[static]intt_text_ptr_array_memberUse of this method is deprecated. Use TTextPtrArrayMember instead
[static]intt_text_refUse of this method is deprecated. Use TTextRef instead
[static]intt_user_objectUse of this method is deprecated. Use TUserObject instead

Detailed description

[const] bool !=(const Shape arg1)

Description: Inequality operator

[const] bool ==(const Shape arg1)

Description: Equality operator

Equality of shapes is not specified by the identity of the objects but by the identity of the pointers - both shapes must refer to the same object.

[static] int TBox

Description:

[static] int TBoxArray

Description:

[static] int TBoxArrayMember

Description:

[static] int TEdge

Description:

[static] int TNull

Description:

[static] int TPath

Description:

[static] int TPathPtrArray

Description:

[static] int TPathPtrArrayMember

Description:

[static] int TPathRef

Description:

[static] int TPolygon

Description:

[static] int TPolygonPtrArray

Description:

[static] int TPolygonPtrArrayMember

Description:

[static] int TPolygonRef

Description:

[static] int TShortBox

Description:

[static] int TShortBoxArray

Description:

[static] int TShortBoxArrayMember

Description:

[static] int TSimplePolygon

Description:

[static] int TSimplePolygonPtrArray

Description:

[static] int TSimplePolygonPtrArrayMember

Description:

[static] int TSimplePolygonRef

Description:

[static] int TText

Description:

[static] int TTextPtrArray

Description:

[static] int TTextPtrArrayMember

Description:

[static] int TTextRef

Description:

[static] int TUserObject

Description:

[const] long long area

Description: Returns the area of the shape.

This method has been added in version 0.22.

[const] Trans array_trans

Description: Get the array instance member transformation

This attribute is valid only if is_array_member? is true. The transformation returned describes the relative transformation of the array member addressed.

[const] void assign(const Shape 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] Box bbox

Description: Returns the bounding box of the shape.

[const] Box box

Description: Gets the box object

Applies to boxes only. Will throw an exception if the object is not a box.

void box=(const Box box)

Description: Replaces the shape by the given box

This method replaces the shape by the given box. This method can only be called for editable layouts. It does not change the user properties of the shape. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

Cell ptr cell

Description: Gets a reference to the Cell the shape belongs to

This reference can be nil, if the Shape object is not living inside a cell.

This method has been introduced in version 0.22.

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 delete_property(variant key)

Description: Deletes the user property with the given key

This method is a convenience method that deletes the property with the given key. It does nothing if no property with that key exists. Using that method is more convenient than creating a new property set with a new ID and assigning that properties ID. This method may change the properties ID. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

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] Shape dup

Description: Creates a copy of self

[iter] Edge each_edge

Description: Iterate over the edges of the object

This method applies to polygons and simple polygons and delivers all edges that form the polygon's contours. It will throw an exception if the object is not an edge.

[const,iter] Point each_point

Description: Iterate over all points of the object

This method applies to paths and delivers all points of the path's center line. It will throw an exception for other objects.

[const,iter] Point each_point_hole(unsigned int hole_index)

Description: Iterate over the points of a hole contour

hole:The hole index (see holes () method)

This method applies to polygons and delivers all points of the respective hole contour. It will throw an exception for other objects. Simple polygons deliver an empty sequence.

[const,iter] Point each_point_hull

Description: Iterate over the hull contour of the object

This method applies to polygons and delivers all points of the polygon hull contour. It will throw an exception for other objects.

[const] Edge edge

Description: Returns the edge object

Applies to edges only. Will throw an exception if the object is not an edge.

void edge=(const Edge box)

Description: Replaces the shape by the given edge

This method replaces the shape by the given edge. This method can only be called for editable layouts. It does not change the user properties of the shape. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

[const] bool has_prop_id?

Description: Returns true, if the shape has properties, i.e. has a properties ID.

[const] unsigned int holes

Description: Return the number of holes

This method applies to polygons and will throw an exception for other objects.. Simple polygons deliver a value of zero.

[const] bool is_array_member?

Description: Returns true, if the shape is a member of a shape array

[const] bool is_box?

Description: Returns true if the shape is a box.

[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.

[const] bool is_edge?

Description: Returns true, if the object is an edge

[const] bool is_null?

Description: Returns true, if the shape reference is a null reference (not referring to a shape)

[const] bool is_path?

Description: Returns true, if the shape is a path. Will throw an exception if the object is not a path.

[const] bool is_polygon?

Description: Returns true, if the shape is a polygon.

This method returns true only if the object is a polygon or a simple polygon. Other objects can convert to polygons, for example paths, so it may be possible to use the polygon method also if is_polygon? does not return true.

[const] bool is_simple_polygon?

Description: Returns true, if the shape is a simple polygon.

This method returns true only if the object is a simple polygon. The simple polygon identity is contained in the polygon identity, so usually it is sufficient to use is_polygon? and polygon instead of specifically handle simply polygons. This method is provided only for specific optimisation purposes.

[const] bool is_text?

Description: Returns true, if the object is a text

[const] bool is_user_object?

Description: Returns true if the shape is a user defined object

Layout ptr layout

Description: Gets a reference to the Layout the shape belongs to

This reference can be nil, if the Shape object is not living inside a layout.

This method has been introduced in version 0.22.

[static] Shape new

Description: Creates a new object of this class

[const] Path path

Description: Returns the path object

Applies to paths only. Will throw an exception if the object is not a path.

void path=(const Path box)

Description: Replaces the shape by the given path object

This method replaces the shape by the given path object. This method can only be called for editable layouts. It does not change the user properties of the shape. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

[const] int path_bgnext

Description: Obtain the path's starting vertex extension

Applies to paths only. Will throw an exception if the object is not a path.

[const] int path_endext

Description: Obtain the path's end vertex extension

Applies to paths only. Will throw an exception if the object is not a path.

[const] int path_width

Description: Obtain the path width

Applies to paths only. Will throw an exception if the object is not a path.

[const] Polygon polygon

Description: Returns the polygon object

Returns the polygon object that this shape refers to or converts the object to a polygon. Paths, boxes and simple polygons are converted to polygons. For paths this operation renders the path's hull contour. This method will throw an exception if the Shape object represents other primitives.

void polygon=(const Polygon box)

Description: Replaces the shape by the given polygon object

This method replaces the shape by the given polygon object. This method can only be called for editable layouts. It does not change the user properties of the shape. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

[const] unsigned int prop_id

Description: Get the properties ID associated with the shape

The Layout object can be used to retrieve the actual properties associated with the ID.

void prop_id=(unsigned int arg1)

Description: Sets the properties ID of this shape

The Layout object can be used to retrieve an ID for a given set of properties. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

variant property(variant key)

Description: Gets the user property with the given key

This method is a convenience method that gets the property with the given key. If no property with that key does not exist, it will return nil. Using that method is more convenient than using the layout object and the properties ID to retrieve the property value. This method has been introduced in version 0.22.

[const] bool round_path?

Description: Returns true, if the path has round ends

Applies to paths only. Will throw an exception if the object is not a path.

void set_property(variant key,variant value)

Description: Set the user property with the given key to the given value

This method is a convenience method that sets the property with the given key to the given value. If no property with that key exists, it will create one. Using that method is more convenient than creating a new property set with a new ID and assigning that properties ID. This method may change the properties ID. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

Shapes ptr shapes

Description: Gets a reference to the Shapes container the shape lives in

This reference can be nil, if the Shape object is not referring to an actual shape.

This method has been introduced in version 0.22.

[const] SimplePolygon simple_polygon

Description: Returns the simple polygon object

Returns the simple polygon object that this shape refers to or converts the object to a simple polygon. Paths, boxes and polygons are converted to simple polygons. Polygons with holes will have their holes removed but introducing cut lines that connect the hole contours with the outer contour. This method will throw an exception if the Shape object represents other primitives.

void simple_polygon=(const SimplePolygon box)

Description: Replaces the shape by the given simple polygon object

This method replaces the shape by the given simple polygon object. This method can only be called for editable layouts. It does not change the user properties of the shape. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

[static] int t_box

Description:

This method is deprecated. Use method 'TBox' instead

[static] int t_box_array

Description:

This method is deprecated. Use method 'TBoxArray' instead

[static] int t_box_array_member

Description:

This method is deprecated. Use method 'TBoxArrayMember' instead

[static] int t_edge

Description:

This method is deprecated. Use method 'TEdge' instead

[static] int t_null

Description:

This method is deprecated. Use method 'TNull' instead

[static] int t_path

Description:

This method is deprecated. Use method 'TPath' instead

[static] int t_path_ptr_array

Description:

This method is deprecated. Use method 'TPathPtrArray' instead

[static] int t_path_ptr_array_member

Description:

This method is deprecated. Use method 'TPathPtrArrayMember' instead

[static] int t_path_ref

Description:

This method is deprecated. Use method 'TPathRef' instead

[static] int t_polygon

Description:

This method is deprecated. Use method 'TPolygon' instead

[static] int t_polygon_ptr_array

Description:

This method is deprecated. Use method 'TPolygonPtrArray' instead

[static] int t_polygon_ptr_array_member

Description:

This method is deprecated. Use method 'TPolygonPtrArrayMember' instead

[static] int t_polygon_ref

Description:

This method is deprecated. Use method 'TPolygonRef' instead

[static] int t_short_box

Description:

This method is deprecated. Use method 'TShortBox' instead

[static] int t_short_box_array

Description:

This method is deprecated. Use method 'TShortBoxArray' instead

[static] int t_short_box_array_member

Description:

This method is deprecated. Use method 'TShortBoxArrayMember' instead

[static] int t_simple_polygon

Description:

This method is deprecated. Use method 'TSimplePolygon' instead

[static] int t_simple_polygon_ptr_array

Description:

This method is deprecated. Use method 'TSimplePolygonPtrArray' instead

[static] int t_simple_polygon_ptr_array_member

Description:

This method is deprecated. Use method 'TSimplePolygonPtrArrayMember' instead

[static] int t_simple_polygon_ref

Description:

This method is deprecated. Use method 'TSimplePolygonRef' instead

[static] int t_text

Description:

This method is deprecated. Use method 'TText' instead

[static] int t_text_ptr_array

Description:

This method is deprecated. Use method 'TTextPtrArray' instead

[static] int t_text_ptr_array_member

Description:

This method is deprecated. Use method 'TTextPtrArrayMember' instead

[static] int t_text_ref

Description:

This method is deprecated. Use method 'TTextRef' instead

[static] int t_user_object

Description:

This method is deprecated. Use method 'TUserObject' instead

[const] Text text

Description: Returns the text object

Applies to texts only.

void text=(const Text box)

Description: Replaces the shape by the given text object

This method replaces the shape by the given text object. This method can only be called for editable layouts. It does not change the user properties of the shape. Calling this method will invalidate any iterators. It should not be called inside a loop iterating over shapes.

This method has been introduced in version 0.22.

[const] int text_font

Description: Obtain the text's font

Applies to texts only. Will throw an exception if the object is not a text.

[const] int text_halign

Description: Obtain the text's horizontal alignment

Applies to texts only. Will throw an exception if the object is not a text. The return value is 0 for left alignment, 1 for center alignment and 2 to right alignment.

This method has been introduced in version 0.22.

[const] int text_size

Description: Obtain the text size

Applies to texts only. Will throw an exception if the object is not a text.

[const] string text_string

Description: Obtain the text string

Applies to texts only. Will throw an exception if the object is not a text.

[const] Trans text_trans

Description: Obtain the text transformation

Applies to texts only. Will throw an exception if the object is not a text.

[const] int text_valign

Description: Obtain the text's vertical alignment

Applies to texts only. Will throw an exception if the object is not a text. The return value is 0 for top alignment, 1 for center alignment and 2 to bottom alignment.

This method has been introduced in version 0.22.

[const] string to_s

Description: Create a string showing the contents of the reference

This method has been introduced with version 0.16.

[const] int type

Description: Return the type of the shape

The returned values are the t_... constants available through the corresponding class members.