Subject: [ggl] Deriving from model::point<> and using distance(); seeing NOT_IMPLEMENTED_FOR_THIS_POINT_TYPE,
From: Eric Fowler (eric.fowler)
Date: 2011-07-26 06:24:14
It's beginning to sink in. My problem is that I have a point type that gets
the type of it's x, y coordinate through a template, e.g.
T x, y;
If I declare a point that is not templatized, e.g.
double x, y;
I can easily register and use it with boost/geometry.
But can I be sure that I can use different coordinate systems? I need to be
able to switch between cartesian and geographic coordinates with ease. I can
live with just using double-precision floats.
Mind, I am just looking for the easy way, but I want to understand what I am
On Sun, Jul 24, 2011 at 2:30 PM, Barend Gehrels <barend_at_[hidden]> wrote:
> Hi Eric,
> On 24-7-2011 22:43, Eric Fowler wrote:
>> I wish to derive a class from a point<> type that can use either cartesian
>> or spherical or geographic coordinates.
>> When I pass a derived point type to the distance() function, I am
>> horrified to get a long error that flags my type.
>> What am I doing wrong? Do I need a traits class? What's going on here? The
>> code and error follow. I am using VC++ 8.0.
> Yes, you need to specialize traits classes for your point type. Template
> specializations don't accept derived classes.
> For this, the BOOST_GEOMETRY_REGISTER macro's are convenient: they can
> define the necessary traits for you in one line. That is, in general, easier
> than do it by hand.
> But... in your case, you create a generic point yourself, so you will have
> to implement the traits specializations...
> Regards, Barend
> ggl mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
Geometry list run by mateusz at loskot.net