Skip to content

RBox

Class in Math Module
Header: #include <src/core/math/RBox.h>

Represents a box e.g.

a bounding box. The surfaces of the box are orthogonal to the Cartesian coordinate system.

Scriptable: This class is available in script environments.

Shared Pointer Support: Objects can be used in QSharedPointer.

Copyable: Objects are cleaned up automatically by the garbage collector of the script engine.

RBox()
RBox(const QRectF &rect)
Constructor for a box based on the given QRectF object.
RBox(const RVector &c1, const RVector &c2)
Constructor for a box with two given diagonally opposite corners.
RBox(const RVector &center, double range)
Creates a square box with the given center and the given range (= side length / 2).
RBox(const RVector &center, double width, double height)
Creates a box with the given center and the given width / height.
RBox(double x1, double y1, double x2, double y2)
bool contains(const RBox &other) const
bool contains(const RVector &v) const
bool containsBox(const RBox &other) const
bool containsPoint(const RVector &v) const
bool equalsFuzzy(const RBox &b, double tol=RS::PointTolerance) const
bool equalsFuzzy2D(const RBox &b, double tol=RS::PointTolerance) const
RBox get2D() const
double getArea() const
RVector getCenter() const
RVector getCorner1() const
RVector getCorner2() const
QList< RVector > getCorners() const
QList< RVector > getCorners2d() const
double getHeight() const
QList< RLine > getLines2d() const
RVector getMaximum() const
RVector getMinimum() const
RPolyline getPolyline2d() const
RVector getSize() const
QList< RTriangle > getTriangles() const
double getWidth() const
RBox & grow(double offset)
Grows this box by the given offset in X, Y and Z (!).
void growToInclude(const RBox &other)
Grows this box to include the given box or sets this box to the given box if this box is invalid.
void growToInclude(const RVector &v)
Grows this box to include the given point.
void growToIncludeBox(const RBox &other)
void growToIncludeBoxes(const QList< RBox > &others)
Grows this box to include all other given boxes.
void growToIncludePoint(const RVector &v)
RBox & growXY(double offset)
Grows this box by the given offset in X and Y only.
RBox & growXY(double offsetX, double offsetY)
Grows this box by the given offsets in X and Y only.
bool intersects(const RBox &other) const
bool intersectsWith(const RShape &shape, bool limited=true) const
bool isOutside(const RBox &other) const
bool isOutsideXY(const RBox &other) const
bool isSane() const
bool isValid() const
void move(const RVector &offset)
Moves this box by the given offset.
bool operator!=(const RBox &other) const
bool operator==(const RBox &other) const
== operator
bool scaleByReference(const RVector &referencePoint, const RVector &targetPoint, bool keepAspectRatio=false, bool fromCenter=false)
void setCorner1(const RVector &v)
Set first of two diagonally opposite corners that define the box.
void setCorner2(const RVector &v)
Set second of two diagonally opposite corners that define the box.
QRectF toQRectF() const
void transform(QTransform &t)
RVector c1
Getter function for this property: getCorner1.
RVector c2
Getter function for this property: getCorner2.

RBox::RBox()

All rights reserved.

This file is part of the QCAD project.

QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with QCAD. Constructor for an invalid box with invalid corner points.

explicit RBox::RBox(const QRectF &rect)

explicit

Constructor for a box based on the given QRectF object.

RBox::RBox(const RVector &c1, const RVector &c2)

Constructor for a box with two given diagonally opposite corners.

RBox::RBox(const RVector &center, double range)

Creates a square box with the given center and the given range (= side length / 2).

RBox::RBox(const RVector &center, double width, double height)

Creates a box with the given center and the given width / height.

RBox::RBox(double x1, double y1, double x2, double y2)

bool RBox::contains(const RBox &other) const

const

Returns: True if the given box is completely inside this box.

bool RBox::contains(const RVector &v) const

const

Non-Scriptable: This function is not available in script environments.

Returns: True if the given vector is inside this box.

bool RBox::containsBox(const RBox &other) const

inline const

bool RBox::containsPoint(const RVector &v) const

inline const

bool RBox::equalsFuzzy(const RBox &b, double tol=RS::PointTolerance) const

