This can be done directly in the SWIG wrapper. For the TopoDS_Shape class, the != operator is already wrapped with python (a call to IsNotEqual() method). Don't know why the == operator is ignored. Certainly a stupid mistake from me.
Thomas Jelle Feringa a écrit : > By the way, it would be easy to reassign IsEqual -> == > > In [21]: def cmp(self, other): > ....: print 'comparing' > ....: return self.IsEqual(other) > ....: > > In [22]: TopoDS_Edge.__cmp__ = cmp > > In [23]: edg1 == edg1A > comparing > > Out[23]: True > > Could be useful, right? > > -jelle > > > > On Mar 27, 2009, at 8:42 AM, Thomas Paviot wrote: > >> Jelle, >> >> Had a look on your Topo._loop_topo method. Here is your code: >> >> topo_set = set() >> while self.topExp.More(): >> topo_item = topoTypes[topologyType]( self.topExp.Current() ) >> if topo_item in topo_set: >> pass >> else: >> yield topo_item >> topo_set.add(topo_item) >> self.topExp.Next() >> >> >> I think that the line 'if topo_item in topo_set' is not safe, ie you >> cannot ensure that this item is really in the set. I suggest you >> rather use a builtin OCC comparison method like IsEqual or IsSame. >> Extracted from TopoDS_Shape.hxx: >> >> """ >> The IsEqual() method returns True if two shapes are equal, i.e. if >> they share the same TShape with the same Locations and Orientations. >> """ >> >> """ >> The IsSame() method returns True if two shapes are same, i.e. if they >> share the same TShape with the same Locations. *Orientations may differ* >> """ >> >> Here is a fix to your script (that uses IsEqual). You can see that >> the output is different. Did'nt try the IsSame() method. >> >> topo_set = set() >> while self.topExp.More(): >> topo_item = topoTypes[topologyType](self.topExp.Current()) >> # >> # Check if already in the set >> # >> EQUAL = False >> for item in topo_set: >> if topo_item.IsEqual(item): >> EQUAL = True >> break >> if not EQUAL: >> yield topo_item >> topo_set.add(topo_item) >> self.topExp.Next() >> >> Cheers, >> >> Thomas >> >> Jelle Feringa a écrit : >>> Hi, >>> >>> The topology module has been reworked ( OCC.Utils.topology ). >>> Now its easy to find the faces related to a vertex ( & visa versa ), >>> the edges incident to a vertex or a face ( & visa versa ). >>> Also you can get the ordered edges or vertices from a wire. >>> >>> I made a test case showing how to fillet a vertex of a cube. >>> See the image attached. >>> >>> Cheers, >>> >>> -jelle >>> >>> >>> ------------------------------------------------------------------------ >>> >>> >>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------ >>> >>> >>> ------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> Pythonocc-users mailing list >>> Pythonocc-users@gna.org >>> https://mail.gna.org/listinfo/pythonocc-users > > _______________________________________________ Pythonocc-users mailing list Pythonocc-users@gna.org https://mail.gna.org/listinfo/pythonocc-users