Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] 1D Combinatorial Map - 1-Simplex

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] 1D Combinatorial Map - 1-Simplex


Chronological Thread 
  • From: Peter Klosowski <>
  • To:
  • Subject: Re: [cgal-discuss] 1D Combinatorial Map - 1-Simplex
  • Date: Fri, 31 Aug 2018 16:52:16 +1000
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:wgYuXxL6NV/uxf9JANmcpTZWNBhigK39O0sv0rFitYgRI/jxwZ3uMQTl6Ol3ixeRBMOHs60C07KempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffwdFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLdQgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhygJNzE78G/ZhM9+gr9Frh29vBFw2ZLYbZuPOfZiYq/Qf9UXTndBUMZLUCxBB5uxYZERAOodI+lYtZT2qV4KrRu5HgmsA+3uyiRLhn/3wKY31OchEQXB3AwuEdIPsG/ZrNrwNKgIUOC1yLPEwinEb/NTwDrw7pXDfB4mofGJR71wcMzRxFEpFwzflVqfsojlMC2P2usRtGib6vJsVOyui24kqgFxuiagydotiobTnI4VzUrE9SphzIkpI924UlV7bcSqEJtKry2VK4R2TdkmQ21yvyY60LIGtJimdyYJ0JQq3wDTZ+CDfoSS4R/uVPydLSlliH9qYr6yiBS//E69wePmTMa0ykxFri9dn9nMqH8N0xvT59CCSvRn/0eh3S+D1wHP6u1YOEw0m6XWJpw7zr4/kZoTtkvDHivol0nskKCWcUAk9vCp6+ThfLrmuoeRO5Fohgz6KKgjmcyyDf4mPgQTUGWX4+ux2b/78U38WrpKj/k2kqfDsJDdIMQWvq25AwtS0oYt5Ra+Dyyr0NsdnXYdLVJFfAiLgJTuO1HLOPz4F+uwg0ywkDd3wPDLJqHuAprXIXjHibvuYLd961VAxwou1tBf/IlZCqoBIfL2Qk/+rsbUDh4/MwyuwuboEs9x1o0EWTHHPqjMO6zbtRqE5/kkPvKXTI4Tojf0bfY/tND0inpsoVIBcLPh/p8Qc3enBfdnaxGaZX3ijMYpHmIDvw54R+vv3g7RGQVPbmq/CvpvrgowD5irWN+aF9KdxYeZ1SL+JaV4I2VPC1SCC3DtLtzWVPIFaSbUKchkwGVdCeqRDrQ53BTrjzfUjqJ9J7ONqCIdvJPnktNy4r+LzExgxXlPF82Yllq1YSR0k2cPHWJk2al+pQl81g/G3/QnxfNfEtNX6rVCVQJobZM=

Hi Guillaume,

Many thanks for shedding more light on the subject. It is very helpful to get confirmation that it is impossible to construct the kind of combinatorial map that I was trying to make. It saves me a lot of trial and error!

Have been reading the documentation some more, and I am actually finding generalized maps a bit easier to grasp. There everything behaves as I would expect:

    CGAL::Generalized_map<1> gm1;

    auto dh1 = gm1.create_dart();
    auto dh2 = gm1.create_dart();

    gm1.sew<0>(dh1, dh2);

    gm1.display_characteristics(std::cout); std::cout << std::endl;
    gm1.display_darts(std::cout); std::cout << std::endl;

With the resulting:

#Darts=2, #0-cells=2, #1-cells=1, #ccs=1, orientable=true

I will keep reading about it, and eventually I am sure it will all make sense. Thank you again for your guidance, it is a very interesting subject that I am only beginning to get my head around!

Best,
Peter

On Wed, Aug 29, 2018 at 4:02 PM Guillaume Damiand <> wrote:
Hi Peter;

If your goal is to understand the mean of the different beta, I suggest you to start in 2D, and study the examples given in the CGAL user manual.

Indeed, 1D combinatorial map with boundaries (which is what you try to do) is a very special case.

For this reason, it is not possible to build a 1D cmap with #Darts=2, #0-cells=2, #1-cells=1, #ccs=1 because 1 dart represents one 0-cell and one 1-cell. But this is possible in a 2D combinatorial map, as said in my previous email, by creating 2 darts linked by beta2.

In my point of view, this is not a problem because 1D combinatorial map is a very special case, not really interesting. To represend 1D line segment, you can simply use a polygon representation based on vertices and edges.

