Hi all,

On 02/09/2013 01:38 PM, Barend Gehrels wrote:
Hi Mihis,

On 8-2-2013 8:57, Олег Михалёв wrote:
OK, it seems that I have found answer for this question. In linestring_concept.hpp. it's mentioned that besides
specialization of traits::tag and and lifting of Boost.Range Random Access concepts custom linestring class
also must "implement std::back_insert_iterator either by implementing push_back or by specializing
std::back_insert_iterator". The same if for the Ring Concept. I really can't understand how to "specialize
std::back_insert_iterator" but it seems to me that this phrase means the necessity of specialization of
structs resize, push_back and clear from mutable_range.hpp, which are used by append and assign algorithms.
I have not tested this solution yet but it seems to be right taking in account that Boost.Polygon data structures
are adapted to Ring and Polygon Concepts in the same way.

Sorry for my late answer on this. Indeed the "mutable range" should be used / specialized for these operations. So the linestring itself can stay as it is.

In another mail you referred to the solution about legacy classes, that was in cooperation with Mats who did the basics this adaption, I contributed only small tests and additions there.


I'm sorry for the late answer -- this email slipped through, unfortunately. As Barend said, I am working on adapting a legacy data structure, and I am also documenting the procedure, and hoping to contribute this to the official Boost.Geometry documentation. :)

The adaption is currently only non-mutating, but once the non-mutating adaption process is documented and the documentation is merged, I hope to extend to mutating algorithms as well.

Regards,
Mats

Regards, Barend




_______________________________________________
Geometry mailing list
Geometry@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/geometry