5 #include <miniscript/miniscript/MiniScript.h>
13 using miniscript::miniscript::MiniScript;
27 void copyScriptVariable(MiniScript::ScriptVariable& to,
const MiniScript::ScriptVariable& from)
const override;
28 bool mul(MiniScript* miniScript,
const span<MiniScript::ScriptVariable>& argumentValues, MiniScript::ScriptVariable& returnValue,
const MiniScript::ScriptStatement& statement)
const override;
29 bool div(MiniScript* miniScript,
const span<MiniScript::ScriptVariable>& argumentValues, MiniScript::ScriptVariable& returnValue,
const MiniScript::ScriptStatement& statement)
const override;
30 bool add(MiniScript* miniScript,
const span<MiniScript::ScriptVariable>& argumentValues, MiniScript::ScriptVariable& returnValue,
const MiniScript::ScriptStatement& statement)
const override;
31 bool sub(MiniScript* miniScript,
const span<MiniScript::ScriptVariable>& argumentValues, MiniScript::ScriptVariable& returnValue,
const MiniScript::ScriptStatement& statement)
const override;
46 static inline bool getVector3Value(MiniScript::ScriptVariableType TYPE_VECTOR3,
const span<MiniScript::ScriptVariable>& arguments,
int idx,
Vector3& value,
bool optional =
false) {
47 if (idx >= arguments.size())
return optional;
48 const auto& argument = arguments[idx];
49 if (argument.getType() == TYPE_VECTOR3) {
50 if (argument.getValuePtr() == 0ll)
return optional;
51 value = *
static_cast<Vector3*
>((
void*)argument.getValuePtr());
71 const string getValueAsString(
const MiniScript::ScriptVariable& variable)
const override;
Vector3 class representing vector3 mathematical structure and operations with x, y,...
MiniScript Vector3 data type.
const string & getTypeAsString() const override
bool add(MiniScript *miniScript, const span< MiniScript::ScriptVariable > &argumentValues, MiniScript::ScriptVariable &returnValue, const MiniScript::ScriptStatement &statement) const override
bool sub(MiniScript *miniScript, const span< MiniScript::ScriptVariable > &argumentValues, MiniScript::ScriptVariable &returnValue, const MiniScript::ScriptStatement &statement) const override
static bool getVector3Value(MiniScript::ScriptVariableType TYPE_VECTOR3, const span< MiniScript::ScriptVariable > &arguments, int idx, Vector3 &value, bool optional=false)
Get vector3 value from given variable.
static const string TYPE_NAME
void copyScriptVariable(MiniScript::ScriptVariable &to, const MiniScript::ScriptVariable &from) const override
void unsetScriptVariableValue(MiniScript::ScriptVariable &variable) const override
bool div(MiniScript *miniScript, const span< MiniScript::ScriptVariable > &argumentValues, MiniScript::ScriptVariable &returnValue, const MiniScript::ScriptStatement &statement) const override
const string & getClassName() const override
bool mul(MiniScript *miniScript, const span< MiniScript::ScriptVariable > &argumentValues, MiniScript::ScriptVariable &returnValue, const MiniScript::ScriptStatement &statement) const override
const string getValueAsString(const MiniScript::ScriptVariable &variable) const override
static const string CLASS_NAME
void setScriptVariableValue(MiniScript::ScriptVariable &variable, const void *value) const override
void registerMethods(MiniScript *miniScript) const override
#define FORBID_CLASS_COPY(CLASS)