Subject: CGAL users discussion list
List archive
- From:
- To:
- Subject: Re: [cgal-discuss] From Plane_3 to Surface_3
- Date: Tue, 23 Mar 2010 17:17:45 +0200
If you are looking for a function that accepts a polyhedron and a point in the plane and returns the point on the lower envelope of the polyhedron, the vertical projection of which coincides with the input point, then you can implement it using the existing functionality. Otherwise, I don't understand your question.
Quoting "Samer Afach"
<>:
Thank you for your reply.
Actually I'm concerned now before this with the question whether the
envelope algorithm offers the envelope as a function and not surfaces,
because I couldn't find a single function in the corresponding class
that does that. Does it do that? I mean I would like to give it a
polyhedron, and on the other side using minimum and maximum get the
envelopes as functions of x and y, is that possible?
I'd appreciate any efforts so much,
Thank you,
Samer
wrote:
You need to use an exact-predicate and exact-construction kernel. If
you do that and the problem still occurs, please send the entire
(small) program that reproduces the problem.
Quoting
:
Hello,
I eventually have found that the planes are being taken in the right way
by dereferencing the iterator, but the program is failing in giving the
right envelope, and giving an unexplainable exception, I started to
believe that the algorithm has a problem... here's the part of the code,
where P is a closed polyhedron object
for(plane_it = P.planes_begin(); plane_it !=
P.planes_end();++plane_it)
{
planes.push_back(Surface_3(*plane_it));
cout<<*plane_it<<endl;
}
/*
//this is a part where the example inserted the points
planes.push_back (Surface_3(Plane_3(-1, 0, 1, 0)));
planes.push_back (Surface_3(Plane_3(0, 1 , 1, 0)));
planes.push_back (Surface_3(Plane_3(1, 0, 1, 0)));
*/
// Compute and print the minimization diagram.
Envelope_diagram_2 min_diag;
CGAL::lower_envelope_3 (planes.begin(), planes.end(), min_diag);
std::cout << std::endl << "The minimization diagram:" << std::endl;
print_diagram (min_diag);
// Compute and print the maximization diagram.
Envelope_diagram_2 max_diag;
CGAL::upper_envelope_3 (planes.begin(), planes.end(), max_diag);
std::cout << std::endl << "The maximization diagram:" << std::endl;
print_diagram (max_diag);
The polyhedron I'm using has like 30 facets or more, and is closed and
follow the Euler characteristic, and I could view it using Geomview. So
I'm very confused and don't know where the error could be. The exception
differs everytime because I'm every time generating a new polyhedron
that
fulfills the conditions mention. here's the error I'm getting in
Terminal:
terminate called after throwing an instance of
'CGAL::Precondition_exception'
what(): CGAL ERROR: precondition violation!
Expr: cv.has_left()
File: /usr/local/include/CGAL/Arr_linear_traits_2.h
Line: 682
Aborted
and here's another one too:
terminate called after throwing an instance of
'CGAL::Precondition_exception'
what(): CGAL ERROR: precondition violation!
Expr: f == f2
File:
/usr/local/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h
Line: 2639
Explanation: The two halfedges must share the same incident face.
Aborted
This last error I can't understand, what does the envelope thing have to
do with the halfedges? I'm giving the program plane equations and it has
nothing to do with my polyhedron.
Any effort is highly appreciated,
Thank you,
Samer Afach
Hello programmers,
I have a question since I'm not a professional C++ programmer. I'm
trying to apply the 3D envelope example 32.3.3 in
http://www.cgal.org/Manual/last/doc_html/cgal_manual/Envelope_3/Chapter_main.html
but I'm taking the planes from a polyhedron, and I have them in the
type
Plane_3 through the iterator Polyhedron::begin() to end(). The example
takes them in the form Surface_3(Plane_3()), how can I do this
transformation? I tried to use std::transform for this but I failed.
The example provides it using the 4 coefficients of a plane, I can see
these coefficients of my Plane_3 object on a cout stream, but I can't
extract them alone one by one.
Could you please either tell me the correct transformation method for
this or tell me how to extract the coefficients from my Plane_3 object?
Thank you,
Samer Afach
--
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
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://lists-sop.inria.fr/wws/info/cgal-discuss
- [cgal-discuss] From Plane_3 to Surface_3, Samer Afach, 03/19/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, samer, 03/19/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, efif, 03/23/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, Samer Afach, 03/23/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, efif, 03/23/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, Samer Afach, 03/24/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, efif, 03/24/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, Samer Afach, 03/24/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, efif, 03/24/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, Samer Afach, 03/24/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, efif, 03/24/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, Samer Afach, 03/24/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, efif, 03/23/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, Samer Afach, 03/23/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, efif, 03/23/2010
- Re: [cgal-discuss] From Plane_3 to Surface_3, samer, 03/19/2010
Archive powered by MHonArc 2.6.16.