Impossible de rétrécir un vecteur? (ex: Vec3 -> Vec2)
Closed this issue · 2 comments
CanasSimon commented
J'ai voulu ajouter des constructeurs pour convertir les différents vecteur entre eux mais pour une certaine raison j'arrive à les agrandir mais pas à les rétrécir (Vec2 -> Vec3, Vec3 -/> Vec2)
Voici mon constructeur pour Vec2 -> Vec3
template<typename U>
explicit Vec3(const Vec2<U>& vec2)
: x(static_cast<T>(vec2.x)),
y(static_cast<T>(vec2.y)),
z(static_cast<T>(0))
{
}
Et pour Vec3 -> Vec2
template<typename U>
explicit Vec2(const Vec3<U>& vec3)
: x(static_cast<T>(vec3.x)),
y(static_cast<T>(vec3.y))
{
}
L'erreur
/home/frousties/Repos/NekoEngine/test/test_vector.cpp:12:17: error: no viable conversion from 'neko::Vec2f' (aka 'Vec2<float>') to 'neko::Vec3f' (aka 'Vec3<float>')
neko::Vec3f vec2 = vec;
^ ~~~
/home/frousties/Repos/NekoEngine/core/include/mathematics/vector.h:305:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'neko::Vec2f' (aka 'Vec2<float>') to 'const neko::Vec3<float> &' for 1st argument
class Vec3
^
/home/frousties/Repos/NekoEngine/core/include/mathematics/vector.h:305:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'neko::Vec2f' (aka 'Vec2<float>') to 'neko::Vec3<float> &&' for 1st argument
1 error generated.
make[3]: *** [test/CMakeFiles/Neko_TEST.dir/build.make:154: test/CMakeFiles/Neko_TEST.dir/test_vector.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/Makefile2:552: test/CMakeFiles/Neko_TEST.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:559: test/CMakeFiles/Neko_TEST.dir/rule] Error 2
make: *** [Makefile:305: Neko_TEST] Error 2
EliasFarhan commented
Devines ce que veut dire explicit ;)
C'est que tu peux pas faire une conversion implicite ;)
Ce que t'essaies de faire ;)
En gros, il faut que t'écrives: Vec3f v3 = Vec3f(v2); //v2 est un Vec2f
CanasSimon commented
Facepalm