Commit Graph

129 Commits

Author SHA1 Message Date
bubnikv
2bde3e12f2 WIP Undo / Redo: First Undo in the history of PrusaSlicer! 2019-07-04 10:45:41 +02:00
bubnikv
07e2066dd3 WIP Undo / Redo: Serializing the configs of ModelObject / ModelVolume
/ ModelMaterial as separate objects to conserve memory.
2019-07-03 13:43:54 +02:00
bubnikv
1ba1fd2b97 WIP UndoRedo: Added Undo/Redo stack, added Platter::take_snapshot(),
experimental snapshots on loading STLs and increasing / decreasing
model instances.
2019-07-02 16:42:23 +02:00
bubnikv
7a614088ae WIP Undo / Redo: ModelID / ModelBase renamed to ObjectID / ObjectBase 2019-06-27 11:02:45 +02:00
bubnikv
3d84bd20a3 WIP Undo / Redo: Serialization of the Model / ModelObject / Model instance
using the cereal framework.
2019-06-26 16:29:12 +02:00
Enrico Turri
ed02acee95 #2395 - Reworked logic of method Model::convert_multipart_object() 2019-06-24 12:43:18 +02:00
bubnikv
de7ef87987 ModelObject::add_volume(const ModelVolume &other)
shall not re-center the volume as it will share meshes
(object mesh, convex hull mesh) of the source,
which may be in use by the background processing.
2019-06-13 17:24:37 +02:00
bubnikv
c1fed74010 Sharing TriangleMesh objects between the front end (UI) and back end
(background processing)
2019-06-11 17:08:47 +02:00
bubnikv
c073749ee1 admesh refactoring: separation of the shared vertices / indices
into an indexed_triangle_set structure
2019-06-10 18:30:54 +02:00
bubnikv
068263a62d admesh refactoring: Removed the shared_vertices counter as it is now
contained inside v_shared std::vector
2019-06-10 17:36:15 +02:00
bubnikv
0e26eb0aeb WIP: Admesh - replacement of C memory allocation with std vectors 2019-06-04 22:06:42 +02:00
Enrico Turri
1340d880db Tech ENABLE_GENERIC_SUBPARTS_PLACEMENT set as default 2019-05-21 10:01:04 +02:00
Enrico Turri
91fd56429c Tech ENABLE_VOLUMES_CENTERING_FIXES set as default 2019-05-21 09:42:59 +02:00
bubnikv
578844c447 Fixed a crash on deleting objects due to the ObjectList accessing
released data before the selection was updated on the GLScene.
2019-05-14 16:37:32 +02:00
bubnikv
09673970f7 Merge remote-tracking branch 'remotes/origin/master' into vb_wold_object_manipulation 2019-05-03 19:13:47 +02:00
YuSanka
f7c475bbb0 Fixed full statistics calculation
(calculate sum of volume and part_count only for solid parts)
2019-05-03 13:09:42 +02:00
YuSanka
e542af63bc Fixed get_object_stl_stats() 2019-05-02 16:20:50 +02:00
YuSanka
22f170e29e ObjectList improvements: Added warning icon for Parts with a repaired errors 2019-04-29 15:27:59 +02:00
bubnikv
b0830d062b WIP: Transformation of instances in world coordinate space:
Ulocking the "anisotropic" scaling checkbox will bake the transformation
into meshes to allow for scaling in world axes.

Optimized and templated the stl_transform functions, now also available for 3x3 matrices.
The Canvas3D::reload_scene() now maintains selection even if all volumes of an instance changed their IDs.
2019-04-26 17:28:31 +02:00
YuSanka
59fda680e9 Refactoring: get_mesh_errors_count() moved to ModelObject
+ added get_object_stl_stats() to ModelObject
2019-04-24 16:04:47 +02:00
bubnikv
4313f0dd6c Fix of Complete individual objects: "checker" bug #1911"
Also fix of an arrangement issue for instances with some transformation
around X or Y axis applied.
2019-04-18 12:45:43 +02:00
Lukas Matena
13ee8c3bd5 TriangleMeshSlicer is now initialized by const-pointer to the mesh, responsibility for calling require_shared_vertices is left to the caller 2019-04-16 09:04:04 +02:00
bubnikv
d8a22aa2d9 Fix of "Variable layer height feature breaks after rotating part #2073"
There was an approximate bounding box used at the GUI, while a snug
bounding box was used at the back end, causing invalidation
of the variable layer height editing profile on rotated objects.

