mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 22:33:33 +00:00
Add identity int to taxonomy item
This commit is contained in:
@@ -408,3 +408,5 @@ const std::string& ifcopenshell::geometry::taxonomy::kind_to_string(kinds k) {
|
|||||||
|
|
||||||
return values[k];
|
return values[k];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::atomic_uint32_t item::counter_(0);
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ enum kinds { MATRIX4, POINT3, DIRECTION3, LINE, CIRCLE, ELLIPSE, BSPLINE_CURVE,
|
|||||||
const std::string& kind_to_string(kinds k);
|
const std::string& kind_to_string(kinds k);
|
||||||
|
|
||||||
struct item {
|
struct item {
|
||||||
|
private:
|
||||||
|
uint32_t identity_;
|
||||||
|
static std::atomic_uint32_t counter_;
|
||||||
|
|
||||||
|
public:
|
||||||
const IfcUtil::IfcBaseInterface* instance;
|
const IfcUtil::IfcBaseInterface* instance;
|
||||||
|
|
||||||
boost::optional<bool> orientation;
|
boost::optional<bool> orientation;
|
||||||
@@ -40,9 +45,11 @@ struct item {
|
|||||||
virtual void print(std::ostream&, int indent=0) const = 0;
|
virtual void print(std::ostream&, int indent=0) const = 0;
|
||||||
virtual void reverse() { throw taxonomy::topology_error(); }
|
virtual void reverse() { throw taxonomy::topology_error(); }
|
||||||
|
|
||||||
item(const IfcUtil::IfcBaseInterface* instance = nullptr) : instance(instance) {}
|
item(const IfcUtil::IfcBaseInterface* instance = nullptr) : identity_(counter_++), instance(instance) {}
|
||||||
|
|
||||||
virtual ~item() {}
|
virtual ~item() {}
|
||||||
|
|
||||||
|
uint32_t identity() const { return identity_; }
|
||||||
};
|
};
|
||||||
|
|
||||||
bool less(const item*, const item*);
|
bool less(const item*, const item*);
|
||||||
|
|||||||
Reference in New Issue
Block a user