
Geometry : 
Subject: Re: [geometry] Concept for CalculationType
From: Barend Gehrels (barend_at_[hidden])
Date: 20140527 15:55:55
Hi Andrew,
Andrew Hundt wrote On 2752014 21:42:
> I'm trying to learn how to implement simple algorithms generically.
>
> Is there a concept for CalculationType? It is used in
> matrix_transformers.hpp, but I couldn't find a concept definition.
There is indeed no concept defined, maybe we should do that indeed.
CalculationType should be a numeric type. Can be a type provided by
default (float,double,long double, or it can sometimes be an integer
type) or a high precision type (gmp,ttmath). We should add that not all
algorithms are yet tested with these types  most are tested by ttmath,
but not on the Regression Matrix (and on my personal system it is a
while ago).
>
> I'm trying to create a 2d rotate_translate_transformer which rotates a
> geometry in place then translates it to a specified location, so I'm
> trying to modify the implementations in matrix_transformers.hpp.
>
> I'm considering having it take a point and an angle rather than
> x,y,angle. For comparison, the translate_transformer takes an x and y.
> Does this seem advisable?
I see  this is a bit arbitrary. A point (x,y) is usually a point, while
translate is over a vector, therefore x(diff),y(diff). But indeed, of
course, it can also be represented as a point.
>
> Would it be best to make the point a separate template parameter from
> CalculationType?
>
> If I didn't use a point, should there be one CalculationType template
> parameter for x,y,angle, or should x,y be one type and angle an
> additional type?
Usually the angle is of a different type than x,y. Because angle is in
radians, always a FP type, and x,y might be (but not necessarily) an
integer type. So if it is a general implemenation, and apparently it is,
I would advice that.
Regards, Barend
Geometry list run by mateusz at loskot.net