forked from gfwilliams/tiny-js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFusion_Functions.cpp
More file actions
69 lines (59 loc) · 2.36 KB
/
Copy pathFusion_Functions.cpp
File metadata and controls
69 lines (59 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "Fusion_Functions.h"
//CScriptVar shortcut macro
#define scIsInt(a) ( c->getParameter(a)->isInt() )
#define scIsDouble(a) ( c->getParameter(a)->isDouble() )
#define scIsObject(a) ( c->getParameter(a)->isObject() )
#define scGetInt(a) ( c->getParameter(a)->getInt() )
#define scGetDouble(a) ( c->getParameter(a)->getDouble() )
#define scGetString(a) ( c->getParameter(a)->getString() )
#define scReturnInt(a) ( c->getReturnVar()->setInt(a) )
#define scReturnDouble(a) ( c->getReturnVar()->setDouble(a) )
#define scReturnString(a) ( c->getReturnVar()->setString(a) )
void fs_setCodePage(CScriptVar *c, void* userdata) {
// do nothing for now
printf("Set Code Page to %s\n", c->getParameter("text")->getString().c_str());
}
void fs_spatial(CScriptVar* c, void* userdata) {
std::string unit{scGetString("b")};
std::string IN{"IN"};
if(unit==IN) {
scReturnDouble(scGetDouble("a")*25.00);
}
else
scReturnDouble(scGetDouble("a"));
}
void fs_createFormat(CScriptVar* c, void* userdata) {
// mockup
if(scIsObject("a")){
printf("CREATE FORMAT: ");
printf("%s\n",c->getParameter("a")->getParameter("prefix")->getString().c_str());
}
scReturnString(scGetString("a"));
}
void fs_createVariable(CScriptVar* c, void* userdata) {
// mockup
//scGetString("b");
scReturnString(scGetString("a"));
}
void fs_createReferenceVariable(CScriptVar* c, void* userdata) {
// mockup
//scGetString("b");
scReturnString(scGetString("a"));
}
void fs_createModal(CScriptVar* c, void* userdata) {
// mockup
//scGetString("b");
scReturnString(scGetString("a"));
}
void registerFusionFunctions(CTinyJS* tinyJS) {
printf("Registering Fusion Functions\n");
tinyJS->execute("var MM=\"MM\";");
tinyJS->execute("var IN=\"IN\";");
tinyJS->execute("function toRad(a){ return Math.toRadians(a); };");
tinyJS->addNative("function setCodePage(text)", fs_setCodePage, 0);
tinyJS->addNative("function spatial(a,b)", fs_spatial, 0);
tinyJS->addNative("function createFormat(a)", fs_createFormat, 0);
tinyJS->addNative("function createVariable(a,b)", fs_createVariable, 0);
tinyJS->addNative("function createReferenceVariable(a,b)", fs_createReferenceVariable, 0);
tinyJS->addNative("function createModal(a,b)", fs_createModal, 0);
}