Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Re: Bug report: Linear Cell Complex and Cell Attributes

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Re: Bug report: Linear Cell Complex and Cell Attributes


Chronological Thread 
  • From: Guillaume Damiand <>
  • To:
  • Subject: Re: [cgal-discuss] Re: Bug report: Linear Cell Complex and Cell Attributes
  • Date: Wed, 24 Apr 2013 22:03:00 +0200

Le 24/04/2013 21:47, Guillaume Damiand a écrit :
Le 24/04/2013 21:38, jdumas a écrit :
Well, in my case *all* my cells have an associated attribute, so I don't
really see how using Tag_true would allow me to optimize anything.

Because when dart support is enabled for i-attributes; you can iterate through i-attributes instead of iterating through darts which is more efficient to process i-cells.

Needless
to say, right now I'm working with Tag_true enabled until you find the time
to look into it.

I found the problem; but the trivial solution (add a void* pointer in attributes when dart support is disabled) is not satisfying. I am searching for a better patch...

I got it. Try the following patch and tell me.
Guillaume



Regards
Guillaume



Regards,
Jérémie.



--
View this message in context: http://cgal-discuss.949826.n4.nabble.com/Bug-report-Linear-Cell-Complex-and-Cell-Attributes-tp4657236p4657277.html
Sent from the cgal-discuss mailing list archive at Nabble.com.





--
===================================================================
Guillaume DAMIAND

CNRS, LIRIS UMR 5205
Université Claude Bernard
Bâtiment Nautibus (710)
43 Boulevard du 11 Novembre 1918
69622 Villeurbanne Cedex (France)
-------------------------------------------------------------------
Phone: +33 (0)4.72.43.26.62 Fax: +33 (0)4.72.43.15.36
Mail:

===================================================================

diff --git a/Combinatorial_map/include/CGAL/Cell_attribute.h b/Combinatorial_map/include/CGAL/Cell_attribute.h
index 7cd6c2e..153c4f6 100644
--- a/Combinatorial_map/include/CGAL/Cell_attribute.h
+++ b/Combinatorial_map/include/CGAL/Cell_attribute.h
@@ -131,19 +131,19 @@ namespace CGAL {
 
     /// Increment the reference counting.
     void inc_nb_refs()
-    { ++mrefcounting; }
+    { mrefcounting+=4; } // 4 because this is the 3rd bit (ie 1<<2)
 
     /// Decrement the reference counting.
     void dec_nb_refs()
     {
-      CGAL_assertion( mrefcounting>0 );
-      --mrefcounting; 
+      CGAL_assertion( mrefcounting>3 );
+      mrefcounting-=4; // 4 because this is the 3rd bit (ie 1<<2)
     }
 
   public:
     /// Get the reference counting.
     unsigned int get_nb_refs() const
-    { return mrefcounting; }
+    { return (mrefcounting>>2); } // >>2 to ignore the 2 least significant bits
 
     void * for_compact_container() const 
     { return vp; }



Archive powered by MHonArc 2.6.18.

Top of Page