mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
Fixes two issues in camera navigation: - Unintuitive camera rotation - Wrong center point when zooming in/out and rotating See https://github.com/qgis/QGIS-Enhancement-Proposals/issues/215 This PR employs the following changes: - The zoom in functionality will zoom in towards the real 3D position of an object in the scene instead the camera view center point used previously. - The rotation will use the real clicked 3D position of a pixel as well instead of the camera view center point. - The press and drag behaviour is improved to shift the map in real 3D coordinates instead of some arbitrary measurement (you can see the clicked pixel following the cursor instead of drifting away).
133 lines
3.6 KiB
Plaintext
133 lines
3.6 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgsvector3d.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
class QgsVector3D
|
|
{
|
|
%Docstring(signature="appended")
|
|
Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double precision
|
|
instead of single precision floating point numbers.
|
|
|
|
.. versionadded:: 3.0
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsvector3d.h"
|
|
%End
|
|
public:
|
|
QgsVector3D();
|
|
%Docstring
|
|
Constructs a null vector
|
|
%End
|
|
|
|
QgsVector3D( double x, double y, double z );
|
|
%Docstring
|
|
Constructs a vector from given coordinates
|
|
%End
|
|
QgsVector3D( const QVector3D &v );
|
|
%Docstring
|
|
Constructs a vector from single-precision QVector3D
|
|
%End
|
|
bool isNull() const;
|
|
%Docstring
|
|
Returns ``True`` if all three coordinates are zero
|
|
%End
|
|
|
|
double x() const;
|
|
%Docstring
|
|
Returns X coordinate
|
|
%End
|
|
double y() const;
|
|
%Docstring
|
|
Returns Y coordinate
|
|
%End
|
|
double z() const;
|
|
%Docstring
|
|
Returns Z coordinate
|
|
%End
|
|
|
|
void set( double x, double y, double z );
|
|
%Docstring
|
|
Sets vector coordinates
|
|
%End
|
|
|
|
bool operator==( const QgsVector3D &other ) const;
|
|
bool operator!=( const QgsVector3D &other ) const;
|
|
|
|
QgsVector3D operator+( const QgsVector3D &other ) const;
|
|
|
|
QgsVector3D operator-( const QgsVector3D &other ) const;
|
|
|
|
QgsVector3D operator *( const double factor ) const;
|
|
|
|
QgsVector3D operator /( const double factor ) const;
|
|
|
|
static double dotProduct( const QgsVector3D &v1, const QgsVector3D &v2 );
|
|
%Docstring
|
|
Returns the dot product of two vectors
|
|
%End
|
|
|
|
static QgsVector3D crossProduct( const QgsVector3D &v1, const QgsVector3D &v2 );
|
|
%Docstring
|
|
Returns the cross product of two vectors
|
|
%End
|
|
|
|
double length() const;
|
|
%Docstring
|
|
Returns the length of the vector
|
|
%End
|
|
|
|
void normalize();
|
|
%Docstring
|
|
Normalizes the current vector in place.
|
|
%End
|
|
|
|
double distance( const QgsVector3D &other ) const;
|
|
%Docstring
|
|
Returns the distance with the ``other`` :py:class:`QgsVector3`
|
|
%End
|
|
|
|
static QgsVector3D perpendicularPoint( const QgsVector3D &v1, const QgsVector3D &v2, const QgsVector3D &vp );
|
|
%Docstring
|
|
Returns the perpendicular point of vector ``vp`` from [``v1`` - ``v2``]
|
|
%End
|
|
|
|
QString toString( int precision = 17 ) const;
|
|
%Docstring
|
|
Returns a string representation of the 3D vector.
|
|
Members will be truncated to the specified ``precision``.
|
|
%End
|
|
|
|
QVector3D toVector3D() const;
|
|
%Docstring
|
|
Converts the current object to QVector3D
|
|
|
|
.. warning::
|
|
|
|
the conversion may decrease the accuracy (double to float values conversion)
|
|
|
|
.. versionadded:: 3.24
|
|
%End
|
|
|
|
SIP_PYOBJECT __repr__();
|
|
%MethodCode
|
|
QString str = QStringLiteral( "<QgsVector3D: %1>" ).arg( sipCpp->toString() );
|
|
sipRes = PyUnicode_FromString( str.toUtf8().constData() );
|
|
%End
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgsvector3d.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|