Best
Guillaume



Le 29/08/2018 à 06:13, Peter Klosowski a écrit :
Hi,

Just following up on this, since I am feeling quite stuck. Is there anybody who could answer the following question?

1) Should it be possible to construct a 1D combinatorial map with the following characteristics?

#Darts=2, #0-cells=2, #1-cells=1, #ccs=1

Bonus questions:

1a) If yes, what is the correct code to construct such a combinatorial map?
1b) If no, what is the best representation of a 1-simplex (1d line segment)?

Any advice would be greatly appreciated. Thank you in advance!

Cheers,
Peter

On Mon, Aug 27, 2018 at 5:58 PM Peter Klosowski <> wrote:
Hi Guillaume,

Many thanks for your suggestions! However, I am still a bit confused. I tried your code:

    CGAL::Combinatorial_map<1> cm;

    auto dh1 = cm.create_dart();
    auto dh2 = cm.create_dart();

    cm.dart_link_beta<1>(dh1, dh2);

    cm.display_characteristics(std::cout);
    std::cout << std::endl;

But it still gives me:

#Darts=2, #0-cells=2, #1-cells=2, #ccs=1

Am I wrong to expect that an edge would only have a single 1-cell? My expectation comes from the faces of a 1-simplex (https://en.wikipedia.org/wiki/Simplex). Perhaps in combinatorial maps it works differently...


I think the main challenge for me in terms of forming an intuition is to understand the different betas. I can see the value of combinatorial maps to represent cellular structures, and a lot of the concepts and operations make sense. I am just having trouble getting my head around why an edge is made of two darts linked by beta1, as opposed to beta0, for example?


I hope some of that makes sense. Thank you again for the help!


Cheers,
Peter

Hi Peter;


Le 26/08/2018 à 13:41, kloffy a écrit :
> Hi,
>
> I am trying to get my head around combinatorial maps, and I thought I would
> start with the simplest non-trivial example, a 1-simplex (#0-cells=2,
> #1-cells=1).
>
>
> So, first I tried the obvious construction helper:
>
> CGAL::Combinatorial_map<1> cm;
>
> cm.make_edge();
>
> cm.display_characteristics(std::cout);
> std::cout << std::endl;
>
> However, this gives me:
>
> #Darts=2, #0-cells=2, #1-cells=2, #ccs=2
>
> But that's not quite right (#1-cells=2).


A 1D combinatorial map can be seen as a set of 1D curves (possibly opened).

As said in the doc of make_edge (here
https://doc.cgal.org/latest/Combinatorial_map/classGenericMap.html#a6f455fd64b650495392bddecedbd5afe),
this method requires that the dimension of the combinatorial map n is >= 2.

Indeed, an edge is made of two darts linked by beta2 and this requires n>=2.

In a 1D cmap, an edge is made of two darts linked by beta1. If you want
to create such an edge by hand, you must use

cm.dart_link_beta<1>(dh1, dh2);

To have an intuition of what is a combinatorial map, have a look at the
2 first figures in the user manual (here
https://doc.cgal.org/latest/Combinatorial_map/index.html).

Hope this help.

Best
Guillaume

>
>
> So I tried creating the 1-simplex manually:
>
> CGAL::Combinatorial_map<1> cm;
>
> auto dh1 = cm.create_dart();
> auto dh2 = cm.create_dart();
>
> cm.dart_link_beta<1>(dh1, dh2);
>
> cm.display_characteristics(std::cout);
> std::cout << std::endl;
>
> However, this gives me:
>
> #Darts=2, #0-cells=2, #1-cells=2, #ccs=1
>
> But that's still not quite right (#1-cells=2).
>
>
> I tried a bunch of other things, but I never managed to get the intended
> result (#1-cells=1). My intuition for combinatorial maps is still very poor,
> which was the motivation for this exercise. At this point, I feel like I
> must be missing something. Please forgive me if it is something very
> obvious. Still, I would appreciate any hints...
>
> Cheers,
> Peter
>
>
>
> --
> Sent from: http://cgal-discuss.949826.n4.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)
-------------------------------------------------------------------
Tél: +33 (0)4.72.43.14.34                 Fax: +33 (0)4.72.43.15.36
Mail: 
Web: http://liris.cnrs.fr/guillaume.damiand/
===================================================================



Archive powered by MHonArc 2.6.18.

Top of Page