A snug bounding box around the first instance is now cached.
2019-04-13 14:15:54 +02:00
bubnikv
8ad52f0461 Vojtech's improvements in the SLA preview cutting dialog. 2019-04-11 15:44:32 +02:00
Enrico Turri
3ecd0dd48d Use current selection to determine proposed filename when exporting to stl files 2019-04-04 14:00:31 +02:00
bubnikv
3ebc21ebcd Fixed cutting of objects in left oriented coordinate space.
Removed some spurious debugging printf.
2019-04-03 12:07:58 +02:00
bubnikv
358ea1b1db Revert "Use number_of_parts for is_splittable"
It is too dangerous to rely on the admesh flag without inspecting the
admesh code line by line and a through test.

This reverts commit cd3cec3e45.
2019-04-01 12:27:45 +02:00
Sijmen Schoon
ab03a61901 Use number_of_parts for is_splittable
It's there, why not use it
2019-04-01 12:09:44 +02:00
Sijmen Schoon
e16ccd9a3b Fix a bunch of warnings 2019-04-01 12:09:44 +02:00
Sijmen Schoon
99c72bd4af Clean up and fix TriangleMesh::split and relatives 2019-04-01 12:09:44 +02:00
Enrico Turri
07686d8df9 Do not consider modifiers when centering an object after 3mf and amf import 2019-03-22 09:47:40 +01:00
bubnikv
fed65f0dc0 Merge branch 'master' of https://github.com/prusa3d/Slic3r 2019-03-13 15:45:01 +01:00
bubnikv
322d2a1fab Reworked the command line interface based on the current state
of the upstream.
Thanks @alexrj, @lordofhyphens for the original code of slic3r.cpp
2019-03-13 15:44:50 +01:00
Enrico Turri
ede4a79088 Update of ModelVolume::m_is_splittable moved inside ModelVolume itself 2019-03-13 14:04:59 +01:00
Lukas Matena
8db9edf185 SLA gizmo keeps track of current status of the points, enables the user to erase all points 2019-02-27 16:23:10 +01:00
bubnikv
ab968364e5 Renamed the "lambda-" prefix for the generic modifiers to "Generic-"
Refactored ModelVolume::Type to enum class ModelVolumeType to be able
to forward declare it.

Refactored UI to use the ModelVolumeType instead of the untyped int.
2019-02-22 12:12:10 +01:00
Enrico Turri
f086ec47b4 Fix of #1745 2019-02-06 12:50:10 +01:00
bubnikv
112f39830e Fixed missing include 2019-02-05 21:05:31 +01:00
bubnikv
44487a1841 Improved stability (fixed crashes) of the Cut by plane function by
replacing the cut triangulation with freeglu tesselator.
Added performance tracing output of the Cut by plane function.
Added wait cursor to split to parts / objects, object cut, save to AMF/3MF.
2019-02-05 20:23:24 +01:00
bubnikv
cc06b9f06b Fixed an issue, where the output G-code file name was not always updated
from the current Model/ModelObjects.
Fixed a possible race condition in updating Print::m_placeholder_parser
with the proposed filename / filename base.
Improved documentation (source code comments).
2019-02-03 10:41:14 +01:00
bubnikv
36736ab72e Get name of both the G-code and project file from the 1st printable
object's name or file path.
Fixed some compilation warnings.
2019-02-01 11:44:08 +01:00
bubnikv
1ab6d67e97 Merge branch 'master' of https://github.com/Prusa3d/Slic3r 2019-01-31 09:09:42 +01:00
bubnikv
7609081697 Fixed name of the exported project file to respect the object name. 2019-01-31 09:08:40 +01:00
Enrico Turri
32dcaba725 replace #ifdef _DEBUG with #ifndef NDEBUG 2019-01-31 08:47:23 +01:00
Enrico Turri
eca770397c Fix of #1730 2019-01-29 14:16:31 +01:00
bubnikv
a4feec906d WIP: Optimization of the object's 2D convex silhouette for arrangement,
not working yet.
2019-01-28 10:10:23 +01:00
bubnikv
e5c201f2a3 Performance improvements:
Lazy "Place on face" gizmo update.
Caching of MeshObject::raw_mesh_bounding_box() for the object size display.
ModelObject::bounding_box(), raw_mesh_bounding_box(), full_raw_mesh_bounding_box() will not copy the mesh.
TriangleMesh::transformed_bounding_box(const Transform3d &trafo) will not copy the mesh data.
get_options_for_bundle() will not return reference to temp value
is_splittable() calls cheap mesh.has_multiple_patches()
2019-01-26 18:51:34 +01:00
Enrico Turri
05b6ed498a Code cleanup 2019-01-21 11:29:45 +01:00
Enrico Turri
15582af151 Merge branch 'master' of https://github.com/prusa3d/Slic3r into objects_centering 2019-01-21 11:21:21 +01:00
bubnikv
b76f438975 WIP Restoration of the layer editing. 2019-01-21 10:06:51 +01:00