BabylonJS - tags
Mesh tags
by gwenaelhagenmuller
HTML
<script src="https://rawgithub.com/BabylonJS/Babylon.js/v1.9.0/babylon.1.9.0.js"></script>
<canvas id="renderCanvas"></canvas>
CSS
#renderCanvas {
width: 100%;
height: 100%;
min-height: 100%;
}
JavaScript
BABYLON.Tools.IsEmpty = function (obj) {
for(var i in obj) {
return false;
}
return true;
};
(function () {
BABYLON.AndOrNotEvaluator = {};
BABYLON.AndOrNotEvaluator.Eval = function (query, evaluateCallback) {
if(!query.match(/\([^\(\)]*\)/g)) {
query= BABYLON.AndOrNotEvaluator._HandleParenthesisContent(query, evaluateCallback);
}
else {
query = query.replace(/\([^\(\)]*\)/g, function(r) {
// remove parenthesis
r = r.slice(1, r.length - 1);
return BABYLON.AndOrNotEvaluator._HandleParenthesisContent(r, evaluateCallback);
});
}
if (query === "true") {
return true;
}
if (query === "false") {
return false;
}
return BABYLON.AndOrNotEvaluator.Eval(query, evaluateCallback);
};
BABYLON.AndOrNotEvaluator._HandleParenthesisContent = function (parenthesisContent, evaluateCallback) {
evaluateCallback = evaluateCallback || function(r) {
/*switch(r)
{
case "true":
return true;
case "false":
case "0":
case "":
case "undefined":
case "null":
default:
return false;
}*/
return r === "true" ? true : false;
};
var result;
var or = parenthesisContent.split("||");
for (var i in or) {
var ori = BABYLON.AndOrNotEvaluator._SimplifyNegation(or[i].trim());
var and = ori.split("&&");
if (and.length > 1) {
for (var j = 0; j < and.length; ++j) {
var andj = BABYLON.AndOrNotEvaluator._SimplifyNegation(and[j].trim());
if (andj !== "true" && andj !== "false") {
if...