Public Member Functions | |
| StackImpl () | |
| void | clear () |
| bool | empty () const |
| void | set_memory_limit (size_t memsize) |
| size_t | get_memory_limit () const |
| size_t | memsize () const |
| void | take_snapshot (const std::string &snapshot_name, const Slic3r::Model &model, const Slic3r::GUI::Selection &selection, const Slic3r::GUI::GLGizmosManager &gizmos, const Slic3r::GUI::PartPlateList &plate_list, const SnapshotData &snapshot_data) |
| void | take_snapshot (const std::string &snapshot_name, const Slic3r::Model &model, const Slic3r::GUI::Selection &selection, const Slic3r::GUI::GLGizmosManager &gizmos, const SnapshotData &snapshot_data) |
| void | reduce_noisy_snapshots (const std::string &new_name) |
| void | load_snapshot (size_t timestamp, Slic3r::Model &model, Slic3r::GUI::GLGizmosManager &gizmos, Slic3r::GUI::PartPlateList &plate_list) |
| bool | has_undo_snapshot () const |
| bool | has_undo_snapshot (size_t time_to_load) const |
| bool | has_redo_snapshot () const |
| bool | undo (Slic3r::Model &model, const Slic3r::GUI::Selection &selection, Slic3r::GUI::GLGizmosManager &gizmos, Slic3r::GUI::PartPlateList &plate_list, const SnapshotData &snapshot_data, size_t jump_to_time) |
| bool | redo (Slic3r::Model &model, Slic3r::GUI::GLGizmosManager &gizmos, Slic3r::GUI::PartPlateList &plate_list, size_t jump_to_time) |
| void | release_least_recently_used () |
| const std::vector< Snapshot > & | snapshots () const |
| const Snapshot & | snapshot (size_t time) const |
| size_t | active_snapshot_time () const |
| bool | temp_snapshot_active () const |
| void | mark_current_as_saved () |
| bool | project_modified () const |
| bool | has_real_change_from (size_t time) const |
| const Selection & | selection_deserialized () const |
| template<typename T> | |
| ObjectID | save_mutable_object (const T &object) |
| template<typename T> | |
| ObjectID | save_immutable_object (std::shared_ptr< const T > &object, bool optional) |
| template<typename T> | |
| T * | load_mutable_object (const Slic3r::ObjectID id) |
| template<typename T> | |
| std::shared_ptr< const T > | load_immutable_object (const Slic3r::ObjectID id, bool optional) |
| template<typename T> | |
| void | load_mutable_object (const Slic3r::ObjectID id, T &target) |
| bool | valid () const |
Private Member Functions | |
| template<typename T> | |
| ObjectID | immutable_object_id (const std::shared_ptr< const T > &ptr) |
| ObjectID | immutable_object_id_impl (const void *ptr) |
| void | collect_garbage () |
| std::vector< Snapshot >::iterator | release_snapshots (std::vector< Snapshot >::iterator begin, std::vector< Snapshot >::iterator end) |
Private Attributes | |
| size_t | m_memory_limit |
| std::map< ObjectID, std::unique_ptr< ObjectHistoryBase > > | m_objects |
| std::map< const void *, ObjectID > | m_shared_ptr_to_object_id |
| std::vector< Snapshot > | m_snapshots |
| size_t | m_active_snapshot_time |
| size_t | m_saved_snapshot_time { size_t(-1) } |
| size_t | m_current_time |
| Selection | m_selection |
| std::vector< ObjectBase * > | m_reusable_objects |
|
inline |
References m_active_snapshot_time, m_current_time, m_memory_limit, Slic3r::total_physical_memory(), and UNDO_REDO_DEBUG_LOW_MEM_FACTOR.
|
inline |
References m_active_snapshot_time.
|
inline |
References m_active_snapshot_time, m_current_time, m_objects, m_saved_snapshot_time, m_selection, m_shared_ptr_to_object_id, and m_snapshots.
|
private |
References m_objects, and m_shared_ptr_to_object_id.
Referenced by take_snapshot().
|
inline |
References m_active_snapshot_time, m_current_time, m_objects, and m_snapshots.
|
inline |
References m_memory_limit.
| bool Slic3r::UndoRedo::StackImpl::has_real_change_from | ( | size_t | time | ) | const |
References m_active_snapshot_time, m_snapshots, and Slic3r::UndoRedo::snapshot_modifies_project().
| bool Slic3r::UndoRedo::StackImpl::has_redo_snapshot | ( | ) | const |
References m_active_snapshot_time, m_snapshots, Slic3r::UndoRedo::snapshot_modifies_project(), and valid().
| bool Slic3r::UndoRedo::StackImpl::has_undo_snapshot | ( | ) | const |
References m_active_snapshot_time, m_snapshots, Slic3r::UndoRedo::snapshot_modifies_project(), and valid().
| bool Slic3r::UndoRedo::StackImpl::has_undo_snapshot | ( | size_t | time_to_load | ) | const |
References m_active_snapshot_time, and m_snapshots.
|
inlineprivate |
References immutable_object_id_impl().
Referenced by save_immutable_object().
|
inlineprivate |
References Slic3r::ObjectBase::id(), and m_shared_ptr_to_object_id.
Referenced by immutable_object_id().
| std::shared_ptr< const T > Slic3r::UndoRedo::StackImpl::load_immutable_object | ( | const Slic3r::ObjectID | id, |
| bool | optional ) |
References m_active_snapshot_time, and m_objects.
Referenced by cereal::load(), and cereal::load_optional().
| T * Slic3r::UndoRedo::StackImpl::load_mutable_object | ( | const Slic3r::ObjectID | id | ) |
References load_mutable_object(), and m_reusable_objects.
Referenced by cereal::load(), cereal::load(), cereal::load_by_value(), load_mutable_object(), and load_snapshot().
| void Slic3r::UndoRedo::StackImpl::load_mutable_object | ( | const Slic3r::ObjectID | id, |
| T & | target ) |
References m_active_snapshot_time, and m_objects.
| void Slic3r::UndoRedo::StackImpl::load_snapshot | ( | size_t | timestamp, |
| Slic3r::Model & | model, | ||
| Slic3r::GUI::GLGizmosManager & | gizmos, | ||
| Slic3r::GUI::PartPlateList & | plate_list ) |
References Slic3r::Model::clear_materials(), Slic3r::Model::collect_reusable_objects(), Slic3r::GUI::PartPlateList::get_sliced_result(), Slic3r::ObjectBase::id(), load_mutable_object(), m_active_snapshot_time, m_reusable_objects, m_selection, m_snapshots, Slic3r::GUI::PartPlateList::print(), Slic3r::GUI::PartPlateList::rebuild_plates_after_deserialize(), Slic3r::GUI::PartPlateList::reset(), Slic3r::Model::update_links_bottom_up_recursive(), and valid().
Referenced by redo(), and undo().
|
inline |
References m_active_snapshot_time, and m_saved_snapshot_time.
|
inline |
References m_objects, and memsize().
Referenced by memsize(), release_least_recently_used(), and set_memory_limit().
| bool Slic3r::UndoRedo::StackImpl::project_modified | ( | ) | const |
References m_active_snapshot_time, m_saved_snapshot_time, m_snapshots, and Slic3r::UndoRedo::snapshot_modifies_project().
| bool Slic3r::UndoRedo::StackImpl::redo | ( | Slic3r::Model & | model, |
| Slic3r::GUI::GLGizmosManager & | gizmos, | ||
| Slic3r::GUI::PartPlateList & | plate_list, | ||
| size_t | jump_to_time ) |
References load_snapshot(), m_active_snapshot_time, m_snapshots, and valid().
| void Slic3r::UndoRedo::StackImpl::reduce_noisy_snapshots | ( | const std::string & | new_name | ) |
References Slic3r::UndoRedo::EnteringGizmo, Slic3r::UndoRedo::GizmoAction, Slic3r::UndoRedo::LeavingGizmoNoAction, Slic3r::UndoRedo::LeavingGizmoWithAction, m_active_snapshot_time, m_objects, m_snapshots, and release_snapshots().
| void Slic3r::UndoRedo::StackImpl::release_least_recently_used | ( | ) |
References Slic3r::UndoRedo::EnteringGizmo, Slic3r::UndoRedo::GizmoAction, Slic3r::UndoRedo::LeavingGizmoNoAction, Slic3r::UndoRedo::LeavingGizmoWithAction, m_active_snapshot_time, m_memory_limit, m_objects, m_saved_snapshot_time, m_shared_ptr_to_object_id, m_snapshots, memsize(), Slic3r::UndoRedo::topmost_snapshot_name, and valid().
|
private |
References m_saved_snapshot_time, m_snapshots, and Slic3r::UndoRedo::snapshot_modifies_project().
Referenced by reduce_noisy_snapshots(), and take_snapshot().
| ObjectID Slic3r::UndoRedo::StackImpl::save_immutable_object | ( | std::shared_ptr< const T > & | object, |
| bool | optional ) |
References immutable_object_id(), m_active_snapshot_time, m_current_time, m_objects, and Slic3r::UndoRedo::ImmutableObjectHistory< T >::save().
| ObjectID Slic3r::UndoRedo::StackImpl::save_mutable_object | ( | const T & | object | ) |
References m_active_snapshot_time, m_current_time, and m_objects.
Referenced by take_snapshot().
|
inline |
References m_selection.
|
inline |
|
inline |
References m_snapshots.
|
inline |
References m_snapshots.
| void Slic3r::UndoRedo::StackImpl::take_snapshot | ( | const std::string & | snapshot_name, |
| const Slic3r::Model & | model, | ||
| const Slic3r::GUI::Selection & | selection, | ||
| const Slic3r::GUI::GLGizmosManager & | gizmos, | ||
| const Slic3r::GUI::PartPlateList & | plate_list, | ||
| const SnapshotData & | snapshot_data ) |
References collect_garbage(), Slic3r::GLVolume::geometry_id, Slic3r::GUI::Selection::get_mode(), Slic3r::GUI::Selection::get_volume(), Slic3r::GUI::Selection::get_volume_idxs(), Slic3r::ObjectBase::id(), Slic3r::ObjectID::id, m_active_snapshot_time, m_current_time, m_objects, m_saved_snapshot_time, m_selection, m_snapshots, Slic3r::GUI::PartPlateList::print(), release_snapshots(), save_mutable_object(), Slic3r::UndoRedo::topmost_snapshot_name, and valid().
Referenced by take_snapshot(), and undo().
| void Slic3r::UndoRedo::StackImpl::take_snapshot | ( | const std::string & | snapshot_name, |
| const Slic3r::Model & | model, | ||
| const Slic3r::GUI::Selection & | selection, | ||
| const Slic3r::GUI::GLGizmosManager & | gizmos, | ||
| const SnapshotData & | snapshot_data ) |
References take_snapshot().
|
inline |
References m_active_snapshot_time, and m_snapshots.
| bool Slic3r::UndoRedo::StackImpl::undo | ( | Slic3r::Model & | model, |
| const Slic3r::GUI::Selection & | selection, | ||
| Slic3r::GUI::GLGizmosManager & | gizmos, | ||
| Slic3r::GUI::PartPlateList & | plate_list, | ||
| const SnapshotData & | snapshot_data, | ||
| size_t | jump_to_time ) |
References load_snapshot(), m_active_snapshot_time, m_snapshots, take_snapshot(), and valid().
|
inline |
References m_active_snapshot_time, m_objects, and m_snapshots.
Referenced by has_redo_snapshot(), has_undo_snapshot(), load_snapshot(), redo(), release_least_recently_used(), take_snapshot(), and undo().
|
private |
Referenced by StackImpl(), active_snapshot_time(), clear(), empty(), has_real_change_from(), has_redo_snapshot(), has_undo_snapshot(), has_undo_snapshot(), load_immutable_object(), load_mutable_object(), load_snapshot(), mark_current_as_saved(), project_modified(), redo(), reduce_noisy_snapshots(), release_least_recently_used(), save_immutable_object(), save_mutable_object(), take_snapshot(), temp_snapshot_active(), undo(), and valid().
|
private |
Referenced by StackImpl(), clear(), empty(), save_immutable_object(), save_mutable_object(), and take_snapshot().
|
private |
Referenced by StackImpl(), get_memory_limit(), release_least_recently_used(), and set_memory_limit().
|
private |
|
private |
Referenced by load_mutable_object(), and load_snapshot().
|
private |
Referenced by clear(), mark_current_as_saved(), project_modified(), release_least_recently_used(), release_snapshots(), and take_snapshot().
|
private |
Referenced by clear(), load_snapshot(), selection_deserialized(), and take_snapshot().
|
private |
Referenced by clear(), collect_garbage(), immutable_object_id_impl(), and release_least_recently_used().
|
private |
Referenced by clear(), empty(), has_real_change_from(), has_redo_snapshot(), has_undo_snapshot(), has_undo_snapshot(), load_snapshot(), project_modified(), redo(), reduce_noisy_snapshots(), release_least_recently_used(), release_snapshots(), snapshot(), snapshots(), take_snapshot(), temp_snapshot_active(), undo(), and valid().