From ce58edc4e0edca0213ce3cf5031aacc515ccabca Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 9 Sep 2016 18:56:05 +1200 Subject: [PATCH] Add frustum property to JavaScript Camera object --- interface/src/Camera.cpp | 13 +++++++++++++ interface/src/Camera.h | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/interface/src/Camera.cpp b/interface/src/Camera.cpp index 227bdadb97..f930424569 100644 --- a/interface/src/Camera.cpp +++ b/interface/src/Camera.cpp @@ -182,3 +182,16 @@ ViewFrustum Camera::toViewFrustum() const { loadViewFrustum(result); return result; } + +QVariantMap Camera::getViewFrustum() { + ViewFrustum frustum; + loadViewFrustum(frustum); + + QVariantMap result; + result["position"].setValue(frustum.getPosition()); + result["orientation"].setValue(frustum.getOrientation()); + result["projection"].setValue(frustum.getProjection()); + result["centerRadius"].setValue(frustum.getCenterRadius()); + + return result; +} diff --git a/interface/src/Camera.h b/interface/src/Camera.h index 46cad2efc8..792dcb4a40 100644 --- a/interface/src/Camera.h +++ b/interface/src/Camera.h @@ -42,6 +42,8 @@ class Camera : public QObject { Q_PROPERTY(glm::quat orientation READ getOrientation WRITE setOrientation) Q_PROPERTY(QString mode READ getModeString WRITE setModeString) Q_PROPERTY(QUuid cameraEntity READ getCameraEntity WRITE setCameraEntity) + Q_PROPERTY(QVariantMap frustum READ getViewFrustum CONSTANT) + public: Camera(); @@ -63,6 +65,8 @@ public: const glm::mat4& getProjection() const { return _projection; } void setProjection(const glm::mat4& projection); + QVariantMap getViewFrustum(); + public slots: QString getModeString() const; void setModeString(const QString& mode);