function start() { var app = new TCAD.App2D(); app.loadFromLocalStorage(); app.fit(); function addLayer(name, style) { if (app.viewer.findLayerByName(name) === null) { app.viewer.layers.push(new TCAD.TWO.Layer(name, style)); } } addLayer("sketch", TCAD.TWO.Styles.DEFAULT); addLayer("_construction_", TCAD.TWO.Styles.CONSTRUCTION); var actionsWin = new TCAD.ui.Window($('#actions'), app.winManager); TCAD.ui.bindOpening( $('#showActions'), actionsWin ); var addAction = TCAD.ui.createActionsWinBuilder(actionsWin); for (var p = 0; p < app._actionsOrder.length; ++p) { var act = app.actions[app._actionsOrder[p]]; addAction(act.desc, act.action); $('.act-' + act.id).click(act.action).attr('title', act.desc); } function infoStr(c) { if (c.SettableFields === undefined) return ""; var info = Object.keys(c.SettableFields).map(function(f) { return Number(c[f]).toFixed(2); }).join(", "); if (info.length != 0) { info = " [" + info + "]"; } return info; } var pm = app.viewer.parametricManager; var constrList = new TCAD.ui.List('constrs', { items : function() { var theItems = []; for (var j = 0; j < pm.subSystems.length; j++) { var sub = pm.subSystems[j]; for (var i = 0; i < sub.constraints.length; ++i) { var constr = sub.constraints[i]; if (constr.aux !== true && app.constraintFilter[constr.NAME] != true) { theItems.push({name : constr.UI_NAME + infoStr(constr), constr : constr}); } } } theItems.sort(function (a, b) { if (a.constr.NAME == 'coi') { return b.constr.NAME == 'coi' ? 0 : 1; } return a.constr.NAME.localeCompare(b.constr.NAME) }); return theItems; }, remove : function(item) { pm.remove(item.constr); }, mouseleave : function(item) { app.viewer.deselectAll(); app.viewer.refresh(); }, hover : function(item) { app.viewer.select(item.constr.getObjects(), true); app.viewer.refresh(); }, click : function(item) { var c = item.constr; if (c.SettableFields === undefined) return; for (var f in c.SettableFields) { var value = c[f]; var intro = c.SettableFields[f]; value = TCAD.TWO.utils.askNumber(intro, value.toFixed(4), prompt); c[f] = value; } app.viewer.parametricManager.refresh(); } }); var constraintsView = app.dock.views['Constraints']; function configureConstraintsFilter() { var constraintsCaption = constraintsView.node.find('.tool-caption'); var constraintsFilterBtn = TCAD.App2D.faBtn("filter"); constraintsFilterBtn.css({float: 'right', 'margin-right': '10px', cursor: 'pointer'}); constraintsCaption.append(constraintsFilterBtn); var constraintsFilterWin = new TCAD.ui.Window($('#constrFilter'), app.winManager); TCAD.ui.bindOpening(constraintsFilterBtn, constraintsFilterWin); var content = constraintsFilterWin.root.find('.content'); var constrTypes = [], constrType; for (var cname in TCAD.TWO.Constraints) { c = TCAD.TWO.Constraints[cname]; if (c.prototype !== undefined && c.prototype.UI_NAME !== undefined && !c.prototype.aux) { constrTypes.push(c); } } constrTypes.sort(function (a, b) { if (a.prototype.NAME == 'coi') { return b.prototype.NAME == 'coi' ? 0 : -1; } return a.prototype.UI_NAME.localeCompare(b.prototype.UI_NAME) }); for (var i = 0; i < constrTypes.length; i++) { var c = constrTypes[i]; if (c.prototype !== undefined && c.prototype.UI_NAME !== undefined && !c.prototype.aux) { var checkbox = $('', {type : 'checkbox', checked : 'checked', value : c.prototype.NAME}); content.append( $('