var SetOperatorNode = require("../SetOperatorNode"); module.exports = (function (){ var o = function ( graph ){ SetOperatorNode.apply(this, arguments); var that = this, superDrawFunction = that.draw, INTERSECTION_BACKGROUND_PATH = createIntersectionPath(); this.styleClass("intersectionof") .type("owl:intersectionOf"); this.draw = function ( element ){ superDrawFunction(element); var symbol = element.append("g").classed("embedded", true); var symbolRadius = 10; symbol.append("path") .attr("class", "nostroke") .classed("symbol", true) .attr("d", INTERSECTION_BACKGROUND_PATH); symbol.append("circle") .attr("class", "nofill") .classed("fineline", true) .attr("r", symbolRadius); symbol.append("circle") .attr("cx", 10) .attr("class", "nofill") .classed("fineline", true) .attr("r", symbolRadius); symbol.append("path") .attr("class", "nofill") .attr("d", "m 9,5 c 0,-2 0,-4 0,-6 0,0 0,0 0,0 0,0 0,-1.8 -1,-2.3 -0.7,-0.6 -1.7,-0.8 -2.9," + "-0.8 -1.2,0 -2,0 -3,0.8 -0.7,0.5 -1,1.4 -1,2.3 0,2 0,4 0,6") .attr("transform", "scale(.5)translate(5,0)"); symbol.attr("transform", "translate(-" + (that.radius() - 15) / 7 + ",-" + (that.radius() - 15) / 100 + ")"); that.postDrawActions(); }; function createIntersectionPath(){ var height = 18; var offsetX = 5; var offsetY = -(height / 2); var bezierX = 7; var bezierY = 5; var bottomBezierY = height - bezierY; var startPosition = "M" + offsetX + "," + offsetY; var rightSide = "c" + bezierX + "," + bezierY + " " + bezierX + "," + bottomBezierY + " 0," + height; var leftSide = "c" + -bezierX + "," + -bezierY + " " + -bezierX + "," + -bottomBezierY + " 0," + -height; return startPosition + rightSide + leftSide; } }; o.prototype = Object.create(SetOperatorNode.prototype); o.prototype.constructor = o; return o; }());