Commit Graph

161 Commits

Author SHA1 Message Date
bubnikv
6526a8fcaf 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
b4d5287d0c Refactoring: get_mesh_errors_count() moved to ModelObject
+ added get_object_stl_stats() to ModelObject
2019-04-24 16:04:47 +02:00
bubnikv
5ec507e9ea 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
f33e9bf609 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
1e455bc065 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
4a210aeecf Vojtech's improvements in the SLA preview cutting dialog. 2019-04-11 15:44:32 +02:00
Enrico Turri
6197f48321 Use current selection to determine proposed filename when exporting to stl files 2019-04-04 14:00:31 +02:00
bubnikv
527c213b57 Fixed cutting of objects in left oriented coordinate space.
Removed some spurious debugging printf.
2019-04-03 12:07:58 +02:00
bubnikv
d728f4be5e 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
cd3cec3e45 Use number_of_parts for is_splittable
It's there, why not use it
2019-04-01 12:09:44 +02:00
Sijmen Schoon
69199215b0 Fix a bunch of warnings 2019-04-01 12:09:44 +02:00
Sijmen Schoon
19dc89bfab Clean up and fix TriangleMesh::split and relatives 2019-04-01 12:09:44 +02:00
Enrico Turri
a5fd9a34e8 Do not consider modifiers when centering an object after 3mf and amf import 2019-03-22 09:47:40 +01:00
bubnikv
2ba661cb76 Merge branch 'master' of https://github.com/prusa3d/Slic3r 2019-03-13 15:45:01 +01:00
bubnikv
18025cc669 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
77964de9f2 Update of ModelVolume::m_is_splittable moved inside ModelVolume itself 2019-03-13 14:04:59 +01:00
Lukas Matena
4eb4e40746 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
917f044f81 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
bdde20b433 Fix of #1745 2019-02-06 12:50:10 +01:00
bubnikv
0b90e5177c Fixed missing include 2019-02-05 21:05:31 +01:00
bubnikv
8982664551 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
a56f7d60e5 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
3b973e01dd 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
3c78d35e3c Merge branch 'master' of https://github.com/Prusa3d/Slic3r 2019-01-31 09:09:42 +01:00
bubnikv
73280d48ed Fixed name of the exported project file to respect the object name. 2019-01-31 09:08:40 +01:00
Enrico Turri
4b1cc282c8 replace #ifdef _DEBUG with #ifndef NDEBUG 2019-01-31 08:47:23 +01:00
Enrico Turri
15b6b4f239 Fix of #1730 2019-01-29 14:16:31 +01:00
bubnikv
adb96bdc2e WIP: Optimization of the object's 2D convex silhouette for arrangement,
not working yet.
2019-01-28 10:10:23 +01:00
bubnikv
588c07c12a 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
25319113f1 Code cleanup 2019-01-21 11:29:45 +01:00
Enrico Turri
4577a49d5a Merge branch 'master' of https://github.com/prusa3d/Slic3r into objects_centering 2019-01-21 11:21:21 +01:00
bubnikv
d64b55d27d WIP Restoration of the layer editing. 2019-01-21 10:06:51 +01:00
Enrico Turri
1eb01df0c8 Fixed .prusa i/o and split to objects 2019-01-18 16:01:43 +01:00
Enrico Turri
80bae6dd98 1st installment of volumes centering fixes (WIP) 2019-01-18 12:52:09 +01:00
Enrico Turri
01dc8e77ac Generic subparts placed at one of the bottom corners of the world bounding box of the transformed current selected instance (#1517) 2019-01-14 13:29:06 +01:00
Enrico Turri
474e06ac85 Fixed missing mirror transform data when increasing instances count 2019-01-03 15:04:29 +01:00
Enrico Turri
611d9aa0d8 Model's volume transform set as default 2019-01-02 10:49:13 +01:00
Enrico Turri
9d8e78636b Fixed loading of huge models 2018-12-19 09:54:15 +01:00
Enrico Turri
a394e55e07 Added method ModelObject::full_raw_mesh() 2018-12-18 10:49:22 +01:00
Enrico Turri
07943ae669 Fixed import from 3mf of rotated models 2018-12-14 09:52:15 +01:00
bubnikv
52db7b055a WIP: Merged commits from stable between 1.41.2-beta and 1.42.2 final.
Changes in SupportMaterial.cpp, TriangleMesh.cpp and 01_trianglemesh.t
are yet to be merged.

WIP: Refactoring of layer height editing.
Removed layer_height_ranges from PrintObject, as the Print/PrintObject
now hold their copies of Model/ModelObject.
2018-12-11 16:33:43 +01:00
Vojtech Kral
c23c09c453 Cut: Fix modifier transformation 2018-12-07 13:58:51 +01:00
bubnikv
96e14b5d3b Fixed Canvas3D update after an object instance is deleted. 2018-12-04 11:35:04 +01:00
bubnikv
435163fb73 Merge branch 'master' of https://github.com/Prusa3d/Slic3r 2018-12-03 13:21:48 +01:00
bubnikv
d46d0dc365 Implemented naming of the SLA export file based on the output file name
template.

Reworked naming of the plater exports to not use the output file name
template, but to derive the file name from the first printable object's name.

Fixed error handling: Reimpemented the Perl's "eval" blocks
as try / catch blocks.
2018-12-03 13:14:28 +01:00
Enrico Turri
c205e3fb0c Gizmo flatten -> allow for only single instance and let planes follow the instance when moving the object by dragging it on the scene 2018-12-03 11:14:17 +01:00
Enrico Turri
e1c90c83e8 Fixed GLVolumes reuse after instance deletion 2018-12-03 10:37:46 +01:00
Enrico Turri
62a3cb272e Fixed offset of last remaining object part after deletion 2018-11-30 10:25:09 +01:00
Vojtech Kral
34587bd00f Cut: Account for instance Z properly 2018-11-28 13:36:31 +01:00
Vojtech Kral
4ca8fc0aeb Cut: Fix lower part rotation 2018-11-26 17:43:27 +01:00
Vojtech Kral
3b20d03e1d Cut: Preserve Z-rotation, fix upper part mesh position,
perform custom placing instead of arrange()
2018-11-26 17:09:37 +01:00
Vojtech Kral
63faa917a9 Cut: Re-center objects after cut 2018-11-26 13:35:37 +01:00
Vojtech Kral
25f4f1fe55 Cut: Use world coordinates 2018-11-26 12:08:10 +01:00
Vojtech Kral
c29493a41b imgui: Refactor, use in cut gizmo 2018-11-26 11:16:39 +01:00
Enrico Turri
66a08be209 Fixed transformations when deleting second-to-last sub-volume of an object 2018-11-23 10:50:25 +01:00
bubnikv
a4be8ef6ad Fixed "setting an extruder does not change object's color" 2018-11-22 13:20:13 +01:00
bubnikv
487ccdd2be Merge branch 'master' of https://github.com/Prusa3d/Slic3r 2018-11-21 17:35:58 +01:00
bubnikv
314f7dc674 WIP: Synchronization of SLA background processing. 2018-11-21 17:35:35 +01:00
Enrico Turri
85219b8bc0 Fixed split object to objects 2018-11-21 14:30:15 +01:00
bubnikv
4eb82bda62 Fix of "split volume to parts" to regenerate a new GLVolume
even for the first part.
2018-11-21 09:35:49 +01:00
bubnikv
18f14482d0 Merge branch 'vb_3dscene_partial_update' 2018-11-20 17:07:31 +01:00
Enrico Turri
74f350c84e Fixed slicing of objects splitted into parts 2018-11-20 08:36:35 +01:00
tamasmeszaros
0fcdc70327 Merge remote-tracking branch 'origin/dev_native' into tm_sla_supports_backend 2018-11-19 12:56:32 +01:00
Vojtech Kral
6629d75853 Cutting 2018-11-18 21:20:47 +01:00
bubnikv
c9a4c6c73c Partial update of 3D scene (GLVolumes derived from Model and from
the SLAPrintObject).
Updated PrintBase to generate a unique timestamp at each step invalidation.
2018-11-16 18:28:50 +01:00
Enrico Turri
03390c594f Removed code committed by mistake in previous commit 2018-11-13 11:25:59 +01:00
Enrico Turri
dc8523cac8 Fixed convex hull and volume offset after object split to part 2018-11-13 10:12:42 +01:00
Enrico Turri
3d4e37ceb6 Center volumes after split to parts 2018-11-13 08:36:10 +01:00
Enrico Turri
22dbcbcd9c Enhanced volumes manipulation - wip 2018-11-12 08:54:22 +01:00
Enrico Turri
12ef6913d5 ModelObject::instance_bounding_box() fixed to take in account for volumes' transforms 2018-11-09 10:31:58 +01:00
bubnikv
bbfbe88a5f Integrated SLAPrint into background processing.
Fixed couple of compiler warnings.
2018-11-08 20:18:40 +01:00
Enrico Turri
b05aa00089 Fixed update of ModelVolume offset after GLVolume manipulation 2018-11-07 14:01:03 +01:00
Enrico Turri
f9caa6f7f1 Fixed backend detection of out of print volume 2018-11-06 16:04:30 +01:00
Enrico Turri
57c769b63b Selection of modifiers in 3D scene 2018-11-06 15:51:33 +01:00
bubnikv
7ffa22191d Fixed some issues with front end / back end synchronization. 2018-11-05 17:52:55 +01:00
Enrico Turri
864bc6ad48 Mirror of ModelVolume as transformation component (without modifying the mesh) 2018-11-05 08:51:00 +01:00
Enrico Turri
fb6a08cfb0 Rotate of ModelVolume as transformation component (without modifying the mesh) 2018-11-05 08:31:54 +01:00
bubnikv
0870f81425 Merge remote-tracking branch 'remotes/origin/vb_modelbase_id_refactor' into dev_native 2018-11-02 20:53:47 +01:00
bubnikv
cf5dcfa9ed ModelBase ID refactoring, starting to work.
Now it remains to clean up some of the no more used Model interfaces.
2018-11-02 19:49:40 +01:00
bubnikv
ca32338cea ModelBase ID refactoring, WIP 2018-11-02 14:47:13 +01:00
Enrico Turri
385b0f261d Scale of ModelVolume as transformation component (without modifying the mesh) 2018-11-02 14:41:08 +01:00
Enrico Turri
7114b80882 Use Transform3d in place of Transform3f as parameter of mesh transform functions 2018-11-02 13:47:47 +01:00
Enrico Turri
3aad8b5fd2 Translation of ModelVolume as transformation component (without modifying the mesh) 2018-11-02 12:11:28 +01:00
Enrico Turri
00ec33ef16 Fixed build when ENABLE_MODELVOLUME_TRANSFORM is disabled 2018-11-01 14:41:18 +01:00
Enrico Turri
b8168d421c Refactoring 2018-11-01 14:25:10 +01:00
Enrico Turri
a15bf7cc25 New selection set as default 2018-11-01 10:06:55 +01:00
Enrico Turri
00222226ed Mirror component of transformations set as default 2018-11-01 08:46:44 +01:00
Enrico Turri
afa907504f Fixed autolevel on bed with non uniform scaling 2018-10-31 16:13:07 +01:00
Enrico Turri
d6d632d4fc Added Geometry::Transformation class. Use it into ModelInstance, ModelVolume and GLVolume 2018-10-31 14:56:51 +01:00
Enrico Turri
503166a6a4 Automatic placement of instance at bed level 2018-10-30 16:03:03 +01:00
bubnikv
66e97aa4eb Reduced memory leaks in ConfigDef / PrintConfigDef
Deleted unsafe default copy constructors / operators in Model / ModelObject / ModelInstance / ModelVolume
Fixed some issues with copying the Model / ModelObject / ModelInstance / ModelVolume inside Print::apply()
Fixed some invalidation issues in Print::apply()
Temporarily renamed the Slic3rPE profile directory to Slic3rPE-alpha.
2018-10-30 15:24:36 +01:00
Lukas Matena
7681d00ee5 Merged branch 'dev_native' into lm_sla_supports_auto
Added igl library files
2018-10-26 15:45:52 +02:00
bubnikv
bded28f888 WIP: Reconstruction of background processing. 2018-10-23 15:27:31 +02:00
bubnikv
edc79cb922 Merge branch 'dev_native' into vb_dev_native_background_processing 2018-10-23 11:26:15 +02:00
Enrico Turri
2a2d1d85f8 Added mirror factors to .3mf import and enabled import factors 2018-10-22 13:27:53 +02:00
YuSanka
5557ee3cd2 Fixed object adding to list with same object's name
+ Added name for main object for complex objects
+ Fixed incorrect Instances and Settings deleting from ObjectList
2018-10-19 11:08:43 +02:00
bubnikv
a45e9c0a03 WIP: Slicing from GUI. 2018-10-18 18:06:40 +02:00
bubnikv
857863102d Merge branch 'dev_native' into vb_dev_native_background_processing 2018-10-18 18:03:17 +02:00
Enrico Turri
fbbe1325b6 Mirror transform components in ModelInstance and GLvolume - WIP and disabled 2018-10-18 15:50:51 +02:00
bubnikv
7ed2752b2b WIP: Reconstruction of background processing update timer,
added unique IDs to the Model / ModelObject / ModelVolume objects,
added a copy of Model hierarchy at the Print,
WIP: new Print::apply() method to update the Print's copy of Model,
to update the Print's PrintObjects, to update status of the Print and
PrintObjects, and to possibly stop the background processing.
2018-10-17 11:12:38 +02:00