Commit Graph

2851 Commits

Author SHA1 Message Date
Lukas Matena
61cee54dd3 Merge branch 'master' into lm_low_wipe_tower 2019-10-01 13:24:25 +02:00
bubnikv
93a157e26c Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-30 16:25:31 +02:00
bubnikv
272479826f Refactoring of the G-code preview for lower memory allocation
and for separation of concerns:

The final G-code preview no more uses ExtrusionPaths structure
to hold the G-code path data extracted by parsing the G-code.
Instead, the ExtrusionPath class has been trimmed down back to
the original size before the G-code preview was introduced,
and a new GCodePreviewData::Extrusion::Path class was created to hold
the additional path data as the extruder ID, color change ID
and fan speed.
2019-09-30 16:25:26 +02:00
Vojtech Kral
eb93d2a32d Merge branch 'master' into materials 2019-09-30 16:12:48 +02:00
YuSanka
c07a193b4e Implemented BitmapChoiseRenderer 2019-09-30 14:34:29 +02:00
YuSanka
f5593c05aa Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-30 14:04:45 +02:00
YuSanka
904bbcc006 Fix of SPE-1035 (Wrong filament color updating for multi-material print) 2019-09-30 13:59:26 +02:00
bubnikv
b425ee50a9 Merge remote-tracking branch 'remotes/origin/et_pull_2922' 2019-09-30 10:23:16 +02:00
Lukas Matena
5ded376fe2 An attempt to fix #2997
More fixes might be needed on the other platforms
2019-09-28 09:57:26 +02:00
YuSanka
c370fccd8b Changed default values.
And bottle_volume is preferred to recalculation instead of bottle_weight
2019-09-27 12:08:08 +02:00
YuSanka
82bc243281 Implemented possibility to set a resin cost 2019-09-26 16:36:31 +02:00
YuSanka
1a03b664b9 Some changes for alignments in manipulation panel 2019-09-25 15:04:39 +02:00
Enrico Turri
6f8a9bc1ff Fixed visual hints in 3D scene not disappearing when tabbing out of size z field in object manipulators sidebar 2019-09-25 13:05:18 +02:00
Lukas Matena
dbc51a140d Fixed erroneous use of logical OR where bitwise OR was meant
Also, PrintBase::SlicingStatus enum had two entries assigned to 0 - removed the one that was never used
2019-09-25 12:18:30 +02:00
YuSanka
efb9ef37f6 Merge remote-tracking branch 'origin/master' into ys_manipulation_panel_rw 2019-09-25 11:33:19 +02:00
Enrico Turri
fdbe339622 Fixed gizmo scale for objects added to scene using the new context menu 2019-09-25 11:25:14 +02:00
YuSanka
6faf67d90c Add binding for ManipulationEditors 2019-09-25 11:25:05 +02:00
Lukas Matena
7861fa5086 Whitespace changes to supress misleading indentation warnings
These appear in newer gcc when spaces and tabs are mixed
2019-09-24 16:01:01 +02:00
YuSanka
b2e7081d31 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-24 14:33:20 +02:00
YuSanka
9607fbeb6d Fix of SPE-1027 2019-09-24 14:32:59 +02:00
Enrico Turri
2fd5044460 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-24 14:13:22 +02:00
Enrico Turri
7c1706f7ee Follow-up of f4910cafed -> Fix extended to Mac 2019-09-24 14:13:03 +02:00
Lukas Matena
c1e3be9b27 MeshUtils.cpp: MeshRaycaster is now aware of the clipping plane 2019-09-24 12:58:12 +02:00
Enrico Turri
a68a72a660 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-24 09:11:43 +02:00
Enrico Turri
e6604afd05 #2972 - Fixed selection after adding an instance with autocenter active 2019-09-24 09:11:27 +02:00
YuSanka
a234193dea Fixed localization for "Configuration Wizard" menu item 2019-09-23 16:29:07 +02:00
Enrico Turri
2dc9949a4c ENABLE_ENHANCED_RELOAD_FROM_DISK set as default 2019-09-23 15:35:49 +02:00
Enrico Turri
82a52e8b21 #2922 - Port of commit: f42edd35ce by jschuh 2019-09-23 14:56:27 +02:00
YuSanka
d90a27d5f8 Merge remote-tracking branch 'origin' into ys_manipulation_panel_rw 2019-09-23 14:37:06 +02:00
YuSanka
c0c937425f Added missed comment to 7e060f84bd 2019-09-23 14:24:53 +02:00
Enrico Turri
4a45c1aa41 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-23 12:34:18 +02:00
YuSanka
4e22761f95 Fix of #2977 2019-09-23 10:17:53 +02:00
Enrico Turri
c0576a8770 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-23 08:27:01 +02:00
Lukas Matena
656569b0e9 Fix of https://github.com/prusa3d/PrusaSlicer/issues/2953
printf-like function argument mismatch: num was long, which was obfuscated by the auto keyword
2019-09-20 16:47:10 +02:00
YuSanka
89ebf1f1e8 Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-20 11:30:53 +02:00
YuSanka
7e060f84bd Forcing of explicit SetWidth for the columns under OSX, as an attempt to fix a narrow column width on 4(5)K monitors under OSX 2019-09-20 11:30:29 +02:00
Enrico Turri
d66bf7e1e1 Follow-up of 8aaff08355 -> Do not show the new context menu when the user pans the scene + cleanup 2019-09-20 11:19:06 +02:00
Lukas Matena
abaebb489a Added a config option to not print sparse layers on the wipe tower 2019-09-20 10:54:20 +02:00
YuSanka
a27026aa03 Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-20 09:58:33 +02:00
YuSanka
8aaff08355 Added Possibility to create "shape" as an independent object from 3dScene,
using right click on empty place
2019-09-20 09:57:27 +02:00
Enrico Turri
9e09c52ab0 #2948 - Max zoom takes in account custom bed model size 2019-09-20 09:53:35 +02:00
bubnikv
110d5b9d56 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-19 17:16:43 +02:00
bubnikv
6ce1011a09 Slic3r -> PrusaSlicer in config snapshot dialog. 2019-09-19 17:16:37 +02:00
YuSanka
e34ef1dd07 Merge remote-tracking branch 'origin/dev' into ys_manipulation_panel_rw 2019-09-19 15:39:13 +02:00
YuSanka
29f3c938e6 Fix of SPE-1026 (Height range value works differently if you press enter and if you leave textbox)
Related to GH #2946
2019-09-19 15:28:36 +02:00
YuSanka
381735581b Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-19 14:12:12 +02:00
YuSanka
ddf37d3b01 Fix under OSX for 584b37513f 2019-09-19 14:11:56 +02:00
Enrico Turri
0de8245432 Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-19 14:03:05 +02:00
Enrico Turri
355a7d6a8c Fixed empty filename when trying to export a plate where no object is selected and no object is printable 2019-09-19 14:01:17 +02:00
Enrico Turri
74747226f7 ENABLE_ENHANCED_RELOAD_FROM_DISK
1) Modified .zip.amf import/export to save/load volume matrices and source data

