QCAD
Open Source 2D CAD
|
Represents a box e.g. More...
#include <RBox.h>
Public Member Functions | |
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 (!). More... | |
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. More... | |
void | growToInclude (const RVector &v) |
Grows this box to include the given point. More... | |
void | growToIncludeBox (const RBox &other) |
void | growToIncludeBoxes (const QList< RBox > &others) |
Grows this box to include all other given boxes. More... | |
void | growToIncludePoint (const RVector &v) |
RBox & | growXY (double offset) |
Grows this box by the given offset in X and Y only. More... | |
RBox & | growXY (double offsetX, double offsetY) |
Grows this box by the given offsets in X and Y only. More... | |
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. More... | |
bool | operator!= (const RBox &other) const |
bool | operator== (const RBox &other) const |
== operator More... | |
RBox () | |
Copyright (c) 2011-2018 by Andrew Mustun. More... | |
RBox (const QRectF &rect) | |
Constructor for a box based on the given QRectF object. More... | |
RBox (const RVector &c1, const RVector &c2) | |
Constructor for a box with two given diagonally opposite corners. More... | |
RBox (const RVector ¢er, double range) | |
Creates a square box with the given center and the given range (= side length / 2). More... | |
RBox (const RVector ¢er, double width, double height) | |
Creates a box with the given center and the given width / height. More... | |
RBox (double x1, double y1, double x2, double y2) | |
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. More... | |
void | setCorner2 (const RVector &v) |
Set second of two diagonally opposite corners that define the box. More... | |
QRectF | toQRectF () const |
void | transform (QTransform &t) |
Public Attributes | |
RVector | c1 |
Getter function for this property: getCorner1 Setter function for this property: setCorner1 More... | |
RVector | c2 |
Getter function for this property: getCorner2 Setter function for this property: setCorner2 More... | |
Represents a box e.g.
a bounding box. The surfaces of the box are orthogonal to the Cartesian coordinate system.
RBox::RBox | ( | ) |
Copyright (c) 2011-2018 by Andrew Mustun.
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 |
Constructor for a box based on the given QRectF object.
RBox::RBox | ( | double | x1, |
double | y1, | ||
double | x2, | ||
double | y2 | ||
) |
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.
bool RBox::contains | ( | const RBox & | other | ) | const |
bool RBox::contains | ( | const RVector & | v | ) | const |
|
inline |
|
inline |
bool RBox::equalsFuzzy | ( | const RBox & | b, |
double | tol = RS::PointTolerance |
||
) | const |
bool RBox::equalsFuzzy2D | ( | const RBox & | b, |
double | tol = RS::PointTolerance |
||
) | const |
|
inline |
double RBox::getArea | ( | ) | const |
RVector RBox::getCenter | ( | ) | const |
RVector RBox::getCorner1 | ( | ) | const |
RVector RBox::getCorner2 | ( | ) | const |
QList< RVector > RBox::getCorners | ( | ) | const |
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 |
double RBox::getHeight | ( | ) | const |
QList< RLine > RBox::getLines2d | ( | ) | const |
RVector RBox::getMaximum | ( | ) | const |
RVector RBox::getMinimum | ( | ) | const |
RPolyline RBox::getPolyline2d | ( | ) | const |
RVector RBox::getSize | ( | ) | const |
QList< RTriangle > RBox::getTriangles | ( | ) | const |
double RBox::getWidth | ( | ) | const |
RBox & RBox::grow | ( | double | offset | ) |
Grows this box by the given offset in X, Y and Z (!).
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.
|
inline |
void RBox::growToIncludeBoxes | ( | const QList< RBox > & | others | ) |
Grows this box to include all other given boxes.
|
inline |
RBox & RBox::growXY | ( | double | offset | ) |
Grows this box by the given offset in X and Y only.
RBox & RBox::growXY | ( | double | offsetX, |
double | offsetY | ||
) |
Grows this box by the given offsets in X and Y only.
bool RBox::intersects | ( | const RBox & | other | ) | const |
bool RBox::intersectsWith | ( | const RShape & | shape, |
bool | limited = true |
||
) | const |
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 |
bool RBox::isOutsideXY | ( | const RBox & | other | ) | const |
bool RBox::isSane | ( | ) | const |
bool RBox::isValid | ( | ) | const |
void RBox::move | ( | const RVector & | offset | ) |
Moves this box by the given offset.
|
inline |
bool RBox::operator== | ( | const RBox & | other | ) | 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 |
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