- Hover provider showing entity information and type - Go-to-definition (F12) for entity references - Basic IFC file validation (ISO-10303-21 header check) - Entity parsing with regex-based detection - Proper CommonJS module system (avoiding ES module issues) This replaces the broken baseline from ifc-developer-tools which had: - Non-functional ES module configuration - Circular dependency issues - Parser crashes - Non-working PositionVisitor Built on Microsoft's LSP example template for a clean, maintainable foundation. Next: Add hierarchical entity dependency tree in hover tooltip."
130 lines
No EOL
2.4 KiB
JavaScript
130 lines
No EOL
2.4 KiB
JavaScript
// Generated by LiveScript 1.6.0
|
|
var max, min, negate, abs, signum, quot, rem, div, mod, recip, pi, tau, exp, sqrt, ln, pow, sin, tan, cos, asin, acos, atan, atan2, truncate, round, ceiling, floor, isItNaN, even, odd, gcd, lcm;
|
|
max = curry$(function(x$, y$){
|
|
return x$ > y$ ? x$ : y$;
|
|
});
|
|
min = curry$(function(x$, y$){
|
|
return x$ < y$ ? x$ : y$;
|
|
});
|
|
negate = function(x){
|
|
return -x;
|
|
};
|
|
abs = Math.abs;
|
|
signum = function(x){
|
|
if (x < 0) {
|
|
return -1;
|
|
} else if (x > 0) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
};
|
|
quot = curry$(function(x, y){
|
|
return ~~(x / y);
|
|
});
|
|
rem = curry$(function(x$, y$){
|
|
return x$ % y$;
|
|
});
|
|
div = curry$(function(x, y){
|
|
return Math.floor(x / y);
|
|
});
|
|
mod = curry$(function(x$, y$){
|
|
var ref$;
|
|
return ((x$) % (ref$ = y$) + ref$) % ref$;
|
|
});
|
|
recip = (function(it){
|
|
return 1 / it;
|
|
});
|
|
pi = Math.PI;
|
|
tau = pi * 2;
|
|
exp = Math.exp;
|
|
sqrt = Math.sqrt;
|
|
ln = Math.log;
|
|
pow = curry$(function(x$, y$){
|
|
return Math.pow(x$, y$);
|
|
});
|
|
sin = Math.sin;
|
|
tan = Math.tan;
|
|
cos = Math.cos;
|
|
asin = Math.asin;
|
|
acos = Math.acos;
|
|
atan = Math.atan;
|
|
atan2 = curry$(function(x, y){
|
|
return Math.atan2(x, y);
|
|
});
|
|
truncate = function(x){
|
|
return ~~x;
|
|
};
|
|
round = Math.round;
|
|
ceiling = Math.ceil;
|
|
floor = Math.floor;
|
|
isItNaN = function(x){
|
|
return x !== x;
|
|
};
|
|
even = function(x){
|
|
return x % 2 === 0;
|
|
};
|
|
odd = function(x){
|
|
return x % 2 !== 0;
|
|
};
|
|
gcd = curry$(function(x, y){
|
|
var z;
|
|
x = Math.abs(x);
|
|
y = Math.abs(y);
|
|
while (y !== 0) {
|
|
z = x % y;
|
|
x = y;
|
|
y = z;
|
|
}
|
|
return x;
|
|
});
|
|
lcm = curry$(function(x, y){
|
|
return Math.abs(Math.floor(x / gcd(x, y) * y));
|
|
});
|
|
module.exports = {
|
|
max: max,
|
|
min: min,
|
|
negate: negate,
|
|
abs: abs,
|
|
signum: signum,
|
|
quot: quot,
|
|
rem: rem,
|
|
div: div,
|
|
mod: mod,
|
|
recip: recip,
|
|
pi: pi,
|
|
tau: tau,
|
|
exp: exp,
|
|
sqrt: sqrt,
|
|
ln: ln,
|
|
pow: pow,
|
|
sin: sin,
|
|
tan: tan,
|
|
cos: cos,
|
|
acos: acos,
|
|
asin: asin,
|
|
atan: atan,
|
|
atan2: atan2,
|
|
truncate: truncate,
|
|
round: round,
|
|
ceiling: ceiling,
|
|
floor: floor,
|
|
isItNaN: isItNaN,
|
|
even: even,
|
|
odd: odd,
|
|
gcd: gcd,
|
|
lcm: lcm
|
|
};
|
|
function curry$(f, bound){
|
|
var context,
|
|
_curry = function(args) {
|
|
return f.length > 1 ? function(){
|
|
var params = args ? args.concat() : [];
|
|
context = bound ? context || this : this;
|
|
return params.push.apply(params, arguments) <
|
|
f.length && arguments.length ?
|
|
_curry.call(context, params) : f.apply(context, params);
|
|
} : f;
|
|
};
|
|
return _curry();
|
|
} |