Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Re[6]: Triangulation optimization around special points

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Re[6]: Triangulation optimization around special points


Chronological Thread 
  • From: "Sebastien Loriot (GeometryFactory)" <>
  • To:
  • Subject: Re: [cgal-discuss] Re[6]: Triangulation optimization around special points
  • Date: Mon, 11 Mar 2013 13:39:21 +0100
  • Organization: GeometryFactory

I repeat my answer: Use exact arithmetic to compute the intersection
of the polyhedra, that way there is no notion of "almost intersecting"
to handle.

Use for example CGAL::Simple_cartesian<CGAL::Lazy_exact_nt<CGAL::Gmpq> >
which is rather fast and exact and this package [1] to then compute the
intersection of polyline segments. Once done you can switch everything
back to double.


Sebastien.

[1] http://www.cgal.org/Manual/latest/doc_html/cgal_manual/AABB_tree/Chapter_main.html

On 03/11/2013 01:17 PM, Oleg wrote:
Hello Sebastien! Thank you for the reference. I may use it in the
future, but for now I already can compute intersection of polyhedrons,
and my problem consists rather in the following. When I compute
intersections of a few polyhedrons, the mesh becomes essentially
non-uniform (crowded) around the points, where the intersecting
polylines intersect between themselves, like the one in the first
message:
<http://cgal-discuss.949826.n4.nabble.com/file/n4656843/3balls.gif> .

Laurent suggested that splitting the intersecting polylines at the
points, where they intersect between themselves, thus turning them
into "corner points" can help. Now I'm wondering what would be the
best way to achieve that..

Oleg

Monday, March 11, 2013, 13:10, you wrote:

> Since snap rounding in 3D is not easy, I think you should compute the
> intersecting polyline using exact arithmetic and then simplify the
output.
> For the computation of intersecting polylines, you might want to
> have a look at the non-documented function in
> CGAL/intersection_of_Polyhedra_3.h

> template <typename Polyhedron, typename OutputIterator>
> OutputIterator
> intersection_Polyhedron_3_Polyhedron_3(const Polyhedron& P, const
> Polyhedron& Q, OutputIterator out)

> where out expects object of type std::vector<typename Kernel::Point_3>
> representing a polyline

> Sebastien.


> On 03/07/2013 11:47 AM, Oleg wrote:
>> Yes, more general shapes. The final goal is to make uniform meshes for
>> bodies composed of general shapes with sharp boundaries between them.
>>
>> Oleg
>>
>> Thursday, March 7, 2013, 17:23, you wrote:
>> > What is the final goal? Only mesh 3 spheres? mesh n spheres? or more
>> > general shapes?
>>
>> > I ask the question because the answer then varies.
>>
>> > Sebastien.
>>
>> > On 03/07/2013 11:16 AM, Oleg wrote:
>> >> Thursday, March 7, 2013, 16:53, you wrote:
>> >> > Le jeudi 07 mars 2013 00:00:11 Oleg a écrit :
>> >> >> Hello everyone! I have a question regarding triangulation
>> >> optimization. I
>> >> >> make a mesh for 3 balls intersection with 3 1D features. The
mesh is
>> >> uniform
>> >> >> everywhere except 2 points where the 3 boundaries intersect:
>> >> >>
<http://cgal-discuss.949826.n4.nabble.com/file/n4656843/3balls.gif>
>> >> >> These points don't seem to represent any problem for a manual
>> meshing,
>> >> >> because the boundaries intersect at large angles. Is there any
easy
>> >> way to
>> >> >> optimize the mesh around these points to avoid the unnecessary
>> >> crowding? Any
>> >> >> ideas will be greatly appreciated.
>> >>
>> >> > In your example, I assume that you have computed the
intersections of
>> >> spheres
>> >> > and set them as 1D features of the domain. When 1D-features
>> >> intersect, you
>> >> > need to split them first at the intersection points. That will
>> make the
>> >> > special intersections points as "corner points" of the domain, and
>> >> fix the
>> >> > crowding you see in the result.
>> >>
>> >> You're right, that's what I did. I'll try what you recommend,
thanks!
>> >> Just another quick question - what would be the best way to find
>> >> intersection points of two polylines? Keeping in mind that the
>> >> polylines may not intersect in one exact point but rather pass by
>> >> each other at a small distance..?
>> >>
>> >> Oleg
>> >>
>> >>
>> >>
>>
------------------------------------------------------------------------
>> >> View this message in context: Re[2]: Triangulation optimization
around
>> >> special points
>> >>
>>
<http://cgal-discuss.949826.n4.nabble.com/Triangulation-optimization-around-special-points-tp4656843p4656846.html>

>>
>> >> Sent from the cgal-discuss mailing list archive
>> >> <http://cgal-discuss.949826.n4.nabble.com/> at Nabble.com.
>>
>>
>>
>>
------------------------------------------------------------------------
>> View this message in context: Re[4]: Triangulation optimization around
>> special points
>>
<http://cgal-discuss.949826.n4.nabble.com/Triangulation-optimization-around-special-points-tp4656843p4656848.html>

>> Sent from the cgal-discuss mailing list archive
>> <http://cgal-discuss.949826.n4.nabble.com/> at Nabble.com.



------------------------------------------------------------------------
View this message in context: Re[6]: Triangulation optimization around
special points
<http://cgal-discuss.949826.n4.nabble.com/Triangulation-optimization-around-special-points-tp4656843p4656892.html>
Sent from the cgal-discuss mailing list archive
<http://cgal-discuss.949826.n4.nabble.com/> at Nabble.com.




Archive powered by MHonArc 2.6.18.

Top of Page