5 #include <unordered_map>
6 #include <unordered_set>
9 #include <miniscript/miniscript/MiniScript.h>
32 using std::unordered_map;
33 using std::unordered_set;
36 using miniscript::miniscript::MiniScript;
68 static constexpr ScriptVariableType
TYPE_TRANSFORM {
static_cast<ScriptVariableType
>(ScriptVariableType::TYPE_PSEUDO_CUSTOM_DATATYPES) };
69 static constexpr ScriptVariableType
TYPE_MATRIX4x4 {
static_cast<ScriptVariableType
>(ScriptVariableType::TYPE_PSEUDO_CUSTOM_DATATYPES + 1) };
70 static constexpr ScriptVariableType
TYPE_MATRIX3x3 {
static_cast<ScriptVariableType
>(ScriptVariableType::TYPE_PSEUDO_CUSTOM_DATATYPES + 2) };
71 static constexpr ScriptVariableType
TYPE_QUATERNION {
static_cast<ScriptVariableType
>(ScriptVariableType::TYPE_PSEUDO_CUSTOM_DATATYPES + 3) };
72 static constexpr ScriptVariableType
TYPE_VECTOR2 {
static_cast<ScriptVariableType
>(ScriptVariableType::TYPE_PSEUDO_CUSTOM_DATATYPES + 4) };
73 static constexpr ScriptVariableType
TYPE_VECTOR3 {
static_cast<ScriptVariableType
>(ScriptVariableType::TYPE_PSEUDO_CUSTOM_DATATYPES + 5) };
74 static constexpr ScriptVariableType
TYPE_VECTOR4 {
static_cast<ScriptVariableType
>(ScriptVariableType::TYPE_PSEUDO_CUSTOM_DATATYPES + 6) };
186 inline void setValue(ScriptVariable& variable,
bool value) {
187 variable.setValue(value);
195 inline void setValue(ScriptVariable& variable, int64_t value) {
196 variable.setValue(value);
204 inline void setValue(ScriptVariable& variable,
float value) {
205 variable.setValue(value);
213 inline void setValue(ScriptVariable& variable,
const string& value) {
214 variable.setValue(value);
222 inline void setValue(ScriptVariable& variable,
const vector<ScriptVariable*>& value) {
223 variable.setValue(value);
231 inline void setValue(ScriptVariable& variable,
const unordered_map<string, ScriptVariable*>& value) {
232 variable.setValue(value);
240 inline void setValue(ScriptVariable& variable,
const unordered_set<string>& value) {
241 variable.setValue(value);
251 variable.setValue(&value);
261 variable.setValue(&value);
271 variable.setValue(&value);
280 variable.setValue(&value);
290 variable.setValue(&value);
300 variable.setValue(&value);
310 variable.setValue(&value);
Matrix3x3 class representing matrix3x3 mathematical structure and operations for 2d space.
Matrix4x4 class representing matrix4x4 mathematical structure and operations for 3d space.
Quaternion class representing quaternion mathematical structure and operations with x,...
Vector2 class representing vector2 mathematical structure and operations with x, y components.
Vector3 class representing vector3 mathematical structure and operations with x, y,...
Vector4 class representing vector4 mathematical structure and operations with x, y,...
static constexpr ScriptVariableType TYPE_MATRIX4x4
void setValue(ScriptVariable &variable, float value)
Set float value from given value into variable.
void setValue(ScriptVariable &variable, const vector< ScriptVariable * > &value)
Set array value from given value into variable.
static bool getMatrix3x3Value(const span< ScriptVariable > &arguments, int idx, Matrix3x3 &value, bool optional=false)
Get matrix3x3 value from given variable.
void setValue(ScriptVariable &variable, const Matrix4x4 &value)
Set matrix4x4 value from given value into variable.
bool getVector2Value(const span< ScriptVariable > &arguments, int idx, Vector2 &value, bool optional=false)
Get vector2 value from given variable.
void setValue(ScriptVariable &variable, const Vector3 &value)
Set vector3 value from given value into variable.
const string getBaseClass()
void setValue(ScriptVariable &variable, const Vector2 &value)
Set vector2 value from given value into variable.
void setValue(ScriptVariable &variable, int64_t value)
Set integer value from given value into variable.
EngineMiniScript()
Public constructor.
static constexpr ScriptVariableType TYPE_QUATERNION
static constexpr ScriptVariableType TYPE_TRANSFORM
static constexpr ScriptVariableType TYPE_VECTOR3
static bool getTransformValue(const span< ScriptVariable > &arguments, int idx, Transform &value, bool optional=false)
Get transform value from given variable.
static void registerDataTypes()
Register data types.
void setValue(ScriptVariable &variable, const Vector4 &value)
Set vector3 value from given value into variable.
static constexpr ScriptVariableType TYPE_VECTOR2
void setValue(ScriptVariable &variable, const Quaternion &value)
Set vector3 value from given value into variable.
const vector< string > getTranspilationUnits()
bool getVector4Value(const span< ScriptVariable > &arguments, int idx, Vector4 &value, bool optional=false)
Get vector4 value from given variable.
void setValue(ScriptVariable &variable, const string &value)
Set string value from given value into variable.
static bool getQuaternionValue(const span< ScriptVariable > &arguments, int idx, Quaternion &value, bool optional=false)
Get vector4 value from given variable.
bool getVector3Value(const span< ScriptVariable > &arguments, int idx, Vector3 &value, bool optional=false)
Get vector3 value from given variable.
void setValue(ScriptVariable &variable, bool value)
Set boolean value from given value into variable.
static constexpr ScriptVariableType TYPE_MATRIX3x3
void setValue(ScriptVariable &variable, const unordered_map< string, ScriptVariable * > &value)
Set map value from given value into variable.
static bool getMatrix4x4Value(const span< ScriptVariable > &arguments, int idx, Matrix4x4 &value, bool optional=false)
Get matrix4x4 value from given variable.
static constexpr ScriptVariableType TYPE_VECTOR4
void setValue(ScriptVariable &variable, const unordered_set< string > &value)
Set set value from given value into variable.
void setValue(ScriptVariable &variable, const Transform &value)
Set transform value from given value into variable.
void setValue(ScriptVariable &variable, const Matrix3x3 &value)
Set matrix3x3 value from given value into variable.
static EngineMiniScript * loadScript(const string &pathName, const string &fileName)
Load script.
MiniScript Matrix3x3 data type.
static bool getMatrix3x3Value(MiniScript::ScriptVariableType TYPE_MATRIX3x3, const span< MiniScript::ScriptVariable > &arguments, int idx, Matrix3x3 &value, bool optional=false)
Get matrix3x3 value from given variable.
MiniScript Matrix4x4 data type.
static bool getMatrix4x4Value(MiniScript::ScriptVariableType TYPE_MATRIX4x4, const span< MiniScript::ScriptVariable > &arguments, int idx, Matrix4x4 &value, bool optional=false)
Get matrix4x4 value from given variable.
MiniScript Quaternion data type.
static bool getQuaternionValue(MiniScript::ScriptVariableType TYPE_QUATERNION, const span< MiniScript::ScriptVariable > &arguments, int idx, Quaternion &value, bool optional=false)
Get quaternion value from given variable.
MiniScript Vector2 data type.
static bool getVector2Value(MiniScript::ScriptVariableType TYPE_VECTOR2, const span< MiniScript::ScriptVariable > &arguments, int idx, Vector2 &value, bool optional=false)
Get vector2 value from given variable.
MiniScript Vector3 data type.
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.
MiniScript Vector4 data type.
static bool getVector4Value(MiniScript::ScriptVariableType TYPE_VECTOR4, const span< MiniScript::ScriptVariable > &arguments, int idx, Vector4 &value, bool optional=false)
Get vector4 value from given variable.
#define FORBID_CLASS_COPY(CLASS)