2017-12-19 20:24:00 +01:00
|
|
|
#include "IfcGeomIteratorImplementation.h"
|
2017-12-20 17:09:42 +01:00
|
|
|
#include "../ifcgeom_schema_agnostic/IteratorImplementation.h"
|
2017-12-19 20:24:00 +01:00
|
|
|
|
|
|
|
|
namespace IfcGeom {
|
|
|
|
|
template class MAKE_TYPE_NAME(IteratorImplementation_)<float>;
|
|
|
|
|
template class MAKE_TYPE_NAME(IteratorImplementation_)<double>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define MAKE_INIT_FN__(a, b) init_ ## a ## b
|
|
|
|
|
#define MAKE_INIT_FN_(a, b) MAKE_INIT_FN__(a, b)
|
|
|
|
|
#define MAKE_INIT_FN(t) MAKE_INIT_FN_(t, IfcSchema)
|
|
|
|
|
|
2017-12-28 16:33:07 +01:00
|
|
|
namespace {
|
|
|
|
|
template <typename P>
|
|
|
|
|
struct factory_t {
|
2017-12-21 14:14:04 +01:00
|
|
|
IfcGeom::IteratorImplementation<P>* operator()(const IfcGeom::IteratorSettings& settings, IfcParse::IfcFile* file) const {
|
|
|
|
|
return new IfcGeom::MAKE_TYPE_NAME(IteratorImplementation_)<P>(settings, file);
|
2017-12-19 20:24:00 +01:00
|
|
|
}
|
2017-12-28 16:33:07 +01:00
|
|
|
};
|
|
|
|
|
}
|
2017-12-19 20:24:00 +01:00
|
|
|
|
2017-12-28 16:33:07 +01:00
|
|
|
template <typename P>
|
|
|
|
|
void MAKE_INIT_FN(IteratorImplementation_)(IteratorFactoryImplementation<P>* mapping) {
|
|
|
|
|
static const std::string schema_name = STRINGIFY(IfcSchema);
|
|
|
|
|
factory_t<P> factory;
|
2017-12-21 14:14:04 +01:00
|
|
|
mapping->bind(schema_name, factory);
|
|
|
|
|
}
|
2017-12-19 20:24:00 +01:00
|
|
|
|
2017-12-21 14:14:04 +01:00
|
|
|
template void MAKE_INIT_FN(IteratorImplementation_)<float>(IteratorFactoryImplementation<float>*);
|
2017-12-22 13:51:11 +01:00
|
|
|
template void MAKE_INIT_FN(IteratorImplementation_)<double>(IteratorFactoryImplementation<double>*);
|