Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Crash on converting Polyhedron_3 to Nef_polyhedron_3 on an OFF input.

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Crash on converting Polyhedron_3 to Nef_polyhedron_3 on an OFF input.


Chronological Thread 
  • From: Gilbert Bernstein <>
  • To:
  • Subject: Re: [cgal-discuss] Crash on converting Polyhedron_3 to Nef_polyhedron_3 on an OFF input.
  • Date: Sun, 13 Jan 2008 18:13:04 -0600
  • Domainkey-signature: s=main; d=mail.utexas.edu; c=nofws; q=dns; h=Received:Received:Received:Mime-Version:In-Reply-To: References:Content-Type:Message-Id:From:Subject:Date: To:X-Mailer; b=YqdWQxOU0kgHhSmexUa03TjS7zp1v5y52RsqURdEP1IPLHVivsnZq sJMkqsnDUyCAnpkCWpWKbn0+ziCG6iTJlYCBejvzZvjGlkl75v1TD z1w6BkNJPpDBzp728NcDP3zobwS9Khy8D1ziXRdeTDrSSBYmQIYCD 0LgtiI7nBh6o=;

Included are photos I took of the two files you sent me. The original file is non-manifold.

-- Gilbert

TIFF image

Triangle Out -- manifold thanks to conversion (or so I understand?)

TIFF image

Exterior of non-manifold input

TIFF image


Interior of input file showing non-manifold behavior of surface

On Jan 13, 2008, at 4:15 PM, Stephen Wong wrote:

Hi Gilbert,

I don't believe that my input file is non-manifold. The facets that you were describing as "shared facets" between the inner and outer triangular prism - those facets are non-convex and have the inner prism removed (you can see that in the attached OFF file, which I describe later in this post). There are two facets in the input file which are not convex.

I have tried converting the OFF file into a Nef_polyhedron using the function OFF_to_nef_3() as you have described. When executing the complex_construction.cpp with that file, I get the following output:

Nef vertices: 12
Nef edges: 21
Nef facets: 11
Nef volumes: 2
number of discarded facets: 0

That seems to indicate that the input file is not degenerate.

I converted the resultant Nef_polyhedron_3 that is generated to a polyhedron_3 using convert_to_Polyhedron_3(), and then wrote the polyhedron to OFF. I have attached this file here - you can see that the solid is identical to the input, except with the facets triangulated.

So, I still believe that there is something awry during the conversion between Polyhedron_3 and Nef_polyhedron_3 for this input OFF file.

Stephen

-----Original Message-----
From: Gilbert Bernstein
[mailto:]
Sent: January-12-08 6:47 PM
To:

Subject: Re: [cgal-discuss] Crash on converting Polyhedron_3 to Nef_polyhedron_3 on an OFF input.

Stephen,

The mesh you're trying to read in is non-manifold. This is probably
why it is not working. Inside of the triangular prism is a second
triangular prism sharing part of a face. The surface represented
itself is non-manifold, and your data file contains T-Junctions, so
the connectivity of the mesh isn't made explicit. One or both of
these problems might be the cause of a bad conversion.

If you check the examples folder, there is a program called
"complex_construction.cpp" It demonstrates the use of the following
function:

#include<CGAL/OFF_to_nef_3.h>

Nef_3 N;
std::size_t discarded = CGAL::OFF_to_nef_3 (std::cin, N, true);

discarded contains the number of facets of the model which were
discarded by the conversion process. You might want to try running
the model through complex_construction and see what happens.

-- Gilbert


On Jan 12, 2008, at 7:47 PM, Stephen Wong wrote:

Hi there,

On this seemingly innocent input solid in the form of a OFF file,
CGAL's Nef_polyhedron_3 constructor using Polyhedron_3 crashes. I
believe that the solid represented by the OFF file is valid based on
the specification (you can see the model in geomview or any other OFF
viewer). I caused this crash by modifying the Nef_3.sln's
interface_polyhedron:

Polyhedron P ;
std::ifstream fin( "Triangle - Copy.off" ) ;
fin >> P ;
if ( P.is_closed() && P.is_valid() )
{
Nef_polyhedron_3 N1( poly ) ;
}

Thanks,

Stephen
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://lists-sop.inria.fr/wws/info/cgal-discuss
<Triangle - Copy.off>
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://lists-sop.inria.fr/wws/info/cgal-discuss


--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://lists-sop.inria.fr/wws/info/cgal-discuss
<Triangle - copyOut.off>




Archive powered by MHonArc 2.6.16.

Top of Page