Changeset 1159
- Timestamp:
- Mar 29, 2005, 4:26:39 PM (20 years ago)
- Location:
- inundation/ga/storm_surge/pmesh
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/ga/storm_surge/pmesh/mesh.py
r1107 r1159 2119 2119 2120 2120 2121 def weed(self): 2122 #FIXME - for backwards compatibility. 2123 #weed out existing duplicates 2124 print 'len(self.getUserSegments())' 2125 print len(self.getUserSegments()) 2126 print 'len(self.getUserVertices())' 2127 print len(self.getUserVertices()) 2128 2129 point_keys = {} 2130 for vertex in self.getUserVertices(): 2131 point = (vertex.x,vertex.y) 2132 if point_keys.has_key(point): 2133 self.userVertices.remove(vertex) 2134 else: point_keys[point]=vertex 2135 2136 line_keys = {} 2137 for segment in self.getUserSegments(): 2138 vertex1 = segment.vertices[0] 2139 vertex2 = segment.vertices[1] 2140 point1 = (vertex1.x,vertex1.y) 2141 point2 = (vertex2.x,vertex2.y) 2142 segment.vertices[0]=point_keys[point1] 2143 segment.vertices[1]=point_keys[point2] 2144 line1 = (point1,point2) 2145 line2 = (point2,point1) 2146 if line_keys.has_key(line1) or line_keys.has_key(line2): 2147 self.userSegments.remove(segment) 2148 else: line_keys[line1]=None 2149 #end backward-compatibility stuff 2150 2121 2151 def triangles_to_polySet(self,setName): 2122 2152 ## 2153 #self.weed()#FIXME for back-compatibilty - delete sometime 2154 ## 2155 2156 2157 #build a set of existing segments 2158 line_keys = {} 2159 for segment in self.getUserSegments(): 2160 vertex1 = segment.vertices[0] 2161 vertex2 = segment.vertices[1] 2162 line = ((vertex1.x,vertex1.y),(vertex2.x,vertex2.y)) 2163 line_keys[line]=None 2164 2165 #build a set of existing vertexes 2166 point_keys = {} 2167 for vertex in self.getUserVertices(): 2168 point = (vertex.x,vertex.y) 2169 point_keys[point]=vertex 2170 2171 #turn the triangles into a set 2123 2172 Triangles = self.sets[self.setID[setName]] 2124 2173 Triangles_dict = {} … … 2131 2180 for triangle in Triangles: 2132 2181 for i in (0,1,2): 2182 #for every triangles neighbour: 2183 2133 2184 if not Triangles_dict.has_key(triangle.neighbors[i]): 2185 #if the neighbour is not in the set: 2134 2186 a = triangle.vertices[i-1] 2135 2187 b = triangle.vertices[i-2] 2136 userVertices[a]=0 2137 userVertices[b]=0 2138 userSegments.append([a,b]) 2188 if not point_keys.has_key((a.x,a.y)): 2189 #if point a does not already exist 2190 #then add it to the points. 2191 userVertices[a]=True 2192 point_keys[(a.x,a.y)]=a 2193 else: userVertices[a]=point_keys[(a.x,a.y)] 2194 assert userVertices.has_key(a) 2195 2196 if not point_keys.has_key((b.x,b.y)): 2197 #if point b does not already exist 2198 #then add it to the points. 2199 userVertices[b]=True 2200 point_keys[(b.x,b.y)]=b 2201 else: userVertices[b]=point_keys[(b.x,b.y)] 2202 assert userVertices.has_key(b) 2203 2204 if not (line_keys.has_key(((a.x,a.y),(b.x,b.y)))\ 2205 or line_keys.has_key(((b.x,b.y),(a.x,a.y)))): 2206 #if the segment does not already exist then 2207 #add it to the segments 2208 assert ((a.x,a.y)!=(b.x,b.y)) 2209 assert a!=b 2210 userSegments.append((a,b)) 2211 line_keys[((a.x,a.y),(b.x,b.y))]=None 2212 2139 2213 return userVertices, userSegments 2140 2214 -
inundation/ga/storm_surge/pmesh/pmesh.py
r1107 r1159 342 342 event = None 343 343 for v in vertices.keys(): 344 x = v.x*self.SCALE 345 y = v.y*self.SCALE 346 vertices[v]=self.drawVertex(x,y,event) 344 if vertices[v] is True: 345 x = v.x*self.SCALE 346 y = v.y*self.SCALE 347 vertices[v]=self.drawVertex(x,y,event) 348 print 'segments' 349 print segments 350 print 'vertices.keys()' 351 print vertices.keys() 347 352 for s in segments: 348 353 v0 = vertices[s[0]]
Note: See TracChangeset
for help on using the changeset viewer.