--[[ An example of using the copy() method on userdata --]] local loc1 = Location() loc1:lat(-35) loc1:lng(-122) -- if we did this as loc2 = loc1 then it actually takes a reference -- by using copy() we get the intended behaviour local loc2 = loc1:copy() loc2:offset(3000,5000) local diff = loc1:get_distance_NE(loc2) gcs:send_text(0,string.format("locdiff=(%.2f,%.2f)", diff:x(), diff:y())) local v1 = Vector2f() v1:x(-35) v1:y(-122) local v2 = v1:copy() v2:x(v2:x()+100) v2:y(v2:y()+300) local diff = v2 - v1 gcs:send_text(0,string.format("vdiff=(%.2f,%.2f)", diff:x(), diff:y()))