File geometry_collection_commit.h
File List > geometry > geometry_collection_commit.h
Go to the documentation of this file
#pragma once
#include <uipc/geometry/geometry_collection.h>
#include <uipc/geometry/geometry_commit.h>
namespace uipc::geometry
{
class UIPC_CORE_API GeometryCollectionCommit
{
    friend class GeometryFactory;
    friend UIPC_CORE_API GeometryCollectionCommit operator-(const GeometryCollection& dst,
                                                            const GeometryCollection& src);
    friend UIPC_CORE_API GeometryCollection& operator+=(GeometryCollection& dst,
                                                        const GeometryCollectionCommit& inc);
  public:
    GeometryCollectionCommit() = default;
    GeometryCollectionCommit(const GeometryCollectionCommit&);
    GeometryCollectionCommit& operator=(const GeometryCollectionCommit&) = delete;
    GeometryCollectionCommit(const GeometryCollection& dst, const GeometryCollection& src);
  private:
    IndexT m_next_id = 0;
    unordered_map<IndexT, S<GeometryCommit>> m_geometries;
};
UIPC_CORE_API GeometryCollectionCommit operator-(const GeometryCollection& dst,
                                                 const GeometryCollection& src);
UIPC_CORE_API GeometryCollection&      operator+=(GeometryCollection& dst,
                                             const GeometryCollectionCommit& inc);
}  // namespace uipc::geometry