5#ifndef QSSG_RENDER_RAY_H
6#define QSSG_RENDER_RAY_H
19#include <QtQuick3DUtils/private/qssgbounds3_p.h>
20#include <QtQuick3DUtils/private/qssgplane_p.h>
22#include <QtGui/QVector2D>
23#include <QtGui/QVector3D>
24#include <QtGui/QMatrix4x4>
45 : origin(inOrigin),
direction(inDirection)
62 bool intersects =
false;
63 float rayLengthSquared = 0.;
75 , rayLengthSquared(rl)
77 , scenePosition(scenePosition)
78 , localPosition(localPosition)
88 inline bool intersects()
const {
return bounds && max >= std::max(min, 0.0f); }
128 std::optional<QVector2D> relative(
const QMatrix4x4 &inGlobalTransform,
The QMatrix4x4 class represents a 4x4 transformation matrix in 3D space.
Class representing 3D range or axis aligned bounding box.
Representation of a plane.
The QVector2D class represents a vector or vertex in 2D space.
The QVector3D class represents a vector or vertex in 3D space.
Combined button and popup list for selecting options.
GLint GLfloat GLfloat GLfloat v2
GLsizei const GLfloat * v
[13]
GLint GLenum GLsizei GLsizei GLsizei depth
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
#define Q_AUTOTEST_EXPORT
const QSSGBounds3 * bounds
IntersectionResult()=default
constexpr IntersectionResult(float rl, const QVector2D &relxy, const QVector3D &scenePosition, const QVector3D &localPosition, const QVector3D &normal)
const QVector3D directionInvers
const QVector3D direction
const QSSGRenderRay & ray
const QMatrix4x4 & globalTransform
std::optional< QVector2D > relativeXY(const QMatrix4x4 &inGlobalTransform, const QSSGBounds3 &inBounds) const
QSSGRenderRay(const QVector3D &inOrigin, const QVector3D &inDirection)