             return Self.init(points: np)
         }
         else {
-            
-            let clockwise = self.clockwise
+            let clockwise: Bool = {
+                let points = self.points
+                let angle = Utils.angle(o: points[0], v1: points[self.order], v2: points[1])
+                return angle > 0
+            }()
             for t in [0,1] {
                 if (self.order==2) && (t != 0) {
                     break

//    }
    
    private func internalScale(distance d: BKFloat?, distanceFunction distanceFn: DistanceFunction?) -> Self {
        
        // TODO: this is a good candidate for enum, d is EITHER constant or a function
        precondition((d != nil && distanceFn == nil) || (d == nil && distanceFn != nil))
        

            p = list
        }
        return ret
    }
    
    private var linear: Bool {
