Commit Graph

97 Commits

Author SHA1 Message Date
King_DuckZ aaa8e75dc1 Implement 2D and 3D cross product.
2D cross product is defined as equivalent to:
res = cross(a.xy0(), b.xy0()).z()
2017-02-01 01:51:52 +00:00
King_DuckZ fc7b666429 Add optional methods like yx(), x1(), x0() etc...
You need to define VWR_EXTRA_ACCESSORS if you want those
to be available in your build.
2017-01-27 19:24:27 +00:00
King_DuckZ 69e342460c Implement binary assignment operators for scalar types. 2017-01-27 19:07:15 +00:00
King_DuckZ 48d7b5ddec Replace implementation of binary op assignments.
Use variadic templates instead of for loops. Add unit test.
2017-01-27 19:02:52 +00:00
King_DuckZ bbaabb695d Implement operators with scalar types. 2017-01-27 18:43:21 +00:00
King_DuckZ 780e6647b2 Implement unary operator- 2017-01-26 17:28:17 +00:00
King_DuckZ 2f4d319675 Implement binary operators.
This also has the benefical side effect of ridding me of that
stupid VWR_STATIC_CAST_RESULTS macro.
2016-11-08 02:24:21 +01:00
King_DuckZ 6bf3278631 Implement comparison operators correctly.
With tests.
2016-11-08 01:51:17 +01:00
King_DuckZ 00470290fe Change hardcoded std::size_t into size_type so it can be customised.
Define VWR_SIZE_TYPE to the type you want to use as the template
index type. It defaults to std::size_t so if you don't do anything
you still get the old behaviour.

Also drop the std::index_range in vector_cast in favour of the custom
bt::number_range, which is already used elsewhere in the code.
2016-11-02 03:53:22 +01:00
King_DuckZ c3844dc246 Update sequence_bt from duckhandy. 2016-11-02 03:37:01 +01:00
King_DuckZ 8af1a36baa Warning fix on clang 2016-11-02 02:45:16 +01:00
King_DuckZ d9ac0531b3 Fix warning about unused typedef. 2016-11-02 01:31:48 +01:00
King_DuckZ 0c78771c3e Try to get gcc-5 (please travis, just work!) 2016-11-02 01:19:48 +01:00
King_DuckZ 891fa25675 Add vector_cast implementation and the unit test for it. 2016-11-02 01:19:48 +01:00
King_DuckZ dc1b3e7b76 Use ctest in cmake. 2016-11-02 01:19:48 +01:00
King_DuckZ f51c739a48 Add a macro to control if the result of binary operators should be casted.
It allows to suppress warnings when combining vectors of a type that
gets promoted to int after the binary operator is applied, for example.
2016-11-02 01:14:23 +01:00
King_DuckZ 6ab4d586eb Disable implicit conversions by default and update readme.
Implicit conversions are still needed for the old unit test to build.
2016-11-02 01:12:00 +01:00
King_DuckZ 2725d4f63d Update copyright to 2016
I think vectorops was missing the copyright header /on purpose/ but
I've added it there as well now.
2016-11-01 22:58:23 +01:00
King_DuckZ 736e83893a Add test for wrapped vector using get_at() which was not working previously. 2016-10-25 01:18:44 +02:00
King_DuckZ 84203ee817 Fix broken build when using the get_at() way wrapper. 2016-10-25 01:07:28 +02:00
King_DuckZ 41eed2c8ba Warning fix 2016-09-05 21:30:17 +02:00
King_DuckZ dbfed8c124 Add notes about example.cpp and about performance. 2015-07-25 22:12:44 +02:00
King_DuckZ f682168382 Remove Build status section. 2015-07-25 21:58:56 +02:00
King_DuckZ 7affd7960f Allow casting to vectors of lower dimensions. 2015-07-25 21:18:45 +02:00
King_DuckZ fe03f45f76 Add an example.cpp unit test to demonstrate usage.
Shows what it looks like when you mix vectors of different
type vs using vectorwrapper.
2015-07-25 20:55:52 +02:00
King_DuckZ 958de67849 Make scalar_type and vector_type public in Vec.
- Add a dot product implementation.
- Test code to demonstrate dot product.
- Test code to demonstrate wrapping structs with unordered properties.
2015-07-25 19:41:16 +02:00
King_DuckZ 40ca5cd388 Clarify cast conditions. 2015-07-25 19:20:20 +02:00
King_DuckZ 1567feaa81 Fix casting.
Casting conditions got clarified.
User is now able to say he doesn't care if casting a wrapper on a
type larger than just the coordinates will stomp on extra data
from the casted type.
2015-07-25 19:12:21 +02:00
King_DuckZ e64db02ac3 Fix cast<> method.
Add vector_type to is_vec, because vector_type is private
and it couldn't be used in cast. Besides if not is_vec, you can't
expect to find vector_type. The conditional in the cast return type
works like if V2 is not a Vec, you can just use V as the vector_type,
anyways the first is_vec is false so the whole condition is going to
be false anyways, even if it results that V == V.
2015-07-25 01:52:27 +02:00
King_DuckZ 59d8eb43e7 Short version of the motivation in the readme. 2015-07-25 00:56:14 +02:00
King_DuckZ 30371adba9 Add Vec1Promotion. 2015-07-25 00:55:57 +02:00
King_DuckZ d3b63aab8c Fix some build errors in certain cases.
- wrapped vector is not guaranteed to have constructors
- vector_type is not necessary
- has typedef and has enum were not always working
2015-07-25 00:55:03 +02:00
King_DuckZ 9b107d6e82 Fix in travis.yml. 2015-07-24 22:35:54 +02:00
King_DuckZ 638f1bef55 Fix in travis.yml. 2015-07-24 22:28:50 +02:00
King_DuckZ cd4d5b9bf5 Try to move to the new Travis container based infrastructure. 2015-07-24 22:21:43 +02:00
King_DuckZ 39fecaf6e0 Add lines for clang.
See:
http://stackoverflow.com/questions/22111549/travis-ci-with-clang-3-4-and-c11
2015-07-24 01:17:29 +02:00
King_DuckZ bc24424e8f Fix travis.yml 2015-07-23 23:35:02 +02:00
King_DuckZ f99739772b Fix travis.yml 2015-07-23 23:28:19 +02:00
King_DuckZ b5df8e3f40 Fix travis.yml 2015-07-23 23:25:28 +02:00
King_DuckZ feb98a32f3 Remove cd command 2015-07-23 23:23:43 +02:00
King_DuckZ 198345113b Travis file for travis-ci.com 2015-07-23 23:20:59 +02:00
King_DuckZ 7547450913 Fix build errors and typos in the documentation. 2015-07-23 23:10:55 +02:00
King_DuckZ b7c7d77dac New test program based on gtest. 2015-07-23 23:10:03 +02:00
King_DuckZ 5e6c537a2d Fix in HasEnum that was always returning true. 2015-07-23 23:09:35 +02:00
King_DuckZ 987cdd66ef Import gtest 1.7.0 2015-07-23 23:08:41 +02:00
King_DuckZ 08050e42da First import 2015-07-23 01:37:35 +02:00
King_DuckZ 4c15aadf4e Initial commit 2015-07-23 01:33:36 +02:00