ht.lib = ht.lib || {}; if (!ht.lib['倒置 接地刀闸通用图元']) { ht.lib['倒置 接地刀闸通用图元'] = function (x, y, width, height, angle, localVarObj, localDynamicVar, nodename) { _ratio = GD.getRatioWithRotation(0, ratio); ht.lib['倒置 接地刀闸通用图元'].superClass.constructor.apply(this); this.localVarObj = localVarObj; this.localDynamicVar = localDynamicVar; this.childNodes = []; this._styleObject = {}; this._originWidth = 15*_ratio.ratioX; this._originHeight = 21*_ratio.ratioY; this._baseClass = "ht.lib.倒置 接地刀闸通用图元"; this._background = new ht.Node(); this._background.setWidth(this._originWidth); this._background.setHeight(this._originHeight); this._background.setPosition(this._originWidth/2, this._originHeight/2); this._background.setImage({ width: width, height: height, clip: true, comps: [ { type: 'rect', background: 'rgba(0,255,0,0)', rect: [0,0,width, height] } ] }); this._background.__parentLib = nodename; this._background.isLibBackground = true; this.childNodes.push(this._background); dataModel.add(this._background); /*@PageBackgroundInit@*/ /*@PageBeforeInit@*/ var Lib_倒置接地刀闸通用图元Node0; (function () { var _ratio = GD.getRatioWithRotation(0*Math.PI/180, ratio); var ratioX, ratioY; if ('Default' === 'False') { ratioX = 1; ratioY = 1; } else if ('Default' === 'X') { ratioX = ratioY = _ratio.ratioX; } else if ('Default' === 'Y') { ratioX = ratioY = _ratio.ratioY; } else { ratioX = _ratio.ratioX; ratioY = _ratio.ratioY; } ht.Default.setImage('imgimage//g021.png', PAGEROOTDIR + 'image//g021.png'); Lib_倒置接地刀闸通用图元Node0 = new ht.Node(); Lib_倒置接地刀闸通用图元Node0.setPosition(7*ratio.ratioX, 10*ratio.ratioY); Lib_倒置接地刀闸通用图元Node0.setSize(14*ratioX, 20*ratioY); Lib_倒置接地刀闸通用图元Node0.setImage('imgimage//g021.png'); Lib_倒置接地刀闸通用图元Node0.setRotation(0*Math.PI/180); Lib_倒置接地刀闸通用图元Node0._zoomBy = 'Default'; Lib_倒置接地刀闸通用图元Node0._nodeType = 'image'; Lib_倒置接地刀闸通用图元Node0._disallowEvert = true; dataModel.add(Lib_倒置接地刀闸通用图元Node0); })(); var Lib_倒置接地刀闸通用图元Node1; (function () { var _ratio = GD.getRatioWithRotation(0*Math.PI/180, ratio); var ratioX, ratioY; if ('Default' === 'False') { ratioX = 1; ratioY = 1; } else if ('Default' === 'X') { ratioX = ratioY = _ratio.ratioX; } else if ('Default' === 'Y') { ratioX = ratioY = _ratio.ratioY; } else { ratioX = _ratio.ratioX; ratioY = _ratio.ratioY; } ht.Default.setImage('imgimage//g010.png', PAGEROOTDIR + 'image//g010.png'); Lib_倒置接地刀闸通用图元Node1 = new ht.Node(); Lib_倒置接地刀闸通用图元Node1.setPosition(7*ratio.ratioX, 10*ratio.ratioY); Lib_倒置接地刀闸通用图元Node1.setSize(14*ratioX, 20*ratioY); Lib_倒置接地刀闸通用图元Node1.setImage('imgimage//g010.png'); Lib_倒置接地刀闸通用图元Node1.setRotation(0*Math.PI/180); Lib_倒置接地刀闸通用图元Node1._zoomBy = 'Default'; Lib_倒置接地刀闸通用图元Node1._nodeType = 'image'; Lib_倒置接地刀闸通用图元Node1._disallowEvert = true; dataModel.add(Lib_倒置接地刀闸通用图元Node1); })(); /*@GraphList@*/ /*@PageInit@*/ var localVarObj = this.localVarObj; var localDynamicVarObj = this.localDynamicVar(); var xianshi4= localVarObj.xianshi4 || localDynamicVarObj.xianshi4; this['Lib_倒置接地刀闸通用图元Node0'] = Lib_倒置接地刀闸通用图元Node0; Lib_倒置接地刀闸通用图元Node0.__parentLib = nodename; Lib_倒置接地刀闸通用图元Node0.__parent = this; this.childNodes.push(Lib_倒置接地刀闸通用图元Node0); this['Lib_倒置接地刀闸通用图元Node1'] = Lib_倒置接地刀闸通用图元Node1; Lib_倒置接地刀闸通用图元Node1.__parentLib = nodename; Lib_倒置接地刀闸通用图元Node1.__parent = this; this.childNodes.push(Lib_倒置接地刀闸通用图元Node1); /*@ControlContextMenu@*/ /*@Declare@*/ this.init(x, y, width, height, angle); }; ht.Default.def('ht.lib.倒置 接地刀闸通用图元', Object, { refresh10ms: function () { var localVarObj = this.localVarObj; var localDynamicVarObj = this.localDynamicVar(); var xianshi4= localVarObj.xianshi4 || localDynamicVarObj.xianshi4; var Lib_倒置接地刀闸通用图元Node0= this.Lib_倒置接地刀闸通用图元Node0; var Lib_倒置接地刀闸通用图元Node1= this.Lib_倒置接地刀闸通用图元Node1; /*@refresh10ms@*/ }, refresh100ms: function () { var localVarObj = this.localVarObj; var localDynamicVarObj = this.localDynamicVar(); var xianshi4= localVarObj.xianshi4 || localDynamicVarObj.xianshi4; var Lib_倒置接地刀闸通用图元Node0= this.Lib_倒置接地刀闸通用图元Node0; var Lib_倒置接地刀闸通用图元Node1= this.Lib_倒置接地刀闸通用图元Node1; /*@refresh100ms@*/ }, refresh500ms: function () { var localVarObj = this.localVarObj; var localDynamicVarObj = this.localDynamicVar(); var xianshi4= localVarObj.xianshi4 || localDynamicVarObj.xianshi4; var Lib_倒置接地刀闸通用图元Node0= this.Lib_倒置接地刀闸通用图元Node0; var Lib_倒置接地刀闸通用图元Node1= this.Lib_倒置接地刀闸通用图元Node1; if((1 )>0) {if(((getVarValue(xianshi4)==0)>0 )){Lib_倒置接地刀闸通用图元Node0.s('2d.visible',true&&this.getStyle('2d.visible'));}else{Lib_倒置接地刀闸通用图元Node0.s('2d.visible',false&&this.getStyle('2d.visible'));}} if((1 )>0) {if(((getVarValue(xianshi4)==1)>0 )){Lib_倒置接地刀闸通用图元Node1.s('2d.visible',true&&this.getStyle('2d.visible'));}else{Lib_倒置接地刀闸通用图元Node1.s('2d.visible',false&&this.getStyle('2d.visible'));}} /*@refresh500ms@*/ }, refresh1s: function () { var Counter1s = arguments[0] || 0; var localVarObj = this.localVarObj; var localDynamicVarObj = this.localDynamicVar(); var xianshi4= localVarObj.xianshi4 || localDynamicVarObj.xianshi4; var Lib_倒置接地刀闸通用图元Node0= this.Lib_倒置接地刀闸通用图元Node0; var Lib_倒置接地刀闸通用图元Node1= this.Lib_倒置接地刀闸通用图元Node1; /*@refresh1s@*/ }, refresh5s: function () { var localVarObj = this.localVarObj; var localDynamicVarObj = this.localDynamicVar(); var xianshi4= localVarObj.xianshi4 || localDynamicVarObj.xianshi4; var Lib_倒置接地刀闸通用图元Node0= this.Lib_倒置接地刀闸通用图元Node0; var Lib_倒置接地刀闸通用图元Node1= this.Lib_倒置接地刀闸通用图元Node1; /*@refresh5s@*/ }, /*@PageDynamic@*/ onEvent: function (e, data, type, origin, offset, objMouseOn, ctm) { var localVarObj = this.localVarObj; var localDynamicVarObj = this.localDynamicVar(); var xianshi4= localVarObj.xianshi4 || localDynamicVarObj.xianshi4; var Lib_倒置接地刀闸通用图元Node0= this.Lib_倒置接地刀闸通用图元Node0; var Lib_倒置接地刀闸通用图元Node1= this.Lib_倒置接地刀闸通用图元Node1; if (type === 'click') { /*@EvnentClicked@*/ } else if (type === 'mousedown') { mouseX=e.clientX; mouseY=e.clientY; /*@EvnentMouseDown@*/ } else if (type === 'mouseup') { /*@EvnentMouseUp@*/ } else if (type === 'mousemove') { var mouseX, mouseY, position, zoom; position=origin.getLogicalPoint(e); zoom = graphView.getZoom(); if (origin === graphView) { mouseX= position.x + origin.tx(); mouseY = position.y + origin.ty(); } else { offset = offset || {x: 0, y: 0}; mouseX = position.x / zoom + offset.x + origin.tx(); mouseY = position.y / zoom + offset.y + origin.ty(); } /*@EvnentMouseLeave@*/ /*@EvnentMouseOver@*/ } else if (type === 'keydown') { /*@EvnentKeyDown@*/ } else if (type === 'contextmenu') { /*@Declare@*/ /*@SetNodeContextMenu@*/ /*@SetPageContextMenu@*/ } /*@LibEvent@*/ }, getBaseClass: function () { return this._baseClass; }, getWidth: function () { return this._width; }, getHeight: function () { return this._height; }, getSize: function () { return { width: this._width, height: this._height } }, setWidth: function (width) { if (width === undefined || width === null || width != width) { return ; } var originWidth = this._width; var ratio = width / originWidth; var childNodes = this.childNodes, childNode, p, op = this.getPosition(), w, cw, ox, rotation = this.getRotation(); for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; p = childNode.getPosition(); cw = childNode.getWidth(); w = cw >=2 ? cw * ratio : cw; childNode.setWidth(w); ox = op.x + (p.x - op.x) * ratio; childNode.setPosition(ox, p.y); rotation = GD.calcRotation(rotation); if (rotation === 0 || rotation === Math.PI) { // 图元未旋转 ox = op.x + (p.x - op.x)*ratio; childNode.setPosition(ox, p.y); } else if (rotation === 90 * Math.PI / 180) { // 图元旋转以后 ox = op.y + (p.y - op.y)*ratio; childNode.setPosition(p.x, ox); } } this._width = width; this._originWidth = width; this._ratioX = ratio; return this; }, setHeight: function (height) { if (height === undefined || height === null || height != height) { return ; } var originHeight = this._height; var ratio = height / originHeight; var childNodes = this.childNodes, childNode, p, op = this.getPosition(), h, ch, oy, rotation = this.getRotation(); for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; p = childNode.getPosition(); ch = childNode.getHeight(); h = ch >=2 ? ch * ratio : ch; childNode.setHeight(h); rotation = GD.calcRotation(rotation); if (rotation === 0 || rotation === Math.PI) { // 图元未旋转 oy = op.y + (p.y - op.y)*ratio; childNode.setPosition(p.x, oy); } else if (rotation === 90 * Math.PI / 180) { // 图元旋转以后 oy = op.x + (p.x - op.x)*ratio; childNode.setPosition(oy, p.y); } } this._height = height; this._originHeight = height; this._ratioY = ratio; return this; }, setSize: function (size) { // var args = Array.prototype.slice.call(arguments, 0); // var height, width; // if (args.length === 0) { // return ; // }else if (args.length === 1) { // height = args[0].height; // width = args[0].width; // } else { // width = args[0]; // height = args[1]; // } // var wh = GD.getRatioWithRotation(angle, wid) // this.setHeight(height); // this.setWidth(width); // return this; var args = Array.prototype.slice.call(arguments, 0); var height, width; if (args.length === 0) { return ; }else if (args.length === 1) { height = args[0].height; width = args[0].width; angle = 0; } else if (args.length === 2) { if (typeof args[0] === 'object') { width = args[0].width; height = args[0].height; angle = args[1] || 0; } else { width = args[0]; height = args[1]; angle = 0; } } else if (args.length === 3) { width = args[0]; height = args[1]; angle = args[2] || 0; } var wh = GD.getRatioWithRotation(0, width, height); this.setHeight(wh.ratioY); this.setWidth(wh.ratioX); return this; }, getPosition: function () { return { x: this._x, y: this._y } }, setPosition: function () { var args = Array.prototype.slice.call(arguments, 0), x, y; if (args.length === 0) { return this; } else if (args.length === 1) { if (typeof args[0] != 'object') { return this; } x = args[0].x; y = args[0].y; } else { x = args[0]; y = args[1]; } if ((x !== 0 && !x) || (y !== 0 && !y)) { return this; } // var childNodes = this.childNodes, offset, childNode, p; // for (var i = 0, len = childNodes.length; i < len; i++) { // childNode = childNodes[i]; // p = childNode.getPosition(); // childNode.setPosition(x - (this._x-p.x)*this._ratioX, y - (this._y-p.y)*this._ratioY); // } // this._x = x; // this._y = y; // return this; var childNodes, childNode, background, offset = {}, op, cp; childNodes = this.childNodes; background = this._background; op = background.getPosition(); offset.x = x - op.x; offset.y = y - op.y; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; cp = childNode.getPosition(); childNode.setPosition(cp.x + offset.x, cp.y + offset.y); } this._x = x; this._y = y; this._position = {x: x, y: y}; return this; }, getStyle: function (key) { if (!key) { return undefined; } return this._styleObject[key]; }, setStyle: function (key, value, force) { var childNodes = this.childNodes, childNode; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; if (key === '2d.visible') { if (value === graphView.isVisible(childNode)) { continue; } if (!value) { childNode._savedIsVisible = graphView.isVisible(childNode); childNode.s({ '2d.visible': false }) } else { childNode.s({ '2d.visible': childNode._savedIsVisible }) } continue; } childNode.s({ key: value }); } this._styleObject[key] = value; return this; }, calcSize: function () { var background = this._background; var position = background.getPosition(), width = background.getWidth(), height = background.getHeight(); this._width = width; this._height = height; this._x = position.x; this._y = position.y; this._position = { x: this._x, y: this._y } return this; return this; }, s: function (styleObj, force) { var args = Array.prototype.slice.call(arguments, 0); var styleObj; if (args.length === 0) { return this; } else if (args.length === 1) { styleObj = args[0]; } else { this.setStyle(args[0], args[1]); return this; } for (var key in styleObj) { if (!styleObj.hasOwnProperty(key)) { continue; } this.setStyle(key, styleObj[key], force); } return this; }, init: function (x, y, width, height, angle) { var that = this; this.calcSize(); (function (width, height, angle) { // that.setSize(width, height, angle); // var wh = GD.getRatioWithRotation(angle, width, height); // width = wh.ratioX; // height = wh.ratioY; var originHeight = that._height; var originWidth = that._width; var ratioY = height / originHeight; var ratioX = width / originWidth; var childNodes = that.childNodes, childNode,p, op = that.getPosition(), h, ch, oy, w, cw, ox, name, borderRatio, borderWidth; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; p = childNode.getPosition(); childNode.originHeight = childNode.originHeight || childNode.getHeight(); ch = childNode.getHeight(); cw = childNode.getWidth(); if (ch > 2) { h = ch * ratioY; childNode.setHeight(h); } if (cw > 2) { w = cw * ratioX; childNode.setWidth(w); } borderRatio = (ratioX + ratioY)*0.5; if (childNode._nodeType === 'line') { // 如果是线, if (childNode.getWidth() > childNode.getHeight()) { borderRatio = ratioX; } else { borderRatio = ratioY; } } name = childNode._nodename; // if (childNode.borderWidth && name && ch > 2 && cw > 2) { // borderWidth = childNode.borderWidth / borderRatio; // if (borderWidth > ch*0.5 || borderWidth > cw *0.5) { // // borderWidth = childNode.borderWidth; // } // childNode.borderWidth = borderWidth; // childNode.a(name + '.borderwidth', borderWidth); // } } that._height = height; that._originHeight = height; that._ratioY = ratioY; that._width = width; that._originWidth = width; that._ratioX = ratioX; })(width, height, angle); that._x = width / 2; that._y = height / 2; that._rotation = 0; // that.setPosition(x, y); (function (x, y) { var childNodes = that.childNodes, offset, childNode; var w2 = that.getWidth() / 2, h2 = that.getHeight()/2; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; offset = childNode.getPosition(); childNode.setPosition(x + offset.x * that._ratioX - w2, y + offset.y * that._ratioY - h2); } that._x = x; that._y = y; })(x, y); // setTimeout(that.addEVent, 1000); }, setRotation: function (angle) { var that = this, _angle = that.getRotation(); if (angle!==0 && !angle || angle === _angle) { return this; } var childNodes = this.childNodes, childNode, p = this.getPosition(), px = p.x, py = p.y; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; var x = childNode.getPosition().x - px; var y = childNode.getPosition().y - py; childNode.setPosition(Math.cos(angle-_angle) * x - Math.sin(angle-_angle) * y + px, Math.cos(angle-_angle) * y + Math.sin(angle-_angle) * x + py); childNode.setRotation(angle); } this._rotation = angle; return this; }, getRotation: function () { return this._rotation; }, setScale: function (sx, sy) { var that = this, childNodes = this.childNodes, childNode; if (sx === undefined || sx === null) return ; if (sy === undefined || sy === null) { sy = sx; } for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; if (typeof childNode.setScale === 'function') { childNode.setScale(sx, sy); } } }, getScale: function () { return this._background.getScale(); }, setScaleX: function (sx) { if (sx === undefined || sx === null) return; var that = this, childNodes = this.childNodes, childNode; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; if (typeof childNode.setScaleX === 'function') { childNode.setScaleX(sx); } } }, setScaleY: function (sy) { if (sy === undefined || sy === null) return; var that = this, childNodes = this.childNodes, childNode; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; if (typeof childNode.setScaleY === 'function') { childNode.setScaleY(sy); } } }, getScaleX: function () { return this._background.getScaleX(); }, getScaleY: function () { return this._background.getScaleY(); }, evert: function () { var that = this, childNodes = this.childNodes, background = this._background, bp = background.getPosition(), bx = bp.x, by = bp.y, childNode, distanceX, distanceY, x, y, p, nx, ny; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; p = childNode.getPosition(); x = p.x; y = p.y; distanceX = bx - x; distanceY = by - y; nx = bx + distanceX; ny = by + distanceY; childNode.setPosition(nx, ny); if (typeof childNode.setScale === 'function') { if (!(childNode._disallowEvert === true)) childNode.setScale(-1, -1); } } }, evertX: function () { var that = this, childNodes = this.childNodes, background = this._background, bx = background.getPosition().x, childNode, distance, x, p, nx; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; p = childNode.getPosition(); x = p.x; distance = bx - x; nx = bx + distance; childNode.setPosition(nx, p.y); if (typeof childNode.setScaleX === 'function') { if (!(childNode._disallowEvert === true)) childNode.setScaleX(-1); } } }, evertY: function () { var that = this, childNodes = this.childNodes, background = this._background, by = background.getPosition().y, childNode, distance, y, p, ny; for (var i = 0, len = childNodes.length; i < len; i++) { childNode = childNodes[i]; p = childNode.getPosition(); y = p.y; distance = by - y; ny = by + distance; childNode.setPosition(p.x, ny); if (typeof childNode.setScaleY === 'function') { if (!(childNode._disallowEvert === true)) childNode.setScaleY(-1); } } }, attr: function (key, value) { var _attrObj = this._attrObj || {}; if (arguments.length === 1) { return _attrObj[key]; } var childNodes = this.childNodes, childNode; _attrObj[key] = value; for (var i = 0; childNode = childNodes[i++];) { if (typeof childNode.a === 'function') { childNode.a(key, value); } } }, a: function () { return this.attr.apply(this, arguments); } }); }