mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-09 16:52:28 +02:00
CR
This commit is contained in:
parent
1ef54b2fe6
commit
3d4639bfdd
8 changed files with 40 additions and 42 deletions
|
@ -35,12 +35,12 @@ void LaserPointer::editRenderStatePath(const std::string& state, const QVariant&
|
|||
}
|
||||
}
|
||||
|
||||
glm::vec3 LaserPointer::getPickOrigin(const PickResultPointer& pickResult) {
|
||||
glm::vec3 LaserPointer::getPickOrigin(const PickResultPointer& pickResult) const {
|
||||
auto rayPickResult = std::static_pointer_cast<RayPickResult>(pickResult);
|
||||
return (rayPickResult ? vec3FromVariant(rayPickResult->pickVariant["origin"]) : glm::vec3());
|
||||
return (rayPickResult ? vec3FromVariant(rayPickResult->pickVariant["origin"]) : glm::vec3(0.0f));
|
||||
}
|
||||
|
||||
glm::vec3 LaserPointer::getPickEnd(const PickResultPointer& pickResult, float distance) {
|
||||
glm::vec3 LaserPointer::getPickEnd(const PickResultPointer& pickResult, float distance) const {
|
||||
auto rayPickResult = std::static_pointer_cast<RayPickResult>(pickResult);
|
||||
if (distance > 0.0f) {
|
||||
PickRay pick = PickRay(rayPickResult->pickVariant);
|
||||
|
@ -50,17 +50,17 @@ glm::vec3 LaserPointer::getPickEnd(const PickResultPointer& pickResult, float di
|
|||
}
|
||||
}
|
||||
|
||||
glm::vec3 LaserPointer::getPickedObjectNormal(const PickResultPointer& pickResult) {
|
||||
glm::vec3 LaserPointer::getPickedObjectNormal(const PickResultPointer& pickResult) const {
|
||||
auto rayPickResult = std::static_pointer_cast<RayPickResult>(pickResult);
|
||||
return (rayPickResult ? rayPickResult->surfaceNormal : glm::vec3());
|
||||
return (rayPickResult ? rayPickResult->surfaceNormal : glm::vec3(0.0f));
|
||||
}
|
||||
|
||||
IntersectionType LaserPointer::getPickedObjectType(const PickResultPointer& pickResult) {
|
||||
IntersectionType LaserPointer::getPickedObjectType(const PickResultPointer& pickResult) const {
|
||||
auto rayPickResult = std::static_pointer_cast<RayPickResult>(pickResult);
|
||||
return (rayPickResult ? rayPickResult->type : IntersectionType::NONE);
|
||||
}
|
||||
|
||||
QUuid LaserPointer::getPickedObjectID(const PickResultPointer& pickResult) {
|
||||
QUuid LaserPointer::getPickedObjectID(const PickResultPointer& pickResult) const {
|
||||
auto rayPickResult = std::static_pointer_cast<RayPickResult>(pickResult);
|
||||
return (rayPickResult ? rayPickResult->objectID : QUuid());
|
||||
}
|
||||
|
|
|
@ -47,11 +47,11 @@ public:
|
|||
protected:
|
||||
void editRenderStatePath(const std::string& state, const QVariant& pathProps) override;
|
||||
|
||||
glm::vec3 getPickOrigin(const PickResultPointer& pickResult) override;
|
||||
glm::vec3 getPickEnd(const PickResultPointer& pickResult, float distance) override;
|
||||
glm::vec3 getPickedObjectNormal(const PickResultPointer& pickResult) override;
|
||||
IntersectionType getPickedObjectType(const PickResultPointer& pickResult) override;
|
||||
QUuid getPickedObjectID(const PickResultPointer& pickResult) override;
|
||||
glm::vec3 getPickOrigin(const PickResultPointer& pickResult) const override;
|
||||
glm::vec3 getPickEnd(const PickResultPointer& pickResult, float distance) const override;
|
||||
glm::vec3 getPickedObjectNormal(const PickResultPointer& pickResult) const override;
|
||||
IntersectionType getPickedObjectType(const PickResultPointer& pickResult) const override;
|
||||
QUuid getPickedObjectID(const PickResultPointer& pickResult) const override;
|
||||
void setVisualPickResultInternal(PickResultPointer pickResult, IntersectionType type, const QUuid& id,
|
||||
const glm::vec3& intersection, float distance, const glm::vec3& surfaceNormal) override;
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ public:
|
|||
ParabolaPickResult(const QVariantMap& pickVariant) : PickResult(pickVariant) {}
|
||||
ParabolaPickResult(const IntersectionType type, const QUuid& objectID, float distance, float parabolicDistance, const glm::vec3& intersection, const PickParabola& parabola,
|
||||
const glm::vec3& surfaceNormal = glm::vec3(NAN), const QVariantMap& extraInfo = QVariantMap()) :
|
||||
PickResult(parabola.toVariantMap()), type(type), intersects(type != NONE), objectID(objectID), distance(distance), parabolicDistance(parabolicDistance), intersection(intersection), surfaceNormal(surfaceNormal), extraInfo(extraInfo) {
|
||||
PickResult(parabola.toVariantMap()), extraInfo(extraInfo), objectID(objectID), intersection(intersection), surfaceNormal(surfaceNormal), type(type), distance(distance), parabolicDistance(parabolicDistance), intersects(type != NONE) {
|
||||
}
|
||||
|
||||
ParabolaPickResult(const ParabolaPickResult& parabolaPickResult) : PickResult(parabolaPickResult.pickVariant) {
|
||||
|
@ -34,14 +34,14 @@ public:
|
|||
extraInfo = parabolaPickResult.extraInfo;
|
||||
}
|
||||
|
||||
IntersectionType type { NONE };
|
||||
bool intersects { false };
|
||||
QVariantMap extraInfo;
|
||||
QUuid objectID;
|
||||
float distance { FLT_MAX };
|
||||
float parabolicDistance { FLT_MAX };
|
||||
glm::vec3 intersection { NAN };
|
||||
glm::vec3 surfaceNormal { NAN };
|
||||
QVariantMap extraInfo;
|
||||
IntersectionType type { NONE };
|
||||
float distance { FLT_MAX };
|
||||
float parabolicDistance { FLT_MAX };
|
||||
bool intersects { false };
|
||||
|
||||
virtual QVariantMap toVariantMap() const override {
|
||||
QVariantMap toReturn;
|
||||
|
|
|
@ -62,12 +62,12 @@ void ParabolaPointer::editRenderStatePath(const std::string& state, const QVaria
|
|||
}
|
||||
}
|
||||
|
||||
glm::vec3 ParabolaPointer::getPickOrigin(const PickResultPointer& pickResult) {
|
||||
glm::vec3 ParabolaPointer::getPickOrigin(const PickResultPointer& pickResult) const {
|
||||
auto parabolaPickResult = std::static_pointer_cast<ParabolaPickResult>(pickResult);
|
||||
return (parabolaPickResult ? vec3FromVariant(parabolaPickResult->pickVariant["origin"]) : glm::vec3());
|
||||
return (parabolaPickResult ? vec3FromVariant(parabolaPickResult->pickVariant["origin"]) : glm::vec3(0.0f));
|
||||
}
|
||||
|
||||
glm::vec3 ParabolaPointer::getPickEnd(const PickResultPointer& pickResult, float distance) {
|
||||
glm::vec3 ParabolaPointer::getPickEnd(const PickResultPointer& pickResult, float distance) const {
|
||||
auto parabolaPickResult = std::static_pointer_cast<ParabolaPickResult>(pickResult);
|
||||
if (distance > 0.0f) {
|
||||
PickParabola pick = PickParabola(parabolaPickResult->pickVariant);
|
||||
|
@ -77,17 +77,17 @@ glm::vec3 ParabolaPointer::getPickEnd(const PickResultPointer& pickResult, float
|
|||
}
|
||||
}
|
||||
|
||||
glm::vec3 ParabolaPointer::getPickedObjectNormal(const PickResultPointer& pickResult) {
|
||||
glm::vec3 ParabolaPointer::getPickedObjectNormal(const PickResultPointer& pickResult) const {
|
||||
auto parabolaPickResult = std::static_pointer_cast<ParabolaPickResult>(pickResult);
|
||||
return (parabolaPickResult ? parabolaPickResult->surfaceNormal : glm::vec3());
|
||||
return (parabolaPickResult ? parabolaPickResult->surfaceNormal : glm::vec3(0.0f));
|
||||
}
|
||||
|
||||
IntersectionType ParabolaPointer::getPickedObjectType(const PickResultPointer& pickResult) {
|
||||
IntersectionType ParabolaPointer::getPickedObjectType(const PickResultPointer& pickResult) const {
|
||||
auto parabolaPickResult = std::static_pointer_cast<ParabolaPickResult>(pickResult);
|
||||
return (parabolaPickResult ? parabolaPickResult->type : IntersectionType::NONE);
|
||||
}
|
||||
|
||||
QUuid ParabolaPointer::getPickedObjectID(const PickResultPointer& pickResult) {
|
||||
QUuid ParabolaPointer::getPickedObjectID(const PickResultPointer& pickResult) const {
|
||||
auto parabolaPickResult = std::static_pointer_cast<ParabolaPickResult>(pickResult);
|
||||
return (parabolaPickResult ? parabolaPickResult->objectID : QUuid());
|
||||
}
|
||||
|
|
|
@ -101,11 +101,11 @@ public:
|
|||
protected:
|
||||
void editRenderStatePath(const std::string& state, const QVariant& pathProps) override;
|
||||
|
||||
glm::vec3 getPickOrigin(const PickResultPointer& pickResult) override;
|
||||
glm::vec3 getPickEnd(const PickResultPointer& pickResult, float distance) override;
|
||||
glm::vec3 getPickedObjectNormal(const PickResultPointer& pickResult) override;
|
||||
IntersectionType getPickedObjectType(const PickResultPointer& pickResult) override;
|
||||
QUuid getPickedObjectID(const PickResultPointer& pickResult) override;
|
||||
glm::vec3 getPickOrigin(const PickResultPointer& pickResult) const override;
|
||||
glm::vec3 getPickEnd(const PickResultPointer& pickResult, float distance) const override;
|
||||
glm::vec3 getPickedObjectNormal(const PickResultPointer& pickResult) const override;
|
||||
IntersectionType getPickedObjectType(const PickResultPointer& pickResult) const override;
|
||||
QUuid getPickedObjectID(const PickResultPointer& pickResult) const override;
|
||||
void setVisualPickResultInternal(PickResultPointer pickResult, IntersectionType type, const QUuid& id,
|
||||
const glm::vec3& intersection, float distance, const glm::vec3& surfaceNormal) override;
|
||||
|
||||
|
|
|
@ -79,8 +79,6 @@ void PathPointer::setLockEndUUID(const QUuid& objectID, const bool isOverlay, co
|
|||
});
|
||||
}
|
||||
|
||||
#include "ParabolaPick.h"
|
||||
|
||||
PickResultPointer PathPointer::getVisualPickResult(const PickResultPointer& pickResult) {
|
||||
PickResultPointer visualPickResult = pickResult;
|
||||
glm::vec3 origin = getPickOrigin(pickResult);
|
||||
|
|
|
@ -121,11 +121,11 @@ protected:
|
|||
Pointer::Buttons getPressedButtons(const PickResultPointer& pickResult) override;
|
||||
|
||||
PickResultPointer getVisualPickResult(const PickResultPointer& pickResult) override;
|
||||
virtual glm::vec3 getPickOrigin(const PickResultPointer& pickResult) = 0;
|
||||
virtual glm::vec3 getPickEnd(const PickResultPointer& pickResult, float distance = 0.0f) = 0;
|
||||
virtual glm::vec3 getPickedObjectNormal(const PickResultPointer& pickResult) = 0;
|
||||
virtual IntersectionType getPickedObjectType(const PickResultPointer& pickResult) = 0;
|
||||
virtual QUuid getPickedObjectID(const PickResultPointer& pickResult) = 0;
|
||||
virtual glm::vec3 getPickOrigin(const PickResultPointer& pickResult) const = 0;
|
||||
virtual glm::vec3 getPickEnd(const PickResultPointer& pickResult, float distance = 0.0f) const = 0;
|
||||
virtual glm::vec3 getPickedObjectNormal(const PickResultPointer& pickResult) const = 0;
|
||||
virtual IntersectionType getPickedObjectType(const PickResultPointer& pickResult) const = 0;
|
||||
virtual QUuid getPickedObjectID(const PickResultPointer& pickResult) const = 0;
|
||||
virtual void setVisualPickResultInternal(PickResultPointer pickResult, IntersectionType type, const QUuid& id,
|
||||
const glm::vec3& intersection, float distance, const glm::vec3& surfaceNormal) = 0;
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ public:
|
|||
RayPickResult() {}
|
||||
RayPickResult(const QVariantMap& pickVariant) : PickResult(pickVariant) {}
|
||||
RayPickResult(const IntersectionType type, const QUuid& objectID, float distance, const glm::vec3& intersection, const PickRay& searchRay, const glm::vec3& surfaceNormal = glm::vec3(NAN), const QVariantMap& extraInfo = QVariantMap()) :
|
||||
PickResult(searchRay.toVariantMap()), type(type), intersects(type != NONE), objectID(objectID), distance(distance), intersection(intersection), surfaceNormal(surfaceNormal), extraInfo(extraInfo) {
|
||||
PickResult(searchRay.toVariantMap()), extraInfo(extraInfo), objectID(objectID), intersection(intersection), surfaceNormal(surfaceNormal), type(type), distance(distance), intersects(type != NONE) {
|
||||
}
|
||||
|
||||
RayPickResult(const RayPickResult& rayPickResult) : PickResult(rayPickResult.pickVariant) {
|
||||
|
@ -32,13 +32,13 @@ public:
|
|||
extraInfo = rayPickResult.extraInfo;
|
||||
}
|
||||
|
||||
IntersectionType type { NONE };
|
||||
bool intersects { false };
|
||||
QVariantMap extraInfo;
|
||||
QUuid objectID;
|
||||
float distance { FLT_MAX };
|
||||
glm::vec3 intersection { NAN };
|
||||
glm::vec3 surfaceNormal { NAN };
|
||||
QVariantMap extraInfo;
|
||||
IntersectionType type { NONE };
|
||||
float distance { FLT_MAX };
|
||||
bool intersects { false };
|
||||
|
||||
virtual QVariantMap toVariantMap() const override {
|
||||
QVariantMap toReturn;
|
||||
|
|
Loading…
Reference in a new issue