- fix warning with vector_cast

- add compile error, if vector_cast cannot be performed
- adds some color cast specializations
- add simple vector_cast unittest

closes #2409

git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@1249 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
Matthias Möller
2015-03-24 10:36:41 +00:00
parent 823b0486d5
commit 12b7069cf7
3 changed files with 62 additions and 42 deletions

View File

@@ -65,6 +65,24 @@ TEST_F(OpenMeshVectorTest, AbsTest) {
}
/* Compute surface area via cross product
*/
TEST_F(OpenMeshVectorTest, VectorCasting) {
OpenMesh::Vec3d vecd(1.0,2.0,3.0);
OpenMesh::Vec3f vecf = OpenMesh::vector_cast<OpenMesh::Vec3f>(vecd);
EXPECT_EQ(1.f, vecf[0]) << "vector type cast failed on component 0";
EXPECT_EQ(2.f, vecf[1]) << "vector type cast failed on component 1";
EXPECT_EQ(3.f, vecf[2]) << "vector type cast failed on component 2";
OpenMesh::Vec4d vecd4(40.0,30.0,20.0,10.0);
vecd = OpenMesh::vector_cast<OpenMesh::Vec3d>(vecd4);
EXPECT_EQ(40.0, vecd[0]) << "vector dimension cast failed on component 0";
EXPECT_EQ(30.0, vecd[1]) << "vector dimension cast failed on component 1";
EXPECT_EQ(20.0, vecd[2]) << "vector dimension cast failed on component 2";
}
}