12 #ifndef hifi_Controllers_ScriptEndpoint_h
13 #define hifi_Controllers_ScriptEndpoint_h
15 #include <ScriptValue.h>
17 #include "../Endpoint.h"
19 namespace controller {
21 class ScriptEndpoint :
public Endpoint {
24 using Endpoint::apply;
25 static std::shared_ptr<Endpoint> newEndpoint(
const ScriptValue& callable) {
26 return std::shared_ptr<Endpoint>(
new ScriptEndpoint(callable));
29 virtual AxisValue peek()
const override;
30 virtual void apply(AxisValue newValue,
const Pointer& source)
override;
32 virtual Pose peekPose()
const override;
33 virtual void apply(
const Pose& newValue,
const Pointer& source)
override;
35 virtual bool isPose()
const override {
return _returnPose; }
36 virtual const ScriptEngine* getEngine()
const {
return _callable.engine().get(); }
39 Q_INVOKABLE
void updateValue();
40 Q_INVOKABLE
virtual void internalApply(
float newValue,
int sourceID);
42 Q_INVOKABLE
void updatePose();
43 Q_INVOKABLE
virtual void internalApply(
const Pose& newValue,
int sourceID);
46 : Endpoint(Input::INVALID_INPUT), _callable(callable) {
49 float _lastValueRead { 0.0f };
50 AxisValue _lastValueWritten { 0.0f, 0,
false };
52 bool _returnPose {
false };
54 Pose _lastPoseWritten;
Provides an engine-independent interface for a scripting engine.
Definition: ScriptEngine.h:93
[ScriptInterface] Provides an engine-independent interface for QScriptValue
Definition: ScriptValue.h:40