Files
IfcOpenShell/src/ifcgeom/mapping/bind_convert_impl.i
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

35 lines
1.1 KiB
OpenEdge ABL
Raw Normal View History

2023-03-21 20:15:01 +01:00
#ifdef BIND
#undef BIND
#endif
#define BIND(T) \
if (inst->as<IfcSchema::T>()) { \
try { \
taxonomy::ptr item = map_impl(inst->as<IfcSchema::T>()); \
2023-03-21 20:15:01 +01:00
if (item != nullptr) { \
item->instance = inst; \
try { \
if (inst->as<IfcSchema::IfcRepresentationItem>() && !inst->as<IfcSchema::IfcStyledItem>() && \
/* @todo */ \
(item->kind() == taxonomy::SHELL || item->kind() == taxonomy::COLLECTION || item->kind() == taxonomy::EXTRUSION) \
) { \
auto style = find_style(inst->as<IfcSchema::IfcRepresentationItem>()); \
if (style) { \
taxonomy::cast<taxonomy::geom_item>(item)->surface_style = taxonomy::cast<taxonomy::style>(map(style)); \
2023-03-21 20:15:01 +01:00
} \
} \
} catch (const std::exception& e) { \
Logger::Message(Logger::LOG_ERROR, std::string(e.what()) + "\nFailed to convert:", inst); \
} \
} else {\
Logger::Message(Logger::LOG_ERROR,"Failed to convert:", inst);\
} \
return item; \
} catch (const std::exception& e) { \
Logger::Message(Logger::LOG_ERROR, std::string(e.what()) + "\nFailed to convert:", inst); \
} \
return nullptr; \
}
#include "mapping.i"