$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] [interest] Is there interest in planar angle library ?
From: Matus Chochlik (chochlik_at_[hidden])
Date: 2014-06-17 16:12:51
Hi,
I would like to gauge interest in adding a very lightweight library
implementing a class for handling planar angles and related operations to
Boost.
The library sources and several examples of usage can be found here:
https://github.com/matus-chochlik/angle
It does not conform to Boost conventions yet, nor is there any
documentation, but the library is very simple to use:
There is a template angles::angle<T> representing planar angles, using type
T to store the angle value in radians. Conversions for 10 common angle
units are included and new units can easily be added. The library also
implements construction functions and user-defined literal operators
allowing to specify angles in various units and also implements overloads
of functions like sin, cos, etc.
The only external header that this library includes is standard `cmath`.
Here follow some examples of usage:
using namespace angles;
for(angle<double> a; a < 4_turns; a += 45_deg)
{
std::cout << a.to<unit::degree>() << std::endl;
}
for(angle<double> a=-quarters(2); a <= quarters(2); a += gradians(50))
{
std::cout << a.to<unit::turn>() << std::endl;
}
for(angle<double> a; a < turns(1); a += degrees(15))
{
std::cout << sin(a) << std::endl;
}
assert(turns(1) == quarters(4));
assert(degrees(90) == gradians(100));
assert(degrees(45) == quarters(0.5));
assert(degrees(2) == minutes(120));
assert(minutes(4) == seconds(240));
assert(degrees(1) == seconds(3600));
assert(turns(0.5) == gradians(200));
assert(pi(1) == quarters(2));
assert( 3_o_clock == 90_deg);
assert( 6_o_clock == 200_gon);
assert( 7_o_clock == 210_deg);
assert( 9_o_clock == 300_gon);
assert(11_o_clock == 1_turns - 30_deg);
assert(12_o_clock == 2_pi);
Please let me know if you are interested in the 'Boostification' of this
library or if you have any ideas on how it could be improved.
Best regards,
Matus