Class Box (version 0.18)

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.

Class overview

Index

Method Overview

[static] Box from_dbox( DBox double_box )Construct an integer box from a floating-point coordinate box
[const] Box transformed_cplx( ICplxTrans t )Transform the box with the given complex transformation
[static] Box newDefault constructor: creates an empty (invalid) box
[static] Box new( int left, int bottom, int right, int top )Constructor with four coordinates
[static] Box new( Point lower_left, Point upper_right )Constructor with two points
[const] const ref Point p1The lower left point of the box
[const] const ref Point p2The upper right point of the box
[const] Point centerThe center of the box
[const] int leftThe left coordinate of the box
[const] int rightThe right coordinate of the box
[const] int bottomThe bottom coordinate of the box
[const] int topThe top coordinate of the box
[const] int widthThe width of the box
[const] int heightThe height of the box
left=( int )Set the left coordinate of the box
right=( int )Set the right coordinate of the box
bottom=( int )Set the bottom coordinate of the box
top=( int )Set the top coordinate of the box
p1=( Point )Set the lower left point of the box
p2=( Point )Set the upper right point of the box
[const] bool contains?( Point point )"contains" test
[const] bool empty?Empty predicate
[const] bool inside?( Box box )Test if this box is inside the argument box
[const] bool touches?( Box box )Test if this box touches the argument box
[const] bool overlaps?( Box box )Test if this box overlaps the argument box
[const] double areaCompute the box area
[const] bool is_point?Return true, if the box is a single point
[const] Box +( Point point )Join box with a point.
Box +( Box box )Joining of boxes.
Box &( Box box )Intersection of boxes.
Box *( Box box )Convolve boxes.
ref Box move( Point distance )Moves the box by a certain distance
[const] Box moved( Point distance )Returns the box moved by a certain distance
ref Box enlarge( Point enlargement )Enlarges the box by a certain amount.
[const] Box enlarged( Point enlargement )Enlarges the box by a certain amount.
[const] Box transformed( Trans t )Transform the box with the given simple transformation
[const] DBox transformed_cplx( CplxTrans t )Transform the box with the given complex transformation
[const] bool <( Box box )Less operator
[const] bool ==( Box box )Equality
[const] bool !=( Box box )Inequality
[const] string to_sConvert to a string
assign( Box other )Assign the contents of another object to self
[const] Box dupCreates a copy of self.
destroyExplicitly destroy the object
[const] bool destroyedTell, if the object was destroyed

[const] bool !=( Box box )

Description: Inequality

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

Box &( Box box )

Description: Intersection of boxes.

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.

c:The box to take the intersection with
returns:The intersection box.

Box *( Box box )

Description: Convolve boxes.

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

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

[const] Box +( Point point )

Description: Join box with a point.

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

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

Box +( Box box )

Description: Joining of boxes.

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.

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

[const] bool <( Box box )

Description: Less operator

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

[const] bool ==( Box 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

assign( Box 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] int bottom

Description: The bottom coordinate of the box

bottom=( int )

Description: Set the bottom coordinate of the box

[const] Point center

Description: The center of the box

[const] bool contains?( Point point )

Description: "contains" test

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

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

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] Box 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.

ref Box enlarge( Point enlargement )

Description: Enlarges the box by a certain amount.

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.

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

[const] Box enlarged( Point enlargement )

Description: Enlarges the box by a certain amount.

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.

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

[static] Box from_dbox( DBox double_box )

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

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

[const] int height

Description: The height of the box

[const] bool inside?( Box 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_point?

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

[const] int left

Description: The left coordinate of the box

left=( int )

Description: Set the left coordinate of the box

ref Box move( Point distance )

Description: Moves the box by a certain distance

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

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

[const] Box moved( Point distance )

Description: Returns the box moved by a certain distance

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

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

[static] Box new( Point lower_left, Point upper_right )
synonym: [static] Box new_pp( Point lower_left, Point 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] Box new

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

[static] Box new( int left, int bottom, int right, int top )
synonym: [static] Box new_lbrt( int left, int bottom, int right, int 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.

[const] bool overlaps?( Box 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] const ref Point p1

Description: The lower left point of the box

p1=( Point )

Description: Set the lower left point of the box

[const] const ref Point p2

Description: The upper right point of the box

p2=( Point )

Description: Set the upper right point of the box

[const] int right

Description: The right coordinate of the box

right=( int )

Description: Set the right coordinate of the box

[const] string to_s

Description: Convert to a string

[const] int top

Description: The top coordinate of the box

top=( int )

Description: Set the top coordinate of the box

[const] bool touches?( Box 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] Box transformed( Trans t )

Description: Transform the box with the given simple transformation

t:The transformation to apply
returns:The transformed box

[const] DBox transformed_cplx( CplxTrans t )

Description: Transform the box with the given complex transformation

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

[const] Box transformed_cplx( ICplxTrans t )

Description: Transform the box with the given complex transformation

This method has been introduced in version 0.18.

t:The magnifying transformation to apply
returns:The transformed box (in this case an integer coordinate box)

[const] int width

Description: The width of the box