From 88f7e7a38d7b7fa0736b7fcab0e0271182d63144 Mon Sep 17 00:00:00 2001 From: GaborFarkas Date: Thu, 8 Sep 2016 10:04:36 +0200 Subject: [PATCH] Utilities for polygon renderer --- src/ol/render/webgl/webgl.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/render/webgl/webgl.js b/src/ol/render/webgl/webgl.js index 498ff2d72f..dbaafc7e77 100644 --- a/src/ol/render/webgl/webgl.js +++ b/src/ol/render/webgl/webgl.js @@ -59,3 +59,24 @@ ol.render.webgl.lineStringInstruction = { MITER_BOTTOM: 19, MITER_TOP: 23 }; + +/** + * Calcualtes the orientation of a triangle based on the determinant method. + * @param {number} x1 First X coordinate. + * @param {number} y1 First Y coordinate. + * @param {number} x2 Second X coordinate. + * @param {number} y2 Second Y coordinate. + * @param {number} x3 Third X coordinate. + * @param {number} y3 Third Y coordinate. + * @return {boolean|undefined} Triangle is clockwise. + */ +ol.render.webgl.triangleIsCounterClockwise = function(x1, y1, x2, y2, x3, y3) { + var area = (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1); + return area === 0 ? undefined : area > 0; +}; + +/** + * @const + * @type {number} + */ +ol.render.webgl.EPSILON = Number.EPSILON || 2.220446049250313e-16;