16 #ifndef QGSRAYCASTINGUTILS_P_H 17 #define QGSRAYCASTINGUTILS_P_H 40 namespace QgsRayCastingUtils
52 explicit Ray3D( QVector3D origin, QVector3D direction = QVector3D( 0.0f, 0.0f, 1.0f ),
float distance = 1.0f );
54 QVector3D origin()
const;
55 void setOrigin( QVector3D value );
57 QVector3D direction()
const;
58 void setDirection( QVector3D value );
60 float distance()
const;
61 void setDistance(
float distance );
63 bool contains( QVector3D point )
const;
64 bool contains(
const Ray3D &ray )
const;
66 QVector3D point(
float t )
const;
67 float projectedDistance( QVector3D point )
const;
69 QVector3D project( QVector3D vector )
const;
71 float distance( QVector3D point )
const;
73 Ray3D &transform(
const QMatrix4x4 &matrix );
74 Ray3D transformed(
const QMatrix4x4 &matrix )
const;
81 QVector3D m_direction;
82 float m_distance = 1.0f;
91 bool rayBoxIntersection(
const Ray3D &r,
const QgsAABB &aabb );
105 bool rayPlaneIntersection(
const Ray3D &r,
const Plane3D &plane, QVector3D &pt );
112 bool rayTriangleIntersection(
const Ray3D &ray,
124 Ray3D rayForViewportAndCamera(
const QSize &area,
126 const QRectF &relativeViewport,
127 const Qt3DRender::QCamera *camera );
134 Ray3D rayForCameraCenter(
const Qt3DRender::QCamera *camera );
139 #endif // QGSRAYCASTINGUTILS_P_H 3 Axis-aligned bounding box - in world coords.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c