Hello ABCT,
since your dense cloud is exported in WGS84 geographic coordinates then you should apply to each point a WGS84 to geocentric transform as :
def wgs84_to_geoc(lat, lon, alt):
rad_lat = lat * (math.pi / 180.0)
rad_lon = lon * (math.pi / 180.0)
a = 6378137.0
finv = 298.257223563
f = 1 / finv
e2 = 1 - (1 - f) * (1 - f)
v = a / math.sqrt(1 - e2 * math.sin(rad_lat) * math.sin(rad_lat))
x = (v + alt) * math.cos(rad_lat) * math.cos(rad_lon)
y = (v + alt) * math.cos(rad_lat) * math.sin(rad_lon)
z = (v * (1 - e2) + alt) * math.sin(rad_lat)
return x, y, z
And then to x,y,z geocentric coordinates apply the geoc_to_loc transform defined as (using your code definitions):
geoc_to_loc = Metashape.Matrix.Translation(-fr_to_loc.mulp(frame.region.center)) * gc_to_loc
Hope this helps,