def invert_v_texture_map(self, uvs=None):
        if not uvs:
            uvs = self.uvs[0]
        if len(uvs) > 0:
            if len(uvs[0]) == 2:
                elements = [ ]
                (_, min_v) = uvs[0]
                (_, max_v) = uvs[0]
                for (_, v) in uvs:
                    min_v = min(v, min_v)
                    max_v = max(v, max_v)
                midV = 2 * ((math.ceil(max_v) + math.floor(min_v)) * 0.5)
                for (u, v) in uvs:
                    elements.append( (u, midV - v) )
                self.uvs[0] = elements
            elif len(uvs[0]) == 3:
                elements = [ ]
                (_, min_v, _) = uvs[0]
                (_, max_v, _) = uvs[0]
                for (_, v, _) in uvs:
                    min_v = min(v, min_v)
                    max_v = max(v, max_v)
                midV = 2 * ((math.ceil(max_v) + math.floor(min_v)) * 0.5)
                for (u, v, w) in uvs:
                    elements.append( (u, midV - v, w) )
                self.uvs[0] = elements
Invert the v texture mapping.
dataset/ETHPy150Open turbulenz/turbulenz_tools/turbulenz_tools/tools/mesh.py/Mesh.invert_v_texture_map