[MOAB-dev] create ray_intersect_all_sets function

Paul Wilson wilsonp at engr.wisc.edu
Mon Apr 5 22:32:14 CDT 2010


Hi all,

I am not sure how this is different from calling ray_intersect_sets 
multiple times, one after the other?  This would march along the ray and 
find all the intersections. Is it just a performance issue?

Paul

Hongjun Kim wrote:
> 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" <kraftche at cae.wisc.edu>
> To: hongjun at mcs.anl.gov
> Cc: "Brandon Smith" <bsmith82 at yahoo.com>, moab-dev at mcs.anl.gov
> 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
>
> hongjun at mcs.anl.gov wrote:
>
>
>   
>> 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.
>>
>>     
>
> 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 < 0 && t > -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)
>
>   

-- 
Paul Wilson

-- ------------------------------------------------------------------ --
Paul P.H. Wilson              419 Engineering Research Building
wilsonp at engr.wisc.edu                       1500 Engineering Dr
ph/fax: 608/263-0807                          Madison, WI 53706

           My calendar: http://bit.ly/pphw-calendar

       Computational Nuclear Engineering Research Group
               http://cnerg.engr.wisc.edu

          Associate Professor, Nuclear Engineering
              Engineering Physics Department     
               http://www.engr.wisc.edu/ep       

        Chair, Energy Analysis & Policy Certificate
         Nelson Institute for Environmental Studies
                http://nelson.wisc.edu/eap/

          Contributing to the joy and improvement
                  of all those around me

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/moab-dev/attachments/20100405/662335b9/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3297 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.mcs.anl.gov/pipermail/moab-dev/attachments/20100405/662335b9/attachment.bin>


More information about the moab-dev mailing list