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

API reference - Class DBox

Notation used in Ruby API documentation

Description: A box class

This object represents a box (a rectangular shape). Notation is: p1 is the lower left point, p2 the upper right one. A box can be empty. An empty box represents no area (not even a point). A box can be a point or a single line. In this case, the area is zero but the box still can overlap other boxes.

Public constructors

new DBoxnewDefault constructor: creates an empty (invalid) box
new DBoxnew(double left,
double bottom,
double right,
double top)
Constructor with four coordinates
new DBoxnew(const DPoint lower_left,
const DPoint upper_right)
Constructor with two points

Public methods

[const]bool!=(const DBox box)Inequality
[const]DBox&(const DBox box)Intersection of boxes
[const]DBox*(const DBox box)Convolve boxes
[const]DBox*(double scale_factor)Scale box
[const]DBox+(const DPoint point)Join box with a point
[const]DBox+(const DBox box)Joining of boxes
[const]bool<(const DBox box)Less operator
[const]bool==(const DBox box)Equality
[const]doubleareaCompute the box area
[const]voidassign(const DBox other)Assign the contents of another object to self
[const]doublebottomThe bottom coordinate of the box
voidbottom=(double arg1)Set the bottom coordinate of the box
[const]DPointcenterThe center of the box
[const]boolcontains?(const DPoint point)"contains" test
voidcreateEnsures the C++ object is created
voiddestroyExplicitly destroy the object
[const]booldestroyed?Returns a value indicating whether the object was already destroyed
[const]DBoxdupCreates a copy of self
[const]boolempty?Empty predicate
DBoxenlarge(const DPoint enlargement)Enlarges the box by a certain amount.
[const]DBoxenlarged(const DPoint enlargement)Enlarges the box by a certain amount.
[const]doubleheightThe height of the box
[const]boolinside?(const DBox box)Test if this box is inside the argument box
[const]boolis_const_object?Returns a value indicating whether the reference is a const reference
[const]boolis_point?Return true, if the box is a single point
[const]doubleleftThe left coordinate of the box
voidleft=(double arg1)Set the left coordinate of the box
DBoxmove(const DPoint distance)Moves the box by a certain distance
[const]DBoxmoved(const DPoint distance)Returns the box moved by a certain distance
[const]booloverlaps?(const DBox box)Test if this box overlaps the argument box
[const]DPointp1The lower left point of the box
voidp1=(const DPoint arg1)Set the lower left point of the box
[const]DPointp2The upper right point of the box
voidp2=(const DPoint arg1)Set the upper right point of the box
[const]doublerightThe right coordinate of the box
voidright=(double arg1)Set the right coordinate of the box
[const]stringto_sConvert to a string
[const]doubletopThe top coordinate of the box
voidtop=(double arg1)Set the top coordinate of the box
[const]booltouches?(const DBox box)Test if this box touches the argument box
[const]DBoxtransformed(const DTrans t)Transform the box with the given simple transformation
[const]DBoxtransformed_cplx(const DCplxTrans t)Transform the box with the given complex transformation
[const]doublewidthThe width of the box

Public static methods and constants

DBoxfrom_ibox(const Box int_box)Construct a floating-point coordinate box from an integer coordinate box

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

[static]new DBoxnew_lbrt(double left,
double bottom,
double right,
double top)
Use of this method is deprecated. Use new instead
[static]new DBoxnew_pp(const DPoint lower_left,
const DPoint upper_right)
Use of this method is deprecated. Use new instead

Detailed description

[const] bool !=(const DBox box)

Description: Inequality

Return true, if this box and the given box are not equal

[const] DBox &(const DBox box)

Description: Intersection of boxes

box:The box to take the intersection with
Returns:The intersection box

The intersection of two boxes is the largest box common to both boxes. The intersection may be empty if both boxes to not touch. If the boxes do not overlap but touch the result may be a single line or point with an area of zero. Overwrites this box with the result.

[const] DBox *(const DBox box)

Description: Convolve boxes

box:The box to convolve with this box.
Returns:The convolved box

The * operator convolves the firstbox with the one given as the second argument. The box resulting from "convolution" is the outer boundary of the union set formed by placing the second box at every point of the first. In other words, the returned box of (p1,p2)*(q1,q2) is (p1+q1,p2+q2).

[const] DBox *(double scale_factor)

Description: Scale box

scale_factor:The scaling factor
Returns:The scaled box

The * operator scales self with the given factor.

This method has been introduced in version 0.22.

[const] DBox +(const DPoint point)

Description: Join box with a point

point:The point to join with this box.
Returns:The box joined with the point

The + operator joins a point with the box. The resulting box will enclose both the original box and the point.

[const] DBox +(const DBox box)

Description: Joining of boxes

box:The box to join with this box.
Returns:The joined box