const

bool RBox::equalsFuzzy2D(const RBox &b, double tol=RS::PointTolerance) const

const

RBox RBox::get2D() const

inline const

double RBox::getArea() const

const

RVector RBox::getCenter() const

const

Returns: Center of this box.

RVector RBox::getCorner1() const

const

Returns: First of two diagonally opposite corners that define the box.

RVector RBox::getCorner2() const

const

Returns: Second of two diagonally opposite corners that define the box.

QList< RVector > RBox::getCorners() const

const

Returns: 8 vectors for the eight corners of the box.

The first box corner is the first defining corner c1. The next three corners are the corners on the same Z level as c1, counter-clockwise. The next four corners are on the same Z-level as c2 starting with the corner at the same X/Y position as c1, continuing counter-clockwise.

QList< RVector > RBox::getCorners2d() const

const

Returns: List of all four corners of this box flattened to 2D.

double RBox::getHeight() const

const

Returns: Height of this box.

QList< RLine > RBox::getLines2d() const

const

Returns: List of all four sides of this box flattened to 2D.

RVector RBox::getMaximum() const

const

Returns: Maximum point of this box (maximum X, Y and Z).

RVector RBox::getMinimum() const

const

Returns: Minimum point of this box (minimum X, Y and Z).

RPolyline RBox::getPolyline2d() const

const

Returns: Polyline representing the four sides of this box flattened to 2D.

RVector RBox::getSize() const

const

Returns: Size of this box (X,Y,Z).

QList< RTriangle > RBox::getTriangles() const

const

Returns: 12 triangles, two for each side of the box.

double RBox::getWidth() const

const

Returns: Width of this box.

RBox & RBox::grow(double offset)

Grows this box by the given offset in X, Y and Z (!).

Returns: pointer to this box

void RBox::growToInclude(const RBox &other)

Grows this box to include the given box or sets this box to the given box if this box is invalid.

void RBox::growToInclude(const RVector &v)

Grows this box to include the given point.

Non-Scriptable: This function is not available in script environments.

void RBox::growToIncludeBox(const RBox &other)

inline

void RBox::growToIncludeBoxes(const QList< RBox > &others)

Grows this box to include all other given boxes.

void RBox::growToIncludePoint(const RVector &v)

inline

RBox & RBox::growXY(double offset)

Grows this box by the given offset in X and Y only.

Returns: pointer to this box

RBox & RBox::growXY(double offsetX, double offsetY)

Grows this box by the given offsets in X and Y only.

Returns: pointer to this box

bool RBox::intersects(const RBox &other) const

const

Returns: True if this box intersects the given other box.

bool RBox::intersectsWith(const RShape &shape, bool limited=true) const

const

Returns: True if this box intersects the given shape.

Parameters:

  • limited: True to limit the shape to its actual length, false to return true if the extended shape intersects this box.

bool RBox::isOutside(const RBox &other) const

const

Returns: True if the given box is completely outside this box.

bool RBox::isOutsideXY(const RBox &other) const

const

Returns: True if the given box is completely outside this box.

bool RBox::isSane() const

const

Returns: True if this box is sane (i.e. both diagonally opposite corners are valid and not Infinity or NaN).

bool RBox::isValid() const

const

Returns: True if this box is valid (i.e. both diagonally opposite corners are valid).

void RBox::move(const RVector &offset)

Moves this box by the given offset.

bool RBox::operator!=(const RBox &other) const

inline const

bool RBox::operator==(const RBox &other) const

const

== operator

bool RBox::scaleByReference(const RVector &referencePoint, const RVector &targetPoint, bool keepAspectRatio=false, bool fromCenter=false)

void RBox::setCorner1(const RVector &v)

Set first of two diagonally opposite corners that define the box.

void RBox::setCorner2(const RVector &v)

Set second of two diagonally opposite corners that define the box.

QRectF RBox::toQRectF() const

const

Returns: This box converted to a QRectF object (2D).

void RBox::transform(QTransform &t)

RVector RBox::c1

Getter function for this property: getCorner1.

Setter function for this property: setCorner1

RVector RBox::c2

Getter function for this property: getCorner2.

Setter function for this property: setCorner2