Subject: CGAL users discussion list
List archive
- From: Johannes Ulén <>
- To:
- Subject: Re: [cgal-discuss] Inheriting from Extended_homogeneous
- Date: Thu, 3 May 2012 17:19:17 +0200
Hello again,
From what I gather each time you do intersection with two
nef_polyhedra every vertex and face is reconstructed (even if they
have a common faces neither of the face is copied).
If my understanding is correct this means that you cant really store
any data if you intend to do intersection.
Is there any way around this or should I simply construct an external
datastructure storing the data based on point for vertex and plane
equation for facet?
2012/4/24 Sebastien Loriot (GeometryFactory)
<>:
> Have a look at the attached file where vertex and halffacet have an extra
> data member.
>
> Sebastien.
>
>
> On 04/24/2012 09:14 AM, Johannes Ulén wrote:
>>
>> Thank you for the reply.
>> Is there a way to change the point construct?
>>
>> Let me very breifly explain what I want to do and my problem might
>> become clearer.
>> 1) I want to create a polytope where each vertex starts with boolean
>> value set to false.
>> 2) For each vertex which is false I do some calculations and perform
>> an intersection with a halfspace. The polytope is now reshaped and has
>> more vertices.
>> 3) A certain opertaion will mark a vertex as "true" and I then dont
>> need to bother with it anymore.
>>
>> My programing instict tells me that the easiet way to to do this would
>> be to change point class, but I might be wrong?
>>
>> -- Johannes
>>
>>
>> Den 24 april 2012 08:37 skrev Sebastien Loriot (GeometryFactory)
>> <>:
>>>
>>> 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.
>>>
>>>
>>>
>>>
>>>
>>> --
>>> 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
>
--
- Johannes
- Re: [cgal-discuss] Inheriting from Extended_homogeneous, Johannes Ulén, 05/03/2012
Archive powered by MHonArc 2.6.16.