// // Created by HifiExperiments on 3/14/22. // Copyright 2022 Overte e.V. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #ifndef hifi_MirrorMode_h #define hifi_MirrorMode_h #include #include "QString" #include "ViewFrustum.h" /*@jsdoc *

If an entity is rendered as a mirror, a portal, or normally.

* * * * * * * * * *
ValueDescription
"none"The entity will render normally.
"mirror"The entity will render as a mirror.
"portal"The entity will render as a portal.
* @typedef {string} MirrorMode */ enum class MirrorMode : uint8_t { NONE = 0, MIRROR, PORTAL }; class MirrorModeHelpers { public: static QString getNameForMirrorMode(MirrorMode mode); static void setComputeMirrorViewOperator(std::function computeMirrorViewOperator); static uint32_t computeMirrorView(ViewFrustum& viewFrustum, const glm::vec3& inPropertiesPosition, const glm::quat& inPropertiesRotation, MirrorMode mirrorMode, const QUuid& portalExitID); private: static std::function _computeMirrorViewOperator; }; #endif // hifi_MirrorMode_h