Changeset 1177 for inundation/ga/storm_surge/pmesh/mesh.py
- Timestamp:
- Mar 31, 2005, 4:20:14 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/ga/storm_surge/pmesh/mesh.py
r1159 r1177 2119 2119 2120 2120 2121 def weed(self): 2122 #FIXME - for backwards compatibility. 2121 def weed(self,Vertices,Segments): 2123 2122 #weed out existing duplicates 2124 2123 print 'len(self.getUserSegments())' … … 2128 2127 2129 2128 point_keys = {} 2129 for vertex in Vertices: 2130 point = (vertex.x,vertex.y) 2131 point_keys[point]=vertex 2132 2133 line_keys = {} 2134 for segment in Segments: 2135 vertex1 = segment.vertices[0] 2136 vertex2 = segment.vertices[1] 2137 point1 = (vertex1.x,vertex1.y) 2138 point2 = (vertex2.x,vertex2.y) 2139 segment.vertices[0]=point_keys[point1] 2140 segment.vertices[1]=point_keys[point2] 2141 vertex1 = segment.vertices[0] 2142 vertex2 = segment.vertices[1] 2143 point1 = (vertex1.x,vertex1.y) 2144 point2 = (vertex2.x,vertex2.y) 2145 line1 = (point1,point2) 2146 line2 = (point2,point1) 2147 if not (line_keys.has_key(line1) \ 2148 or line_keys.has_key(line2)): 2149 line_keys[line1]=segment 2150 Vertices=point_keys.values() 2151 Segments=line_keys.values() 2152 return Vertices,Segments 2153 2154 def triangles_to_polySet(self,setName): 2155 #turn the triangles into a set 2156 Triangles = self.sets[self.setID[setName]] 2157 Triangles_dict = {} 2158 for triangle in Triangles: 2159 Triangles_dict[triangle]=None 2160 2161 userVertices = {} 2162 userSegments = [] 2163 point_keys = {} 2130 2164 for vertex in self.getUserVertices(): 2131 2165 point = (vertex.x,vertex.y) 2132 if point_keys.has_key(point): 2133 self.userVertices.remove(vertex) 2134 else: point_keys[point]=vertex 2166 point_keys[point]=vertex 2135 2167 2136 2168 line_keys = {} … … 2140 2172 point1 = (vertex1.x,vertex1.y) 2141 2173 point2 = (vertex2.x,vertex2.y) 2142 segment.vertices[0]=point_keys[point1] 2143 segment.vertices[1]=point_keys[point2] 2174 #segment.vertices[0]=point_keys[point1] 2175 #segment.vertices[1]=point_keys[point2] 2176 #vertex1 = segment.vertices[0] 2177 #vertex2 = segment.vertices[1] 2178 #point1 = (vertex1.x,vertex1.y) 2179 #point2 = (vertex2.x,vertex2.y) 2144 2180 line1 = (point1,point2) 2145 2181 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 2151 def triangles_to_polySet(self,setName): 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 2172 Triangles = self.sets[self.setID[setName]] 2173 Triangles_dict = {} 2174 for triangle in Triangles: 2175 Triangles_dict[triangle]=None 2176 2177 userVertices = {} 2178 userSegments = [] 2179 index = 0 2182 if not (line_keys.has_key(line1) \ 2183 or line_keys.has_key(line2)): 2184 line_keys[line1]=segment 2185 2180 2186 for triangle in Triangles: 2181 2187 for i in (0,1,2): … … 2191 2197 userVertices[a]=True 2192 2198 point_keys[(a.x,a.y)]=a 2193 else: userVertices[a]=point_keys[(a.x,a.y)] 2199 else: 2200 a=point_keys[(a.x,a.y)] 2201 userVertices[a]=point_keys[(a.x,a.y)] 2194 2202 assert userVertices.has_key(a) 2195 2203 … … 2199 2207 userVertices[b]=True 2200 2208 point_keys[(b.x,b.y)]=b 2201 else: userVertices[b]=point_keys[(b.x,b.y)] 2209 else: 2210 b=point_keys[(b.x,b.y)] 2211 userVertices[b]=point_keys[(b.x,b.y)] 2202 2212 assert userVertices.has_key(b) 2203 2213 … … 2208 2218 assert ((a.x,a.y)!=(b.x,b.y)) 2209 2219 assert a!=b 2210 userSegments.append( (a,b))2220 userSegments.append(Segment(a,b)) 2211 2221 line_keys[((a.x,a.y),(b.x,b.y))]=None 2212 2222 2213 return userVertices, userSegments 2223 userVertices,userSegments = self.weed(userVertices.keys(),userSegments) 2224 self.userVertices.extend(userVertices) 2225 self.userSegments.extend(userSegments) 2226 self.userVertices,self.userSegments = \ 2227 self.weed(self.userVertices,self.userSegments) 2214 2228 2215 2229 def threshold(self,setName,min=None,max=None,attribute_name = 'elevation'):
Note: See TracChangeset
for help on using the changeset viewer.