GeomIterator is not exposed for use if the library is built dynamically on windows (#1583)

This commit is contained in:
Carmen Fan
2021-07-27 08:36:44 +01:00
committed by GitHub
parent 3b401ec28f
commit f7765c531b
3 changed files with 13 additions and 13 deletions
@@ -45,7 +45,7 @@
* * * *
* IfcGeom::Iterator::get() * * IfcGeom::Iterator::get() *
* returns a pointer to the current IfcGeom::Element * * returns a pointer to the current IfcGeom::Element *
* * * *
* IfcGeom::Iterator::next() * * IfcGeom::Iterator::next() *
* returns true iff a following entity is available for a successive call to * * returns true iff a following entity is available for a successive call to *
* IfcGeom::Iterator::get() * * IfcGeom::Iterator::get() *
@@ -69,9 +69,9 @@
#endif #endif
namespace IfcGeom { namespace IfcGeom {
template <typename P = double, typename PP = P> template <typename P = double, typename PP = P>
class Iterator { class IFC_GEOM_API Iterator {
private: private:
Iterator(const Iterator&); // N/I Iterator(const Iterator&); // N/I
Iterator& operator=(const Iterator&); // N/I Iterator& operator=(const Iterator&); // N/I
@@ -8,9 +8,9 @@ IteratorFactoryImplementation<P, PP>& iterator_implementations() {
return impl; return impl;
} }
template IteratorFactoryImplementation<float, float>& iterator_implementations<float, float>(); template IFC_GEOM_API IteratorFactoryImplementation<float, float>& iterator_implementations<float, float>();
template IteratorFactoryImplementation<float, double>& iterator_implementations<float, double>(); template IFC_GEOM_API IteratorFactoryImplementation<float, double>& iterator_implementations<float, double>();
template IteratorFactoryImplementation<double, double>& iterator_implementations<double, double>(); template IFC_GEOM_API IteratorFactoryImplementation<double, double>& iterator_implementations<double, double>();
#ifdef HAS_SCHEMA_2x3 #ifdef HAS_SCHEMA_2x3
template <typename P, typename PP> template <typename P, typename PP>
@@ -46,19 +46,19 @@ template <typename P, typename PP>
IteratorFactoryImplementation<P, PP>::IteratorFactoryImplementation() { IteratorFactoryImplementation<P, PP>::IteratorFactoryImplementation() {
#ifdef HAS_SCHEMA_2x3 #ifdef HAS_SCHEMA_2x3
init_IteratorImplementation_Ifc2x3(this); init_IteratorImplementation_Ifc2x3(this);
#endif #endif
#ifdef HAS_SCHEMA_4 #ifdef HAS_SCHEMA_4
init_IteratorImplementation_Ifc4(this); init_IteratorImplementation_Ifc4(this);
#endif #endif
#ifdef HAS_SCHEMA_4x1 #ifdef HAS_SCHEMA_4x1
init_IteratorImplementation_Ifc4x1(this); init_IteratorImplementation_Ifc4x1(this);
#endif #endif
#ifdef HAS_SCHEMA_4x2 #ifdef HAS_SCHEMA_4x2
init_IteratorImplementation_Ifc4x2(this); init_IteratorImplementation_Ifc4x2(this);
#endif #endif
#ifdef HAS_SCHEMA_4x3_rc1 #ifdef HAS_SCHEMA_4x3_rc1
init_IteratorImplementation_Ifc4x3_rc1(this); init_IteratorImplementation_Ifc4x3_rc1(this);
#endif #endif
#ifdef HAS_SCHEMA_4x3_rc2 #ifdef HAS_SCHEMA_4x3_rc2
init_IteratorImplementation_Ifc4x3_rc2(this); init_IteratorImplementation_Ifc4x3_rc2(this);
#endif #endif
@@ -46,7 +46,7 @@ struct get_factory_type<double, double> {
}; };
template <typename P, typename PP> template <typename P, typename PP>
class IteratorFactoryImplementation : public std::map<std::string, typename get_factory_type<P, PP>::type> { class IFC_GEOM_API IteratorFactoryImplementation : public std::map<std::string, typename get_factory_type<P, PP>::type> {
public: public:
IteratorFactoryImplementation(); IteratorFactoryImplementation();
void bind(const std::string& schema_name, typename get_factory_type<P, PP>::type fn); void bind(const std::string& schema_name, typename get_factory_type<P, PP>::type fn);
@@ -78,4 +78,4 @@ namespace IfcGeom {
} }
#endif #endif