2) Incremented .zip.amf version to 3
2019-09-19 12:39:59 +02:00
YuSanka
584b37513f Implemented possibility to create "shape" as an object (#2865) 2019-09-19 12:30:16 +02:00
bubnikv
80c5eaacdf Merge remote-tracking branch 'remotes/origin/dev' into vk-materials 2019-09-19 11:49:49 +02:00
Enrico Turri
3a40565d03 Added tech ENABLE_ENHANCED_RELOAD_FROM_DISK
1) Reworked void Plater::priv::reload_from_disk() to be more general

2) Added source data to class ModelVolume

3) Modified .3mf import/export to save/load volume matrices and source data

4) Incremented .3mf version to 2
2019-09-19 09:09:11 +02:00
YuSanka
67d7809418 Fixed font size and layouts for ObjectManipulation panel under OSX 2019-09-19 08:44:19 +02:00
YuSanka
c9c407cc2b Rewrote UI for ObjectManipulation without using of OptionsGrope 2019-09-18 15:10:36 +02:00
Lukas Matena
76a657ce52 Plater.cpp - better added a range-check when selecting filament color in purging volumes dialog 2019-09-18 12:54:21 +02:00
Lukas Matena
741e98804c Purging volumes dialog now uses filament colour in case extruder color is undefined 2019-09-18 11:47:19 +02:00
Vojtech Kral
107ff6fd36 Materials: Cleanup 2019-09-17 17:16:15 +02:00
Vojtech Kral
cb1ee5ce55 ConfigWizard: Add view mode setting page 2019-09-17 15:52:26 +02:00
Enrico Turri
cd7895065a Fixed typo 2019-09-17 15:48:39 +02:00
Enrico Turri
f4910cafed Fixed selection after adding a modifier by loading it from file 2019-09-17 15:30:54 +02:00
Lukas Matena
dd7eb0b186 Merge branch 'lm_raycasting_refactoring' into dev 2019-09-17 14:59:14 +02:00
Lukas Matena
6bcafd7c83 SLA gizmo no more uses IGL code directly, all was moved to the new MeshRaycaster class 2019-09-17 14:57:57 +02:00
Lukas Matena
1dfd8a0e62 MeshRaycaster class is now used in SLA gizmo when selecting by rectangle 2019-09-17 14:57:54 +02:00
Lukas Matena
3694bf3da9 Added functions get_hit_pos, get_hit_normal, ready to implement intersect_ray 2019-09-17 14:57:49 +02:00
Lukas Matena
b6292247e8 Unproject on mesh in the SLA gizmo is now performed by the MeshRaycaster class 2019-09-17 14:57:45 +02:00
YuSanka
0890c1417a Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-17 13:42:06 +02:00
YuSanka
93aa5ac6ce Fixed re-scaling under MSW for Layers editing
+ Clean code in GUI_ObjectManipulation.cpp
2019-09-17 13:41:44 +02:00
Vojtech Kral
c5a67ff931 WIP: filament/material filtering per selected printers 2019-09-17 13:20:06 +02:00
Vojtech Kral
9a465514ff Filament and material default installation based on enabled printers 2019-09-17 13:20:06 +02:00
Vojtech Kral
270008a3fd Add material_type config option for SLA materials, use in Wizard 2019-09-17 13:20:06 +02:00
Vojtech Kral
235b659cf9 WIP: ConfigWizard: 3rd party bundle installation roughly done 2019-09-17 13:20:06 +02:00
Vojtech Kral
dba9925c4e Move ConfigWizard instance in GUI_App, lazy-initialized,
add filament/material installation item in Sidebar combo boxes
2019-09-17 13:20:06 +02:00
Vojtech Kral
87b7b1cc1d Load default filament/material selections from vendor profiles 2019-09-17 13:20:06 +02:00
Vojtech Kral
34b3548102 Filaments and materials selection/installation 2019-09-17 13:20:06 +02:00
Enrico Turri
a93e63e296 Fixed object shifted after saving to/reloading from .3mf and .zip.amf a multivolume object with printable parts moved by user 2019-09-17 12:50:54 +02:00
Vojtech Kral
8e11a7b895 PresetUpdater: Fix: Sanitize downloadedsemver, fix #2927
Use HTTPS for the slicer app version url
2019-09-16 18:02:14 +02:00
YuSanka
13bde53955 Call update_config_values after deleting of a overridden option 2019-09-16 12:05:56 +02:00
YuSanka
a12e6a7bde More clear identification if is there object selected 2019-09-16 11:55:05 +02:00
YuSanka
284355d378 Fix of #2878 (endless warning loop in configuration update) 2019-09-16 10:22:26 +02:00
Lukas Matena
70c0c87598 Renamed MeshClipper.cpp/.hpp to MeshUtils.cpp/.hpp
More helper classes like the MeshClipper could live here
Moved ClippingPlane class in here to start
2019-09-13 12:03:53 +02:00
Lukas Matena
9782701dd4 Calculating the transformations is now only performed by the MeshClipper
Attempted to get mirroring right (that never worked correctly with the clipping plane in the sla gizmo)
The transformation of the support mesh is kind of a mystery to me, hopefully it is right
Also cleaned the code a bit (removed commented-out code, unused variables, etc)
2019-09-13 12:03:53 +02:00
Lukas Matena
546917830b Initial implementation of MeshClipper class
So far the work is shared between the old code in GLGizmoSlaSupports.cpp and the new class
2019-09-13 12:03:53 +02:00
Lukas Matena
cf23146ee3 Refactoring the SLA clipping plane
The plane is now internally stored as a plane in world coordinates
2019-09-13 12:03:53 +02:00
Enrico Turri
7fe691f14e Merge branch 'et_reload_from_disk' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-12 10:46:32 +02:00
Enrico Turri
724cc19ae5 Fixed object position after reload from disk 2019-09-12 10:44:38 +02:00
bubnikv
b4f2df6a98 Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-12 10:19:09 +02:00
Enrico Turri
c55a463c93 Do not show intermediate states in objects list while reloading from disk 2019-09-11 15:31:30 +02:00
Enrico Turri
26f3af4b16 Fixed modifiers after reload from disk 2019-09-11 15:02:57 +02:00
tamasmeszaros
c37ec7463f Add new config values to SL1 zip file config.ini
All requested config values are written into SL1 ini file inside the zip

