             heights.append(height)
             positions.append(position)
             
-            positionENU = toENU.multiplyByPoint(position)
-            minimum = positionENU.minimumByComponent(minimum)
-            maximum = positionENU.minimumByComponent(maximum)
+            cartesian3Scratch = toENU.multiplyByPoint(position)
+           
+            minimum = cartesian3Scratch.minimumByComponent(minimum)
+            maximum = cartesian3Scratch.maximumByComponent(maximum)
         }
         
         var occludeePointInScaledSpace: Cartesian3? = nil

                
                if exaggeration != 1.0 {
                    var normal = AttributeCompression.octDecode(x: toPackX, y: toPackY)
                    let fromENUNormal = Transforms.eastNorthUpToFixedFrame(positionENU, ellipsoid: ellipsoid)
                    let toENUNormal = fromENUNormal.inverse
                    
                    normal = toENUNormal.multiplyByPointAsVector(normal)

        
        var minimum = Cartesian3(simd: double3(Double.infinity))
        var maximum = Cartesian3(simd: double3(-Double.infinity))
        var cartesian3Scratch = Cartesian3()
        
        let uStartIndex = uBuffer.startIndex
        let vStartIndex = vBuffer.startIndex
        let hStartIndex = heightBuffer.startIndex
        
        for i in 0..<quantizedVertexCount {
            let u = Double(uBuffer[uStartIndex + i]) / maxShort
            let v = Double(vBuffer[vStartIndex + i]) / maxShort
            let height = Math.lerp(p: minimumHeight, q: maximumHeight, time: Double(heightBuffer[hStartIndex + i]) / maxShort)
