]> marstr Code Repo - marstr/orthographic.git/commitdiff
New mechanism for resource allocation
authorMarcus Str. <marcus@marstr.online>
Fri, 3 Jan 2025 10:07:18 +0000 (11:07 +0100)
committerMarcus Str. <marcus@marstr.online>
Fri, 3 Jan 2025 10:07:18 +0000 (11:07 +0100)
orthographic.py
tileprep.py

index 82b0b871dbba7ee3b0dfae48bb5d7bad9f7fe9fe..609856c2b9489c145904a9cd62fc7a1304a3be4c 100644 (file)
@@ -468,16 +468,11 @@ class mstr_orthographic:
                     tp._setLatLngFold(self._latlngfld)\r
                     tp._setAlreadyVisitedTiles(self._tiles_visited[vstidx])\r
                     tp._placeTileSources(mlat, mlng)\r
-                    self.adjust_tiles_visited(lyr[0], lyr[1], tp._all_visited)\r
+                    self.adjust_tiles_visited(vstidx, tp._all_visited)\r
 \r
 \r
     # Adjust the tiles visited for one resource\r
-    def adjust_tiles_visited(self, tag, value, tiles):\r
-        lyridx = -1\r
-        for v in range(0, len(self._tiles_visited)):\r
-            if self._tiles_visited[v][0][0] == tag and self._tiles_visited[v][0][1] == value:\r
-                lyridx = v\r
-                break\r
+    def adjust_tiles_visited(self, lyridx, tiles):\r
         \r
         for t in range(1, len(tiles)):\r
             fnd = False\r
@@ -486,7 +481,9 @@ class mstr_orthographic:
                     fnd = True\r
                     break\r
             if fnd == False:\r
-                self._tiles_visited[lyridx].append((tiles[t][0], tiles[t][1]))\r
+                if tiles[t][0] > 0 and tiles[t][1] > 0:\r
+                    self._tiles_visited[lyridx].append((tiles[t][0], tiles[t][1]))\r
+\r
 \r
     # Generates X-Plane 11/12 scenery with\r
     # - the finished orthos\r
index 41f032f86848940c650a830e3eff029263118d97..7e2eed447364376d8971eacd01be55fbf7bf9a35 100644 (file)
@@ -314,26 +314,33 @@ class mstr_tileprep:
     # sources for every tile, thus evading previous edge detection errors
     def _placeTileSources(self, mlat, mlng):
         
-        # Initial scan "cross"
-        visited = self._scanConnections((self._tile_v, self._tile_h))
+        # Check if this tile was already processed
+        alr_processed = self._checkVisited(self._already_visited, (self._tile_v, self._tile_h))
 
-        # Recursive scan of initial cross
-        for v in range(len(visited)):
-            vst = self._scanConnections((visited[v][0], visited[v][1]))
-            for l in range(len(vst)):
-                if self._checkVisited(visited, (vst[l][0], vst[l][1])) == False: visited.append((vst[l][0], vst[l][1]))
+        # If this is not the case, we can proceed
+        if alr_processed == False:
 
-        self._all_visited = visited
-        
-        # We will take the resource of the original tile we have started
-        # our scan from. If there is nothing, we can choose.
-        # This is then used for all visited tiles.
-        tv = self._tile_v
-        th = self._tile_h
-        resstring = self._selectResources()
-        for v in range(0, len(visited)):
-            self._storeResourceInfo(visited[v][0], visited[v][1], resstring)
+            # Initial scan "cross"
+            visited = self._scanConnections((self._tile_v, self._tile_h))
+
+            # Recursive scan of initial cross
+            for v in range(len(visited)):
+                vst = self._scanConnections((visited[v][0], visited[v][1]))
+                for l in range(len(vst)):
+                    if self._checkVisited(visited, (vst[l][0], vst[l][1])) == False: visited.append((vst[l][0], vst[l][1]))
+
+            self._all_visited = visited
+            
+            # We will take the resource of the original tile we have started
+            # our scan from. If there is nothing, we can choose.
+            # This is then used for all visited tiles.
+            tv = self._tile_v
+            th = self._tile_h
+
+            resstring = self._selectResources()
 
+            for v in range(0, len(visited)):
+                self._storeResourceInfo(visited[v][0], visited[v][1], resstring)
 
 
     # Check if a tile was visited