<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV><BR>Sure, I'll look into this case tomorrow. Thanks for the model and your time finding it.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Jane<BR>--- On <B>Thu, 8/11/11, Hong-Jun Kim <I>&lt;hongjun@mcs.anl.gov&gt;</I></B> wrote:<BR></DIV>
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(16,16,255) 2px solid"><BR>From: Hong-Jun Kim &lt;hongjun@mcs.anl.gov&gt;<BR>Subject: Re: [cgma-dev] r5088 - cgm/trunk/geom/OCC<BR>To: jiangtao_ma@yahoo.com<BR>Cc: cgma-dev@mcs.anl.gov<BR>Date: Thursday, August 11, 2011, 5:12 PM<BR><BR>
<DIV class=plainMail>Hi, jane<BR><BR>I attached a step geometry file (with a picture) having problem in OCC kernel.<BR>It passes the "test_edge_orient" in ACIS kernel but doesn't in OCC.<BR>Could you please check this file?<BR>Thanks.<BR><BR>Hong-Jun<BR><BR>----- Original Message -----<BR>From: "Hong-Jun Kim" &lt;<A href="http://us.mc1616.mail.yahoo.com/mc/compose?to=hongjun@mcs.anl.gov" ymailto="mailto:hongjun@mcs.anl.gov">hongjun@mcs.anl.gov</A>&gt;<BR>To: <A href="http://us.mc1616.mail.yahoo.com/mc/compose?to=cgma-dev@mcs.anl.gov" ymailto="mailto:cgma-dev@mcs.anl.gov">cgma-dev@mcs.anl.gov</A><BR>Sent: Thursday, August 11, 2011 3:06:25 PM<BR>Subject: Re: [cgma-dev] r5088 - cgm/trunk/geom/OCC<BR><BR>Thank you for this change.<BR><BR>I am testing it with complex geometries and it looks there are some improvement but it is not working for some cases.<BR>I am still finding where the problem is coming from and let me inform you the
 result.<BR>Thanks.<BR><BR>Hong-Jun<BR><BR>----- Original Message -----<BR>&gt; From: "jiangtao ma" &lt;<A href="http://us.mc1616.mail.yahoo.com/mc/compose?to=jiangtao_ma@yahoo.com" ymailto="mailto:jiangtao_ma@yahoo.com">jiangtao_ma@yahoo.com</A>&gt;<BR>&gt; To: <A href="http://us.mc1616.mail.yahoo.com/mc/compose?to=cgma-dev@mcs.anl.gov" ymailto="mailto:cgma-dev@mcs.anl.gov">cgma-dev@mcs.anl.gov</A><BR>&gt; Sent: Thursday, August 11, 2011 9:21:55 AM<BR>&gt; Subject: [cgma-dev] r5088 - cgm/trunk/geom/OCC<BR>&gt; Author: janehu<BR>&gt; Date: 2011-08-11 09:21:55 -0500 (Thu, 11 Aug 2011)<BR>&gt; New Revision: 5088<BR>&gt; <BR>&gt; Modified:<BR>&gt; cgm/trunk/geom/OCC/OCCCurve.cpp<BR>&gt; cgm/trunk/geom/OCC/OCCModifyEngine.cpp<BR>&gt; cgm/trunk/geom/OCC/OCCQueryEngine.cpp<BR>&gt; cgm/trunk/geom/OCC/OCCSurface.cpp<BR>&gt; Log:<BR>&gt; Added changes to make coedge and loop direction correct. For surfaces,<BR>&gt; opposite to acis where face is always forward
 direction respect to its<BR>&gt; volume, OCC surfaces and shell might be reversed direction with<BR>&gt; respect to its solid. This may cause volume mesh fail, I am looking<BR>&gt; into it now, and might need to change some logic in the geom level of<BR>&gt; cgm.<BR>&gt; <BR>&gt; Modified: cgm/trunk/geom/OCC/OCCCurve.cpp<BR>&gt; ===================================================================<BR>&gt; --- cgm/trunk/geom/OCC/OCCCurve.cpp 2011-08-09 22:27:32 UTC (rev 5087)<BR>&gt; +++ cgm/trunk/geom/OCC/OCCCurve.cpp 2011-08-11 14:21:55 UTC (rev 5088)<BR>&gt; @@ -123,10 +123,10 @@<BR>&gt; <BR>&gt; void OCCCurve::set_TopoDS_Edge(TopoDS_Edge edge)<BR>&gt; {<BR>&gt; - if(edge.IsEqual(*myTopoDSEdge))<BR>&gt; + if(edge.IsSame(*myTopoDSEdge))<BR>&gt; return;<BR>&gt; <BR>&gt; - if(!edge.IsSame(*myTopoDSEdge))<BR>&gt; + else<BR>&gt; {<BR>&gt; DLIList&lt;OCCPoint*&gt; points ;<BR>&gt; this-&gt;get_points(points);<BR>&gt; @@ -737,8 +737,7 @@<BR>&gt; double
 OCCCurve::start_param()<BR>&gt; {<BR>&gt; double start = 0.0, end = 0.0;<BR>&gt; -<BR>&gt; - get_param_range( start, end );<BR>&gt; + get_param_range( start, end );<BR>&gt; return start;<BR>&gt; }<BR>&gt; <BR>&gt; @@ -781,29 +780,22 @@<BR>&gt; {<BR>&gt; TopTools_IndexedMapOfShape M;<BR>&gt; TopExp::MapShapes(*myTopoDSEdge, TopAbs_VERTEX, M);<BR>&gt; - TopologyBridge *point1, *point2;<BR>&gt; - if (M.Extent()==1) {<BR>&gt; - point1 = OCCQueryEngine::instance()-&gt;occ_to_cgm(M(1));<BR>&gt; - if (point1)<BR>&gt; - children.append_unique(point1);<BR>&gt; - } else if (M.Extent()==2) {<BR>&gt; - if ( fabs(BRep_Tool::Parameter(TopoDS::Vertex(M(1)),<BR>&gt; *myTopoDSEdge)-start_param()) &gt;<BR>&gt; - fabs(BRep_Tool::Parameter(TopoDS::Vertex(M(2)),<BR>&gt; *myTopoDSEdge)-start_param()) ) {<BR>&gt; - point1 = OCCQueryEngine::instance()-&gt;occ_to_cgm(M(2));<BR>&gt; - point2 = OCCQueryEngine::instance()-&gt;occ_to_cgm(M(1));<BR>&gt; - } else {<BR>&gt; - point1 =
 OCCQueryEngine::instance()-&gt;occ_to_cgm(M(1));<BR>&gt; - point2 = OCCQueryEngine::instance()-&gt;occ_to_cgm(M(2));<BR>&gt; - }<BR>&gt; - if (point1 &amp;&amp; point1 == point2) {<BR>&gt; - children.append_unique(point1);<BR>&gt; - } else {<BR>&gt; - if (point1)<BR>&gt; - children.append_unique(point1);<BR>&gt; - if (point2)<BR></DIV></BLOCKQUOTE></td></tr></table>