[MOAB-dev] create ray_intersect_all_sets function

hongjun at mcs.anl.gov hongjun at mcs.anl.gov
Mon Apr 5 14:17:51 CDT 2010


> > I think my way of communication looks wrong. Sorry. I think I need
> more
> > explanations here as follows.
> > 
> > To find all surface intersections to geomtry (not just only one
> > intersection to geometry), 
> 
> What are "surface intersections to [geometry]"?

I mean I want to find all sets corresponding to the geometric surfaces containing the intersected triangles (including multiple hits).

> 
> > current "ray_intersect_sets" needs large
> > distance tolerance to cover all geometries. The large tolerance
> makes it
> > take long time to find all surface intersections. (several minutes
> for
> > simple geometry)
> > 
> 
> Why does it need a large tolerance?

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.

> 
> 
> > My version is similar to the function "ray_intersect_triangles" as
> > follows. It does box intersection test at first to store
> intersected
> > boxes and surface sets. After that, it checks
> > "GeomUtil::ray_tri_intersect" to do intersection check with
> triangles in
> > stored boxes. 
> 
> But that looses all tracking of geometry subtrees.  If all you want is
> the
> intersect triangles, why not just use ray_intersect_triangles?  What
> "sets"
> does your "ray_intersect_all_sets" function pass back?  The tree
> leaves?

My version stores intersected boxes and surface sets not to lose geometry subtree tracking.
Only difference with the current version is just stores the intersected boxes and surface sets, and then do "GeomUtil::ray_tri_intersect" check multiple boxes and surface sets.
I need intersected distances, triangles and sets like in "ray_intersect_sets".
As mentioned above, "sets" is meshset and it is the meshset corresponding to the geometric surfaces usually.

> 
> > However, current "ray_intersect_sets" searches all leaf
> > nodes within large tolerance and then do
> "GeomUtil::ray_tri_intersect"
> > check for almost all triangles.
> 
> Yes, if you give it an extremely large tolerance, then by definition
> the ray
> will intersect almost everything.  Why are you specifying a large
> tolerance?

To find all intersected geometry surface sets (including multiple hits), I have to give large tolerance.
Current "ray_intersect_sets" looks it can not find multiple hits to one surface. 

I also attached my code.
Thanks.

Hong-Jun
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ray_intersect_all_sets.txt
URL: <http://lists.mcs.anl.gov/pipermail/moab-dev/attachments/20100405/91d7fb39/attachment.txt>


More information about the moab-dev mailing list