Copy and paste -> Clipboard refactored to accept more than one object

This commit is contained in:
Enrico Turri 2019-04-10 14:03:40 +02:00
parent a80978f84a
commit 7a1fab09d4
3 changed files with 38 additions and 61 deletions

View file

@ -154,26 +154,17 @@ private:
class Clipboard
{
Model m_model;
ModelObject* m_object;
Selection::EMode m_mode;
Selection::EType m_type;
public:
Clipboard();
void reset() { m_model.clear_objects(); }
bool is_empty() const { return m_model.objects.empty(); }
void reset() { if (m_object != nullptr) m_object->clear_volumes(); }
void add_volume(const ModelVolume& volume);
const ModelVolume* get_volume(unsigned int id) const;
ModelObject* get_object() { return m_object; }
const ModelObject* get_object() const { return m_object; }
const unsigned int get_volumes_count() const { return (unsigned int)m_object->volumes.size(); }
bool is_empty() const { return (m_object == nullptr) || m_object->volumes.empty(); }
ModelObject* add_object() { return m_model.add_object(); }
ModelObject* get_object(unsigned int id) { return (id < (unsigned int)m_model.objects.size()) ? m_model.objects[id] : nullptr; }
Selection::EMode get_mode() const { return m_mode; }
void set_mode(Selection::EMode mode) { m_mode = mode; }
Selection::EType get_type() const { return m_type; }
void set_type(Selection::EType type) { m_type = type; }
};
// Volumes owned by GLCanvas3D.