--- a/src/modeleditcontext.h Sat Mar 07 01:25:37 2020 +0200 +++ b/src/modeleditcontext.h Mon Mar 09 22:12:50 2020 +0200 @@ -26,12 +26,13 @@ { public: template<typename T, typename... Args> - ldraw::id_t append(Args&&... args); + ldraw::Id<T> append(Args&&... args); ldraw::id_t append(std::unique_ptr<ldraw::Object>&& object); template<typename T, typename... Args> - ldraw::id_t insert(int position, Args&&... args); + ldraw::Id<T> insert(int position, Args&&... args); + void remove(int position); void setObjectProperty( - ldraw::Object* object, + ldraw::id_t object, ldraw::Property property, const QVariant &value); void invertObject(ldraw::id_t id); @@ -43,13 +44,13 @@ }; template<typename T, typename... Args> -ldraw::id_t Model::EditContext::append(Args&&... args) +ldraw::Id<T> Model::EditContext::append(Args&&... args) { return this->storedModel.append<T>(args...); } template<typename T, typename... Args> -ldraw::id_t Model::EditContext::insert(int position, Args&&... args) +ldraw::Id<T> Model::EditContext::insert(int position, Args&&... args) { return this->storedModel.insert<T>(position, args...); } @@ -57,16 +58,16 @@ namespace ldraw { /// Determines how quadrilaterals are split into triangles - enum class QuadrilateralSplit + enum class Diagonal { - Split123_134, - Split124_234 + Diagonal_13, + Diagonal_24 }; // Splits the specified quadrilateral into triangles. // If it is not a quadrilateral then no action is performed auto splitQuadrilateral(Model::EditContext& editor, quadrilateralid_t quadrilateral_id, - QuadrilateralSplit splitType = QuadrilateralSplit::Split123_134 + Diagonal splitType = Diagonal::Diagonal_13 ) -> std::optional<std::pair<triangleid_t, triangleid_t>>; }