The + operator joins the first box with the one given as the second argument. Joining constructs a box that encloses both boxes given. Empty boxes are neutral: they do not change another box when joining. Overwrites this box with the result.

[const] bool <(const DBox box)

Description: Less operator

Return true, if this box is 'less' with respect to first and second point (in this order)

[const] bool ==(const DBox box)

Description: Equality

Return true, if this box and the given box are equal

[const] double area

Description: Compute the box area

Returns the box area or 0 if the box is empty

[const] void assign(const DBox 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] double bottom

Description: The bottom coordinate of the box

void bottom=(double arg1)

Description: Set the bottom coordinate of the box

[const] DPoint center

Description: The center of the box

[const] bool contains?(const DPoint point)

Description: "contains" test

p:The point to test against.
Returns:true if the point is inside p.

Tests whether a point is inside the box. This includes if the point is on the box contour.

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

Description: Creates a copy of self

[const] bool empty?

Description: Empty predicate

An empty box may be created with the default constructor for example. Such a box is neutral when combining it with other boxes and renders empty boxes if used in box intersections and false in geometrical relationship tests.

DBox enlarge(const DPoint enlargement)

Description: Enlarges the box by a certain amount.

enlargement:The grow or shrink amount in x and y direction
Returns:A reference to this box.

Enlarges the box by x and y value specified in the vector passed. Positive values with grow the box, negative ones will shrink the box. The result may be an empty box if the box disappears. The amount specifies the grow or shrink per edge. The width and height will change by twice the amount. Does not check for coordinate overflows.

[const] DBox enlarged(const DPoint enlargement)

Description: Enlarges the box by a certain amount.

enlargement:The grow or shrink amount in x and y direction
Returns:The enlarged box.

Enlarges the box by x and y value specified in the vector passed. Positive values with grow the box, negative ones will shrink the box. The result may be an empty box if the box disappears. The amount specifies the grow or shrink per edge. The width and height will change by twice the amount. Does not modify this box. Does not check for coordinate overflows.

[static] DBox from_ibox(const Box int_box)

Description: Construct a floating-point coordinate box from an integer coordinate box

Create a floating-point coordinate box from an integer coordinate box

[const] double height

Description: The height of the box

[const] bool inside?(const DBox box)

Description: Test if this box is inside the argument box

Returns true, if this box is inside the given box, i.e. the box intersection renders this 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_point?

Description: Return true, if the box is a single point

[const] double left

Description: The left coordinate of the box

void left=(double arg1)

Description: Set the left coordinate of the box

DBox move(const DPoint distance)

Description: Moves the box by a certain distance

distance:The offset to move the box.
Returns:A reference to this box.

Moves the box by a given offset and returns the moved box. Does not check for coordinate overflows.

[const] DBox moved(const DPoint distance)

Description: Returns the box moved by a certain distance

distance:The offset to move the box.
Returns:The moved box.

Moves the box by a given offset and returns the moved box. Does not modify this box. Does not check for coordinate overflows.

[static] new DBox new

Description: Default constructor: creates an empty (invalid) box

[static] new DBox new(double left,double bottom,double right,double top)

Description: Constructor with four coordinates

Four coordinates are given to create a new box. If the coordinates are not provided in the correct order (i.e. right < left), these are swapped.

[static] new DBox new(const DPoint lower_left,const DPoint upper_right)

Description: Constructor with two points

Two points are given to create a new box. If the coordinates are not provided in the correct order (i.e. right < left), these are swapped.

[static] new DBox new_lbrt(double left,double bottom,double right,double top)

Description: Constructor with four coordinates

This method is deprecated. Use method 'new' instead

[static] new DBox new_pp(const DPoint lower_left,const DPoint upper_right)

Description: Constructor with two points

This method is deprecated. Use method 'new' instead

[const] bool overlaps?(const DBox box)

Description: Test if this box overlaps the argument box

Returns true, if the intersection box of this box with the argument box exists and has a non-vanishing area

[const] DPoint p1

Description: The lower left point of the box

void p1=(const DPoint arg1)

Description: Set the lower left point of the box

[const] DPoint p2

Description: The upper right point of the box

void p2=(const DPoint arg1)

Description: Set the upper right point of the box

[const] double right

Description: The right coordinate of the box

void right=(double arg1)

Description: Set the right coordinate of the box

[const] string to_s

Description: Convert to a string

[const] double top

Description: The top coordinate of the box

void top=(double arg1)

Description: Set the top coordinate of the box

[const] bool touches?(const DBox box)

Description: Test if this box touches the argument box

Returns true, if this box has at least one point common with the argument box

[const] DBox transformed(const DTrans t)

Description: Transform the box with the given simple transformation

t:The transformation to apply
Returns:The transformed box

[const] DBox transformed_cplx(const DCplxTrans t)

Description: Transform the box with the given complex transformation

t:The magnifying transformation to apply
Returns:The transformed box (a DBox now)

[const] double width

Description: The width of the box