This commit is contained in:
Belgacem 2021-01-06 23:51:07 +01:00 committed by Martin Dobias
parent 432f29be92
commit b5e6033a88
3 changed files with 25 additions and 23 deletions

View File

@ -92,7 +92,7 @@ the number of points returned to ``pointsLimit`` points
SIP_PYLIST getPointsOnRay( const QVector3D &rayOrigin, const QVector3D &rayDirection, double maxScreenError, double cameraFov, int screenSizePx, double pointAngle, int pointsLimit = 1000 ); SIP_PYLIST getPointsOnRay( const QVector3D &rayOrigin, const QVector3D &rayDirection, double maxScreenError, double cameraFov, int screenSizePx, double pointAngle, int pointsLimit = 1000 );
%Docstring %Docstring
Returns the Points that are on a ray Returns the points that are on a ray
:param rayOrigin: : The origin of the ray in layer coordinates :param rayOrigin: : The origin of the ray in layer coordinates
:param rayDirection: : The direction of the ray in layer coordinates :param rayDirection: : The direction of the ray in layer coordinates
@ -102,13 +102,13 @@ Returns the Points that are on a ray
:param pointAngle: : the maximum accepted angle between the point and it's projected point on the ray in degrees :param pointAngle: : the maximum accepted angle between the point and it's projected point on the ray in degrees
:param pointsLimit: : the maximum number of points returned :param pointsLimit: : the maximum number of points returned
:return: a vector of the identified points :return: a list of the identified points
.. versionadded:: 3.18 .. versionadded:: 3.18
%End %End
%MethodCode %MethodCode
{ {
QVector<QMap<QString, QVariant>> res = sipCpp->identify( *a0, *a1, a2, a3, a4, a5, a6 ); QVector<QMap<QString, QVariant>> res = sipCpp->getPointsOnRay( *a0, *a1, a2, a3, a4, a5, a6 );
sipRes = PyList_New( res.size() ); sipRes = PyList_New( res.size() );
for ( int i = 0; i < res.size(); ++i ) for ( int i = 0; i < res.size(); ++i )
{ {

View File

@ -198,7 +198,9 @@ class CORE_EXPORT QgsBox3d
*/ */
bool contains( const QgsPoint &point ) const; bool contains( const QgsPoint &point ) const;
//! Returns shortest distance from the box to a point /**
* Returns shortest distance from the box to a point
*/
float distanceFromPoint( double x, double y, double z ); float distanceFromPoint( double x, double y, double z );
/** /**

View File

@ -125,7 +125,24 @@ class CORE_EXPORT QgsPointCloudDataProvider: public QgsDataProvider
#ifndef SIP_RUN #ifndef SIP_RUN
/** /**
* Returns the Points that are on a ray * Returns the points that are on a ray
*
* \param rayOrigin : The origin of the ray in layer coordinates
* \param rayDirection : The direction of the ray in layer coordinates
* \param maxScreenError : Maximum screen error (as taken from the 3D point cloud layer renderer)
* \param cameraFov : The field of view of the camera in degrees
* \param screenSizePx : The size of the screen's viewport in pixels
* \param pointAngle : The maximum accepted angle between the point and it's projected point on the ray in degrees
* \param pointsLimit : The maximum number of points returned
* \return a vector of the identified points
*
* \since QGIS 3.18
*/
QVector<QVariantMap> getPointsOnRay( const QVector3D &rayOrigin, const QVector3D &rayDirection, double maxScreenError, double cameraFov, int screenSizePx, double pointAngle, int pointsLimit = 1000 );
#else
/**
* Returns the points that are on a ray
* *
* \param rayOrigin : The origin of the ray in layer coordinates * \param rayOrigin : The origin of the ray in layer coordinates
* \param rayDirection : The direction of the ray in layer coordinates * \param rayDirection : The direction of the ray in layer coordinates
@ -138,27 +155,10 @@ class CORE_EXPORT QgsPointCloudDataProvider: public QgsDataProvider
* *
* \since QGIS 3.18 * \since QGIS 3.18
*/ */
QVector<QVariantMap> getPointsOnRay( const QVector3D &rayOrigin, const QVector3D &rayDirection, double maxScreenError, double cameraFov, int screenSizePx, double pointAngle, int pointsLimit = 1000 );
#else
/**
* Returns the Points that are on a ray
*
* \param rayOrigin : The origin of the ray in layer coordinates
* \param rayDirection : The direction of the ray in layer coordinates
* \param maxScreenError : Maximum screen error (as taken from the 3D point cloud layer renderer)
* \param cameraFov : The field of view of the camera in degrees
* \param screenSizePx : The size of the screen's viewport in pixels
* \param pointAngle : the maximum accepted angle between the point and it's projected point on the ray in degrees
* \param pointsLimit : the maximum number of points returned
* \return a vector of the identified points
*
* \since QGIS 3.18
*/
SIP_PYLIST getPointsOnRay( const QVector3D &rayOrigin, const QVector3D &rayDirection, double maxScreenError, double cameraFov, int screenSizePx, double pointAngle, int pointsLimit = 1000 ); SIP_PYLIST getPointsOnRay( const QVector3D &rayOrigin, const QVector3D &rayDirection, double maxScreenError, double cameraFov, int screenSizePx, double pointAngle, int pointsLimit = 1000 );
% MethodCode % MethodCode
{ {
QVector<QMap<QString, QVariant>> res = sipCpp->identify( *a0, *a1, a2, a3, a4, a5, a6 ); QVector<QMap<QString, QVariant>> res = sipCpp->getPointsOnRay( *a0, *a1, a2, a3, a4, a5, a6 );
sipRes = PyList_New( res.size() ); sipRes = PyList_New( res.size() );
for ( int i = 0; i < res.size(); ++i ) for ( int i = 0; i < res.size(); ++i )
{ {