File attribute_collection_commit.h
File List > geometry > attribute_collection_commit.h
Go to the documentation of this file
#pragma once
#include <uipc/geometry/attribute_collection.h>
namespace uipc::geometry
{
class UIPC_CORE_API AttributeCollectionCommit
{
friend class GeometryAtlasCommit;
friend class GeometryCommit;
friend class AttributeCollection;
friend class AttributeCollectionFactory;
friend class GeometryFactory;
friend UIPC_CORE_API AttributeCollectionCommit operator-(const AttributeCollection& dst,
const AttributeCollection& src);
friend UIPC_CORE_API AttributeCollection& operator+=(AttributeCollection& dst,
const AttributeCollectionCommit& inc);
public:
AttributeCollectionCommit() = default;
explicit AttributeCollectionCommit(const AttributeCollection& dst);
AttributeCollectionCommit(const AttributeCollectionCommit& other) = default;
AttributeCollectionCommit& operator=(const AttributeCollectionCommit& other) = delete;
const AttributeCollection& attribute_collection() const noexcept
{
return m_attribute_collection;
}
span<const std::string> removed_names() const noexcept
{
return span<const std::string>(m_removed_names);
}
private:
AttributeCollectionCommit(const AttributeCollection& dst, const AttributeCollection& src);
AttributeCollection m_attribute_collection;
vector<std::string> m_removed_names;
};
UIPC_CORE_API AttributeCollectionCommit operator-(const AttributeCollection& dst,
const AttributeCollection& src);
UIPC_CORE_API AttributeCollection& operator+=(AttributeCollection& dst,
const AttributeCollectionCommit& inc);
} // namespace uipc::geometry