'use strict'; var subtypes = require('./subtypes'); module.exports = function selectPoints(searchInfo, selectionTester) { var cd = searchInfo.cd; var xa = searchInfo.xaxis; var ya = searchInfo.yaxis; var selection = []; var trace = cd[0].trace; var i; var di; var x; var y; var hasOnlyLines = (!subtypes.hasMarkers(trace) && !subtypes.hasText(trace)); if(hasOnlyLines) return []; if(selectionTester === false) { // clear selection for(i = 0; i < cd.length; i++) { cd[i].selected = 0; } } else { for(i = 0; i < cd.length; i++) { di = cd[i]; x = xa.c2p(di.x); y = ya.c2p(di.y); if((di.i !== null) && selectionTester.contains([x, y], false, i, searchInfo)) { selection.push({ pointNumber: di.i, x: xa.c2d(di.x), y: ya.c2d(di.y) }); di.selected = 1; } else { di.selected = 0; } } } return selection; };