* TIme.hpp and Time.cpp is now part of libslic3r instead of libslic3r_gui
* Updated time manipulation function: separate timestamp_local_str and timestamp_utc_str
* timestamp_utc_str is used in header_slic3r_generated(). Gcode now contains UTC timestamps
2019-09-11 13:10:23 +02:00
Enrico Turri
b383d9581a Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-11 09:01:44 +02:00
bubnikv
246dc64c99 Fix of "Bridging and gap fill are parsed incorrectly when infill is set to 0" #1476
The gap fill was disabled for zero infill.
Now the gap fill is enabled in between the perimeters, but disabled between
the inner-most perimeter and infill in case the infill is set to zero.

Also in case there are multiple infill regions inside a perimeter,
the mutliple infills are considered as non-zero if at least one infill
is non-zero, therefore the gap fill will be added inside the inner-most
perimeter.
2019-09-10 19:03:37 +02:00
Lukas Matena
4fc20090c8 GUI_ObjectList.cpp: Max layer height defaults to 0.75*nozzle_diameter as it should (#2892) 2019-09-10 12:34:03 +02:00
Lukas Matena
86b258f727 Fixed many warnings in following files:
src/slic3r/Config/Snapshot.cpp
src/slic3r/GUI/Field.cpp
src/slic3r/GUI/GLToolbar.cpp
src/slic3r/GUI/GUI_ObjectList.cpp
src/slic3r/GUI/GUI_ObjectList.hpp
src/slic3r/GUI/Plater.cpp
src/slic3r/GUI/Plater.hpp
src/slic3r/GUI/PresetBundle.cpp
src/slic3r/GUI/Tab.cpp
src/slic3r/GUI/wxExtensions.cpp
2019-09-10 12:08:43 +02:00
Enrico Turri
27f01bb09e Fixed instance printable property after reload from disk 2019-09-10 11:16:59 +02:00
bubnikv
6ba43ebacb Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-09 17:49:07 +02:00
Vojtech Kral
f747b97564 FirmwareDialog: Attempt to fix window double close assertion #2619 2019-09-09 16:41:14 +02:00
Enrico Turri
6507b7bf39 Fixed gizmos update after objects loading 2019-09-09 15:55:04 +02:00
Enrico Turri
eae02f6cad Fixed handling of mouse left up event when moving an object while the place on face gizmo is active 2019-09-09 14:56:55 +02:00
Enrico Turri
749a1863e5 Fixed rotate gizmo hovering 2019-09-09 12:11:49 +02:00
Enrico Turri
ae0fc75b13 Merge branch 'et_reload_from_disk' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-09 08:42:39 +02:00
Enrico Turri
98d8fa37c9 Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-09 08:28:16 +02:00
Enrico Turri
19616c4f93 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-06 17:53:17 +02:00
Enrico Turri
e6366894da Fixed object settings after reload from disk 2019-09-06 17:26:08 +02:00
Enrico Turri
5b60fe272a Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-06 17:25:39 +02:00
Vojtech Kral
d096804a24 Fix a few warnings in PrintHostDialogs, UploadDialogs 2019-09-06 16:33:00 +02:00
Enrico Turri
9cf3793aac Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-06 16:06:37 +02:00
Lukas Matena
a985a2720f Fixed some more warnings, moved function to get ExtrusionRole name into ExtrusionEntity.hpp
So it can be called from wherever it may be needed
2019-09-06 15:55:07 +02:00
Lukas Matena
3f988b314c Fixed several warnings (Config.hpp and few other files) 2019-09-06 15:55:07 +02:00
Enrico Turri
abd170fbf4 Follow-up of 6c3aae8f89 -> Fixed update of objects list when object has a unique instance 2019-09-06 15:50:54 +02:00
Vojtech Kral
34821df6eb Fix bad pointer dereference in ObjectList::list_manipulation()
Fix of #2875
2019-09-06 15:28:58 +02:00
Enrico Turri
6c3aae8f89 Fixed update of instances in objects list after reload from disk 2019-09-06 15:10:07 +02:00
Enrico Turri
4f1747d5f6 Keep correct instance selection after reload from disk 2019-09-06 14:36:47 +02:00
Enrico Turri
fe07bde385 Do not render intermediate states while reload from disk action is taking place 2019-09-06 13:49:15 +02:00
Enrico Turri
a7a01bfc72 Keep selection after reload from disk 2019-09-06 13:11:20 +02:00
YuSanka
4263fa8dff DoubleSlider refactoring 2019-09-05 15:31:22 +02:00
YuSanka
1651c8db6e Fixed ColorPrint Legend update if Print preset was changed and model was resliced. 2019-09-05 09:13:59 +02:00
Lukas Matena
09e4ac42ba Fixed some more warnings (mostly GLGizmoSlaSupports.cpp) 2019-09-04 16:05:32 +02:00
Lukas Matena
570bec299f Merge branch 'master' into dev 2019-09-04 15:50:18 +02:00
Lukas Matena
326eb5e343 GUI_ObjectList.cpp: Fixed a crash when deleting instances.
Deleting second-but-last instance deletes the whole Instances node, we must select object node in that case.
2019-09-04 15:15:35 +02:00
YuSanka
8c43b04970 Fixed debug crash in update_changed_tree_ui
Reproduce: For MK2.5S printer preset set flag "Support stealth mode"
2019-09-04 14:37:09 +02:00
YuSanka
229eff72d6 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-04 13:21:13 +02:00
YuSanka
aab3001b24 Added DoubleSlider::epsilon() to get a permissible error for layer height 2019-09-04 13:16:44 +02:00
bubnikv
a09bb3802b Updated the bundled Prusa Research profiles.
Bumped up the version number to 2.0.0-rc.
Changed the location of profiles from PrusaSlicer-beta to PrusaSlicer
(that is the location for the released software).
2019-09-04 12:50:43 +02:00
YuSanka
200ac4c35e Fixed layer Z rounding for ticks on DoubleSlider 2019-09-04 11:36:26 +02:00
Enrico Turri
308f601a99 Removed another bunch of compile warnings 2019-09-04 10:46:51 +02:00
Enrico Turri
6bbc97f24d Removed a bunch of compile warnings 2019-09-04 09:47:00 +02:00
YuSanka
db2319cb5c Fixed sidebar layouts for selected "Object" and "Layers" items in ObjectList 2019-09-04 09:24:44 +02:00
YuSanka
6b95c579af Fixed an adding of color change tick on last layer 2019-09-04 08:53:21 +02:00
YuSanka
5ae23a242b Try to fix asserts from wxBitmapCombobox 2019-09-03 15:30:37 +02:00
YuSanka
6befe7099b Fixed couple of warnings in Field.cpp, GUI_App.cpp and OptionsGroup.cpp 2019-09-03 10:59:04 +02:00
YuSanka
f73976ec8f Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-03 10:29:29 +02:00
YuSanka
c960c2cf27 Code clean in Tab.cpp and Fixed couple of Mac-warnings in :
GUI.cpp
GUI_App.cpp
GUI_ObjectList.cpp
MainFrame.hpp
Plater.cpp
PresetBundle.cpp
PresetHints.cpp
Tab.cpp
Tab.hpp
wxExtensions.cpp
wxExtensions.hpp
2019-09-03 10:29:17 +02:00
Lukas Matena
fd47891793 GLGizmoSlaSupports.cpp: Snapshot label now differs for turning the gizmo on/off
This behaviour was broken by recent merge
2019-09-03 10:16:06 +02:00
Lukas Matena
b89d9c7aff Merge branch 'lm_gizmomanagerrefactoring' into dev 2019-09-03 08:29:31 +02:00
YuSanka
9e73674578 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-02 16:49:41 +02:00
YuSanka
ac4730bc7e Fix of SPE-1015 (Colorchange doesn't work correct on last and first layers) 2019-09-02 16:49:17 +02:00
Lukas Matena
7d54b04699 Merge branch 'lm_wiping_dialog_colors' into dev 2019-09-02 16:31:22 +02:00
Lukas Matena
9ac6909d30 Fixed couple of warnings in GUI_ObjectList.cpp and GUI_ObjectSettings.cpp 2019-09-02 16:27:48 +02:00
Lukas Matena
942f959e87 Fixed couple of warnings
Turned several includes into forward declarations
Removed several sprintf calls in favor of std::to_string
2019-09-02 16:27:48 +02:00
Enrico Turri
0dfeee6caf Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-02 15:15:36 +02:00
Enrico Turri
d0513fc2da Fixed update of application's title bar when trying to import a non compatible .3mf or .amf project 2019-09-02 15:15:28 +02:00
YuSanka
fdb51912c2 Fixed SPE-1014 (Support settings in context menu for modifier) 2019-09-02 14:44:00 +02:00
Lukas Matena
19ab746a38 Merge branch 'master' into lm_gizmomanagerrefactoring 2019-09-02 14:31:03 +02:00
Lukas Matena
d8a274c5ab Nearly finished refactoring of GLGizmoManager 2019-09-02 14:30:15 +02:00
Lukas Matena
409a7c7734 SLA gizmo open/close should be saved on undo/redo stack 2019-09-02 14:30:15 +02:00
Lukas Matena
b6d35c9840 Started an attempt to refactor GLGizmoManager 2019-09-02 14:30:12 +02:00
YuSanka
dba5dd36f7 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2019-09-02 14:02:47 +02:00
YuSanka
94712544aa Fix for #2845
+ Fixed get_config_value for coFloatOrPercent (percent mode allow non-just-int values)
2019-09-02 14:02:26 +02:00
bubnikv
1e5a14a06c Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-02 11:47:23 +02:00