src/modeleditcontext.h

changeset 76
7c4a63a02632
parent 73
97df974b5ed5
child 86
4bec0525ef1b
--- 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>>;
 }

mercurial