Subject: CGAL users discussion list
List archive
- From: "Sebastien Loriot (GeometryFactory)" <>
- To:
- Subject: Re: [cgal-discuss] Inheriting from Extended_homogeneous
- Date: Wed, 25 Apr 2012 08:45:25 +0200
I am not sure to understand your question, the code you posted was
correct and was compiling, isn't?
Sebastien.
On 04/24/2012 12:54 PM, Johannes Ulen wrote:
Thank you!
With minor adjustment the code you sent did exactly what I needed.
For my curiosity (and futher people ending up here when they search for
my problem) I still do not understand how to inherit from
Extended_homogeneous kernel and why the syntax would be different than
inheriting from the homogeneous kernel.
- Johannes
On Tue, 2012-04-24 at 08:37 +0200, Sebastien Loriot (GeometryFactory)
wrote:
On 04/23/2012 02:55 PM,
wrote:
I'm trying the add one property to the point class.
By help from StackOverflow I was directed to Manual Chapter 11.5 Extensible
Kernel using this I wrote the code below.
The code will not compile and I get the error:
‘typename CGAL::Extended_homogeneous::Base’ names
'CGAL::Extended_homogeneous::Base’, which is not a class template|
== CODE ==
#include<CGAL/Extended_homogeneous.h>
template< typename K_, typename K_Base>
class My_base : public K_Base::template Base<K_>::Type
{
typedef typename K_Base::template Base<K_>::Type OldK;
public:
typedef K_ Kernel;
template< typename Kernel2>
struct Base { typedef My_base<Kernel2, K_Base> Type; };
};
template< typename RT_>
struct MyKernel : public CGAL::Type_equality_wrapper<My_base<MyKernel<RT_>,
CGAL::Homogeneous<RT_> >, MyKernel<RT_> >
{};
#include<CGAL/Nef_polyhedron_3.h>
typedef MyKernel<CGAL::Gmpz> Kernel;
typedef CGAL::Nef_polyhedron_3<Kernel> Nef_Polyhedron;
typedef Nef_Polyhedron::Plane_3 Plane;
int main()
{
Nef_Polyhedron half_space(Plane(1,1,1,1), Nef_Polyhedron::EXCLUDED);
return 0;
}
====
If the inhertiance is changed to "public K_Base::Base::template B<K_>::Type"
it
will compile but Then I miss the propeties from Extentensions I guess? Because
I get the error "Constructor not available for this kernel" when I run the
program.
The point constructors are not changed by this mechanism. This means
that only those documented are available. If you want to initialize your
extra data, you need to first create an object of type My_point and then
init a point of type MyKernel::Point_3 with it.
The class in the kernel is a kind of interface while My_point is the
representation.
Sebastien.
- [cgal-discuss] Inheriting from Extended_homogeneous, ulen, 04/23/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Sebastien Loriot (GeometryFactory), 04/24/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Johannes Ulén, 04/24/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Sebastien Loriot (GeometryFactory), 04/24/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Johannes Ulen, 04/24/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Sebastien Loriot (GeometryFactory), 04/25/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Johannes Ulen, 04/25/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Sebastien Loriot (GeometryFactory), 04/25/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Johannes Ulen, 04/25/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Sebastien Loriot (GeometryFactory), 04/25/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Johannes Ulén, 04/24/2012
- <Possible follow-up(s)>
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Tomislav Maric, 04/24/2012
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Sebastien Loriot (GeometryFactory), 04/24/2012
Archive powered by MHonArc 2.6.16.