4 #include <glm/gtx/quaternion.hpp>
6 #include "geometry/ray.h"
22 void setVisible(
bool visible);
28 bool released()
const;
35 virtual void onClick(ClickType clickType);
41 virtual bool isAt(
const Ray& ray)
const;
47 virtual void pointerAt(
const Ray& ray,
bool pressed);
53 void setRelativeDistance(
float relativeDistance);
59 void pointToWorldPoint(
const glm::vec3& worldPoint);
60 void pointToLocalPoint(
const glm::vec3& localPoint);
62 glm::vec3 localDirection()
const;
63 glm::vec3 worldDirection()
const;
69 float directionAngle()
const;
70 void setDirectionAngle(
float directionAngle);
78 glm::vec3 worldPosition()
const;
79 glm::vec3 worldPosition(
const glm::vec3& localVector)
const;
80 glm::quat worldOrientation()
const;
81 glm::quat worldOrientation(
const glm::vec3& localVector)
const;
83 virtual void update(
float deltaSec) = 0;
84 virtual void draw() = 0;
90 glm::vec3 m_direction;
91 float m_directionAngle;
92 float m_relativeDistance;