diff --git a/src/OpenMesh/Core/IO/reader/OMReader.cc b/src/OpenMesh/Core/IO/reader/OMReader.cc index 1db6bddd..748a177f 100644 --- a/src/OpenMesh/Core/IO/reader/OMReader.cc +++ b/src/OpenMesh/Core/IO/reader/OMReader.cc @@ -848,6 +848,116 @@ void _OMReader_:: add_generic_property(OMFormat::Chunk::PropertyName& _property_ { add_generic_property_aux(_bi); } + else + { + check_all_vector_types(_property_type, _bi); + } +} + +void _OMReader_::check_all_vector_types(OMFormat::Chunk::PropertyName& _property_type, BaseImporter& _bi) const +{ + check_all_vector_types_aux<1>(_property_type, _bi); + check_all_vector_types_aux<2>(_property_type, _bi); + check_all_vector_types_aux<3>(_property_type, _bi); + check_all_vector_types_aux<4>(_property_type, _bi); + check_all_std_vector_types_aux(_property_type, _bi); +} + +void _OMReader_::check_all_std_vector_types_aux(OMFormat::Chunk::PropertyName& _property_type, BaseImporter& _bi) const +{ + if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(std::vector())) + { + add_generic_property_aux>(_bi); + } +} + +template +void _OMReader_::check_all_vector_types_aux(OMFormat::Chunk::PropertyName& _property_type, BaseImporter& _bi) const +{ + if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } + else if(_property_type == get_string_for_type(OpenMesh::VectorT())) + { + add_generic_property_aux>(_bi); + } } template diff --git a/src/OpenMesh/Core/IO/reader/OMReader.hh b/src/OpenMesh/Core/IO/reader/OMReader.hh index b87a0df3..74de1409 100644 --- a/src/OpenMesh/Core/IO/reader/OMReader.hh +++ b/src/OpenMesh/Core/IO/reader/OMReader.hh @@ -156,9 +156,12 @@ private: //------------------helper private: - void add_generic_property(OMFormat::Chunk::PropertyName& _property_type, BaseImporter& _bi) const; template void add_generic_property_aux(BaseImporter& _bi) const; + + void check_all_vector_types(OMFormat::Chunk::PropertyName& _property_type, BaseImporter& _bi) const; + template void check_all_vector_types_aux(OMFormat::Chunk::PropertyName& _property_type, BaseImporter& _bi) const; + void check_all_std_vector_types_aux(OMFormat::Chunk::PropertyName& _property_type, BaseImporter& _bi) const; };