summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dbox.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/q3dbox.h')
-rw-r--r--src/datavisualization/engine/q3dbox.h180
1 files changed, 77 insertions, 103 deletions
diff --git a/src/datavisualization/engine/q3dbox.h b/src/datavisualization/engine/q3dbox.h
index aa63ec39..6dbaefa1 100644
--- a/src/datavisualization/engine/q3dbox.h
+++ b/src/datavisualization/engine/q3dbox.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,36 +19,82 @@
#ifndef Q3DBOX_H
#define Q3DBOX_H
-#include <QtDataVisualization/qdatavisualizationenums.h>
+#include <QtDataVisualization/qdatavisualizationglobal.h>
#include <QtGui/QMatrix4x4>
#include <QtGui/QVector3D>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class Q3DBox; // Needed to circumvent an issue with qdoc. If this line is removed, make docs will not work for this.
class QT_DATAVISUALIZATION_EXPORT Q3DBox
{
public:
- Q3DBox();
- Q3DBox(const QVector3D& corner1, const QVector3D& corner2);
+ inline Q3DBox() : boxtype(Null), mincorner(0, 0, 0), maxcorner(0, 0, 0) {}
+ inline Q3DBox(const QVector3D& corner1, const QVector3D& corner2): boxtype(Finite),
+ mincorner(qMin(corner1.x(), corner2.x()),
+ qMin(corner1.y(), corner2.y()),
+ qMin(corner1.z(), corner2.z())),
+ maxcorner(qMax(corner1.x(), corner2.x()),
+ qMax(corner1.y(), corner2.y()),
+ qMax(corner1.z(), corner2.z())) {}
+
+ inline bool isNull() const { return (boxtype == Null); }
+ inline bool isFinite() const { return (boxtype == Finite); }
+ inline bool isInfinite() const { return (boxtype == Infinite); }
+
+ inline QVector3D minimum() const { return mincorner; }
+ inline QVector3D maximum() const { return maxcorner; }
+ inline void setExtents(const QVector3D& corner1, const QVector3D& corner2)
+ {
+ boxtype = Finite;
+ mincorner = QVector3D(qMin(corner1.x(), corner2.x()),
+ qMin(corner1.y(), corner2.y()),
+ qMin(corner1.z(), corner2.z()));
+ maxcorner = QVector3D(qMax(corner1.x(), corner2.x()),
+ qMax(corner1.y(), corner2.y()),
+ qMax(corner1.z(), corner2.z()));
+ }
- bool isNull() const;
- bool isFinite() const;
- bool isInfinite() const;
+ inline void setToNull()
+ {
+ boxtype = Null;
+ mincorner = QVector3D(0, 0, 0);
+ maxcorner = QVector3D(0, 0, 0);
+ }
- QVector3D minimum() const;
- QVector3D maximum() const;
- void setExtents(const QVector3D& corner1, const QVector3D& corner2);
+ inline void setToInfinite()
+ {
+ boxtype = Infinite;
+ mincorner = QVector3D(0, 0, 0);
+ maxcorner = QVector3D(0, 0, 0);
+ }
- void setToNull();
- void setToInfinite();
+ inline QVector3D size() const { return maxcorner - mincorner; }
+ inline QVector3D center() const { return (mincorner + maxcorner) * 0.5f; }
- QVector3D size() const;
- QVector3D center() const;
+ inline bool contains(const QVector3D& point) const
+ {
+ if (boxtype == Finite) {
+ return (point.x() >= mincorner.x() && point.x() <= maxcorner.x() &&
+ point.y() >= mincorner.y() && point.y() <= maxcorner.y() &&
+ point.z() >= mincorner.z() && point.z() <= maxcorner.z());
+ } else if (boxtype == Infinite) {
+ return true;
+ } else {
+ return false;
+ }
+ }
- bool contains(const QVector3D& point) const;
- bool contains(const Q3DBox& box) const;
+ inline bool contains(const Q3DBox& box) const
+ {
+ if (box.boxtype == Finite)
+ return contains(box.mincorner) && contains(box.maxcorner);
+ else if (box.boxtype == Infinite)
+ return (boxtype == Infinite);
+ else
+ return false;
+ }
bool intersects(const Q3DBox& box) const;
void intersect(const Q3DBox& box);
@@ -63,8 +109,19 @@ public:
void transform(const QMatrix4x4& matrix);
Q3DBox transformed(const QMatrix4x4& matrix) const;
- bool operator==(const Q3DBox& box) const;
- bool operator!=(const Q3DBox& box) const;
+ inline bool operator==(const Q3DBox& box) const
+ {
+ return (boxtype == box.boxtype &&
+ mincorner == box.mincorner &&
+ maxcorner == box.maxcorner);
+ }
+
+ inline bool operator!=(const Q3DBox& box) const
+ {
+ return (boxtype != box.boxtype ||
+ mincorner != box.mincorner ||
+ maxcorner != box.maxcorner);
+ }
friend bool qFuzzyCompare(const Q3DBox& box1, const Q3DBox& box2);
@@ -80,89 +137,6 @@ private:
QVector3D mincorner, maxcorner;
};
-inline Q3DBox::Q3DBox() : boxtype(Null), mincorner(0, 0, 0), maxcorner(0, 0, 0) {}
-
-inline Q3DBox::Q3DBox(const QVector3D& corner1, const QVector3D& corner2)
- : boxtype(Finite),
- mincorner(qMin(corner1.x(), corner2.x()),
- qMin(corner1.y(), corner2.y()),
- qMin(corner1.z(), corner2.z())),
- maxcorner(qMax(corner1.x(), corner2.x()),
- qMax(corner1.y(), corner2.y()),
- qMax(corner1.z(), corner2.z())) {}
-
-inline bool Q3DBox::isNull() const { return (boxtype == Null); }
-inline bool Q3DBox::isFinite() const { return (boxtype == Finite); }
-inline bool Q3DBox::isInfinite() const { return (boxtype == Infinite); }
-
-inline QVector3D Q3DBox::minimum() const { return mincorner; }
-inline QVector3D Q3DBox::maximum() const { return maxcorner; }
-
-inline void Q3DBox::setExtents(const QVector3D& corner1, const QVector3D& corner2)
-{
- boxtype = Finite;
- mincorner = QVector3D(qMin(corner1.x(), corner2.x()),
- qMin(corner1.y(), corner2.y()),
- qMin(corner1.z(), corner2.z()));
- maxcorner = QVector3D(qMax(corner1.x(), corner2.x()),
- qMax(corner1.y(), corner2.y()),
- qMax(corner1.z(), corner2.z()));
-}
-
-inline void Q3DBox::setToNull()
-{
- boxtype = Null;
- mincorner = QVector3D(0, 0, 0);
- maxcorner = QVector3D(0, 0, 0);
-}
-
-inline void Q3DBox::setToInfinite()
-{
- boxtype = Infinite;
- mincorner = QVector3D(0, 0, 0);
- maxcorner = QVector3D(0, 0, 0);
-}
-
-inline QVector3D Q3DBox::size() const { return maxcorner - mincorner; }
-inline QVector3D Q3DBox::center() const { return (mincorner + maxcorner) * 0.5f; }
-
-inline bool Q3DBox::contains(const QVector3D& point) const
-{
- if (boxtype == Finite) {
- return (point.x() >= mincorner.x() && point.x() <= maxcorner.x() &&
- point.y() >= mincorner.y() && point.y() <= maxcorner.y() &&
- point.z() >= mincorner.z() && point.z() <= maxcorner.z());
- } else if (boxtype == Infinite) {
- return true;
- } else {
- return false;
- }
-}
-
-inline bool Q3DBox::contains(const Q3DBox& box) const
-{
- if (box.boxtype == Finite)
- return contains(box.mincorner) && contains(box.maxcorner);
- else if (box.boxtype == Infinite)
- return (boxtype == Infinite);
- else
- return false;
-}
-
-inline bool Q3DBox::operator==(const Q3DBox& box) const
-{
- return (boxtype == box.boxtype &&
- mincorner == box.mincorner &&
- maxcorner == box.maxcorner);
-}
-
-inline bool Q3DBox::operator!=(const Q3DBox& box) const
-{
- return (boxtype != box.boxtype ||
- mincorner != box.mincorner ||
- maxcorner != box.maxcorner);
-}
-
inline bool qFuzzyCompare(const Q3DBox& box1, const Q3DBox& box2)
{
return box1.boxtype == box2.boxtype &&
@@ -179,6 +153,6 @@ QT_DATAVISUALIZATION_EXPORT QDataStream &operator<<(QDataStream &stream, const Q
QT_DATAVISUALIZATION_EXPORT QDataStream &operator>>(QDataStream &stream, Q3DBox &box);
#endif
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif