Class: Prawn::Document::BoundingBox
- Inherits:
-
Object
- Object
- Prawn::Document::BoundingBox
- Defined in:
- lib/prawn/document/bounding_box.rb
Overview
Low level layout helper that simplifies coordinate math.
See #bounding_box for a description of what this class is used for.
Direct Known Subclasses
Defined Under Namespace
Classes: NoReferenceBounds
Stable API collapse
-
#width ⇒ Number
readonly
Width of the bounding box.
Stable API collapse
-
#absolute_bottom ⇒ Number
Absolute bottom y-coordinate of the bottom box.
-
#absolute_bottom_left ⇒ Array(Number, Number)
Absolute bottom-left point of the bounding box.
-
#absolute_bottom_right ⇒ Array(Number, Number)
Absolute bottom-left point of the bounding box.
-
#absolute_left ⇒ Number
Absolute left x-coordinate of the bounding box.
-
#absolute_right ⇒ Number
Absolute right x-coordinate of the bounding box.
-
#absolute_top ⇒ Number
Absolute top y-coordinate of the bounding box.
-
#absolute_top_left ⇒ Array(Number, Number)
Absolute top-left point of the bounding box.
-
#absolute_top_right ⇒ Array(Number, Number)
Absolute top-right point of the bounding box.
-
#bottom ⇒ Number
Relative bottom y-coordinate of the bounding box.
-
#bottom_left ⇒ Array(Number, Number)
Relative bottom-left point of the bounding box.
-
#bottom_right ⇒ Array(Number, Number)
Relative bottom-right point of the bounding box.
-
#height ⇒ Number
(also: #update_height)
Height of the bounding box.
-
#left ⇒ Number
Relative left x-coordinate of the bounding box.
-
#right ⇒ Number
Relative right x-coordinate of the bounding box.
-
#top ⇒ Number
Relative top y-coordinate of the bounding box.
-
#top_left ⇒ Array(Number, Number)
Relative top-left point of the bounding_box.
-
#top_right ⇒ Array(Number, Number)
Relative top-right point of the bounding box.
Extension API collapse
-
#move_past_bottom ⇒ void
Moves to the top of the next page of the document, starting a new page if necessary.
-
#reference_bounds ⇒ BoundingBox
Returns the innermost non-stretchy bounding box.
-
#stretchy? ⇒ Boolean
Returns
false
when the box has a defined height,true
when the height is being calculated on the fly based on the current vertical position.
Instance Attribute Details
#width ⇒ Number (readonly)
Width of the bounding box.
Source Code
522 | def width |
523 | @width
|
524 | end
|
Instance Method Details
#absolute_bottom ⇒ Number
Absolute bottom y-coordinate of the bottom box.
Source Code
487 | def absolute_bottom |
488 | @y - height |
489 | end
|
#absolute_bottom_left ⇒ Array(Number, Number)
Absolute bottom-left point of the bounding box.
Source Code
508 | def absolute_bottom_left |
509 | [absolute_left, absolute_bottom] |
510 | end
|
#absolute_bottom_right ⇒ Array(Number, Number)
Absolute bottom-left point of the bounding box.
Source Code
515 | def absolute_bottom_right |
516 | [absolute_right, absolute_bottom] |
517 | end
|
#absolute_left ⇒ Number
Absolute left x-coordinate of the bounding box.
Source Code
466 | def absolute_left |
467 | @x
|
468 | end
|
#absolute_right ⇒ Number
Absolute right x-coordinate of the bounding box.
Source Code
473 | def absolute_right |
474 | @x + width |
475 | end
|
#absolute_top ⇒ Number
Absolute top y-coordinate of the bounding box.
Source Code
480 | def absolute_top |
481 | @y
|
482 | end
|
#absolute_top_left ⇒ Array(Number, Number)
Absolute top-left point of the bounding box.
Source Code
494 | def absolute_top_left |
495 | [absolute_left, absolute_top] |
496 | end
|
#absolute_top_right ⇒ Array(Number, Number)
Absolute top-right point of the bounding box.
Source Code
501 | def absolute_top_right |
502 | [absolute_right, absolute_top] |
503 | end
|
#bottom ⇒ Number
Relative bottom y-coordinate of the bounding box. Always 0.
Source Code
411 | def bottom |
412 | 0
|
413 | end
|
#bottom_left ⇒ Array(Number, Number)
Relative bottom-left point of the bounding box.
Source Code
459 | def bottom_left |
460 | [left, bottom] |
461 | end
|
#bottom_right ⇒ Array(Number, Number)
Relative bottom-right point of the bounding box.
Source Code
447 | def bottom_right |
448 | [right, bottom] |
449 | end
|
#height ⇒ Number Also known as: update_height
Height of the bounding box. If the box is ‘stretchy’ (unspecified height attribute), height is calculated as the distance from the top of the box to the current drawing position.
Source Code
529 | def height |
530 | return @height if @height |
531 | |
532 | @stretched_height = [ |
533 | (absolute_top - @document.y), |
534 | Float(@stretched_height || 0.0), |
535 | ].max |
536 | end
|
#left ⇒ Number
Relative left x-coordinate of the bounding box. Always 0.
Source Code
312 | def left |
313 | 0
|
314 | end
|
#move_past_bottom ⇒ void
This method returns an undefined value.
Moves to the top of the next page of the document, starting a new page if necessary.
Source Code
560 | def move_past_bottom |
561 | if @document.page_number == @document.page_count |
562 | @document.start_new_page |
563 | else
|
564 | @document.go_to_page(@document.page_number + 1) |
565 | end
|
566 | end
|
#reference_bounds ⇒ BoundingBox
Returns the innermost non-stretchy bounding box.
Source Code
581 | def reference_bounds |
582 | if stretchy? |
583 | raise NoReferenceBounds unless @parent |
584 | |
585 | @parent.reference_bounds |
586 | else
|
587 | self
|
588 | end
|
589 | end
|
#right ⇒ Number
Relative right x-coordinate of the bounding box. Equal to the box width.
Source Code
391 | def right |
392 | @width
|
393 | end
|
#stretchy? ⇒ Boolean
Returns false
when the box has a defined height, true
when the
height is being calculated on the fly based on the current vertical
position.
Source Code
573 | def stretchy? |
574 | !@height |
575 | end
|
#top ⇒ Number
Relative top y-coordinate of the bounding box. Equal to the box height.
Source Code
401 | def top |
402 | height
|
403 | end
|
#top_left ⇒ Array(Number, Number)
Relative top-left point of the bounding_box.
Source Code
423 | def top_left |
424 | [left, top] |
425 | end
|
#top_right ⇒ Array(Number, Number)
Relative top-right point of the bounding box.
Source Code
435 | def top_right |
436 | [right, top] |
437 | end
|