@@ -289,38 +289,29 @@ class BuildingShapeUtils extends ShapeUtils {
289289 var p0 ;
290290 var p1 ;
291291 var p2 ;
292+
293+ function calcAngle ( p0 , p1 , p2 ) {
294+ let angle = Math . atan2 ( p2 . y - p1 . y , p2 . x - p1 . x ) - Math . atan2 ( p0 . y - p1 . y , p0 . x - p1 . x ) ;
295+ if ( angle >= Math . PI ) {
296+ angle -= Math . PI ;
297+ } else if ( angle < - Math . PI ) {
298+ angle += Math . PI ;
299+ }
300+ return angle ;
301+ }
302+
292303 p0 = points [ points . length - 1 ] ;
293304 p1 = points [ 0 ] ;
294305 p2 = points [ 1 ] ;
295- let angle = Math . atan2 ( p2 . y - p1 . y , p2 . x - p1 . x ) - Math . atan2 ( p0 . y - p1 . y , p0 . x - p1 . x ) ;
296- if ( angle >= Math . PI ) {
297- angle -= Math . PI ;
298- } else if ( angle < - Math . PI ) {
299- angle += Math . PI ;
300- }
301- angles . push ( angle ) ;
306+
307+ angles . push ( calcAngle ( p0 , p1 , p2 ) ) ;
302308 for ( let i = 1 ; i < points . length - 1 ; i ++ ) {
303309 p0 = points [ i - 1 ] ;
304310 p1 = points [ i ] ;
305311 p2 = points [ i + 1 ] ;
306- angle = Math . atan2 ( p2 . y - p1 . y , p2 . x - p1 . x ) - Math . atan2 ( p0 . y - p1 . y , p0 . x - p1 . x ) ;
307- if ( angle >= Math . PI ) {
308- angle -= Math . PI ;
309- } else if ( angle < - Math . PI ) {
310- angle += Math . PI ;
311- }
312- angles . push ( angle ) ;
313- }
314- p0 = points [ points . length - 2 ] ;
315- p1 = points [ points . length - 1 ] ;
316- p2 = points [ 0 ] ;
317- angle = Math . atan2 ( p2 . y - p1 . y , p2 . x - p1 . x ) - Math . atan2 ( p0 . y - p1 . y , p0 . x - p1 . x ) ;
318- if ( angle >= Math . PI ) {
319- angle -= Math . PI ;
320- } else if ( angle < - Math . PI ) {
321- angle += Math . PI ;
312+ angles . push ( calcAngle ( p0 , p1 , p2 ) ) ;
322313 }
323- angles . push ( angle ) ;
314+ angles . push ( calcAngle ( p0 , p1 , p2 ) ) ;
324315 return angles ;
325316 }
326317
0 commit comments