Hi Tanaka,
(the policy of this list is to avoid top-postings)
On 20-8-2013 16:30, Tanaka Simon wrote:
- assume we have an intersection
point C of a polygon with a segment/linestring. C lies on the
segment defined by the pair of points A and B, which are stored
in the polygon. is it possible to return A and B, not only C?
Yes, internally the get_turns method has a lot more information,
a.o. a segment_identifier which indicate exactly the segment on the
polygon (so indirectly also A/B). It is a method in namespace
detail::, so not documented and it might ever change, but basically
it is usable.
But intersection does not return this information indeed.
- is it possible to have a polygon
made of segment, something like
boost::geometry::model::polygon< segment > ?
No
questions not directly related to the thread's question, but
related to the attached code (should i start a new topic?):
- i use a custom point class myPoint. how to register the getter
and setter template methods (e.g. get<0>)?
Specify just get<0> indeed. Works for me (using clang).
If this does not work, for some reason or compiler, you can use
boost::geometry::traits to register your point-type. You are not
using a macro then, writing some more lines code, but you get much
more flexibility then. See e.g. example
c05_custom_point_pointer_example.cpp where this is done.
- can i register
std::shared_ptr<myPoint> instead of myPoint?
That is (basically) not necessary, because all access to points is
equivalent between values, references and pointers. However, that is
enabled for pointers, but not (yet) for shared points. I did not try
it, but probably won't work. We use boost::is_pointer to check if it
is a pointer - that returns probably false for shared_ptr (though
I'm not sure). It should be possible to enable this for
Boost.Geometry too in the future.
- why is
boost::geometry::model::polygon< std::shared_ptr<point>
> not working?
Because of the same reason. You can use
polygon<point_pointer>, see the same c05 exampe.
Regards, Barend