9 #ifndef hifi_BillboardMode_h
10 #define hifi_BillboardMode_h
16 #include "glm/glm.hpp"
17 #include "glm/gtc/quaternion.hpp"
36 enum class BillboardMode {
42 class BillboardModeHelpers {
44 static QString getNameForBillboardMode(BillboardMode mode);
46 static void setBillboardRotationOperator(std::function<glm::quat(
const glm::vec3&,
const glm::quat&,
47 BillboardMode,
const glm::vec3&,
bool)> getBillboardRotationOperator);
48 static glm::quat getBillboardRotation(
const glm::vec3& position,
const glm::quat& rotation, BillboardMode billboardMode,
49 const glm::vec3& frustumPos,
bool rotate90x =
false);
50 static void setPrimaryViewFrustumPositionOperator(std::function<glm::vec3()> getPrimaryViewFrustumPositionOperator);
51 static glm::vec3 getPrimaryViewFrustumPosition() {
return _getPrimaryViewFrustumPositionOperator(); }
54 static std::function<glm::quat(
const glm::vec3&,
const glm::quat&, BillboardMode,
const glm::vec3&,
bool)> _getBillboardRotationOperator;
55 static std::function<glm::vec3()> _getPrimaryViewFrustumPositionOperator;