added custom type to unit test
This commit is contained in:
@@ -4,6 +4,58 @@
|
|||||||
#include <OpenMesh/Core/Utils/PropertyManager.hh>
|
#include <OpenMesh/Core/Utils/PropertyManager.hh>
|
||||||
#include <OpenMesh/Core/Utils/PropertyCreator.hh>
|
#include <OpenMesh/Core/Utils/PropertyCreator.hh>
|
||||||
|
|
||||||
|
|
||||||
|
struct MyData_test{
|
||||||
|
int ival;
|
||||||
|
double dval;
|
||||||
|
bool bval;
|
||||||
|
OpenMesh::Vec4f vec4fval;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace OpenMesh
|
||||||
|
{
|
||||||
|
namespace IO
|
||||||
|
{
|
||||||
|
template <> struct binary<MyData_test>
|
||||||
|
{
|
||||||
|
typedef MyData_test value_type;
|
||||||
|
static const bool is_streamable = true;
|
||||||
|
// return binary size of the value
|
||||||
|
static size_t size_of(void)
|
||||||
|
{
|
||||||
|
return sizeof(int)+sizeof(double)+sizeof(bool)+sizeof(OpenMesh::Vec4f);
|
||||||
|
}
|
||||||
|
static size_t size_of(const value_type&)
|
||||||
|
{
|
||||||
|
return size_of();
|
||||||
|
}
|
||||||
|
static std::string string_for_value_type(void)
|
||||||
|
{
|
||||||
|
return "MyData_test";
|
||||||
|
}
|
||||||
|
static size_t store(std::ostream& _os, const value_type& _v, bool _swap=false)
|
||||||
|
{
|
||||||
|
size_t bytes;
|
||||||
|
bytes = IO::store( _os, _v.ival, _swap );
|
||||||
|
bytes += IO::store( _os, _v.dval, _swap );
|
||||||
|
bytes += IO::store( _os, _v.bval, _swap );
|
||||||
|
bytes += IO::store( _os, _v.vec4fval, _swap );
|
||||||
|
return _os.good() ? bytes : 0;
|
||||||
|
}
|
||||||
|
static size_t restore( std::istream& _is, value_type& _v, bool _swap=false)
|
||||||
|
{
|
||||||
|
size_t bytes;
|
||||||
|
bytes = IO::restore( _is, _v.ival, _swap );
|
||||||
|
bytes += IO::restore( _is, _v.dval, _swap );
|
||||||
|
bytes += IO::restore( _is, _v.bval, _swap );
|
||||||
|
bytes += IO::restore( _is, _v.vec4fval, _swap );
|
||||||
|
return _is.good() ? bytes : 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class OpenMeshReadWriteOM : public OpenMeshBase {
|
class OpenMeshReadWriteOM : public OpenMeshBase {
|
||||||
@@ -1723,8 +1775,6 @@ TEST_F(OpenMeshReadWriteOM, WriteAndLoadDoubles) {
|
|||||||
EXPECT_EQ(mesh.normal(OpenMesh::FaceHandle(0)), mesh2.normal(OpenMesh::FaceHandle(0)));
|
EXPECT_EQ(mesh.normal(OpenMesh::FaceHandle(0)), mesh2.normal(OpenMesh::FaceHandle(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create Property from String
|
* Create Property from String
|
||||||
*/
|
*/
|
||||||
@@ -1750,9 +1800,16 @@ TEST_F(OpenMeshReadWriteOM, PropertyFromString)
|
|||||||
bool has_vec_float_prop = OpenMesh::hasProperty<OpenMesh::VertexHandle, std::vector<float>>(mesh_, vec_float_prop_name.c_str());
|
bool has_vec_float_prop = OpenMesh::hasProperty<OpenMesh::VertexHandle, std::vector<float>>(mesh_, vec_float_prop_name.c_str());
|
||||||
EXPECT_TRUE(has_vec_float_prop);
|
EXPECT_TRUE(has_vec_float_prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
std::string MyData_prop_name = "my MyData prop";
|
||||||
|
OpenMesh::create_property_from_string<OpenMesh::VertexHandle>(mesh_, "MyData_test", MyData_prop_name);
|
||||||
|
bool has_myData_prop = OpenMesh::hasProperty<OpenMesh::VertexHandle, MyData_test>(mesh_, MyData_prop_name.c_str());
|
||||||
|
EXPECT_TRUE(has_myData_prop);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//OM_REGISTER_PROPERTY_TYPE(double, "double")
|
OM_REGISTER_PROPERTY_TYPE(std::vector<float>)
|
||||||
OM_REGISTER_PROPERTY_TYPE(std::vector<float>, "std::vector<float>")
|
OM_REGISTER_PROPERTY_TYPE(MyData_test)
|
||||||
|
|||||||
Reference in New Issue
Block a user