123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
- * Qwt Widget Library
- * Copyright (C) 1997 Josef Wilgen
- * Copyright (C) 2002 Uwe Rathmann
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Qwt License, Version 1.0
- *****************************************************************************/
- /*! \file */
- #ifndef QWT_POINT_3D_H
- #define QWT_POINT_3D_H 1
- #include "qwt_global.h"
- #include <qpoint.h>
- #ifndef QT_NO_DEBUG_STREAM
- #include <qdebug.h>
- #endif
- /*!
- \brief QwtPoint3D class defines a 3D point in double coordinates
- */
- class QWT_EXPORT QwtPoint3D
- {
- public:
- QwtPoint3D();
- QwtPoint3D( double x, double y, double z );
- QwtPoint3D( const QwtPoint3D & );
- QwtPoint3D( const QPointF & );
- bool isNull() const;
- double x() const;
- double y() const;
- double z() const;
- double &rx();
- double &ry();
- double &rz();
- void setX( double x );
- void setY( double y );
- void setZ( double y );
- QPointF toPoint() const;
- bool operator==( const QwtPoint3D & ) const;
- bool operator!=( const QwtPoint3D & ) const;
- private:
- double d_x;
- double d_y;
- double d_z;
- };
- Q_DECLARE_TYPEINFO(QwtPoint3D, Q_MOVABLE_TYPE);
- #ifndef QT_NO_DEBUG_STREAM
- QWT_EXPORT QDebug operator<<( QDebug, const QwtPoint3D & );
- #endif
- /*!
- Constructs a null point.
- \sa isNull()
- */
- inline QwtPoint3D::QwtPoint3D():
- d_x( 0.0 ),
- d_y( 0.0 ),
- d_z( 0.0 )
- {
- }
- //! Constructs a point with coordinates specified by x, y and z.
- inline QwtPoint3D::QwtPoint3D( double x, double y, double z = 0.0 ):
- d_x( x ),
- d_y( y ),
- d_z( z )
- {
- }
- /*!
- Copy constructor.
- Constructs a point using the values of the point specified.
- */
- inline QwtPoint3D::QwtPoint3D( const QwtPoint3D &other ):
- d_x( other.d_x ),
- d_y( other.d_y ),
- d_z( other.d_z )
- {
- }
- /*!
- Constructs a point with x and y coordinates from a 2D point,
- and a z coordinate of 0.
- */
- inline QwtPoint3D::QwtPoint3D( const QPointF &other ):
- d_x( other.x() ),
- d_y( other.y() ),
- d_z( 0.0 )
- {
- }
- /*!
- \return True if the point is null; otherwise returns false.
- A point is considered to be null if x, y and z-coordinates
- are equal to zero.
- */
- inline bool QwtPoint3D::isNull() const
- {
- return d_x == 0.0 && d_y == 0.0 && d_z == 0.0;
- }
- //! \return The x-coordinate of the point.
- inline double QwtPoint3D::x() const
- {
- return d_x;
- }
- //! \return The y-coordinate of the point.
- inline double QwtPoint3D::y() const
- {
- return d_y;
- }
- //! \return The z-coordinate of the point.
- inline double QwtPoint3D::z() const
- {
- return d_z;
- }
- //! \return A reference to the x-coordinate of the point.
- inline double &QwtPoint3D::rx()
- {
- return d_x;
- }
- //! \return A reference to the y-coordinate of the point.
- inline double &QwtPoint3D::ry()
- {
- return d_y;
- }
- //! \return A reference to the z-coordinate of the point.
- inline double &QwtPoint3D::rz()
- {
- return d_z;
- }
- //! Sets the x-coordinate of the point to the value specified by x.
- inline void QwtPoint3D::setX( double x )
- {
- d_x = x;
- }
- //! Sets the y-coordinate of the point to the value specified by y.
- inline void QwtPoint3D::setY( double y )
- {
- d_y = y;
- }
- //! Sets the z-coordinate of the point to the value specified by z.
- inline void QwtPoint3D::setZ( double z )
- {
- d_z = z;
- }
- /*!
- \return 2D point, where the z coordinate is dropped.
- */
- inline QPointF QwtPoint3D::toPoint() const
- {
- return QPointF( d_x, d_y );
- }
- //! \return True, if this point and other are equal; otherwise returns false.
- inline bool QwtPoint3D::operator==( const QwtPoint3D &other ) const
- {
- return ( d_x == other.d_x ) && ( d_y == other.d_y ) && ( d_z == other.d_z );
- }
- //! \return True if this rect and other are different; otherwise returns false.
- inline bool QwtPoint3D::operator!=( const QwtPoint3D &other ) const
- {
- return !operator==( other );
- }
- #endif
|