<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi all,<br>
<br>
I am not sure how this is different from calling ray_intersect_sets
multiple times, one after the other?&nbsp; This would march along the ray
and find all the intersections. Is it just a performance issue?<br>
<br>
Paul<br>
<br>
Hongjun Kim wrote:
<blockquote cite="mid:9300512.72421270505809348.JavaMail.root@zimbra"
 type="cite">
  <pre wrap="">Your patch is working for me.
Are you going to commit it or do you want me to do it?
Thanks.

Hong-Jun

----- Original Message -----
From: "Jason Kraftcheck" <a class="moz-txt-link-rfc2396E" href="mailto:kraftche@cae.wisc.edu">&lt;kraftche@cae.wisc.edu&gt;</a>
To: <a class="moz-txt-link-abbreviated" href="mailto:hongjun@mcs.anl.gov">hongjun@mcs.anl.gov</a>
Cc: "Brandon Smith" <a class="moz-txt-link-rfc2396E" href="mailto:bsmith82@yahoo.com">&lt;bsmith82@yahoo.com&gt;</a>, <a class="moz-txt-link-abbreviated" href="mailto:moab-dev@mcs.anl.gov">moab-dev@mcs.anl.gov</a>
Sent: Monday, April 5, 2010 3:00:14 PM GMT -06:00 US/Canada Central
Subject: Re: [MOAB-dev] create ray_intersect_all_sets function

<a class="moz-txt-link-abbreviated" href="mailto:hongjun@mcs.anl.gov">hongjun@mcs.anl.gov</a> wrote:


  </pre>
  <blockquote type="cite">
    <pre wrap="">To find all surface sets intersected (including multiple hits for one
surface set), I have to give large tolerance. If it is not, it just find
the first intersections for each surface set.

    </pre>
  </blockquote>
  <pre wrap=""><!---->
Specifying a large tolerance to obtain all intersections is a suboptimal
solution.  You might as well just test all of the triangles against the ray.

However, rather than adding 200 lines of duplicated functionality, why not
just fix the existing code such that it can return multiple intersections.
For example, see the attached patch.

- jason


Index: src/OrientedBoxTreeTool.cpp
===================================================================
--- src/OrientedBoxTreeTool.cpp        (revision 3740)
+++ src/OrientedBoxTreeTool.cpp        (working copy)
@@ -950,6 +950,14 @@
 
 void RayIntersectSets::add_intersection( double t, EntityHandle facet )
 {
+    // If minTolInt is less than zero, return all intersections
+  if (minTolInt &lt; 0 &amp;&amp; t &gt; -tol) {
+    intersections.push_back(t);
+    sets.push_back(lastSet);
+    facets.push_back(facet);
+    return;
+  }
+
     // Check if the 'len' pointer is pointing into the intersection
     // list.  If this is the case, then the list contains, at that
     // location, an intersection greater than the tolerance away from
Index: src/moab/OrientedBoxTreeTool.hpp
===================================================================
--- src/moab/OrientedBoxTreeTool.hpp        (revision 3740)
+++ src/moab/OrientedBoxTreeTool.hpp        (working copy)
@@ -233,6 +233,9 @@
      *                     ray start point is less than this number, the next closest
      *                     intersection.  If the desired result is only the closest
      *                     intersection, pass zero for this argument.
+     *                     This function will return all intersections, regardless
+     *                     of distance from the start of the ray, if this value
+     *                     is negative.
      *\param tolerance     The tolerance to use in intersection checks.
      *\param ray_point     The base point of the ray.
      *\param unit_ray_dir  The ray direction vector (must be unit length)

  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 
Paul Wilson

-- ------------------------------------------------------------------ --
Paul P.H. Wilson              419 Engineering Research Building
<a class="moz-txt-link-abbreviated" href="mailto:wilsonp@engr.wisc.edu">wilsonp@engr.wisc.edu</a>                       1500 Engineering Dr
ph/fax: 608/263-0807                          Madison, WI 53706

           My calendar: <a class="moz-txt-link-freetext" href="http://bit.ly/pphw-calendar">http://bit.ly/pphw-calendar</a>

       Computational Nuclear Engineering Research Group
               <a class="moz-txt-link-freetext" href="http://cnerg.engr.wisc.edu">http://cnerg.engr.wisc.edu</a>

          Associate Professor, Nuclear Engineering
              Engineering Physics Department     
               <a class="moz-txt-link-freetext" href="http://www.engr.wisc.edu/ep">http://www.engr.wisc.edu/ep</a>       

        Chair, Energy Analysis &amp; Policy Certificate
         Nelson Institute for Environmental Studies
                <a class="moz-txt-link-freetext" href="http://nelson.wisc.edu/eap/">http://nelson.wisc.edu/eap/</a>

          Contributing to the joy and improvement
                  of all those around me</pre>
</body>
</html>