tmpJSONParser.js
4.52 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
(function(tmpJSONParser, $, undefined) {
var base_parameter_json = {};
var movement_parameter_json = {};
function _getLoggedUser() {
var pybossa_rembember_token = Cookies.get('remember_token');
var splitted_token_id = pybossa_rembember_token.split('|');
return splitted_token_id.length > 0 ? splitted_token_id[0]
: 'anonymous';
}
function _setupBaseParameterJSON(tmpJSON) {
base_parameter_json['userId'] = _getLoggedUser();
base_parameter_json['sinal'] = tmpJSON['sinal'];
base_parameter_json['interpolacao'] = 'normal';
base_parameter_json['movimentos'] = [];
movement_parameter_json = {
'facial': {},
'mao_direita': {},
'mao_esquerda': {}
};
base_parameter_json['movimentos'].push(movement_parameter_json);
}
function _parseParameterValue(value) {
if (typeof value == "string" && value.toLowerCase() == 'true') {
return true;
} else if (typeof value == "string" && value.toLowerCase() == 'false') {
return false;
} else {
return !isNaN(value) ? parseInt(value) : value;
}
}
function _parseTempFacialParameterJSON(tmpJSON) {
var attrs = dynworkflow.getFacialParameters();
for (var i in attrs) {
var attr = attrs[i];
parameterValue = tmpJSON['facial'][attr][0];
movement_parameter_json['facial'][attr] = _parseParameterValue(parameterValue);
}
}
function _parseHand(hand) {
var parsedHand = hand == 'right-hand' ? 'mao_direita' : hand;
parsedHand = hand == 'left-hand' ? 'mao_esquerda' : parsedHand;
return parsedHand;
}
// Default parser
function _defaultMovementParser(tmpJSON, movementName, hand) {
var attrs = dynworkflow.getMovementParameters(movementName);
var parsedHand = _parseHand(hand);
for (var i in attrs) {
var attr = attrs[i];
var parameterValue = '';
if (attr == 'configuracao') {
parameterValue = tmpJSON[hand][attr][1];
} else if (attr == 'articulacao') {
parameterValue = articulation.processValue(hand,
tmpJSON[hand][attr]);
} else {
parameterValue = tmpJSON[hand][attr][0];
}
movement_parameter_json[parsedHand][movementName][attr] =
_parseParameterValue(parameterValue);
}
}
function _retilinearMovementParser(tmpJSON, movementName, hand) {
var attrs = dynworkflow.getMovementParameters(movementName);
var parsedHand = _parseHand(hand);
for (var i in attrs) {
var attr = attrs[i];
var initParameterValue = '';
var endParameterValue = '';
if (attr == 'configuracao-retilineo') {
initParameterValue = tmpJSON[hand][attr][1];
endParameterValue = tmpJSON[hand][attr][3];
} else if (attr == 'articulacao-retilineo') {
initSlice = tmpJSON[hand][attr].slice(0, 2);
endSlice = tmpJSON[hand][attr].slice(2, 4);
initParameterValue = articulation.processValue(hand, initSlice);
endParameterValue = articulation.processValue(hand, endSlice);
} else {
initParameterValue = tmpJSON[hand][attr][0];
endParameterValue = tmpJSON[hand][attr][1];
}
attr = attr.replace('-retilineo', '');
var initAttr = attr + '_inicial';
var endAttr = attr + '_final';
movement_parameter_json[parsedHand][movementName][initAttr] =
_parseParameterValue(initParameterValue);
movement_parameter_json[parsedHand][movementName][endAttr] =
_parseParameterValue(endParameterValue);
}
}
function _circularMovementParser(tmpJSON, movementName, hand) {
var parsedHand = _parseHand(hand);
_defaultMovementParser(tmpJSON, movementName, hand);
movement_parameter_json[parsedHand][movementName]['lado_oposto'] = false;
}
function _parseTempMovementParameterJSON(tmpJSON, hand) {
var movimentConfig = tmpJSON[hand]['movimento'];
if (typeof movimentConfig == 'undefined') return;
var movementName = movimentConfig[0];
var parsedHand = _parseHand(hand);
movement_parameter_json[parsedHand][movementName] = {};
if (movementName == 'retilineo') {
_retilinearMovementParser(tmpJSON, movementName, hand);
} else if (movementName == 'circular') {
_circularMovementParser(tmpJSON, movementName, hand);
} else {
_defaultMovementParser(tmpJSON, movementName, hand);
}
}
tmpJSONParser.parse = function(tmpJSON) {
_setupBaseParameterJSON(tmpJSON);
_parseTempFacialParameterJSON(tmpJSON);
_parseTempMovementParameterJSON(tmpJSON, 'right-hand');
_parseTempMovementParameterJSON(tmpJSON, 'left-hand');
return base_parameter_json;
};
}(window.tmpJSONParser = window.tmpJSONParser || {}, jQuery));