[med-svn] [invesalius] 01/01: New upstream version 3.1.1

Andreas Tille tille at debian.org
Tue Aug 15 14:31:46 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to annotated tag upstream/3.1.1
in repository invesalius.

commit 8d77af5afd2bcec197f421ce966521577d0f4de1
Author: Andreas Tille <tille at debian.org>
Date:   Tue Aug 15 15:59:49 2017 +0200

    New upstream version 3.1.1
---
 .gitignore                                         |   22 +
 AUTHORS.md                                         |   28 +
 AUTHORS.txt                                        |   30 -
 INSTALL.txt                                        |   23 -
 LICENSE.pt.txt                                     |    2 +-
 NEWS.txt                                           |   22 -
 README.md                                          |   27 +
 README.txt                                         |   18 -
 TODO                                               |   87 -
 TODO.txt                                           |   95 -
 app.py                                             |  348 +++
 changelog.md                                       |   53 +
 docs/user_guide_en.pdf                             |  Bin 0 -> 16272378 bytes
 docs/user_guide_en_source/Makefile                 |   13 +
 docs/user_guide_en_source/autores.tex              |   74 +
 docs/user_guide_en_source/cap_cust.tex             |   94 +
 docs/user_guide_en_source/cap_export.tex           |   87 +
 docs/user_guide_en_source/cap_geren_dados.tex      |  106 +
 docs/user_guide_en_source/cap_img.tex              |  119 ++
 docs/user_guide_en_source/cap_import.tex           |  250 +++
 docs/user_guide_en_source/cap_instal.tex           |  136 ++
 docs/user_guide_en_source/cap_manip.tex            |  414 ++++
 docs/user_guide_en_source/cap_masc.tex             |  189 ++
 docs/user_guide_en_source/cap_med.tex              |   83 +
 docs/user_guide_en_source/cap_nav.tex              |  156 ++
 docs/user_guide_en_source/cap_segmen.tex           |  349 +++
 docs/user_guide_en_source/cap_stereoscop.tex       |   44 +
 docs/user_guide_en_source/cap_superf.tex           |  220 ++
 docs/user_guide_en_source/cap_visual_simult.tex    |   50 +
 docs/user_guide_en_source/cap_visual_vol.tex       |  147 ++
 docs/user_guide_en_source/capa.tex                 |   16 +
 docs/user_guide_en_source/intro.tex                |  134 ++
 docs/user_guide_en_source/resumo.tex               |   38 +
 docs/user_guide_en_source/user_guide_en.tex        |   59 +
 .../img => user_guide_figures}/bobina.jpg          |  Bin
 .../img => user_guide_figures}/capa.png            |  Bin
 .../img => user_guide_figures}/capa2.png           |  Bin
 .../img => user_guide_figures}/capa3.png           |  Bin
 .../img => user_guide_figures}/feixe_conico.jpg    |  Bin
 docs/user_guide_figures/icons/3D_glasses.png       |  Bin 0 -> 1183 bytes
 .../img => user_guide_figures}/icons/Floppy.png    |  Bin
 .../icons/annotation.png                           |  Bin
 .../icons/brush_circle.jpg                         |  Bin
 .../icons/brush_square.jpg                         |  Bin
 .../icons/configuration.png                        |  Bin
 .../icons/connectivity_largest.png                 |  Bin
 .../icons/connectivity_manual.png                  |  Bin
 .../icons/connectivity_split_all.png               |  Bin
 .../img => user_guide_figures}/icons/cross.png     |  Bin
 .../icons/cross_original.png                       |  Bin
 docs/user_guide_figures/icons/data_duplicate.png   |  Bin 0 -> 695 bytes
 docs/user_guide_figures/icons/data_new.png         |  Bin 0 -> 477 bytes
 docs/user_guide_figures/icons/data_remove.png      |  Bin 0 -> 563 bytes
 .../img => user_guide_figures}/icons/de_DE.bmp     |  Bin
 .../img => user_guide_figures}/icons/el_GR.bmp     |  Bin
 .../img => user_guide_figures}/icons/en.bmp        |  Bin
 .../img => user_guide_figures}/icons/es.bmp        |  Bin
 .../icons/file_export.png                          |  Bin
 .../icons/file_from_internet.png                   |  Bin
 .../icons/file_from_internet_original.png          |  Bin
 .../icons/file_import.png                          |  Bin
 .../icons/file_import_original.png                 |  Bin
 .../img => user_guide_figures}/icons/file_open.png |  Bin
 .../icons/file_open_original.png                   |  Bin
 .../img => user_guide_figures}/icons/file_save.png |  Bin
 .../icons/file_save_original.png                   |  Bin
 .../img => user_guide_figures}/icons/fr.bmp        |  Bin
 .../img => user_guide_figures}/icons/inv3_icon.ico |  Bin
 .../icons/invesalius.ico                           |  Bin
 .../img => user_guide_figures}/icons/it_IT.bmp     |  Bin
 .../img => user_guide_figures}/icons/it_IT.png     |  Bin
 .../img => user_guide_figures}/icons/ko.bmp        |  Bin
 .../icons/layout_data_only.gif                     |  Bin
 .../icons/layout_data_only.png                     |  Bin
 .../icons/layout_data_only_original.gif            |  Bin
 .../icons/layout_data_only_original.png            |  Bin
 .../icons/layout_full.gif                          |  Bin
 .../icons/layout_full.png                          |  Bin
 .../icons/layout_full_original.gif                 |  Bin
 .../icons/layout_full_original.png                 |  Bin
 docs/user_guide_figures/icons/load_mesh.png        |  Bin 0 -> 882 bytes
 .../img => user_guide_figures}/icons/mask.png      |  Bin
 .../icons/mask_small.png                           |  Bin
 .../icons/measure_angle.jpg                        |  Bin
 .../icons/measure_angle.png                        |  Bin
 .../icons/measure_angle_original.jpg               |  Bin
 .../icons/measure_angle_original.png               |  Bin
 .../icons/measure_line.png                         |  Bin
 .../icons/measure_line_original.png                |  Bin
 .../icons/object_add.gif                           |  Bin
 .../icons/object_add.png                           |  Bin
 .../icons/object_add_original.png                  |  Bin
 .../icons/object_colour.jpg                        |  Bin
 .../icons/object_invisible.jpg                     |  Bin
 .../icons/object_remove.gif                        |  Bin
 .../icons/object_remove.png                        |  Bin
 .../icons/object_remove_original.png               |  Bin
 .../icons/object_visible.jpg                       |  Bin
 .../img => user_guide_figures}/icons/print.png     |  Bin
 .../icons/print_original.png                       |  Bin
 .../img => user_guide_figures}/icons/pt.bmp        |  Bin
 .../img => user_guide_figures}/icons/pt_BR.bmp     |  Bin
 .../img => user_guide_figures}/icons/show_task.png |  Bin
 .../icons/show_task_min.png                        |  Bin
 .../img => user_guide_figures}/icons/slice.png     |  Bin
 .../icons/slice_original.png                       |  Bin
 .../icons/slice_plane.png                          |  Bin
 .../icons/slice_plane_original.png                 |  Bin
 docs/user_guide_figures/icons/splash_de.png        |  Bin 0 -> 250241 bytes
 docs/user_guide_figures/icons/splash_de_DE.png     |  Bin 0 -> 250241 bytes
 docs/user_guide_figures/icons/splash_el_GR.png     |  Bin 0 -> 250241 bytes
 docs/user_guide_figures/icons/splash_en.png        |  Bin 0 -> 250241 bytes
 docs/user_guide_figures/icons/splash_es.png        |  Bin 0 -> 250241 bytes
 docs/user_guide_figures/icons/splash_fr.png        |  Bin 0 -> 250241 bytes
 .../icons/splash_it_IT.png                         |  Bin
 docs/user_guide_figures/icons/splash_ko.png        |  Bin 0 -> 250241 bytes
 docs/user_guide_figures/icons/splash_pt.png        |  Bin 0 -> 251635 bytes
 docs/user_guide_figures/icons/splash_zh_TW.png     |  Bin 0 -> 250241 bytes
 .../icons/surface_export.png                       |  Bin
 .../icons/surface_export_original.png              |  Bin
 .../img => user_guide_figures}/icons/text.gif      |  Bin
 .../img => user_guide_figures}/icons/text.png      |  Bin
 .../icons/text_inverted.png                        |  Bin
 .../icons/text_inverted_original.png               |  Bin
 .../icons/text_original.png                        |  Bin
 .../icons/tool_annotation.png                      |  Bin
 .../icons/tool_annotation_original.png             |  Bin
 .../icons/tool_contrast.png                        |  Bin
 .../icons/tool_contrast_original.png               |  Bin
 .../icons/tool_photo.png                           |  Bin
 .../icons/tool_photo_original.png                  |  Bin
 .../icons/tool_rotate.png                          |  Bin
 .../icons/tool_rotate_original.gif                 |  Bin
 .../icons/tool_rotate_original.png                 |  Bin
 .../icons/tool_translate.png                       |  Bin
 .../icons/tool_translate_original.png              |  Bin
 .../img => user_guide_figures}/icons/tool_zoom.png |  Bin
 .../icons/tool_zoom_in.png                         |  Bin
 .../icons/tool_zoom_in_original.png                |  Bin
 .../icons/tool_zoom_original.png                   |  Bin
 .../icons/tool_zoom_out.png                        |  Bin
 .../icons/tool_zoom_out_original.png               |  Bin
 .../icons/tool_zoom_select.png                     |  Bin
 .../icons/tool_zoom_select_original.png            |  Bin
 .../img => user_guide_figures}/icons/view_back.png |  Bin
 .../icons/view_bottom.png                          |  Bin
 .../icons/view_front.png                           |  Bin
 .../icons/view_isometric.png                       |  Bin
 .../img => user_guide_figures}/icons/view_left.png |  Bin
 .../icons/view_right.png                           |  Bin
 .../img => user_guide_figures}/icons/view_top.png  |  Bin
 .../icons/volume_raycasting.png                    |  Bin
 .../icons/volume_raycasting_origina.png            |  Bin
 .../img => user_guide_figures}/icons/zh_TW.bmp     |  Bin
 .../invesalius_screen/3d_automatic_position.png    |  Bin
 .../invesalius_screen/3d_automatic_position_en.png |  Bin 0 -> 8292 bytes
 .../invesalius_screen/3d_background_changed.png    |  Bin 0 -> 67320 bytes
 .../invesalius_screen/3d_linear.jpg                |  Bin
 .../invesalius_screen/3d_planes.jpg                |  Bin
 .../invesalius_screen/MIP.jpg                      |  Bin
 .../invesalius_screen/activate_cut_plane_en.png    |  Bin 0 -> 10786 bytes
 .../invesalius_screen/activate_cut_plane_pt.png}   |  Bin
 .../invesalius_screen/angular_superficie.jpg       |  Bin
 .../invesalius_screen/axial.jpg}                   |  Bin
 .../invesalius_screen/axial_angular.png            |  Bin 0 -> 81431 bytes
 .../invesalius_screen/axial_en.png                 |  Bin 0 -> 29582 bytes
 .../invesalius_screen/axial_interpoleted.png       |  Bin 0 -> 33396 bytes
 .../invesalius_screen/axial_linear.png             |  Bin 0 -> 80884 bytes
 .../invesalius_screen/axial_no_tex_en.png          |  Bin 0 -> 31786 bytes
 .../invesalius_screen/axial_not_interpoleted.png   |  Bin 0 -> 10933 bytes
 .../invesalius_screen/axial_pan.jpg}               |  Bin
 .../invesalius_screen/axial_pan_en.png             |  Bin 0 -> 119433 bytes
 .../invesalius_screen/axial_rotate.jpg}            |  Bin
 .../invesalius_screen/axial_rotate_en.png          |  Bin 0 -> 124902 bytes
 .../invesalius_screen/binary.png                   |  Bin
 .../invesalius_screen/booleano_dif.png             |  Bin
 .../invesalius_screen/booleano_disj_exc.png        |  Bin
 .../invesalius_screen/booleano_interc.png          |  Bin
 .../invesalius_screen/booleano_m_a.png             |  Bin
 .../invesalius_screen/booleano_m_b.png             |  Bin
 .../invesalius_screen/booleano_uniao.png           |  Bin
 .../invesalius_screen/brilhante_I.jpg              |  Bin
 .../invesalius_screen/colour_button.png            |  Bin 0 -> 208 bytes
 .../invesalius_screen/colour_button_en.png         |  Bin 0 -> 16357 bytes
 .../invesalius_screen/context.png                  |  Bin
 .../invesalius_screen/contraste_medio.jpg          |  Bin
 .../invesalius_screen/contraste_osso.png           |  Bin
 .../invesalius_screen/contraste_pulmao.png         |  Bin
 .../invesalius_screen/coronal.jpg}                 |  Bin
 .../invesalius_screen/coronal_en.png               |  Bin 0 -> 26607 bytes
 .../invesalius_screen/customize_1.png              |  Bin
 .../invesalius_screen/customize_2.png              |  Bin
 .../invesalius_screen/cutted_image.png             |  Bin
 .../invesalius_screen/data_mask_en.png             |  Bin 0 -> 5151 bytes
 .../invesalius_screen/data_mask_pt.png             |  Bin 0 -> 6461 bytes
 .../invesalius_screen/default.png                  |  Bin
 .../invesalius_screen/export_bmp_en.png            |  Bin 0 -> 62923 bytes
 .../invesalius_screen/export_bmp_pt.png            |  Bin 0 -> 62172 bytes
 .../invesalius_screen/export_data_window.PNG       |  Bin
 .../invesalius_screen/export_surface.png           |  Bin 0 -> 40434 bytes
 .../invesalius_screen/export_surface_en.png        |  Bin 0 -> 42881 bytes
 .../invesalius_screen/eye.jpg                      |  Bin
 .../image_reorient_adjust_center.png               |  Bin 0 -> 45523 bytes
 .../image_reorient_adjust_center_en.png            |  Bin 0 -> 109201 bytes
 .../image_reorient_rotated_applied_en.png          |  Bin 0 -> 133696 bytes
 .../image_reorient_rotated_applied_pt.png          |  Bin 0 -> 141662 bytes
 .../image_reorient_rotated_en.png                  |  Bin 0 -> 123787 bytes
 .../image_reorient_rotated_pt.png                  |  Bin 0 -> 130024 bytes
 .../invesalius_screen/image_reorient_window_en.png |  Bin 0 -> 3594 bytes
 .../invesalius_screen/image_reorient_window_pt.png |  Bin 0 -> 4312 bytes
 .../invesalius_screen/import_analyze_menu_en.png   |  Bin 0 -> 12764 bytes
 .../invesalius_screen/import_analyze_menu_pt.png   |  Bin 0 -> 16933 bytes
 .../invesalius_screen/import_analyze_window_en.png |  Bin 0 -> 24974 bytes
 .../invesalius_screen/import_analyze_window_pt.png |  Bin 0 -> 25732 bytes
 .../invesalius_screen/import_bmp_load_en.png       |  Bin 0 -> 1763 bytes
 .../invesalius_screen/import_bmp_load_pt.png       |  Bin 0 -> 1992 bytes
 .../invesalius_screen/import_bmp_menu_en.png       |  Bin 0 -> 12892 bytes
 .../invesalius_screen/import_bmp_menu_pt.png       |  Bin 0 -> 17280 bytes
 .../invesalius_screen/import_bmp_mpr_pt.png        |  Bin 0 -> 2593 bytes
 .../invesalius_screen/import_bmp_resize_pt.png     |  Bin 0 -> 7234 bytes
 .../import_bmp_select_folder_en.png                |  Bin 0 -> 15517 bytes
 .../import_bmp_select_folder_pt.png                |  Bin 0 -> 16666 bytes
 .../invesalius_screen/import_bmp_skip_en.png       |  Bin 0 -> 7625 bytes
 .../invesalius_screen/import_bmp_skip_pt.png       |  Bin 0 -> 8194 bytes
 .../invesalius_screen/import_bmp_spacing_en.png    |  Bin 0 -> 4412 bytes
 .../invesalius_screen/import_bmp_spacing_pt.png    |  Bin 0 -> 4614 bytes
 .../invesalius_screen/import_bmp_window_en.png     |  Bin 0 -> 72141 bytes
 .../invesalius_screen/import_bmp_window_pt.png     |  Bin 0 -> 76993 bytes
 .../invesalius_screen/import_load_files_en.png     |  Bin 0 -> 2288 bytes
 .../invesalius_screen/import_load_files_pt.png     |  Bin 0 -> 1964 bytes
 .../invesalius_screen/import_nifti_menu_en.png     |  Bin 0 -> 12872 bytes
 .../invesalius_screen/import_nifti_menu_pt.png     |  Bin 0 -> 17000 bytes
 .../invesalius_screen/import_nifti_window_en.png   |  Bin 0 -> 26878 bytes
 .../invesalius_screen/import_nifti_window_pt.png   |  Bin 0 -> 30351 bytes
 .../invesalius_screen/import_parrec_menu_en.png    |  Bin 0 -> 13158 bytes
 .../invesalius_screen/import_parrec_menu_pt.png    |  Bin 0 -> 17149 bytes
 .../invesalius_screen/import_parrec_window_en.png  |  Bin 0 -> 24210 bytes
 .../invesalius_screen/import_parrec_window_pt.png  |  Bin 0 -> 25357 bytes
 .../invesalius_screen/import_select_folder_en.png  |  Bin 0 -> 14617 bytes
 .../invesalius_screen/import_select_folder_pt.png  |  Bin 0 -> 16887 bytes
 .../invesalius_screen/import_surface_en.png        |  Bin 0 -> 47927 bytes
 .../invesalius_screen/import_surface_pt.png        |  Bin 0 -> 47547 bytes
 .../invesalius_screen/import_window_detail_en.png  |  Bin 0 -> 15256 bytes
 .../invesalius_screen/import_window_detail_pt.png  |  Bin 0 -> 15130 bytes
 .../invesalius_screen/import_window_en.png         |  Bin 0 -> 93253 bytes
 .../import_window_lower_memory_en.png              |  Bin 0 -> 6327 bytes
 .../import_window_lower_memory_pt.png              |  Bin 0 -> 7063 bytes
 .../invesalius_screen/import_window_progress.png   |  Bin 0 -> 1681 bytes
 .../import_window_progress_en.png                  |  Bin 0 -> 1684 bytes
 .../invesalius_screen/import_window_pt.png         |  Bin 0 -> 104872 bytes
 .../import_window_skip_slice_en.png                |  Bin 0 -> 27149 bytes
 .../import_window_skip_slice_pt.png                |  Bin 0 -> 19734 bytes
 .../installation_desktop_shortcut_en.png           |  Bin 0 -> 15041 bytes
 .../installation_desktop_shortcut_pt.png           |  Bin 0 -> 15868 bytes
 .../invesalius_screen/installation_exec_en.png     |  Bin 0 -> 16259 bytes
 .../invesalius_screen/installation_exec_pt.png     |  Bin 0 -> 18564 bytes
 .../invesalius_screen/installation_finish_en.png   |  Bin 0 -> 49787 bytes
 .../invesalius_screen/installation_finish_pt.png   |  Bin 0 -> 50871 bytes
 .../invesalius_screen/installation_folder_en.png   |  Bin 0 -> 17556 bytes
 .../invesalius_screen/installation_folder_pt.png   |  Bin 0 -> 18239 bytes
 .../invesalius_screen/installation_license_en.png  |  Bin 0 -> 22524 bytes
 .../invesalius_screen/installation_license_pt.png  |  Bin 0 -> 25141 bytes
 .../installation_program_name_en.png               |  Bin 0 -> 16445 bytes
 .../installation_program_name_pt.png               |  Bin 0 -> 17374 bytes
 .../invesalius_screen/installation_progress_en.png |  Bin 0 -> 13520 bytes
 .../invesalius_screen/installation_progress_pt.png |  Bin 0 -> 14464 bytes
 .../invesalius_screen/installation_resume_en.png   |  Bin 0 -> 17771 bytes
 .../invesalius_screen/installation_resume_pt.png   |  Bin 0 -> 18569 bytes
 .../installation_select_language_en.png            |  Bin 0 -> 4161 bytes
 .../installation_select_language_pt.png            |  Bin 0 -> 4907 bytes
 .../invesalius_screen/installation_welcome_en.png  |  Bin 0 -> 49663 bytes
 .../invesalius_screen/installation_welcome_pt.png  |  Bin 0 -> 59278 bytes
 .../invesalius_screen/invert_axis_axial_en.png     |  Bin 0 -> 104256 bytes
 .../invert_axis_axial_inverted_en.png              |  Bin 0 -> 106975 bytes
 .../invert_axis_axial_inverted_pt.png              |  Bin 0 -> 111567 bytes
 .../invesalius_screen/invert_axis_axial_pt.png     |  Bin 0 -> 119922 bytes
 .../invesalius_language_select_en.png              |  Bin 0 -> 14424 bytes
 .../invesalius_language_select_pt.png              |  Bin 0 -> 17731 bytes
 docs/user_guide_figures/invesalius_screen/mac2.png |  Bin 0 -> 282782 bytes
 docs/user_guide_figures/invesalius_screen/mac4.png |  Bin 0 -> 46598 bytes
 .../main_window_without_project_en.png             |  Bin 0 -> 36661 bytes
 .../main_window_without_project_pt.png             |  Bin 0 -> 35586 bytes
 .../mask_automatic_fill_holes_window_en.png        |  Bin 0 -> 6617 bytes
 .../mask_automatic_fill_holes_window_pt.png        |  Bin 0 -> 8308 bytes
 .../invesalius_screen/mask_axial_complete.png      |  Bin 0 -> 259163 bytes
 .../invesalius_screen/mask_axial_filled_hole.png   |  Bin 0 -> 463994 bytes
 .../mask_axial_select_part_pt.png                  |  Bin 0 -> 269411 bytes
 .../invesalius_screen/mask_axial_selected_part.png |  Bin 0 -> 256569 bytes
 .../mask_axial_selected_part_pt.png                |  Bin 0 -> 254301 bytes
 .../invesalius_screen/mask_axial_with_hole.png     |  Bin 0 -> 465838 bytes
 .../invesalius_screen/mask_boolean_dialog_en.png   |  Bin 0 -> 3182 bytes
 .../invesalius_screen/mask_boolean_dialog_pt.png   |  Bin 0 -> 4201 bytes
 .../invesalius_screen/mask_clean_menu_en.png       |  Bin 0 -> 25217 bytes
 .../invesalius_screen/mask_clean_menu_pt.png       |  Bin 0 -> 25698 bytes
 .../invesalius_screen/mask_crop_pt.png             |  Bin 0 -> 2835 bytes
 .../mask_manual_fill_holes_window_en.png           |  Bin 0 -> 4314 bytes
 .../mask_manual_fill_holes_window_pt.png           |  Bin 0 -> 4669 bytes
 .../mask_operation_boolean_menu_en.png             |  Bin 0 -> 17506 bytes
 .../mask_operation_boolean_menu_pt.png             |  Bin 0 -> 25166 bytes
 .../invesalius_screen/mask_remove_parts_window.png |  Bin 0 -> 4411 bytes
 .../mask_remove_parts_window_en.png                |  Bin 0 -> 5010 bytes
 .../invesalius_screen/mask_select_part_en.png      |  Bin 0 -> 3790 bytes
 .../invesalius_screen/mask_select_part_pt.png      |  Bin 0 -> 3702 bytes
 .../invesalius_screen/maximize_sagital_mpr.png     |  Bin 0 -> 14459 bytes
 .../menu_img_mirroring_axis_en.png                 |  Bin 0 -> 12433 bytes
 .../menu_img_mirroring_axis_pt.png                 |  Bin 0 -> 14972 bytes
 .../invesalius_screen/menu_img_reorient_en.png     |  Bin 0 -> 11705 bytes
 .../invesalius_screen/menu_img_reorient_pt.png     |  Bin 0 -> 8499 bytes
 .../menu_interpoleted_image_en.png                 |  Bin 0 -> 6922 bytes
 .../menu_interpoleted_image_pt.png                 |  Bin 0 -> 9699 bytes
 .../invesalius_screen/menu_invert_axis_en.png      |  Bin 0 -> 18109 bytes
 .../invesalius_screen/menu_invert_axis_pt.png      |  Bin 0 -> 16489 bytes
 .../menu_mask_automatic_fill_holes_en.png          |  Bin 0 -> 17696 bytes
 .../menu_mask_automatic_fill_holes_pt.png          |  Bin 0 -> 29133 bytes
 .../invesalius_screen/menu_mask_crop_en.png        |  Bin 0 -> 24880 bytes
 .../invesalius_screen/menu_mask_crop_pt.png        |  Bin 0 -> 29033 bytes
 .../menu_mask_manual_fill_holes_en.png             |  Bin 0 -> 24890 bytes
 .../menu_mask_manual_fill_holes_pt.png             |  Bin 0 -> 29214 bytes
 .../invesalius_screen/menu_mask_remove_part_en.png |  Bin 0 -> 14708 bytes
 .../invesalius_screen/menu_mask_remove_part_pt.png |  Bin 0 -> 21234 bytes
 .../invesalius_screen/menu_mask_select_part_en.png |  Bin 0 -> 24950 bytes
 .../invesalius_screen/menu_mask_select_part_pt.png |  Bin 0 -> 20977 bytes
 .../invesalius_screen/menu_projection_en.png       |  Bin 0 -> 6458 bytes
 .../invesalius_screen/menu_projection_pt.png}      |  Bin
 .../menu_save_image_window_en.png                  |  Bin 0 -> 2721 bytes
 .../menu_save_image_window_pt.png}                 |  Bin
 .../menu_segmentation_region_growing_en.png        |  Bin 0 -> 20388 bytes
 .../menu_segmentation_region_growing_pt.png        |  Bin 0 -> 27681 bytes
 .../invesalius_screen/menu_window_and_level_en.png |  Bin 0 -> 12707 bytes
 .../menu_window_and_level_pt.png}                  |  Bin
 .../invesalius_screen/mirror_axial.png             |  Bin 0 -> 103324 bytes
 .../invesalius_screen/mirror_axial_en.png          |  Bin 0 -> 86043 bytes
 .../invesalius_screen/mirror_axial_mirrored.png    |  Bin 0 -> 103528 bytes
 .../invesalius_screen/mirror_axial_mirrored_en.png |  Bin 0 -> 86296 bytes
 .../multiplanar_mask_window_en.png                 |  Bin 0 -> 145236 bytes
 .../multiplanar_mask_window_pt.png                 |  Bin 0 -> 150064 bytes
 .../multiplanar_window_contour_maxip_en.png        |  Bin 0 -> 146049 bytes
 .../multiplanar_window_contour_maxip_pt.png        |  Bin 0 -> 163560 bytes
 .../multiplanar_window_contour_mida_en.png         |  Bin 0 -> 120431 bytes
 .../multiplanar_window_contour_mida_pt.png         |  Bin 0 -> 135796 bytes
 .../multiplanar_window_cross_en.png                |  Bin 0 -> 135576 bytes
 .../multiplanar_window_cross_pt.png                |  Bin 0 -> 127224 bytes
 .../invesalius_screen/multiplanar_window_en.png    |  Bin 0 -> 135838 bytes
 .../multiplanar_window_maxip_en.png                |  Bin 0 -> 125896 bytes
 .../multiplanar_window_maxip_number_en.png         |  Bin 0 -> 2311 bytes
 .../multiplanar_window_maxip_number_pt.png         |  Bin 0 -> 2508 bytes
 .../multiplanar_window_maxip_pt.png                |  Bin 0 -> 125197 bytes
 .../multiplanar_window_mean_en.png                 |  Bin 0 -> 123460 bytes
 .../multiplanar_window_mean_pt.png                 |  Bin 0 -> 101025 bytes
 .../multiplanar_window_mida_en.png                 |  Bin 0 -> 128633 bytes
 .../multiplanar_window_mida_inverted_en.png        |  Bin 0 -> 122916 bytes
 .../multiplanar_window_mida_inverted_pt.png        |  Bin 0 -> 138522 bytes
 .../multiplanar_window_mida_pt.png                 |  Bin 0 -> 147157 bytes
 .../multiplanar_window_minip_en.png                |  Bin 0 -> 87681 bytes
 .../multiplanar_window_minip_pt.png                |  Bin 0 -> 83995 bytes
 .../invesalius_screen/multiplanar_window_pt.png    |  Bin 0 -> 129834 bytes
 .../invesalius_screen/nav_balls_in_head.png        |  Bin 0 -> 379108 bytes
 .../invesalius_screen/nav_edit_id_markers_en.png   |  Bin 0 -> 2252 bytes
 .../invesalius_screen/nav_edit_id_markers_pt.png   |  Bin 0 -> 2401 bytes
 .../invesalius_screen/nav_extra_tools_en.png       |  Bin 0 -> 6765 bytes
 .../invesalius_screen/nav_extra_tools_pt.png       |  Bin 0 -> 7261 bytes
 .../invesalius_screen/nav_fre_error_en.png         |  Bin 0 -> 904 bytes
 .../invesalius_screen/nav_fre_error_pt.png         |  Bin 0 -> 1256 bytes
 .../invesalius_screen/nav_fre_ok_en.png            |  Bin 0 -> 800 bytes
 .../invesalius_screen/nav_fre_ok_pt.png            |  Bin 0 -> 1257 bytes
 .../invesalius_screen/nav_id_list_markers_en.png   |  Bin 0 -> 7744 bytes
 .../invesalius_screen/nav_id_list_markers_pt.png   |  Bin 0 -> 8605 bytes
 .../invesalius_screen/nav_menu_en.png              |  Bin 0 -> 13212 bytes
 .../invesalius_screen/nav_menu_pt.png              |  Bin 0 -> 10960 bytes
 .../invesalius_screen/nav_menu_ref_en.png          |  Bin 0 -> 1200 bytes
 .../invesalius_screen/nav_menu_ref_pt.png          |  Bin 0 -> 1905 bytes
 .../invesalius_screen/nav_painel_en.png            |  Bin 0 -> 12885 bytes
 .../invesalius_screen/nav_painel_pt.png            |  Bin 0 -> 10143 bytes
 .../invesalius_screen/nav_selec_coord_en.png       |  Bin 0 -> 4780 bytes
 .../invesalius_screen/nav_selec_coord_pt.png       |  Bin 0 -> 4647 bytes
 .../invesalius_screen/nav_select_tracker_en.png    |  Bin 0 -> 3345 bytes
 .../invesalius_screen/nav_select_tracker_pt.png    |  Bin 0 -> 4141 bytes
 .../invesalius_screen/nav_vol_with_markers.png     |  Bin 0 -> 481672 bytes
 .../invesalius_screen/only_2d_planes.jpg           |  Bin
 .../invesalius_screen/painel_data_export_en.png    |  Bin 0 -> 5139 bytes
 .../invesalius_screen/painel_data_export_pt.png    |  Bin 0 -> 6090 bytes
 .../painel_data_export_selection_en.png            |  Bin 0 -> 5784 bytes
 .../painel_data_export_selection_pt.png            |  Bin 0 -> 6096 bytes
 .../invesalius_screen/painel_mask_manager_en.png   |  Bin 0 -> 5150 bytes
 .../invesalius_screen/painel_mask_manager_pt.png   |  Bin 0 -> 5344 bytes
 .../painel_measures_manager_en.png                 |  Bin 0 -> 8092 bytes
 .../painel_measures_manager_pt.png                 |  Bin 0 -> 8946 bytes
 .../invesalius_screen/painel_selected_mask_en.png  |  Bin 0 -> 5777 bytes
 .../invesalius_screen/painel_selected_mask_pt.png  |  Bin 0 -> 7446 bytes
 .../painel_volumetric_measures_en.png              |  Bin 0 -> 7418 bytes
 .../painel_volumetric_measures_pt.png              |  Bin 0 -> 8531 bytes
 .../invesalius_screen/proj_contornoMaxIP_1.PNG     |  Bin
 .../invesalius_screen/proj_contornoMaxIP_4.PNG     |  Bin
 .../invesalius_screen/proj_maxIP_qtd.PNG           |  Bin
 .../invesalius_screen/pseudo_default.jpg}          |  Bin
 .../invesalius_screen/pseudo_desert.jpg}           |  Bin
 .../invesalius_screen/pseudo_hue.jpg}              |  Bin
 .../invesalius_screen/pseudo_inverse.jpg}          |  Bin
 .../invesalius_screen/pseudo_menu_en.png           |  Bin 0 -> 17068 bytes
 .../invesalius_screen/pseudo_menu_pt.png}          |  Bin
 .../invesalius_screen/pseudo_ocean.jpg}            |  Bin
 .../invesalius_screen/pseudo_rainbow.jpg}          |  Bin
 .../invesalius_screen/pseudo_saturation.jpg}       |  Bin
 .../invesalius_screen/raycasting_add_1.PNG         |  Bin
 .../invesalius_screen/raycasting_add_2.PNG         |  Bin
 .../invesalius_screen/raycasting_add_3.PNG         |  Bin
 .../invesalius_screen/sagital.jpg}                 |  Bin
 .../invesalius_screen/sagital_en.png               |  Bin 0 -> 36847 bytes
 .../invesalius_screen/save_preset.png              |  Bin
 .../invesalius_screen/save_window_preset_en.png    |  Bin 0 -> 3235 bytes
 .../invesalius_screen/save_window_preset_pt.png    |  Bin 0 -> 3136 bytes
 .../segmentation_generate_surface_en.png           |  Bin 0 -> 1074 bytes
 .../segmentation_generate_surface_pt.png           |  Bin 0 -> 1087 bytes
 .../segmentation_manual_diameter.png               |  Bin 0 -> 436 bytes
 .../segmentation_manual_label_en.png               |  Bin 0 -> 573 bytes
 .../segmentation_manual_label_pt.png               |  Bin 0 -> 545 bytes
 .../segmentation_manual_noise_amalgam.jpg}         |  Bin
 .../segmentation_manual_noise_amalgam_3d.jpg}      |  Bin
 .../segmentation_manual_noise_amalgam_3d_zoom.jpg} |  Bin
 .../segmentation_manual_noise_amalgam_removed.jpg} |  Bin
 ...ation_manual_noise_amalgam_removed_3d_zoom.jpg} |  Bin
 .../segmentation_manual_pencil_type.png            |  Bin 0 -> 1060 bytes
 ...tation_manual_pencil_type_operation_type_en.png |  Bin 0 -> 1605 bytes
 ...tation_manual_pencil_type_operation_type_pt.png |  Bin 0 -> 1506 bytes
 .../segmentation_manual_window_en.png              |  Bin 0 -> 8880 bytes
 .../segmentation_manual_window_pt.png              |  Bin 0 -> 8745 bytes
 ...tion_region_growing_confidence_parameter_en.png |  Bin 0 -> 2811 bytes
 ...tion_region_growing_confidence_parameter_pt.png |  Bin 0 -> 3739 bytes
 .../segmentation_region_growing_dinamic_en.png     |  Bin 0 -> 7386 bytes
 ...ntation_region_growing_dinamic_parameter_en.png |  Bin 0 -> 2550 bytes
 ...ntation_region_growing_dinamic_parameter_pt.png |  Bin 0 -> 3218 bytes
 .../segmentation_region_growing_dinamic_pt.png     |  Bin 0 -> 7382 bytes
 .../segmentation_region_growing_limiar_en.png      |  Bin 0 -> 2265 bytes
 .../segmentation_region_growing_limiar_pt.png      |  Bin 0 -> 1799 bytes
 .../segmentation_threshold_axial_en.png            |  Bin 0 -> 30626 bytes
 .../segmentation_threshold_axial_pt.png}           |  Bin
 .../segmentation_threshold_bar.png                 |  Bin 0 -> 1162 bytes
 .../segmentation_threshold_presets_en.png          |  Bin 0 -> 448 bytes
 .../segmentation_threshold_presets_pt.png          |  Bin 0 -> 468 bytes
 .../segmentation_threshold_window_dialog_en.png    |  Bin 0 -> 4564 bytes
 .../segmentation_threshold_window_dialog_pt.png    |  Bin 0 -> 5276 bytes
 .../segmentation_threshold_window_left_en.png      |  Bin 0 -> 8587 bytes
 .../segmentation_threshold_window_left_pt.png      |  Bin 0 -> 8752 bytes
 .../segmentation_watershed_axial.png               |  Bin 0 -> 213305 bytes
 .../segmentation_watershed_conf_en.png             |  Bin 0 -> 5293 bytes
 .../segmentation_watershed_conf_pt.png             |  Bin 0 -> 6563 bytes
 .../segmentation_watershed_multiplanar_3d_pt.png   |  Bin 0 -> 321951 bytes
 .../segmentation_watershed_panel_en.png            |  Bin 0 -> 6690 bytes
 .../segmentation_watershed_panel_pt.png            |  Bin 0 -> 5984 bytes
 .../invesalius_screen/selec_operacao.png           |  Bin
 .../invesalius_screen/sem_sombreamento_II.jpg      |  Bin
 .../invesalius_screen/st_menu.png                  |  Bin 0 -> 3814 bytes
 .../invesalius_screen/st_menu_en.png               |  Bin 0 -> 4706 bytes
 .../invesalius_screen/st_surf_anaglyph.jpg         |  Bin 0 -> 108932 bytes
 .../invesalius_screen/st_surf_interlaced.jpg       |  Bin 0 -> 138111 bytes
 .../invesalius_screen/st_surf_red_blue.jpg         |  Bin 0 -> 76811 bytes
 .../surface_button_select_color_yellow.png         |  Bin 0 -> 186 bytes
 .../invesalius_screen/surface_config_panel_en.png  |  Bin 0 -> 6195 bytes
 .../invesalius_screen/surface_config_panel_pt.png  |  Bin 0 -> 6559 bytes
 .../invesalius_screen/surface_config_window_en.png |  Bin 0 -> 14540 bytes
 .../invesalius_screen/surface_config_window_pt.png |  Bin 0 -> 16494 bytes
 .../surface_extract_most_region2.jpg}              |  Bin
 .../surface_extract_most_region3.jpg}              |  Bin
 .../surface_extract_most_region_1.jpg}             |  Bin
 .../surface_extract_most_region_4.jpg}             |  Bin
 .../invesalius_screen/surface_from_threshold.png}  |  Bin
 .../surface_generation_dialog_en.png               |  Bin 0 -> 8645 bytes
 .../surface_generation_dialog_pt.png               |  Bin 0 -> 9393 bytes
 .../invesalius_screen/surface_manager.jpg          |  Bin
 .../invesalius_screen/surface_model_bottom.jpg}    |  Bin
 .../surface_model_bottom_all_parts.jpg}            |  Bin
 .../invesalius_screen/surface_model_front.jpg}     |  Bin
 .../surface_model_front_all_parts.jpg}             |  Bin
 .../surface_painel_advanced_options_en.png         |  Bin 0 -> 663 bytes
 .../surface_painel_advanced_options_pt.png         |  Bin 0 -> 675 bytes
 .../surface_select_color_windows_so_en.png         |  Bin 0 -> 16357 bytes
 .../surface_select_color_windows_so_pt.png         |  Bin 0 -> 17383 bytes
 .../invesalius_screen/surface_select_menu.png      |  Bin 0 -> 640 bytes
 .../invesalius_screen/surface_select_menu_en.png   |  Bin 0 -> 578 bytes
 .../invesalius_screen/surface_split_en.png         |  Bin 0 -> 7286 bytes
 .../invesalius_screen/surface_split_pt.png         |  Bin 0 -> 7185 bytes
 .../invesalius_screen/surface_transparency_en.png  |  Bin 0 -> 689 bytes
 .../invesalius_screen/surface_transparency_pt.png  |  Bin 0 -> 713 bytes
 .../invesalius_screen/text_off.png                 |  Bin
 .../invesalius_screen/text_on.png                  |  Bin
 .../invesalius_screen/tool_image_with_zoom.jpg}    |  Bin
 .../invesalius_screen/tool_image_with_zoom_en.png  |  Bin 0 -> 103086 bytes
 .../invesalius_screen/tool_zoom_select_image.jpg}  |  Bin
 .../tool_zoom_select_image_en.png                  |  Bin 0 -> 81399 bytes
 .../invesalius_screen/transparency_2.png           |  Bin
 .../invesalius_screen/vias_aereas_II.jpg           |  Bin
 .../invesalius_screen/view_2d_3d_1.png             |  Bin
 .../invesalius_screen/view_2d_3d_1_en.png          |  Bin 0 -> 2871 bytes
 .../invesalius_screen/view_2d_3d_2.png             |  Bin
 .../invesalius_screen/view_2d_3d_2_en.png          |  Bin 0 -> 3196 bytes
 .../invesalius_screen/window_gantry_tilt_en.png    |  Bin 0 -> 2240 bytes
 .../invesalius_screen/window_gantry_tilt_pt.png    |  Bin 0 -> 2649 bytes
 .../window_mpr_not_painels_en.png                  |  Bin 0 -> 223929 bytes
 .../window_mpr_not_painels_pt.png                  |  Bin 0 -> 241089 bytes
 .../img => user_guide_figures}/logo_cti.jpg        |  Bin
 .../img => user_guide_figures}/rm_ge.jpg           |  Bin
 .../img => user_guide_figures}/tomografo.jpg       |  Bin
 docs/user_guide_figures/tracker_claron.png         |  Bin 0 -> 258087 bytes
 docs/user_guide_figures/tracker_polhemus.jpg       |  Bin 0 -> 68472 bytes
 docs/user_guide_pt_BR.pdf                          |  Bin 12262270 -> 16730140 bytes
 docs/user_guide_pt_BR_source/Makefile              |    6 +-
 docs/user_guide_pt_BR_source/autores.tex           |   23 +
 docs/user_guide_pt_BR_source/cap_cust.tex          |    8 +-
 docs/user_guide_pt_BR_source/cap_export.tex        |   14 +-
 docs/user_guide_pt_BR_source/cap_geren_dados.tex   |   31 +-
 docs/user_guide_pt_BR_source/cap_img.tex           |  122 ++
 docs/user_guide_pt_BR_source/cap_import.tex        |  163 +-
 docs/user_guide_pt_BR_source/cap_instal.tex        |   48 +-
 docs/user_guide_pt_BR_source/cap_manip.tex         |  152 +-
 docs/user_guide_pt_BR_source/cap_masc.tex          |  189 ++
 docs/user_guide_pt_BR_source/cap_med.tex           |   20 +-
 docs/user_guide_pt_BR_source/cap_nav.tex           |  159 ++
 docs/user_guide_pt_BR_source/cap_segmen.tex        |  167 +-
 docs/user_guide_pt_BR_source/cap_stereoscop.tex    |   42 +
 docs/user_guide_pt_BR_source/cap_superf.tex        |   43 +-
 docs/user_guide_pt_BR_source/cap_visual_vol.tex    |    5 +-
 docs/user_guide_pt_BR_source/capa.tex              |    4 +-
 docs/user_guide_pt_BR_source/img/bobina.bb         |    5 -
 docs/user_guide_pt_BR_source/img/capa.bb           |    5 -
 docs/user_guide_pt_BR_source/img/capa2.bb          |    5 -
 docs/user_guide_pt_BR_source/img/feixe_conico.bb   |    5 -
 docs/user_guide_pt_BR_source/img/icons/Floppy.bb   |    5 -
 .../img/icons/annotation.bb                        |    5 -
 .../img/icons/connectivity_largest.bb              |    5 -
 .../img/icons/connectivity_manual.bb               |    5 -
 .../img/icons/connectivity_split_all.bb            |    5 -
 docs/user_guide_pt_BR_source/img/icons/cross.bb    |    5 -
 .../img/icons/cross_original.bb                    |    5 -
 .../img/icons/data_duplicate.bb                    |    5 -
 .../img/icons/data_duplicate.png                   |  Bin 806 -> 0 bytes
 docs/user_guide_pt_BR_source/img/icons/data_new.bb |    5 -
 .../user_guide_pt_BR_source/img/icons/data_new.png |  Bin 767 -> 0 bytes
 .../img/icons/data_remove.bb                       |    5 -
 .../img/icons/data_remove.png                      |  Bin 643 -> 0 bytes
 .../img/icons/file_export.bb                       |    5 -
 .../img/icons/file_from_internet.bb                |    5 -
 .../img/icons/file_from_internet_original.bb       |    5 -
 .../img/icons/file_import.bb                       |    5 -
 .../img/icons/file_import_original.bb              |    5 -
 .../user_guide_pt_BR_source/img/icons/file_open.bb |    5 -
 .../img/icons/file_open_original.bb                |    5 -
 .../user_guide_pt_BR_source/img/icons/file_save.bb |    5 -
 .../img/icons/file_save_original.bb                |    5 -
 docs/user_guide_pt_BR_source/img/icons/it_IT.bb    |    5 -
 .../img/icons/layout_data_only.bb                  |    5 -
 .../img/icons/layout_data_only_original.bb         |    5 -
 .../img/icons/layout_full.bb                       |    5 -
 .../img/icons/layout_full_original.bb              |    5 -
 docs/user_guide_pt_BR_source/img/icons/mask.bb     |    5 -
 .../img/icons/mask_small.bb                        |    5 -
 .../img/icons/measure_angle.bb                     |    5 -
 .../img/icons/measure_angle_original.bb            |    5 -
 .../img/icons/measure_line.bb                      |    5 -
 .../img/icons/measure_line_original.bb             |    5 -
 .../img/icons/object_add.bb                        |    5 -
 .../img/icons/object_add_original.bb               |    5 -
 .../img/icons/object_remove.bb                     |    5 -
 .../img/icons/object_remove_original.bb            |    5 -
 docs/user_guide_pt_BR_source/img/icons/print.bb    |    5 -
 .../img/icons/print_original.bb                    |    5 -
 .../user_guide_pt_BR_source/img/icons/show_task.bb |    5 -
 .../img/icons/show_task_min.bb                     |    5 -
 docs/user_guide_pt_BR_source/img/icons/slice.bb    |    5 -
 .../img/icons/slice_original.bb                    |    5 -
 .../img/icons/slice_plane.bb                       |    5 -
 .../img/icons/slice_plane_original.bb              |    5 -
 .../user_guide_pt_BR_source/img/icons/splash_de.bb |    5 -
 .../img/icons/splash_de.png                        |  Bin 222287 -> 0 bytes
 .../img/icons/splash_de_DE.bb                      |    5 -
 .../img/icons/splash_de_DE.png                     |  Bin 222287 -> 0 bytes
 .../img/icons/splash_el_GR.bb                      |    5 -
 .../img/icons/splash_el_GR.png                     |  Bin 222287 -> 0 bytes
 .../user_guide_pt_BR_source/img/icons/splash_en.bb |    5 -
 .../img/icons/splash_en.png                        |  Bin 222287 -> 0 bytes
 .../user_guide_pt_BR_source/img/icons/splash_es.bb |    5 -
 .../img/icons/splash_es.png                        |  Bin 222933 -> 0 bytes
 .../user_guide_pt_BR_source/img/icons/splash_fr.bb |    5 -
 .../img/icons/splash_fr.png                        |  Bin 224800 -> 0 bytes
 .../img/icons/splash_it_IT.bb                      |    5 -
 .../user_guide_pt_BR_source/img/icons/splash_ko.bb |    5 -
 .../img/icons/splash_ko.png                        |  Bin 222287 -> 0 bytes
 .../user_guide_pt_BR_source/img/icons/splash_pt.bb |    5 -
 .../img/icons/splash_pt.png                        |  Bin 224800 -> 0 bytes
 .../img/icons/splash_zh_TW.bb                      |    5 -
 .../img/icons/splash_zh_TW.png                     |  Bin 222287 -> 0 bytes
 .../img/icons/surface_export.bb                    |    5 -
 .../img/icons/surface_export_original.bb           |    5 -
 docs/user_guide_pt_BR_source/img/icons/text.bb     |    5 -
 .../img/icons/text_inverted.bb                     |    5 -
 .../img/icons/text_inverted_original.bb            |    5 -
 .../img/icons/text_original.bb                     |    5 -
 .../img/icons/tool_annotation.bb                   |    5 -
 .../img/icons/tool_annotation_original.bb          |    5 -
 .../img/icons/tool_contrast.bb                     |    5 -
 .../img/icons/tool_contrast_original.bb            |    5 -
 .../img/icons/tool_photo.bb                        |    5 -
 .../img/icons/tool_photo_original.bb               |    5 -
 .../img/icons/tool_rotate.bb                       |    5 -
 .../img/icons/tool_rotate_original.bb              |    5 -
 .../img/icons/tool_translate.bb                    |    5 -
 .../img/icons/tool_translate_original.bb           |    5 -
 .../user_guide_pt_BR_source/img/icons/tool_zoom.bb |    5 -
 .../img/icons/tool_zoom_in.bb                      |    5 -
 .../img/icons/tool_zoom_in_original.bb             |    5 -
 .../img/icons/tool_zoom_original.bb                |    5 -
 .../img/icons/tool_zoom_out.bb                     |    5 -
 .../img/icons/tool_zoom_out_original.bb            |    5 -
 .../img/icons/tool_zoom_select.bb                  |    5 -
 .../img/icons/tool_zoom_select_original.bb         |    5 -
 .../user_guide_pt_BR_source/img/icons/view_back.bb |    5 -
 .../img/icons/view_bottom.bb                       |    5 -
 .../img/icons/view_front.bb                        |    5 -
 .../img/icons/view_isometric.bb                    |    5 -
 .../user_guide_pt_BR_source/img/icons/view_left.bb |    5 -
 .../img/icons/view_right.bb                        |    5 -
 docs/user_guide_pt_BR_source/img/icons/view_top.bb |    5 -
 .../img/icons/volume_raycasting.bb                 |    5 -
 .../img/icons/volume_raycasting_original.bb        |    5 -
 .../img/invesalius_screen/3d_automatic_position.bb |    5 -
 .../img/invesalius_screen/3d_background.bb         |    5 -
 .../img/invesalius_screen/3d_background.png        |  Bin 35860 -> 0 bytes
 .../img/invesalius_screen/3d_linear.bb             |    5 -
 .../img/invesalius_screen/3d_model.bb              |    5 -
 .../img/invesalius_screen/3d_planes.bb             |    5 -
 .../img/invesalius_screen/MIP.bb                   |    5 -
 .../invesalius_screen/ScreenHunter01Jan201144.bb   |    5 -
 .../invesalius_screen/ScreenHunter01Jan201144.jpg  |  Bin 44967 -> 0 bytes
 .../ScreenHunter_01 Jan. 02 19.41.bb               |    5 -
 .../invesalius_screen/ScreenHunter_01Dec311131.bb  |    5 -
 .../invesalius_screen/ScreenHunter_01Dec311131.jpg |  Bin 23286 -> 0 bytes
 .../invesalius_screen/ScreenHunter_01Jan021941.bb  |    5 -
 .../invesalius_screen/ScreenHunter_01Jan021941.jpg |  Bin 164190 -> 0 bytes
 .../invesalius_screen/ScreenHunter_02Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_02Dec310024.jpg |  Bin 40953 -> 0 bytes
 .../invesalius_screen/ScreenHunter_02Dec311131.bb  |    5 -
 .../invesalius_screen/ScreenHunter_02Dec311131.jpg |  Bin 23286 -> 0 bytes
 .../invesalius_screen/ScreenHunter_02Dec311523.bb  |    5 -
 .../invesalius_screen/ScreenHunter_02Dec311523.jpg |  Bin 39106 -> 0 bytes
 .../invesalius_screen/ScreenHunter_03Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_03Dec310024.jpg |  Bin 54879 -> 0 bytes
 .../invesalius_screen/ScreenHunter_03Dec311131.bb  |    5 -
 .../invesalius_screen/ScreenHunter_03Dec311131.jpg |  Bin 10204 -> 0 bytes
 .../invesalius_screen/ScreenHunter_03Dec311523.bb  |    5 -
 .../invesalius_screen/ScreenHunter_03Dec311523.jpg |  Bin 15949 -> 0 bytes
 .../invesalius_screen/ScreenHunter_04Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_04Dec310024.jpg |  Bin 55255 -> 0 bytes
 .../invesalius_screen/ScreenHunter_04Dec311139.bb  |    5 -
 .../invesalius_screen/ScreenHunter_04Dec311139.jpg |  Bin 24408 -> 0 bytes
 .../invesalius_screen/ScreenHunter_05Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_05Dec310024.jpg |  Bin 40742 -> 0 bytes
 .../invesalius_screen/ScreenHunter_05Dec311139.bb  |    5 -
 .../invesalius_screen/ScreenHunter_05Dec311139.jpg |  Bin 9289 -> 0 bytes
 .../invesalius_screen/ScreenHunter_06Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_06Dec310024.jpg |  Bin 39822 -> 0 bytes
 .../invesalius_screen/ScreenHunter_06Dec311139.bb  |    5 -
 .../invesalius_screen/ScreenHunter_06Dec311139.jpg |  Bin 126162 -> 0 bytes
 .../invesalius_screen/ScreenHunter_06Jan062046.bb  |    5 -
 .../ScreenHunter_07 Jan. 06 20.46.jpg              |  Bin 96545 -> 0 bytes
 .../invesalius_screen/ScreenHunter_07Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_07Dec310024.jpg |  Bin 35730 -> 0 bytes
 .../invesalius_screen/ScreenHunter_07Dec311139.bb  |    5 -
 .../invesalius_screen/ScreenHunter_07Dec311139.jpg |  Bin 145396 -> 0 bytes
 .../invesalius_screen/ScreenHunter_08Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_08Dec310024.jpg |  Bin 35780 -> 0 bytes
 .../invesalius_screen/ScreenHunter_08Dec311139.bb  |    5 -
 .../invesalius_screen/ScreenHunter_08Dec311139.jpg |  Bin 230994 -> 0 bytes
 .../invesalius_screen/ScreenHunter_08Dec311139_.bb |    5 -
 .../ScreenHunter_08Dec311139_.jpg                  |  Bin 64076 -> 0 bytes
 .../invesalius_screen/ScreenHunter_08Jan062046.bb  |    5 -
 .../invesalius_screen/ScreenHunter_09Dec310024.bb  |    5 -
 .../invesalius_screen/ScreenHunter_09Dec310024.jpg |  Bin 42207 -> 0 bytes
 .../invesalius_screen/ScreenHunter_09Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_09Dec311140.jpg |  Bin 231976 -> 0 bytes
 .../invesalius_screen/ScreenHunter_10Dec310025.bb  |    5 -
 .../invesalius_screen/ScreenHunter_10Dec310025.jpg |  Bin 29048 -> 0 bytes
 .../invesalius_screen/ScreenHunter_10Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_10Dec311140.jpg |  Bin 205225 -> 0 bytes
 .../invesalius_screen/ScreenHunter_11Dec310025.bb  |    5 -
 .../invesalius_screen/ScreenHunter_11Dec310025.jpg |  Bin 28335 -> 0 bytes
 .../invesalius_screen/ScreenHunter_11Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_11Dec311140.jpg |  Bin 206875 -> 0 bytes
 .../ScreenHunter_12 Jan. 02 19.43.bb               |    5 -
 .../invesalius_screen/ScreenHunter_12Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_12Dec311140.jpg |  Bin 206728 -> 0 bytes
 .../invesalius_screen/ScreenHunter_12Jan021943.bb  |    5 -
 .../invesalius_screen/ScreenHunter_12Jan021943.jpg |  Bin 167861 -> 0 bytes
 .../ScreenHunter_12Jan021943_0.bb                  |    5 -
 .../ScreenHunter_12Jan021943_1.bb                  |    5 -
 .../ScreenHunter_12Jan021943_1.jpg                 |  Bin 167861 -> 0 bytes
 .../ScreenHunter_13 Jan. 02 19.43.bb               |    5 -
 .../invesalius_screen/ScreenHunter_13Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_13Dec311140.jpg |  Bin 214045 -> 0 bytes
 .../invesalius_screen/ScreenHunter_13Dec311140_.bb |    5 -
 .../ScreenHunter_13Dec311140_.jpg                  |  Bin 21961 -> 0 bytes
 .../invesalius_screen/ScreenHunter_13Jan021943.bb  |    5 -
 .../invesalius_screen/ScreenHunter_13Jan021943.jpg |  Bin 135461 -> 0 bytes
 .../ScreenHunter_14 Jan. 02 19.43.bb               |    5 -
 .../invesalius_screen/ScreenHunter_14Dec310025.bb  |    5 -
 .../invesalius_screen/ScreenHunter_14Dec310025.jpg |  Bin 39594 -> 0 bytes
 .../invesalius_screen/ScreenHunter_14Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_14Dec311140.jpg |  Bin 8765 -> 0 bytes
 .../invesalius_screen/ScreenHunter_14Jan021943.bb  |    5 -
 .../invesalius_screen/ScreenHunter_14Jan021943.jpg |  Bin 137499 -> 0 bytes
 .../ScreenHunter_15 Jan. 02 19.43.bb               |    5 -
 .../invesalius_screen/ScreenHunter_15Dec310025.bb  |    5 -
 .../invesalius_screen/ScreenHunter_15Dec310025.jpg |  Bin 9683 -> 0 bytes
 .../invesalius_screen/ScreenHunter_15Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_15Dec311140.jpg |  Bin 128893 -> 0 bytes
 .../invesalius_screen/ScreenHunter_15Jan021943.bb  |    5 -
 .../invesalius_screen/ScreenHunter_15Jan021943.jpg |  Bin 147169 -> 0 bytes
 .../ScreenHunter_16 Jan. 02 19.43.bb               |    5 -
 .../invesalius_screen/ScreenHunter_16Dec310025.bb  |    5 -
 .../invesalius_screen/ScreenHunter_16Dec310025.jpg |  Bin 9807 -> 0 bytes
 .../invesalius_screen/ScreenHunter_16Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_16Dec311140.jpg |  Bin 139713 -> 0 bytes
 .../invesalius_screen/ScreenHunter_16Jan021943.bb  |    5 -
 .../invesalius_screen/ScreenHunter_16Jan021943.jpg |  Bin 124766 -> 0 bytes
 .../ScreenHunter_17 Jan. 02 19.43.bb               |    5 -
 .../invesalius_screen/ScreenHunter_17Dec310026.bb  |    5 -
 .../invesalius_screen/ScreenHunter_17Dec310026.jpg |  Bin 41420 -> 0 bytes
 .../invesalius_screen/ScreenHunter_17Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_17Dec311140.jpg |  Bin 157757 -> 0 bytes
 .../invesalius_screen/ScreenHunter_17Jan021943.bb  |    5 -
 .../invesalius_screen/ScreenHunter_17Jan021943.jpg |  Bin 144726 -> 0 bytes
 .../ScreenHunter_18 Jan. 02 19.43.bb               |    5 -
 .../invesalius_screen/ScreenHunter_18Dec310026.bb  |    5 -
 .../invesalius_screen/ScreenHunter_18Dec310026.jpg |  Bin 59792 -> 0 bytes
 .../invesalius_screen/ScreenHunter_18Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_18Dec311140.jpg |  Bin 145175 -> 0 bytes
 .../ScreenHunter_18Dec311140_1.bb                  |    5 -
 .../ScreenHunter_18Dec311140_1.jpg                 |  Bin 179241 -> 0 bytes
 .../invesalius_screen/ScreenHunter_18Jan021943.bb  |    5 -
 .../invesalius_screen/ScreenHunter_18Jan021943.jpg |  Bin 129628 -> 0 bytes
 .../ScreenHunter_19 Jan. 02 19.44.bb               |    5 -
 .../invesalius_screen/ScreenHunter_19Dec310026.bb  |    5 -
 .../invesalius_screen/ScreenHunter_19Dec310026.jpg |  Bin 59806 -> 0 bytes
 .../invesalius_screen/ScreenHunter_19Dec311140.bb  |    5 -
 .../invesalius_screen/ScreenHunter_19Dec311140.jpg |  Bin 119876 -> 0 bytes
 .../invesalius_screen/ScreenHunter_19Jan021944.bb  |    5 -
 .../invesalius_screen/ScreenHunter_19Jan021944.jpg |  Bin 130521 -> 0 bytes
 .../ScreenHunter_20 Jan. 02 19.44.bb               |    5 -
 .../invesalius_screen/ScreenHunter_20Dec310027.bb  |    5 -
 .../invesalius_screen/ScreenHunter_20Dec310027.jpg |  Bin 145979 -> 0 bytes
 .../invesalius_screen/ScreenHunter_20Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_20Dec311141.jpg |  Bin 126375 -> 0 bytes
 .../invesalius_screen/ScreenHunter_20Jan021944.bb  |    5 -
 .../ScreenHunter_21 Jan. 02 19.44.bb               |    5 -
 .../invesalius_screen/ScreenHunter_21Dec310027.bb  |    5 -
 .../invesalius_screen/ScreenHunter_21Dec310027.jpg |  Bin 145589 -> 0 bytes
 .../invesalius_screen/ScreenHunter_21Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_21Dec311141.jpg |  Bin 120210 -> 0 bytes
 .../invesalius_screen/ScreenHunter_21Jan021944.bb  |    5 -
 .../ScreenHunter_22 Jan. 02 19.44.bb               |    5 -
 .../invesalius_screen/ScreenHunter_22Dec310029.bb  |    5 -
 .../invesalius_screen/ScreenHunter_22Dec310029.jpg |  Bin 152765 -> 0 bytes
 .../invesalius_screen/ScreenHunter_22Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_22Dec311141.jpg |  Bin 116383 -> 0 bytes
 .../invesalius_screen/ScreenHunter_22Jan021944.bb  |    5 -
 .../ScreenHunter_23 Jan. 02 19.44.bb               |    5 -
 .../invesalius_screen/ScreenHunter_23Dec310029.bb  |    5 -
 .../invesalius_screen/ScreenHunter_23Dec310029.jpg |  Bin 154281 -> 0 bytes
 .../invesalius_screen/ScreenHunter_23Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_23Dec311141.jpg |  Bin 122131 -> 0 bytes
 .../invesalius_screen/ScreenHunter_23Jan021944.bb  |    5 -
 .../ScreenHunter_23_Jan_23_23_10.bb                |    5 -
 .../ScreenHunter_23_Jan_23_23_10.jpg               |  Bin 33520 -> 0 bytes
 .../ScreenHunter_24 Jan. 02 19.44.bb               |    5 -
 .../invesalius_screen/ScreenHunter_24Dec310029.bb  |    5 -
 .../invesalius_screen/ScreenHunter_24Dec310029_.bb |    5 -
 .../invesalius_screen/ScreenHunter_24Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_24Dec311141.jpg |  Bin 116149 -> 0 bytes
 .../invesalius_screen/ScreenHunter_24Dec311141_.bb |    5 -
 .../invesalius_screen/ScreenHunter_24Jan021944.bb  |    5 -
 .../ScreenHunter_25 Jan. 02 19.44.bb               |    5 -
 .../invesalius_screen/ScreenHunter_25Dec310029.bb  |    5 -
 .../invesalius_screen/ScreenHunter_25Dec310029.jpg |  Bin 123318 -> 0 bytes
 .../invesalius_screen/ScreenHunter_25Dec310029_.bb |    5 -
 .../invesalius_screen/ScreenHunter_25Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_25Dec311141.jpg |  Bin 127148 -> 0 bytes
 .../invesalius_screen/ScreenHunter_25Jan021944.bb  |    5 -
 .../ScreenHunter_26 Jan. 02 19.46.bb               |    5 -
 .../invesalius_screen/ScreenHunter_26Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_26Dec310030.jpg |  Bin 116227 -> 0 bytes
 .../invesalius_screen/ScreenHunter_26Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_26Dec311141.jpg |  Bin 139903 -> 0 bytes
 .../invesalius_screen/ScreenHunter_26Jan021946.bb  |    5 -
 .../invesalius_screen/ScreenHunter_26Jan021946.jpg |  Bin 175834 -> 0 bytes
 .../img/invesalius_screen/ScreenHunter_27De.bb     |    5 -
 .../img/invesalius_screen/ScreenHunter_27De.jpg    |  Bin 133080 -> 0 bytes
 .../invesalius_screen/ScreenHunter_27Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_27Dec310030.jpg |  Bin 123398 -> 0 bytes
 .../invesalius_screen/ScreenHunter_27Dec311141.bb  |    5 -
 .../ScreenHunter_27Dec311141__.bb                  |    5 -
 .../ScreenHunter_27Dec311141__.jpg                 |  Bin 10290 -> 0 bytes
 .../invesalius_screen/ScreenHunter_28Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_28Dec310030.jpg |  Bin 152950 -> 0 bytes
 .../invesalius_screen/ScreenHunter_28Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_28Dec311141.jpg |  Bin 125948 -> 0 bytes
 .../invesalius_screen/ScreenHunter_28Dec311141_.bb |    5 -
 .../ScreenHunter_28Dec311141_.jpg                  |  Bin 153250 -> 0 bytes
 .../invesalius_screen/ScreenHunter_29Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_29Dec310030.jpg |  Bin 153697 -> 0 bytes
 .../invesalius_screen/ScreenHunter_29Dec311141.bb  |    5 -
 .../invesalius_screen/ScreenHunter_29Dec311141.jpg |  Bin 153424 -> 0 bytes
 .../invesalius_screen/ScreenHunter_29Dec311141_.bb |    5 -
 .../ScreenHunter_29Dec311141_.jpg                  |  Bin 21553 -> 0 bytes
 .../invesalius_screen/ScreenHunter_30Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_30Dec310030.jpg |  Bin 140504 -> 0 bytes
 .../invesalius_screen/ScreenHunter_30Dec311142.bb  |    5 -
 .../invesalius_screen/ScreenHunter_30Dec311142.jpg |  Bin 147007 -> 0 bytes
 .../invesalius_screen/ScreenHunter_31Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_31Dec310030.jpg |  Bin 153181 -> 0 bytes
 .../invesalius_screen/ScreenHunter_31Dec311142.bb  |    5 -
 .../invesalius_screen/ScreenHunter_31Dec311142.jpg |  Bin 158029 -> 0 bytes
 .../invesalius_screen/ScreenHunter_32Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_32Dec310030.jpg |  Bin 148756 -> 0 bytes
 .../invesalius_screen/ScreenHunter_32Dec311142.bb  |    5 -
 .../invesalius_screen/ScreenHunter_32Dec311142.jpg |  Bin 134992 -> 0 bytes
 .../invesalius_screen/ScreenHunter_33Dec310030.bb  |    5 -
 .../invesalius_screen/ScreenHunter_33Dec310030.jpg |  Bin 141141 -> 0 bytes
 .../invesalius_screen/ScreenHunter_33Dec311142.bb  |    5 -
 .../invesalius_screen/ScreenHunter_33Dec311142.jpg |  Bin 42344 -> 0 bytes
 .../invesalius_screen/ScreenHunter_34Dec311142.bb  |    5 -
 .../invesalius_screen/ScreenHunter_34Dec311142.jpg |  Bin 125658 -> 0 bytes
 .../invesalius_screen/ScreenHunter_35Dec311142.bb  |    5 -
 .../invesalius_screen/ScreenHunter_35Dec311142.jpg |  Bin 151222 -> 0 bytes
 .../invesalius_screen/ScreenHunter_36Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_36Dec311143.jpg |  Bin 36665 -> 0 bytes
 .../invesalius_screen/ScreenHunter_37Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_37Dec311143.jpg |  Bin 36642 -> 0 bytes
 .../invesalius_screen/ScreenHunter_38Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_38Dec311143.jpg |  Bin 152545 -> 0 bytes
 .../invesalius_screen/ScreenHunter_39Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_39Dec311143.jpg |  Bin 149582 -> 0 bytes
 .../invesalius_screen/ScreenHunter_40Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_40Dec311143.jpg |  Bin 155235 -> 0 bytes
 .../invesalius_screen/ScreenHunter_41Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_41Dec311143.jpg |  Bin 150256 -> 0 bytes
 .../invesalius_screen/ScreenHunter_42Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_42Dec311143.jpg |  Bin 150887 -> 0 bytes
 .../invesalius_screen/ScreenHunter_43Dec311143.bb  |    5 -
 .../invesalius_screen/ScreenHunter_43Dec311143.jpg |  Bin 145604 -> 0 bytes
 .../invesalius_screen/ScreenHunter_44Dec311144.bb  |    5 -
 .../invesalius_screen/ScreenHunter_44Dec311144.jpg |  Bin 116748 -> 0 bytes
 .../invesalius_screen/ScreenHunter_45Dec311144.bb  |    5 -
 .../invesalius_screen/ScreenHunter_45Dec311144.jpg |  Bin 101378 -> 0 bytes
 .../ScreenHunter_46 Jan_23_23_34.bb                |    5 -
 .../invesalius_screen/ScreenHunter_46Dec311144.bb  |    5 -
 .../invesalius_screen/ScreenHunter_46Dec311144.jpg |  Bin 104754 -> 0 bytes
 .../invesalius_screen/ScreenHunter_47Dec311144.bb  |    5 -
 .../invesalius_screen/ScreenHunter_47Dec311144.jpg |  Bin 104210 -> 0 bytes
 .../ScreenHunter_48 Jan_23_23_34.bb                |    5 -
 .../invesalius_screen/ScreenHunter_48Dec311144.bb  |    5 -
 .../invesalius_screen/ScreenHunter_48Dec311144.jpg |  Bin 111628 -> 0 bytes
 .../ScreenHunter_48_Jan_23_23_34.bb                |    5 -
 .../invesalius_screen/ScreenHunter_49Dec311144.bb  |    5 -
 .../invesalius_screen/ScreenHunter_49Dec311144.jpg |  Bin 132285 -> 0 bytes
 .../invesalius_screen/ScreenHunter_50Dec311144.bb  |    5 -
 .../invesalius_screen/ScreenHunter_50Dec311144.jpg |  Bin 118209 -> 0 bytes
 .../invesalius_screen/ScreenHunter_50Jan232334.bb  |    5 -
 .../invesalius_screen/ScreenHunter_51Dec311148.bb  |    5 -
 .../invesalius_screen/ScreenHunter_51Dec311148.jpg |  Bin 148332 -> 0 bytes
 .../invesalius_screen/ScreenHunter_52Dec311149.bb  |    5 -
 .../invesalius_screen/ScreenHunter_52Dec311149.jpg |  Bin 148332 -> 0 bytes
 .../invesalius_screen/ScreenHunter_52Jan232335.bb  |    5 -
 .../invesalius_screen/ScreenHunter_53Dec311149.bb  |    5 -
 .../invesalius_screen/ScreenHunter_53Dec311149.jpg |  Bin 148332 -> 0 bytes
 .../invesalius_screen/ScreenHunter_53Jan232336.bb  |    5 -
 .../invesalius_screen/ScreenHunter_54Dec311149.bb  |    5 -
 .../invesalius_screen/ScreenHunter_54Dec311149.jpg |  Bin 149729 -> 0 bytes
 .../invesalius_screen/ScreenHunter_55Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_55Dec311150.jpg |  Bin 140295 -> 0 bytes
 .../invesalius_screen/ScreenHunter_56Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_56Dec311150.jpg |  Bin 140285 -> 0 bytes
 .../invesalius_screen/ScreenHunter_57Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_57Dec311150.jpg |  Bin 140295 -> 0 bytes
 .../invesalius_screen/ScreenHunter_58Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_58Dec311150.jpg |  Bin 144058 -> 0 bytes
 .../invesalius_screen/ScreenHunter_59Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_59Dec311150.jpg |  Bin 156270 -> 0 bytes
 .../invesalius_screen/ScreenHunter_60Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_60Dec311150.jpg |  Bin 120730 -> 0 bytes
 .../invesalius_screen/ScreenHunter_61Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_61Dec311150.jpg |  Bin 121215 -> 0 bytes
 .../invesalius_screen/ScreenHunter_62Dec311150.bb  |    5 -
 .../invesalius_screen/ScreenHunter_62Dec311150.jpg |  Bin 120822 -> 0 bytes
 .../invesalius_screen/ScreenHunter_63Dec311151.bb  |    5 -
 .../invesalius_screen/ScreenHunter_63Dec311151.jpg |  Bin 121756 -> 0 bytes
 .../invesalius_screen/ScreenHunter_64Dec311151.bb  |    5 -
 .../invesalius_screen/ScreenHunter_64Dec311151.jpg |  Bin 112050 -> 0 bytes
 .../invesalius_screen/ScreenHunter_65Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_65Dec311152.jpg |  Bin 115091 -> 0 bytes
 .../invesalius_screen/ScreenHunter_66Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_66Dec311152.jpg |  Bin 115498 -> 0 bytes
 .../invesalius_screen/ScreenHunter_67Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_67Dec311152.jpg |  Bin 117286 -> 0 bytes
 .../invesalius_screen/ScreenHunter_68Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_68Dec311152.jpg |  Bin 119929 -> 0 bytes
 .../invesalius_screen/ScreenHunter_69Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_69Dec311152.jpg |  Bin 127022 -> 0 bytes
 .../invesalius_screen/ScreenHunter_70Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_70Dec311152.jpg |  Bin 128028 -> 0 bytes
 .../invesalius_screen/ScreenHunter_71Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_71Dec311152.jpg |  Bin 132540 -> 0 bytes
 .../invesalius_screen/ScreenHunter_72Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_72Dec311152.jpg |  Bin 112050 -> 0 bytes
 .../invesalius_screen/ScreenHunter_73Dec311152.bb  |    5 -
 .../invesalius_screen/ScreenHunter_73Dec311152.jpg |  Bin 122647 -> 0 bytes
 .../invesalius_screen/ScreenHunter_74Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_74Dec311201.jpg |  Bin 124709 -> 0 bytes
 .../invesalius_screen/ScreenHunter_75Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_75Dec311201.jpg |  Bin 117457 -> 0 bytes
 .../invesalius_screen/ScreenHunter_76Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_76Dec311201.jpg |  Bin 150294 -> 0 bytes
 .../invesalius_screen/ScreenHunter_76Dec311201_.bb |    5 -
 .../ScreenHunter_76Dec311201_.jpg                  |  Bin 206678 -> 0 bytes
 .../invesalius_screen/ScreenHunter_77Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_77Dec311201.jpg |  Bin 113472 -> 0 bytes
 .../invesalius_screen/ScreenHunter_78Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_78Dec311201.jpg |  Bin 118112 -> 0 bytes
 .../invesalius_screen/ScreenHunter_79Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_79Dec311201.jpg |  Bin 118063 -> 0 bytes
 .../invesalius_screen/ScreenHunter_80Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_80Dec311201.jpg |  Bin 133815 -> 0 bytes
 .../invesalius_screen/ScreenHunter_81Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_81Dec311201.jpg |  Bin 118063 -> 0 bytes
 .../invesalius_screen/ScreenHunter_82Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_82Dec311201.jpg |  Bin 118063 -> 0 bytes
 .../invesalius_screen/ScreenHunter_83Dec311201.bb  |    5 -
 .../invesalius_screen/ScreenHunter_83Dec311201.jpg |  Bin 120489 -> 0 bytes
 .../invesalius_screen/ScreenHunter_83Dec311201_.bb |    5 -
 .../invesalius_screen/ScreenHunter_84Dec311201.bb  |    5 -
 .../img/invesalius_screen/activate_cut_plane.bb    |    5 -
 .../img/invesalius_screen/analyze_import.png       |  Bin 30830 -> 0 bytes
 .../img/invesalius_screen/analyze_menu.png         |  Bin 13826 -> 0 bytes
 .../img/invesalius_screen/angular_superficie.bb    |    5 -
 .../img/invesalius_screen/axial_angular.bb         |    5 -
 .../img/invesalius_screen/axial_angular.jpg        |  Bin 48413 -> 0 bytes
 .../img/invesalius_screen/axial_linear.bb          |    5 -
 .../img/invesalius_screen/axial_linear.jpg         |  Bin 45984 -> 0 bytes
 .../img/invesalius_screen/boolano_janela.png       |  Bin 8389 -> 0 bytes
 .../img/invesalius_screen/booleano_menu.png        |  Bin 9770 -> 0 bytes
 .../img/invesalius_screen/brilhante_I.bb           |    5 -
 .../img/invesalius_screen/button_select_color.bb   |    5 -
 .../img/invesalius_screen/button_select_color.jpg  |  Bin 1224 -> 0 bytes
 .../img/invesalius_screen/case_almagam.bb          |    5 -
 .../img/invesalius_screen/case_almagam_zoom.bb     |    5 -
 .../img/invesalius_screen/closed_tool_menu.bb      |    5 -
 .../img/invesalius_screen/closed_tool_menu.png     |  Bin 176185 -> 0 bytes
 .../img/invesalius_screen/color_button.bb          |    5 -
 .../img/invesalius_screen/color_button.png         |  Bin 494 -> 0 bytes
 .../img/invesalius_screen/contraste_medio.bb       |    5 -
 .../img/invesalius_screen/contraste_osso.bb        |    5 -
 .../img/invesalius_screen/contraste_pulmao.bb      |    5 -
 .../invesalius_screen/create_surface_edited.png    |  Bin 11806 -> 0 bytes
 .../img/invesalius_screen/customize_1.bb           |    5 -
 .../img/invesalius_screen/customize_2.bb           |    5 -
 .../img/invesalius_screen/cutted_image.bb          |    5 -
 .../img/invesalius_screen/data_export.PNG          |  Bin 4848 -> 0 bytes
 .../img/invesalius_screen/data_export.bb           |    5 -
 .../invesalius_screen/data_export_selection.PNG    |  Bin 7225 -> 0 bytes
 .../img/invesalius_screen/data_export_selection.bb |    5 -
 .../img/invesalius_screen/delete_data.bb           |    5 -
 .../img/invesalius_screen/delete_data.jpg          |  Bin 627 -> 0 bytes
 .../img/invesalius_screen/diametro_pincel.bb       |    5 -
 .../img/invesalius_screen/diametro_pincel.png      |  Bin 610 -> 0 bytes
 .../img/invesalius_screen/duplicate_data.bb        |    5 -
 .../img/invesalius_screen/duplicate_data.jpg       |  Bin 1078 -> 0 bytes
 .../img/invesalius_screen/edicao_avancada.bb       |    5 -
 .../img/invesalius_screen/edicao_avancada.png      |  Bin 341 -> 0 bytes
 .../img/invesalius_screen/edit_pencil.bb           |    5 -
 .../img/invesalius_screen/edit_pencil.png          |  Bin 1092 -> 0 bytes
 .../img/invesalius_screen/edition_slices.bb        |    5 -
 .../img/invesalius_screen/edition_slices.png       |  Bin 7971 -> 0 bytes
 .../img/invesalius_screen/editor_amagam.bb         |    5 -
 .../img/invesalius_screen/export_data_window.bb    |    5 -
 .../img/invesalius_screen/exract_region.bb         |    5 -
 .../img/invesalius_screen/exract_region.jpg        |  Bin 22389 -> 0 bytes
 .../img/invesalius_screen/extract_most_region2.bb  |    5 -
 .../img/invesalius_screen/extract_most_region3.bb  |    5 -
 .../img/invesalius_screen/extract_most_region_1.bb |    5 -
 .../img/invesalius_screen/eye.bb                   |    5 -
 .../img/invesalius_screen/ferramentas_avancadas.bb |    5 -
 .../invesalius_screen/ferramentas_avancadas.jpg    |  Bin 3305 -> 0 bytes
 .../img/invesalius_screen/file_import_resize.png   |  Bin 28879 -> 0 bytes
 .../img/invesalius_screen/generate_surface.bb      |    5 -
 .../img/invesalius_screen/generate_surface.png     |  Bin 1366 -> 0 bytes
 .../img/invesalius_screen/limiar_barra.bb          |    5 -
 .../img/invesalius_screen/limiar_barra.png         |  Bin 893 -> 0 bytes
 .../img/invesalius_screen/limiar_janela.bb         |    5 -
 .../img/invesalius_screen/limiar_janela.png        |  Bin 7334 -> 0 bytes
 .../img/invesalius_screen/limiar_presets.bb        |    5 -
 .../img/invesalius_screen/limiar_presets.png       |  Bin 653 -> 0 bytes
 .../img/invesalius_screen/limiar_principal.bb      |    5 -
 .../img/invesalius_screen/mac2.bb                  |    5 -
 .../img/invesalius_screen/mac2.png                 |  Bin 139758 -> 0 bytes
 .../img/invesalius_screen/mac4.bb                  |    5 -
 .../img/invesalius_screen/mac4.png                 |  Bin 29554 -> 0 bytes
 .../img/invesalius_screen/manager_mensuares.bb     |    5 -
 .../img/invesalius_screen/manager_mensuares.jpg    |  Bin 34815 -> 0 bytes
 .../img/invesalius_screen/mask_manager.bb          |    5 -
 .../img/invesalius_screen/mask_manager.jpg         |  Bin 22482 -> 0 bytes
 .../img/invesalius_screen/medida_volumetrica.bb    |    5 -
 .../img/invesalius_screen/medida_volumetrica.jpg   |  Bin 30687 -> 0 bytes
 .../invesalius_screen/menu_save_image_window.bb    |    5 -
 .../img/invesalius_screen/new_data.bb              |    5 -
 .../img/invesalius_screen/new_data.jpg             |  Bin 1027 -> 0 bytes
 .../img/invesalius_screen/new_surface.png          |  Bin 21122 -> 0 bytes
 .../img/invesalius_screen/noise_amalgam.bb         |    5 -
 .../img/invesalius_screen/only_2d_planes.bb        |    5 -
 .../img/invesalius_screen/proj_MIDA.PNG            |  Bin 128958 -> 0 bytes
 .../img/invesalius_screen/proj_MIDA_inv.PNG        |  Bin 131019 -> 0 bytes
 .../img/invesalius_screen/proj_contornoMIDA.PNG    |  Bin 167108 -> 0 bytes
 .../img/invesalius_screen/proj_contornoMaxIP.PNG   |  Bin 169154 -> 0 bytes
 .../img/invesalius_screen/proj_maxIP.PNG           |  Bin 103310 -> 0 bytes
 .../img/invesalius_screen/proj_meanIP.PNG          |  Bin 98569 -> 0 bytes
 .../img/invesalius_screen/proj_minIP.PNG           |  Bin 77776 -> 0 bytes
 .../img/invesalius_screen/proj_normal.PNG          |  Bin 115151 -> 0 bytes
 .../img/invesalius_screen/pseudo_menu.bb           |    5 -
 .../img/invesalius_screen/raycasting_add_1.bb      |    5 -
 .../img/invesalius_screen/raycasting_add_2.bb      |    5 -
 .../img/invesalius_screen/raycasting_add_3.bb      |    5 -
 .../img/invesalius_screen/save_image_window.PNG    |  Bin 32135 -> 0 bytes
 .../img/invesalius_screen/save_image_window.bb     |    5 -
 .../img/invesalius_screen/save_preset.bb           |    5 -
 .../img/invesalius_screen/save_window_preset.bb    |    5 -
 .../img/invesalius_screen/save_window_preset.jpg   |  Bin 10810 -> 0 bytes
 .../img/invesalius_screen/selec_operacao.bb        |    5 -
 .../invesalius_screen/select_brush_operation.bb    |    5 -
 .../invesalius_screen/select_brush_operation.jpg   |  Bin 4750 -> 0 bytes
 .../img/invesalius_screen/select_surface.bb        |    5 -
 .../img/invesalius_screen/select_surface.jpg       |  Bin 3516 -> 0 bytes
 .../img/invesalius_screen/selected_mask.bb         |    5 -
 .../img/invesalius_screen/selected_mask.jpg        |  Bin 27174 -> 0 bytes
 .../img/invesalius_screen/sem_sombreamento_II.bb   |    5 -
 .../img/invesalius_screen/surface_manager.bb       |    5 -
 .../img/invesalius_screen/text_off.bb              |    5 -
 .../img/invesalius_screen/text_on.bb               |    5 -
 .../img/invesalius_screen/transparency.bb          |    5 -
 .../img/invesalius_screen/transparency.jpg         |  Bin 4114 -> 0 bytes
 .../img/invesalius_screen/transparency_2.bb        |    5 -
 .../img/invesalius_screen/vias_aereas_II.bb        |    5 -
 .../img/invesalius_screen/view_2d_3d_1.bb          |    5 -
 .../img/invesalius_screen/view_2d_3d_2.bb          |    5 -
 .../img/invesalius_screen/watershed_2d.png         |  Bin 262387 -> 0 bytes
 .../img/invesalius_screen/watershed_3d.png         |  Bin 371311 -> 0 bytes
 .../img/invesalius_screen/watershed_limpeza.png    |  Bin 9707 -> 0 bytes
 .../img/invesalius_screen/watershed_opcao.png      |  Bin 10228 -> 0 bytes
 .../img/invesalius_screen/watershed_panel.png      |  Bin 5541 -> 0 bytes
 docs/user_guide_pt_BR_source/img/logo_cti.bb       |    5 -
 docs/user_guide_pt_BR_source/img/rm_ge.bb          |    5 -
 docs/user_guide_pt_BR_source/img/splash_pt.bb      |    5 -
 docs/user_guide_pt_BR_source/img/splash_pt.png     |  Bin 224800 -> 0 bytes
 docs/user_guide_pt_BR_source/img/tomografo.bb      |    5 -
 docs/user_guide_pt_BR_source/intro.tex             |   45 +-
 docs/user_guide_pt_BR_source/manual_pt_BR.tex      |    8 +-
 docs/user_guide_pt_BR_source/resumo.tex            |   16 +-
 icons/data_duplicate.png                           |  Bin 840 -> 695 bytes
 icons/data_new.png                                 |  Bin 893 -> 477 bytes
 icons/inv3_icon.ico                                |  Bin 285478 -> 204862 bytes
 icons/invesalius.ico                               |  Bin 8830 -> 204862 bytes
 icons/ja.bmp                                       |  Bin 0 -> 1274 bytes
 icons/load_mesh.png                                |  Bin 0 -> 882 bytes
 icons/ru.bmp                                       |  Bin 0 -> 1274 bytes
 icons/splash_de.png                                |  Bin 250253 -> 250241 bytes
 icons/splash_de_DE.png                             |  Bin 250253 -> 250241 bytes
 icons/splash_el_GR.png                             |  Bin 250253 -> 250241 bytes
 icons/splash_en.png                                |  Bin 250253 -> 250241 bytes
 icons/splash_es.png                                |  Bin 250253 -> 250241 bytes
 icons/splash_fr.png                                |  Bin 250253 -> 250241 bytes
 icons/splash_it.png                                |  Bin 250253 -> 250241 bytes
 icons/splash_ko.png                                |  Bin 250253 -> 250241 bytes
 icons/splash_pt.png                                |  Bin 250877 -> 251635 bytes
 icons/splash_zh_TW.png                             |  Bin 250253 -> 250241 bytes
 invesalius/__init__.py                             |   18 +
 invesalius/constants.py                            |  223 +-
 invesalius/control.py                              |  461 +++-
 invesalius/data/bases.py                           |  206 +-
 invesalius/data/co_registration.py                 |   65 -
 invesalius/data/converters.py                      |   26 +
 invesalius/data/coordinates.py                     |  280 +++
 invesalius/data/coregistration.py                  |   81 +
 invesalius/data/cursor_actors.py                   |   13 +-
 invesalius/data/cy_mesh.pyx                        |  466 ++++
 invesalius/data/cy_my_types.pxd                    |   21 +
 invesalius/data/floodfill.pyx                      |  274 +++
 invesalius/data/geometry.py                        |  606 ++++++
 invesalius/data/imagedata_utils.py                 |  205 +-
 invesalius/data/interpolation.pxd                  |    8 +
 invesalius/data/interpolation.pyx                  |  392 ++++
 invesalius/data/mask.py                            |   98 +-
 invesalius/data/measures.py                        |  454 ++--
 invesalius/data/polydata_utils.py                  |  410 ++--
 invesalius/data/slice_.py                          |  329 ++-
 invesalius/data/slice_data.py                      |    7 +-
 invesalius/data/styles.py                          | 1378 ++++++++++--
 invesalius/data/surface.py                         |  145 +-
 invesalius/data/surface_process.py                 |    6 +-
 invesalius/data/trackers.py                        |  260 +++
 invesalius/data/transformations.py                 | 1920 +++++++++++++++++
 invesalius/data/transforms.pyx                     |  135 ++
 invesalius/data/trigger.py                         |   81 +
 invesalius/data/viewer_slice.py                    |  880 ++++++--
 invesalius/data/viewer_volume.py                   |  400 +++-
 invesalius/data/volume.py                          |   77 +-
 invesalius/data/vtk_utils.py                       |   41 +-
 invesalius/data/watershed_process.py               |    2 -
 invesalius/expanduser.py                           |   46 +
 invesalius/gui/bitmap_preview_panel.py             |  660 ++++++
 invesalius/gui/data_notebook.py                    |  120 +-
 invesalius/gui/default_tasks.py                    |   55 +-
 invesalius/gui/default_viewers.py                  |   25 +-
 invesalius/gui/dialogs.py                          | 1565 +++++++++++++-
 invesalius/gui/dicom_preview_panel.py              |   22 +-
 invesalius/gui/frame.py                            |  374 +++-
 invesalius/gui/import_bitmap_panel.py              |  426 ++++
 invesalius/gui/import_network_panel.py             |   10 +-
 invesalius/gui/import_panel.py                     |    8 +-
 invesalius/gui/language_dialog.py                  |   17 +-
 invesalius/gui/preferences.py                      |   57 +-
 invesalius/gui/task_exporter.py                    |   21 +-
 invesalius/gui/task_importer.py                    |   18 +-
 invesalius/gui/task_navigator.py                   | 1137 ++++++----
 invesalius/gui/task_slice.py                       |   72 +-
 invesalius/gui/task_surface.py                     |   53 +-
 invesalius/gui/task_tools.py                       |   10 +-
 invesalius/gui/widgets/clut_raycasting.py          |    4 +-
 invesalius/gui/widgets/colourselect.py             |  176 --
 invesalius/gui/widgets/foldpanelbar.py             | 1937 -----------------
 invesalius/gui/widgets/listctrl.py                 |   19 -
 invesalius/gui/widgets/platebtn.py                 |  703 ------
 invesalius/gui/widgets/slice_menu.py               |    9 +-
 invesalius/i18n.py                                 |   29 +-
 invesalius/invesalius.py                           |  319 ---
 invesalius/net/dicom.py                            |    9 +-
 invesalius/presets.py                              |   12 +-
 invesalius/project.py                              |   75 +-
 invesalius/reader/analyze_reader.py                |   43 -
 invesalius/reader/bitmap_reader.py                 |  441 ++++
 invesalius/reader/dicom.py                         |   23 +-
 invesalius/reader/dicom_grouper.py                 |   32 +-
 invesalius/reader/dicom_reader.py                  |   46 +-
 invesalius/reader/others_reader.py                 |   54 +
 invesalius/session.py                              |  112 +-
 invesalius/style.py                                |   21 +-
 invesalius/utils.py                                |   39 +-
 locale/ca/LC_MESSAGES/invesalius.mo                |  Bin 12474 -> 12324 bytes
 locale/cs/LC_MESSAGES/invesalius.mo                |  Bin 19955 -> 33681 bytes
 locale/de/LC_MESSAGES/invesalius.mo                |  Bin 11807 -> 28488 bytes
 locale/el/LC_MESSAGES/invesalius.mo                |  Bin 8863 -> 8822 bytes
 locale/en/LC_MESSAGES/invesalius.mo                |  Bin 11788 -> 11720 bytes
 locale/es/LC_MESSAGES/invesalius.mo                |  Bin 22495 -> 34396 bytes
 locale/fa/LC_MESSAGES/invesalius.mo                |  Bin 4110 -> 4004 bytes
 locale/fr/LC_MESSAGES/invesalius.mo                |  Bin 12687 -> 16413 bytes
 locale/it/LC_MESSAGES/invesalius.mo                |  Bin 22299 -> 32728 bytes
 locale/ja/LC_MESSAGES/invesalius.mo                |  Bin 0 -> 34577 bytes
 locale/ko/LC_MESSAGES/invesalius.mo                |  Bin 12435 -> 13587 bytes
 locale/ms/LC_MESSAGES/invesalius.mo                |  Bin 4477 -> 4371 bytes
 locale/nl/LC_MESSAGES/invesalius.mo                |  Bin 0 -> 557 bytes
 locale/pt/LC_MESSAGES/invesalius.mo                |  Bin 24707 -> 24357 bytes
 locale/pt_BR/LC_MESSAGES/invesalius.mo             |  Bin 24046 -> 34124 bytes
 locale/ro/LC_MESSAGES/invesalius.mo                |  Bin 12607 -> 19380 bytes
 locale/ru/LC_MESSAGES/invesalius.mo                |  Bin 4903 -> 42141 bytes
 locale/sr/LC_MESSAGES/invesalius.mo                |  Bin 3416 -> 3367 bytes
 locale/tr_TR/LC_MESSAGES/invesalius.mo             |  Bin 23569 -> 22935 bytes
 locale/ur_PK/LC_MESSAGES/invesalius.mo             |  Bin 0 -> 575 bytes
 locale/zh_CN/LC_MESSAGES/invesalius.mo             |  Bin 0 -> 568 bytes
 locale/zh_TW/LC_MESSAGES/invesalius.mo             |  Bin 8830 -> 8759 bytes
 .../CalibrationFiles/BumbleBee_8090380.calib       |  Bin 0 -> 2765436 bytes
 navigation/mtc_files/CalibrationFiles/_README.txt  |    1 +
 navigation/mtc_files/Markers/1Probe                |   39 +
 navigation/mtc_files/Markers/1b                    |   38 +
 navigation/mtc_files/Markers/2Coil                 |   39 +
 navigation/mtc_files/Markers/2b                    |   38 +
 navigation/mtc_files/Markers/3Coil                 |   39 +
 navigation/mtc_files/Markers/4Coil                 |   39 +
 navigation/mtc_files/Markers/5Ref                  |   38 +
 navigation/mtc_files/Markers/COOLCARD              |   37 +
 navigation/mtc_files/Markers/Pointer Template      |   39 +
 navigation/mtc_files/Markers/Ref                   |   39 +
 navigation/mtc_files/Markers/TTblock               |   37 +
 navigation/mtc_files/Markers/a                     |   37 +
 navigation/mtc_files/Markers/coil                  |   38 +
 navigation/mtc_files/Markers/probe                 |   39 +
 navigation/mtc_files/Markers/sptr                  |   38 +
 navigation/mtc_files/Markers/try4                  |   38 +
 po/ca.po                                           | 1525 +++++++++----
 po/cs.po                                           | 1585 ++++++++++----
 po/de.po                                           | 1843 ++++++++++------
 po/el.po                                           | 1517 +++++++++----
 po/en.po                                           | 1390 ++++++++----
 po/es.po                                           | 1541 +++++++++----
 po/fa.po                                           | 1514 +++++++++----
 po/fr.po                                           | 1572 ++++++++++----
 po/it.po                                           | 1574 ++++++++++----
 po/ja.po                                           | 2253 +++++++++++++-------
 po/ko.po                                           | 1658 +++++++++-----
 po/ms.po                                           | 1511 +++++++++----
 po/nl.po                                           | 1509 +++++++++----
 po/pt.po                                           | 1535 +++++++++----
 po/pt_BR.po                                        | 1533 +++++++++----
 po/ro.po                                           | 1652 +++++++++-----
 po/ru.po                                           | 2164 ++++++++++++-------
 po/sr.po                                           | 1521 +++++++++----
 po/tr_TR.po                                        | 1535 +++++++++----
 po/ur_PK.po                                        | 1672 ---------------
 po/zh_CN.po                                        | 1672 ---------------
 po/zh_TW.po                                        | 1519 +++++++++----
 setup.py                                           |   85 +-
 1214 files changed, 41110 insertions(+), 20633 deletions(-)

diff --git a/.gitignore b/.gitignore
index d1b6ccc..6c3e257 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@ invesalius/*.swo
 invesalius/*.swp
 invesalius/data/*.log
 invesalius/data/*.pyc
+invesalius/data/*.pyd
 invesalius/gui/*.log
 invesalius/gui/*.pyc
 invesalius/gui/widgets/*.log
@@ -15,12 +16,33 @@ invesalius/gui/widgets/*.pyc
 invesalius/reader/*.log
 invesalius/reader/*.pyc
 
+.idea
+
 *.pyc
 *.swp
 *.so
 tags
 *.c
 
+.idea
 build
 *.patch
 *.tgz
+
+*.pyd
+*.cpp
+*.diff
+
+*.directory
+
+
+# latex
+*.aux
+*.toc
+*.bbl
+*.blg
+*.fls
+*.fdb_latexmk
+*.synctex.gz
+*.out
+*.log
diff --git a/AUTHORS.md b/AUTHORS.md
new file mode 100755
index 0000000..ab98242
--- /dev/null
+++ b/AUTHORS.md
@@ -0,0 +1,28 @@
+# Authors
+
+InVesalius was originally created in late 2002 at CTI Renato Archer Research Centre, of the Ministry of Science and Technology in Campinas, Brazil. Since November 2008, InVesalius 3 has been written from 0. 
+
+The PRIMARY AUTHORS of InVesalius 3 are (and/or have been):
+
+- [Paulo Henrique Junqueira Amorim](https://github.com/paulojamorim)
+- [Thiago Franco de Moraes](https://github.com/tfmoraes)
+- [Hélio Pedrini](http://www.ic.unicamp.br/~helio/)
+- [Jorge Vicente Lopes da Silva](http://lattes.cnpq.br/6139204122148876)
+- [Victor Hugo de Oliveira e Souza](https://github.com/vhosouza) (navigator)
+- [Renan Hiroshi Matsuda](https://github.com/rmatsuda) (navigator)
+- André Salles Cunha Peres (navigator)
+- Oswaldo Baffa Filho (navigator)
+- [Tatiana Al-Chueyr](https://github.com/tatiana) (former)
+- [Guilherme Cesar Soares Ruppert](https://github.com/ruppert) (former)
+- [Fabio de Souza Azevedo](https://github.com/fabioaz) (former)
+- Bruno Lara Bottazzini (contributor)
+
+And here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS:
+
+- [Mathieu Malaterre](https://github.com/malaterre) for (GDCM)[http://sf.net/p/gdcm]
+- [Andreas Tille](https://github.com/tillea) for helping packaging InVesalius to Debian.
+- [Olly Betts](https://github.com/ojwb) (patches to support wxPython3)
+- CTI Renato Archer directors for letting us open-source InVesalius.
+- [Glauber Costa de Oliveira](https://github.com/glommer) and Corinto Meffe for free software advices.
+- [Robin Dunn](https://github.com/RobinD42) for the marriage of the Python programming language and the wxWindows, in the form of wxPython
+- [Guido van Rossum](https://github.com/gvanrossum) for creating Python.
diff --git a/AUTHORS.txt b/AUTHORS.txt
deleted file mode 100755
index d351af6..0000000
--- a/AUTHORS.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-InVesalius was originally created in late 2002 at CenPRA,the Renato Archer 
-Research Centre, of the Ministry of Science and Technology in Campinas, Brazil. Since November 2008, InVesalius 3 has been written from 0. This list represents only people involved with this development on.
-
-The PRIMARY AUTHORS of InVesalius 3 are (and/or have been):
-
-    * Tatiana Al-Chueyr Pereira Martins
-    * Paulo Henrique Junqueira Amorim
-    * Thiago Franco de Moraes
-
-More information on the main contributors to InVesalius can be found in
-docs/internals/committers.txt.
-
-And here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS:
-people who have submitted patches, reported bugs, added translations, helped
-answer newbie questions, and generally made InVesalius that much better:
-
-    Mathieu Malaterre <mathieu.malaterre at gmail.com>
-    
-A big THANK YOU goes to:
-
-    CTI Renato Archer directors for letting us open-source InVesalius.
-
-    Glauber Costa de Oliveira and Corinto Meffe for free software advices.
-
-    Robin Dunn for the marriage of the Python programming language and the
-    wxWindows, in the form of wxPython
-
-    Guido van Rossum for creating Python.
-
-.
diff --git a/INSTALL.txt b/INSTALL.txt
deleted file mode 100755
index 6241a6f..0000000
--- a/INSTALL.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-# TODO: FUTURE!!!
-
-Thanks for downloading InVesalius.
-
-To install it, make sure you have Python 2.5 or greater installed. Then run
-this command from the command prompt:
-
-    python setup.py install
-
-Note this requires a working Internet connection if you don't already have the
-Python utility "setuptools" installed.
-
-AS AN ALTERNATIVE, you can just copy the entire "invesalius" directory to Python's
-site-packages directory, which is located wherever your Python installation
-lives. Some places you might check are:
-
-    /usr/lib/python2.5/site-packages (Unix, Python 2.5)
-    C:\\PYTHON\site-packages         (Windows)
-
-This second solution does not require a working Internet connection; it
-bypasses "setuptools" entirely.
-
-For more detailed instructions, see docs/intro/install.txt.
diff --git a/LICENSE.pt.txt b/LICENSE.pt.txt
index 9505e9d..7c567ae 100644
--- a/LICENSE.pt.txt
+++ b/LICENSE.pt.txt
@@ -1,4 +1,4 @@
-LICENÇA PÚBLICA GERAL GNU
+LICENÇA PÚBLICA GERAL GNU
 Versão 2, junho de 1991
 
  This is an unofficial translation of the GNU General Public License into
diff --git a/NEWS.txt b/NEWS.txt
deleted file mode 100755
index 01ef9d4..0000000
--- a/NEWS.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-3.0 (2008-11-17)
-=================
-
-Improvements
-------------
- - New GUI
- - New 3D measures feature
- - New slice editor feature
- - Open Lossless DICOM
- - Open large studies (over 500 slices) without resampling
-
-Bug fixes
----------
- - None yet
-
-API Changes
------------
-Changes are not backwards compatible. There were some incompatible
-changes which will affect InVesalius 2 projects backends.
-
-2.9 (2008-01-28)
-=================
diff --git a/README.md b/README.md
new file mode 100755
index 0000000..133bd68
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+# InVesalius
+
+InVesalius generates 3D medical imaging reconstructions based on a sequence of 2D DICOM files acquired with CT or MRI equipments.  InVesalius is internationalized (currently available in English, Portuguese, French, German, Spanish, Catalan, Romanian, Korean, Italian and Czech), multi-platform (GNU Linux, Windows and MacOS) and provides several tools:
+  * DICOM-support including: (a) ACR-NEMA version 1 and 2; (b) DICOM version 3.0 (including various encodings of JPEG -lossless and lossy-, RLE)
+  * Support to Analyze files
+  * Support to BMP, PNG, JPEG and TIF files
+  * Image manipulation facilities (zoom, pan, rotation, brightness/contrast, etc)
+  * Segmentation based on 2D slices
+  * Pre-defined threshold ranges according to tissue of interest
+  * Segmentation based on watershed
+  * Edition tools (similar to Paint Brush) based on 2D slices
+  * Linear and angular measurement tool
+  * Volume reorientation tool
+  * 3D surface creation
+  * 3D surface volume measurement
+  * 3D surface connectivity tools
+  * 3D surface exportation (including: binary and ASCII STL, PLY, OBJ, VRML, Inventor)
+  * High-quality volume rendering projection
+  * Pre-defined volume rendering presets
+  * Volume rendering crop plane
+  * Picture exportation (including: BMP, TIFF, JPG, PostScript, POV-Ray)
+
+### Development
+
+* [Running InVesalius 3 in Linux](https://github.com/invesalius/invesalius3/wiki/Running-InVesalius-3-in-Linux)
+* [Running InVesalius 3 in Mac](https://github.com/invesalius/invesalius3/wiki/Running-InVesalius-3-in-Mac)
+* [Running InVesalius 3 in Windows](https://github.com/invesalius/invesalius3/wiki/Running-InVesalius-3-in-Windows)
diff --git a/README.txt b/README.txt
deleted file mode 100755
index 973806c..0000000
--- a/README.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-InVesalius
-==========
-
-InVesalius generates 3D medical imaging reconstructions based on a sequence of 2D DICOM files acquired with CT or MRI equipments.  InVesalius is internationalized (currently available in English, Portuguese, French, German, Spanish, Catalan, Romanian, Korean, Italian and Czech), multi-platform (GNU Linux, Windows and MacOS) and provides several tools:
-  * DICOM-support including: (a) ACR-NEMA version 1 and 2; (b) DICOM version 3.0 (including various encodings of JPEG -lossless and lossy-, RLE)
-  * Image manipulation facilities (zoom, pan, rotation, brightness/contrast, etc)
-  * Segmentation based on 2D slices
-  * Pre-defined threshold ranges according to tissue of interest
-  * Edition tools (similar to Paint Brush) based on 2D slices
-  * 3D surface creation
-  * 3D surface connectivity tools 
-  * 3D surface exportation (including: binary and ASCII STL, OBJ, VRML, Inventor)
-  * High-quality volume rendering projection
-  * Pre-defined volume rendering presets
-  * Volume rendering crop plane
-  * Picture exportation (including: BMP, TIFF, JPG, PostScript, POV-Ray)
-
-Access http://svn.softwarepublico.gov.br/trac/invesalius/ to more informations.
diff --git a/TODO b/TODO
deleted file mode 100644
index dafae56..0000000
--- a/TODO
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-FIXME:
-
-Ok rev 885 1. Multiple slice: 1st is smaller - Paulo + Thiago
-Ok rev 909 2. Raycasting WW WL text (hide / show) - Tati
-OK rev 906 3. Raycasting plane disable - Tati
-4. Cursor icon in linux and osx - Esperar evolução wx
-5. Plane intersection cross - Thiago
-6. Initial zoom in Analyze 01 (?) - Depois v3.1
-OK rev 904 7. OS X "black floating render" - Tati
-OK rev 785 8. Toolbar at OS X and Linux order - Tati
-9. Coronal, sagittal, axial - orientation for Analyze (02) - Depois v3.1
-10. Bright and contrast in Analyze - Depois v3.1
-OK rev.886 11. Insert WW e WL text on the top of the slice - Paulo
-12. Insert slice number text - Paulo
-Ok rev 909 13. Disable raycasting WW & WL if it is not shown - Tati
-OK 14. Toolbar items affect 3D - Paulo
-OK rev.889 15. Surface after threshold and edition "undo" - Paulo
-16. Slice cursor actor is hiding - Pensar
-17. Zoom by selection when right iiii clicked is wrong - Paulo
-OK rev.892 18. Disable toggle of Windows' platebuttons on Windows - Paulo
-19. Show "Annotation" icon on Linux - Thiago
-OK 20. Sagittal, axial and coronal planes in 3D - Paulo
-OK rev.899 21. Default window & level from DICOM - Paulo
-22. When preset is changed, update WW and WL text on viewer volume - Thiago
-
-TODO:
-a. Import - Todos
-b. Export - Tati
-c. Measure - Thiago
-d. Slice menu: - Paulo
-    Window Width & Level >
-      x Default WL & WW
-        Other
-        ---------------
-        CT - Abdomen
-        CT - Bone
-        CT - Brain
-        CT - Pulmonary
-        VR - Endoscopy
-        ---------------
-        Add current WL/WW
-    Pseudo colour >
-        Off
-        ...
-    Image Tiling >
-      x 1 x 1
-        1 x 2
-        1 x 3
-        1 x 4
-        2 x 1
-        2 x 2
-        2 x 3
-        2 x 4
-        3 x 1
-        3 x 2
-        3 x 3
-        3 x 4
-        4 x 1
-        4 x 2
-        4 x 3
-        4 x 4
-        4 x 5
-        5 x 4
-        ----------------
-        Add new tiling
-    Orientation >
-      x Axial
-        Coronal
-        Sagittal
-    Size >
-        10%
-        20%
-        50%
-        75%
-        100%
-      x Scale to fit
-        ----------------
-        Add new size
-        
-e. Project - Thiago
-f. Insert raycasting widget when larger size - Thiago
-g. Take photo - Tati
-h. Print - Tati
-i. Add annotation - Thiago
-j. Layout toolbar - Tati
diff --git a/TODO.txt b/TODO.txt
deleted file mode 100755
index ae3f11c..0000000
--- a/TODO.txt
+++ /dev/null
@@ -1,95 +0,0 @@
-TODO LIST
-=============
-
-# Contact ITK mail list to see why warning is happening when we import Analyze
-files (noticed both under Windows and MacOS). Appears to be something related to
-wrapper.
-
-# Presets do Analyze
-Pensar sobre como estruturá-los
-
-# List Ctrl - Notebook data
-organizar decentemente classe pai
-? colocar em coluna separada a cor?
-verificar questão de ordenação - no windows e no linux nao funciona, no mac sim
-
-# Import - 0013
-1st file is corrupted
----> InVesalius 3 quits
-todo: simply ignore corrupted file and check other!
-
-# Import
-dcm_reader.py
--> change current structure to class
--> force return "axial" imagedata always
-
-# GUI - insert acquistion modality
-where?
-
-# GUI / mask
-When editing a mask name in notebook -> change combobox and change info inside mask
-Update combo-box related to threshold mode (Bone / etc) to go to custom when user sets another mask or changes the threshold range
-
-# Progress bar
-implement both cursor and progress bar
-
-# Gradient
-never, ever, can min > max or max < min
-
-# After editting mask name in notebook, change Mask instance ando combobox
-
-# Change icon used in inner fold panel (invert upword arrow / dowward arrow)
-
-# Change combo_thresh value according to mask selected / define a good treatment
-# for "Custom"
-
-# Develop import interface - a good start could be a sort of wizard, similar
-# to wifi on macos
-
-# Change references of AXIAL, SAGITAL, etc.. for constants
-
-#-----------------------------------------------------------------------------
-
-Version 3.0
-=============
- - Totally new GUI
- - New 3D measures feature
- - New slice editor feature
- - New threshold control feature
- - Threshold presets
- - New import DICOM process (slice reader, slice grouper)
- - Reads JPEG lossless DICOM data
- - New volume surface (polydata) creation pipeline - optimal quality
- - Does not use Slicer 3D lib anymore
- - Uses GDCM library for reading DICOM
-
-Operations in volume:
-linear measure
-angular measure
-annotation
-cut
-3d presets
-MIP ou volume rendering
-
-Operations in 2D     
-linear measure
-angular measure
-area measure
-
-Generate 3D Surface
-[Preparing 3d Surface]
-- Resolution : low - high (slider 10 units)
-- Decimate: resolution (0.1 ... 1.0) default: 0.5
-- Smooth: iteration(1 ..100) default: 20
-- Pixel value (default: 300) -- (skin: -500, bone: 500, 2000) # threshold min
-- Transparency: slider
-- color: botao
-
-Export 3D
-botao com setinha
-Export as STL (.stl)
-Export as WaveFront (.obj)
-Export as Renderman (.rib)
-Export as VRML (.vrml)
-Export as Inventor (.iv)
-
diff --git a/app.py b/app.py
new file mode 100755
index 0000000..032858d
--- /dev/null
+++ b/app.py
@@ -0,0 +1,348 @@
+#!/usr/bin/python
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#-------------------------------------------------------------------------
+
+
+import multiprocessing
+import optparse as op
+import os
+import sys
+import shutil
+
+if sys.platform == 'win32':
+    import _winreg
+else:
+    if sys.platform != 'darwin':
+        import wxversion
+        #wxversion.ensureMinimal('2.8-unicode', optionsRequired=True)
+        #wxversion.select('2.8-unicode', optionsRequired=True)
+        wxversion.ensureMinimal('3.0')
+        
+import wx
+#from wx.lib.pubsub import setupv1 #new wx
+from wx.lib.pubsub import setuparg1# as psv1
+#from wx.lib.pubsub import Publisher 
+#import wx.lib.pubsub as ps
+from wx.lib.pubsub import pub as Publisher
+
+#import wx.lib.agw.advancedsplash as agw
+#if sys.platform == 'linux2':
+#    _SplashScreen = agw.AdvancedSplash
+#else:
+#    if sys.platform != 'darwin':
+#        _SplashScreen = wx.SplashScreen
+
+
+import invesalius.gui.language_dialog as lang_dlg
+import invesalius.i18n as i18n
+import invesalius.session as ses
+import invesalius.utils as utils
+
+FS_ENCODE = sys.getfilesystemencoding()
+
+if sys.platform == 'win32':
+    from invesalius.expanduser import expand_user
+    try:
+        USER_DIR = expand_user()
+    except:
+        USER_DIR = os.path.expanduser('~').decode(FS_ENCODE)
+else:
+    USER_DIR = os.path.expanduser('~').decode(FS_ENCODE)
+
+USER_INV_DIR = os.path.join(USER_DIR, u'.invesalius')
+USER_PRESET_DIR = os.path.join(USER_INV_DIR, u'presets')
+USER_RAYCASTING_PRESETS_DIRECTORY = os.path.join(USER_PRESET_DIR, u'raycasting')
+USER_LOG_DIR = os.path.join(USER_INV_DIR, u'logs')
+
+# ------------------------------------------------------------------
+
+
+class InVesalius(wx.App):
+    """
+    InVesalius wxPython application class.
+    """
+    def OnInit(self):
+        """
+        Initialize splash screen and main frame.
+        """
+        
+        from multiprocessing import freeze_support
+        freeze_support()
+
+        self.SetAppName("InVesalius 3")
+        self.splash = SplashScreen()
+        self.splash.Show()
+        wx.CallLater(1000,self.Startup2)
+
+        return True
+
+    def MacOpenFile(self, filename):
+        """
+        Open drag & drop files under darwin
+        """
+        path = os.path.abspath(filename)
+        Publisher.sendMessage('Open project', path)
+
+    def Startup2(self):
+        self.control = self.splash.control
+        self.frame = self.splash.main
+        self.SetTopWindow(self.frame)
+        self.frame.Show()
+        self.frame.Raise()
+
+# ------------------------------------------------------------------
+
+class SplashScreen(wx.SplashScreen):
+    """
+    Splash screen to be shown in InVesalius initialization.
+    """
+    def __init__(self):
+        # Splash screen image will depend on currently language
+        lang = False
+
+        self.locale = wx.Locale(wx.LANGUAGE_DEFAULT)
+
+        # Language information is available in session configuration
+        # file. First we need to check if this file exist, if now, it
+        # should be created
+        create_session = False
+        session = ses.Session()
+        if not (session.ReadSession()):
+            create_session = True
+
+        install_lang = 0
+        # Check if there is a language set (if session file exists
+        if session.ReadLanguage():
+            lang = session.GetLanguage()
+            if (lang != "False"):
+                _ = i18n.InstallLanguage(lang)
+                install_lang = 1
+            else:
+                install_lang = 0
+        else:
+            install_lang = 0
+
+        # If no language is set into session file, show dialog so
+        # user can select language
+        if install_lang == 0:
+            dialog = lang_dlg.LanguageDialog()
+
+            # FIXME: This works ok in linux2, darwin and win32,
+            # except on win64, due to wxWidgets bug
+            try:
+                ok = (dialog.ShowModal() == wx.ID_OK)
+            except wx._core.PyAssertionError:
+                ok = True
+            finally:
+                if ok:
+                    lang = dialog.GetSelectedLanguage()
+                    session.SetLanguage(lang)
+                    _ = i18n.InstallLanguage(lang)
+                else:
+                    homedir = self.homedir = os.path.expanduser('~')
+                    invdir = os.path.join(homedir, ".invesalius")
+                    shutil.rmtree(invdir)
+                    sys.exit()
+                    
+        # Session file should be created... So we set the recent
+        # choosen language
+        if (create_session):
+            session.CreateItens()
+            session.SetLanguage(lang)
+            session.WriteSessionFile()
+
+        session.SaveConfigFileBackup()
+
+           
+        # Only after language was defined, splash screen will be
+        # shown
+        if lang:
+            #  print "LANG", lang, _, wx.Locale(), wx.GetLocale()
+            import locale
+            locale.setlocale(locale.LC_ALL, '')
+            # For pt_BR, splash_pt.png should be used
+            if (lang.startswith('pt')):
+                icon_file = "splash_pt.png"
+            else:
+                icon_file = "splash_" + lang + ".png"
+
+            if hasattr(sys,"frozen") and (sys.frozen == "windows_exe"\
+                                        or sys.frozen == "console_exe"):
+                abs_file_path = os.path.abspath(".." + os.sep)
+                path = abs_file_path
+                path = os.path.join(path, 'icons', icon_file)
+            
+            else:
+
+                path = os.path.join(".","icons", icon_file)
+                if not os.path.exists(path):
+                    path = os.path.join(".", "icons", "splash_en.png")
+				
+            bmp = wx.Image(path).ConvertToBitmap()
+
+            style = wx.SPLASH_TIMEOUT | wx.SPLASH_CENTRE_ON_SCREEN
+            wx.SplashScreen.__init__(self,
+                                     bitmap=bmp,
+                                     splashStyle=style,
+                                     milliseconds=1500,
+                                     id=-1,
+                                     parent=None)
+            self.Bind(wx.EVT_CLOSE, self.OnClose)
+            wx.Yield()
+            wx.CallLater(200,self.Startup)
+
+    def Startup(self):
+        # Importing takes sometime, therefore it will be done
+        # while splash is being shown
+        from invesalius.gui.frame import Frame
+        from invesalius.control import Controller
+        from invesalius.project import Project
+        
+        self.main = Frame(None)
+        self.control = Controller(self.main)
+        
+        self.fc = wx.FutureCall(1, self.ShowMain)
+        wx.FutureCall(1, parse_comand_line)
+
+        # Check for updates
+        from threading import Thread
+        p = Thread(target=utils.UpdateCheck, args=())
+        p.start()
+
+    def OnClose(self, evt):
+        # Make sure the default handler runs too so this window gets
+        # destroyed
+        evt.Skip()
+        self.Hide()
+
+        # If the timer is still running then go ahead and show the
+        # main frame now
+        if self.fc.IsRunning():
+            self.fc.Stop()
+            self.ShowMain()
+
+    def ShowMain(self):
+        # Show main frame
+        self.main.Show()
+
+        if self.fc.IsRunning():
+            self.Raise()
+
+# ------------------------------------------------------------------
+
+
+def parse_comand_line():
+    """
+    Handle command line arguments.
+    """
+    session = ses.Session()
+
+
+    # Parse command line arguments
+    parser = op.OptionParser()
+
+    # -d or --debug: print all pubsub messagessent
+    parser.add_option("-d", "--debug",
+                      action="store_true",
+                      dest="debug")
+
+    # -i or --import: import DICOM directory
+    # chooses largest series
+    parser.add_option("-i", "--import",
+                      action="store",
+                      dest="dicom_dir")
+    options, args = parser.parse_args()
+
+    # If debug argument...
+    if options.debug:
+        Publisher.subscribe(print_events, Publisher.ALL_TOPICS)
+        session.debug = 1
+
+    # If import DICOM argument...
+    if options.dicom_dir:
+        import_dir = options.dicom_dir
+        Publisher.sendMessage('Import directory', import_dir)
+        return True
+
+    # Check if there is a file path somewhere in what the user wrote
+    # In case there is, try opening as it was a inv3
+    else:
+        i = len(args)
+        while i:
+            i -= 1
+            file = args[i].decode(sys.stdin.encoding)
+            if os.path.isfile(file):
+                path = os.path.abspath(file)
+                Publisher.sendMessage('Open project', path)
+                i = 0
+                return True
+    return False
+
+
+def print_events(data):
+    """
+    Print pubsub messages
+    """
+    utils.debug(data.topic)
+
+def main():
+    """
+    Initialize InVesalius GUI
+    """
+    application = InVesalius(0)
+    application.MainLoop()
+
+if __name__ == '__main__':
+    #Is needed because of pyinstaller
+    multiprocessing.freeze_support()
+    
+    #Needed in win 32 exe
+    if hasattr(sys,"frozen") and sys.platform.startswith('win'):
+
+        #Click in the .inv3 file support
+        root = _winreg.HKEY_CLASSES_ROOT
+        key = "InVesalius 3.1\InstallationDir"
+        hKey = _winreg.OpenKey (root, key, 0, _winreg.KEY_READ)
+        value, type_ = _winreg.QueryValueEx (hKey, "")
+        path = os.path.join(value,'dist')
+
+        os.chdir(path)
+
+    # Create raycasting presets' folder, if it doens't exist
+    if not os.path.isdir(USER_RAYCASTING_PRESETS_DIRECTORY):
+        os.makedirs(USER_RAYCASTING_PRESETS_DIRECTORY)
+
+    # Create logs' folder, if it doesn't exist
+    if not os.path.isdir(USER_LOG_DIR):
+        os.makedirs(USER_LOG_DIR)
+
+    if hasattr(sys,"frozen") and sys.frozen == "windows_exe":
+        # Set system standard error output to file
+        path = os.path.join(USER_LOG_DIR, u"stderr.log")
+        sys.stderr = open(path, "w")
+
+    # Add current directory to PYTHONPATH, so other classes can
+    # import modules as they were on root invesalius folder
+    sys.path.insert(0, '.')
+    sys.path.append(".")
+
+
+    # Init application
+    main()
+
diff --git a/changelog.md b/changelog.md
new file mode 100644
index 0000000..0598ea7
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,53 @@
+# Changelog
+
+## [3.1.1](https://github.com/invesalius/invesalius3/tree/v3.1.1) - 2017-08-10
+
+### Added
+- Lanczos 3D interpolation method.
+- Option to user set the interpolation method when reorienting an image.
+- Option to user digit the angles used to reorient image.
+
+### Fixed
+- Not starting InVesalius when user home has non-ascii chars.
+- Read DICOM and other image files with non-ascii chars in its filename.
+- Save InVesalius project wih non-ascii chars in its filename.
+- Import and export surface with non-ascii chars in its filename.
+- Export surface with non-ascii chars in its filename.
+- DICOM/Bitmap import dialog was not ShowModal.
+- Cut plane wasn't working when reenabled volume raycasting 
+
+## [3.1.0](https://github.com/invesalius/invesalius3/tree/v3.1.0) - 2017-07-04
+
+### Added
+- Support to open TIFF, BMP, JPEG and PNG files.
+- Support to open NiFTI 1 files.
+- Support to open PAR/REC files.
+- Region Growing based segmentation (Dynamic, Threshold and Confidence).
+- Selection of mask connected components.
+- Removal of mask connected components.
+- Tool to fill mask holes automatically.
+- Tool to fill mask holes interactively.
+- Tool to crop mask.
+- Support to move slice measure points.
+- Menu option to (de)activate the navigation mode.
+- Import surface files (STL, PLY, OBJ and VTP) into InVesalius project.
+- Surface area information.
+- Segmentation menu with the options: Threshold, Manual, Watershed and Region Growing.
+- Created a canvas class (CanvasRendererCTX) to draw 2D forms and text over the vtkRenderer.
+- Swap image axes.
+- Flip image.
+- English documentation.
+
+### Changed
+- Code restructured to follow Python pattern.
+- Code ported to wxPython3.
+- Code ported to VTK 6.
+- Context-Aware Smoothing ported to Cython.
+- Using CanvasRendererCTX to draw slice measures.
+- Using CanvasRendererCTX to draw the slice informations.
+- Brazilian Portuguese updated to 3.1.0 version.
+
+### Fixed
+- Transparency widget from **Surface properties** respects the actual surface transparency.
+- Measures, Surfaces, Mask and other data are being removed from memory when closing a project.
+- Importation of Koning Breast CT DICOM images.
diff --git a/docs/user_guide_en.pdf b/docs/user_guide_en.pdf
new file mode 100644
index 0000000..d797154
Binary files /dev/null and b/docs/user_guide_en.pdf differ
diff --git a/docs/user_guide_en_source/Makefile b/docs/user_guide_en_source/Makefile
new file mode 100644
index 0000000..50f246a
--- /dev/null
+++ b/docs/user_guide_en_source/Makefile
@@ -0,0 +1,13 @@
+all: 
+	pdflatex user_guide_en
+	bibtex user_guide_en
+	pdflatex user_guide_en
+	pdflatex user_guide_en
+clean: 
+	rm -f *.dvi *.log *.toc *.aux *.bbl *.blg *.loa *.los *.out *.cb 
+
+cleanall:
+	rm -f user_guide_en.pdf *.dvi *.log *.toc *.aux *.bbl *.blg *.loa *.los *.out *.cb
+
+move:
+	mv -f user_guide_en.pdf ../user_guide_en.pdf
diff --git a/docs/user_guide_en_source/autores.tex b/docs/user_guide_en_source/autores.tex
new file mode 100644
index 0000000..889df33
--- /dev/null
+++ b/docs/user_guide_en_source/autores.tex
@@ -0,0 +1,74 @@
+\scalebox{2.0}{\sffamily Authors}
+\\
+
+Paulo Henrique Junqueira Amorim
+
+\href{mailto:paulo.amorim at cti.gov.br}{paulo.amorim at cti.gov.br}
+\\
+
+
+Thiago Franco de Moraes
+
+\href{mailto:thiago.moraes at cti.gov.br}{thiago.moraes at cti.gov.br}
+\\
+
+
+Fábio de Souza Azevedo
+
+\href{mailto:fabio.azevedo at cti.gov.br}{fabio.azevedo at cti.gov.br}
+\\
+
+
+André Salles Cunha Peres (Neuronavigator)
+
+\href{mailto:peres.asc at gmail.com}{peres.asc at gmail.com}
+\\
+
+
+Victor Hugo de Oliveira e Souza (Neuronavigator)
+
+\href{mailto:victorhos at hotmail.com}{victorhos at hotmail.com}
+\\
+
+
+Renan Hiroshi Matsuda (Neuronavigator)
+
+\href{mailto:renan\_hiroshi at hotmail.com}{renan\_hiroshi at hotmail.com}
+\\
+
+
+Oswaldo Baffa Filho (Neuronavigator)
+
+\href{mailto:baffa at usp.br}{baffa at usp.br}
+\\
+
+
+Jorge Vicente Lopes da Silva
+
+\href{mailto:jorge.silva at cti.gov.br}{jorge.silva at cti.gov.br}
+\\
+
+\newpage
+
+\scalebox{2.0}{\sffamily User Guide Contributors}
+\\
+
+Haris Haq
+
+\href{mailto:haris.haq98 at gmail.com}{haris.haq98 at gmail.com}
+\\
+
+Steve Harvey
+
+\href{mailto:steve at healthphysics.com.au}{steve at healthphysics.com.au}
+\\
+
+Callum Harvey
+
+\href{mailto:cjharvey113 at gmail.com}{cjharvey113 at gmail.com}
+\\
+
+Health Physics
+
+\href{http://www.healthphysics.com.au}{www.healthphysics.com.au}
+\\
\ No newline at end of file
diff --git a/docs/user_guide_en_source/cap_cust.tex b/docs/user_guide_en_source/cap_cust.tex
new file mode 100644
index 0000000..2807823
--- /dev/null
+++ b/docs/user_guide_en_source/cap_cust.tex
@@ -0,0 +1,94 @@
+\chapter{Customization}
+
+Some customization options are available for InVesalius users. They are shown as follows.
+
+\section{Tools menu}
+
+To hide/show the side tools menu, click the button shown in Figure~\ref{fig:layout_full_original}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{layout_full_original}
+\caption{Shortcut to hide/show side tools menu}
+\label{fig:layout_full_original}
+\end{figure}
+
+With the menu hidden, the image visualization area in InVesalius is expanded, as shown in Figure~\ref{fig:closed_tool_menu}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{window_mpr_not_painels_en.png}
+\caption{Side menu hidden}
+\label{fig:closed_tool_menu}
+\end{figure}
+
+\newpage
+
+\section{Automatic positioning of volume/surface}
+
+To automatically set the visualization position of a volume or surface, click on the icon shown in Figure~\ref{fig:3d_automatic_position} (located in the inferior right corner of InVesalius screen) and choose one of the available options for visualization.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.45]{3d_automatic_position_en.png}
+\caption{Options for visualization positioning}
+\label{fig:3d_automatic_position}
+\end{figure}
+
+\section{Background color of volume/surface window}
+
+To change the background color of the volume/surface window, click on the shortcut shown in Figure~\ref{fig:button_select_color_2}. The shortcut is also located in the lower right corner of the InVesalius screen.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{colour_button_en.png}
+\caption{Shortcut to background color of volume/surface window}
+\label{fig:button_select_color_2}
+\end{figure}
+
+A window for color selection opens (Figure~\ref{fig:color_window_background}). Next, simply click over the desired color and then click \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{surface_select_color_windows_so_en.png}
+\caption{Background color selection}
+\label{fig:color_window_background}
+\end{figure}
+
+Figure~\ref{fig:background_color} illustrates an InVesalius window with the background color changed.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{3d_background_changed.png}
+\caption{Background color modified}
+\label{fig:background_color}
+\end{figure}
+
+\newpage
+
+\section{Show/hide text in 2D windows}
+
+To show or hide text in 2D image windows, click on the shortcut illustrated in Figure~\ref{fig:text} on the toolbar.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{text}
+\caption{Shorcut to show or hide texts}
+\label{fig:text}
+\end{figure}
+
+Figures~\ref{fig:text_on} and~\ref{fig:text_off} show text enabled and disabled, respectively.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{axial_en.png}
+\caption{Show texts enabled}
+\label{fig:text_on}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{axial_no_tex_en.png}
+\caption{Show texts disabled}
+\label{fig:text_off}
+\end{figure}
diff --git a/docs/user_guide_en_source/cap_export.tex b/docs/user_guide_en_source/cap_export.tex
new file mode 100644
index 0000000..93e3f21
--- /dev/null
+++ b/docs/user_guide_en_source/cap_export.tex
@@ -0,0 +1,87 @@
+\chapter{Data export}
+
+InVesalius can export data in different formats, such as OBJ, STL and others, to be used in other software.
+
+The menu to export data is located in the left panel of InVesalius, inside item \textbf{4. Export data} (displayed below in Figure~\ref{fig:data_export}). If the menu is not visible, double-click with the \textbf{left} mouse button to expand the item.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{painel_data_export_en.png}
+\caption{Menu to export data}
+\label{fig:data_export}
+\end{figure}
+
+\section{Surface}
+
+To export a surface, select it from the data menu as shown in Figure~\ref{fig:data_export_selection}.
+
+\newpage
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{painel_data_export_selection_en.png}
+\caption{Select surface to be exported}
+\label{fig:data_export_selection}
+\end{figure}
+
+Next, click on the icon shown in Figure~\ref{fig:surface_export_original}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{surface_export_original}
+\caption{Shortcut to export surface}
+\label{fig:surface_export_original}
+\end{figure}
+
+When the file window displays (as shown in Figure~\ref{fig:export_data_window}), type the file name and select the desired exported format. Finally, click \textbf{Save}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{export_surface_en.png}
+\caption{Window to export surface}
+\label{fig:export_data_window}
+\end{figure}
+
+Files formats avaiable for exportation are listed in table~\ref{tab:files_export_list}:
+
+\begin{table}[h]
+\centering
+\caption{File formats exported by InVesalius}
+\begin{tabular}{lcc}\\
+\hline % este comando coloca uma linha na tabela
+Format & Extension\\
+\hline
+\hline
+Inventor & .iv\\
+Polygon File Format & .ply\\
+Renderman & .rib\\
+Stereolithography (formato binário)& .stl\\
+Stereolithography (formato ASCII) & .stl\\
+VRML & .vrml\\
+VTK PolyData & .vtp\\
+Wavefront & .obj\\
+\hline
+\end{tabular}
+\label{tab:files_export_list}
+\end{table} 
+
+
+\section{Image}
+
+Images exhibited in any orientation (axial, coronal, sagittal and 3D) can be exported. To do so, \textbf{left-click} on the shortcut shown in Figure~\ref{fig:menu_save_image_window} and select the sub-window related to the target image to be exported.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{menu_save_image_window_en.png}
+\caption{Menu to export images}
+\label{fig:menu_save_image_window}
+\end{figure}
+
+On the window shown (Figure~\ref{fig:save_image_window}), select the desired file format, then click \textbf{Save}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{export_bmp_en.png}
+\caption{Window to export images}
+\label{fig:save_image_window}
+\end{figure}
diff --git a/docs/user_guide_en_source/cap_geren_dados.tex b/docs/user_guide_en_source/cap_geren_dados.tex
new file mode 100644
index 0000000..8876d4a
--- /dev/null
+++ b/docs/user_guide_en_source/cap_geren_dados.tex
@@ -0,0 +1,106 @@
+\chapter{Data management}
+
+We have previously shown how to manipulate surfaces, masks for segmentation and measurements. We can also show or hide, and create or remove these elements in the \textbf{Data} management panel, located in the lower left corner of InVesalius. The panel is divided into 3 tabs: \textbf{Masks}, \textbf{3D Surfaces} and \textbf{Measurements}, as shown in Figure~\ref{fig:volumetric_data}. Each tab contains features corresponding to the elements it refers to.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{painel_mask_manager_en.png}
+\caption{Data management}
+\label{fig:volumetric_data}
+\end{figure}
+
+In each tab, there is a panel divided into rows and columns. The first column of each line determines the visualization status of the listed element. The "eye" icon activates or deactivates the masks, surface or measurement displayed. When one of these elements is being displayed, its corresponding icon (as shown in Figure~\ref{fig:disable_mask}) will also be visible.
+
+\newpage
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.9]{eye}
+\caption{Icon indicating the elements visibility}
+\label{fig:disable_mask}
+\end{figure}
+
+Some operations may be performed with the data. For instance, to remove one element, first select its name, as shown in Figure~\ref{fig:selected_mask}. Next, click in the shortcut shown in Figure~\ref{fig:delete_data}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{painel_selected_mask_en.png}
+\caption{Data selected}
+\label{fig:selected_mask}
+\end{figure}
+
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{data_remove.png}
+\caption{Remove data}
+\label{fig:delete_data}
+\end{figure}
+
+To create a new mask, surface or measurement, click on the shortcut shown in Figure~\ref{fig:new_data}, provided that the corresponding tab is open.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{data_new.png}
+\caption{New data}
+\label{fig:new_data}
+\end{figure}
+
+To duplicate data, select data to be duplicated and click in the shortcut shown in Figure~\ref{fig:duplicate_data}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{data_duplicate.png}
+\caption{Duplicate data}
+\label{fig:duplicate_data}
+\end{figure}
+
+\newpage
+
+\section{Masks}
+
+In the Name column, the mask’s color and name are shown. The \textbf{Threshold} column shows the value range used to create the mask. Figure~\ref{fig:volumetric_data} shows an example.
+
+\section{3D Surface}
+
+In the \textbf{Name} column, the surface’s color and name are shown. The \textbf{Volume} column shows the total surface volume. Finally, the \textbf{Transparency} column indicates the level of transparency for use for surface visualization. Figure~\ref{fig:surface_manager} shows an example.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{painel_volumetric_measures_en.png}
+\caption{Surface manager}
+\label{fig:surface_manager}
+\end{figure}
+
+\subsection{Import surface}
+
+We can also import STL, OBJ, PLY or VTP (VTK Polydata File Format) files into an active InVesalius project. To do so, click in the icon shown in Figure~\ref{fig:import_stl}, select the format of the corresponding file, (Figure~\ref{fig:import_surface}) and click Open.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{load_mesh.png}
+\caption{Shortcut to import surface }
+\label{fig:import_stl}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_surface_en.png}
+\caption{Window to import surface}
+\label{fig:import_surface}
+\end{figure}
+
+\newpage
+
+
+\section{Measurements}
+
+The tab Measurements shows the following information. \textbf{Name} indicates the color and measurement name. \textbf{Local} indicates where the measurement was taken (image axial, coronal, sagital or 3D), and \textbf{Type} indicates the type of measurement (linear or angular). Finally, \textbf{Value} shows the measurement value. Figure~\ref{fig:manager_mensuares} illustrates the \textbf{Measurements} tab.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{painel_measures_manager_en.png}
+\caption{Data management}
+\label{fig:manager_mensuares}
+\end{figure}
+
diff --git a/docs/user_guide_en_source/cap_img.tex b/docs/user_guide_en_source/cap_img.tex
new file mode 100644
index 0000000..fc15901
--- /dev/null
+++ b/docs/user_guide_en_source/cap_img.tex
@@ -0,0 +1,119 @@
+\chapter{Image adjustment}
+
+InVesalius cannot guarantee the correct image order; images may contain incorrect information, or do not follow the DICOM standard. Therefore, it is recommended to check if a lesion or an anatomical mark is on the correct side. If not, it is possible to use the flip image or swap axes tools. For image alignment, the rotation image tool can be used.
+
+It is possible to mirror the image. To do so, select the \textbf{Tools} menu, click \textbf{Image}, then \textbf{Flip} and click on one of the following options (Figure~\ref{fig:menu_img_mirroring_axis_pt}):
+
+\begin{itemize}
+	\item Right - Left
+	\item Anterior - Posterior
+	\item Top - Botton
+\end{itemize}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_img_mirroring_axis_en.png}
+\caption{Menu to activate flip image tool.}
+\label{fig:menu_img_mirroring_axis_pt}
+\end{figure}
+
+
+Figure~\ref{fig:mirrored} shows a comparison between the input image and the flipped image. All other orientations are also modified when the image is flipped.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Input image]{\includegraphics[width=0.45\textwidth]{mirror_axial_en.png}}  \qquad
+  \subfloat[Flipped image]{\includegraphics[width=0.45\textwidth]{mirror_axial_mirrored_en.png}}
+  \hfill
+  \caption{Example of a right-left flipped image.}
+  \label{fig:mirrored}
+\end{figure}
+
+\section{Swap axes}
+
+The swap axes tool changes the image orientation, in the case that the image has been wrongly imported. To perform this, select the \textbf{Tools} menu, click \textbf{Image}, then \textbf{Swap Axes} and click on one of the following options (Figure~\ref{fig:menu_invert_axis}):
+
+\begin{itemize}
+	\item From Right-Left to Anterior-Posterior
+	\item From Right-Left to Top-Bottom
+	\item From Anterior-Posterior to Top-Bottom
+\end{itemize}
+
+
+The Figures~\ref{fig:invert_axis_axial} and~\ref{fig:invert_axis_axial_inverted}, shows an example of an image with inverted axes.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_invert_axis_en.png}
+\caption{Menu to activate swap image tool.}
+\label{fig:menu_invert_axis}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{invert_axis_axial_en.png}
+\caption{Images before swap axes - from Anterior-Posterior to Top-Bottom.}
+\label{fig:invert_axis_axial}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{invert_axis_axial_inverted_en.png}
+\caption{Images after swap axes - from Anterior-Posterior to Top-Bottom.}
+\label{fig:invert_axis_axial_inverted}
+\end{figure}
+
+\section{Reorient image (Rotate)}
+
+If it is necessary to align the image with a certain point of reference, e.g. anatomical marker, use the reorient image tool. To open this tool select the \textbf{Tools} menu, click \textbf{Image}, then \textbf{Reorient Image} (Figure~\ref{fig:menu_img_reorient}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_img_reorient_en.png}
+\caption{Menu to activate reorient image tool.}
+\label{fig:menu_img_reorient}
+\end{figure}
+
+When this tool is activated a window is opened (Figure~\ref{fig:image_reorient_window}) showing orientation and by how many degrees the image was rotated.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{image_reorient_window_en.png}
+\caption{Window that shows the reorientation image parameters.}
+\label{fig:image_reorient_window}
+\end{figure}
+
+To start reorienting the image, define the interpolation method that will applied after rotation, by default is tricubic interpolation. The interpolation options are:
+
+\begin{itemize}
+	\item Nearest Neighbour
+	\item Trilinear
+	\item Tricubic
+	\item Lanczos
+\end{itemize}
+
+
+Then, select the rotation point by keeping the \textbf{left} mouse button pressed between the two lines intersecting (Figure~\ref{fig:image_reorient_adjust_center}) at one orientation, e.g. axial, coronal or sagittal, and \textbf{drag} to the desired point.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{image_reorient_adjust_center_en.png}
+\caption{Defining the axis of rotation of the image.}
+\label{fig:image_reorient_adjust_center}
+\end{figure}
+
+To rotate the image it is necessary to keep the \textbf{left} mouse button pressed and \textbf{drag} until the reference point or anatomical marker stays aligned with one of the lines (Figure~\ref{fig:image_reorient_rotated}). After the image is in the desired position, click \textbf{Apply} in the parameter window (Figure~\ref{fig:image_reorient_window}). This may take a few moments depending on the image size. Figure~\ref{fig:image_reorient_rotated_applied} shows an image successfully r [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{image_reorient_rotated_en.png}
+\caption{Rotated image.}
+\label{fig:image_reorient_rotated}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{image_reorient_rotated_applied_en.png}
+\caption{Rotated image after reorientation is done.}
+\label{fig:image_reorient_rotated_applied}
+\end{figure}
diff --git a/docs/user_guide_en_source/cap_import.tex b/docs/user_guide_en_source/cap_import.tex
new file mode 100644
index 0000000..7627c3e
--- /dev/null
+++ b/docs/user_guide_en_source/cap_import.tex
@@ -0,0 +1,250 @@
+\chapter{Image import}
+
+InVesalius imports files in DICOM format, including compressed files (lossless JPEG), Analyze (Mayo Clinic$^\copyright$), NIfTI, PAR/REC, BMP, TIFF, JPEG and PNG formats.
+
+\section{DICOM}
+
+Under the File menu, click on Import DICOM or use the shortcut Ctrl+I. Additionally, DICOM files can be imported by clicking on the icon shown in Figure~\ref{fig:import}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{file_import_original.png}
+\caption{Shortcut to DICOM import}
+\label{fig:import}
+\end{figure}
+
+\hspace{.2cm}
+
+Select the directory containing the DICOM files, as in Figure~\ref{fig:win_folder}. InVesalius will search for files also in subdirectories of the chosen directory,
+if they exist.
+
+\newpage
+
+Once the directory is selected, click \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_select_folder_en.png}
+\caption{Folder Selection}
+\label{fig:win_folder}
+\end{figure}
+
+\hspace{.2cm}
+
+While InVesalius search for DICOM files in the directory, the loading progress of the scanned files is displayed, as shown in the Figure~\ref{fig:ver_file}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{import_load_files_en.png}
+\caption{Loading file status}
+\label{fig:ver_file}
+\end{figure}
+
+\newpage
+
+If DICOM files are found, a window open (shown Figure~\ref{fig:win_import}) will open to select the patient and respective series to be opened. It is also possible to skip images for reconstruction.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_window_en.png}
+\caption{Import window}
+\label{fig:win_import}
+\end{figure}
+
+\newpage
+
+To import a series with all images present, click "\textbf{$+$}" on the patient’s name to expand the corresponding series. Double-click on the description of the series. See Figure~\ref{fig:import_serie}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_window_detail_en.png}
+\caption{Series selection}
+\label{fig:import_serie}
+\end{figure}
+
+In some cases, when there is no computer with memory and/or satisfactory processing to work with large numbers of images in a series, it is recommended to skip some of them. To do this, click \textbf{once} with the \textbf{left} mouse button over the description of the series (Figure~\ref{fig:import_serie}) and select how many images will be skipped (Figure~\ref{fig:skip_image}), then click \textbf{Import}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{import_window_skip_slice_en.png}
+\caption{Skip imagens option}
+\label{fig:skip_image}
+\end{figure}
+
+If there is an insufficient amount of available memory at the time of loading the images it is recommended that the resolution of the slices be reduced to work with volumetric and surface visualization, as shown in Figure~\ref{fig:resize_image}.
+The slices will be resized according to the percentage relative to the original resolution. For example, if each slice of the exam the dimension of 512 x 512 pixels and the "Percentage of original resolution" is suggested to be 60 \%, each resulting image will be 307 x 307 pixels. To open with the original pixel resolution, set the percentage to 100.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_window_lower_memory_en.png}
+\caption{Image size reduction}
+\label{fig:resize_image}
+\end{figure}
+
+If the image was obtained with the gantry tilted it will be necessary to correct to avoid distortion of any reconstruction. InVesalius allows the user to do this easily. When importing an image with the gantry tilted a dialog will appear, showing the gantry tilt angle. (Figure~\ref{fig:gantry_tilt}). It is possible to change this value, but it is not recommended. Click on the \textbf{Ok} to do the correction. If you click on the \textbf{cancel} button the correction will not be done.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.75]{window_gantry_tilt_en.png}
+\caption{Gantry tilt correction}
+\label{fig:gantry_tilt}
+\end{figure}
+
+After the above procedure, a window will be displayed (Figure \ref{fig:prog_recons}) with reconstruction (when images are stacked and interpolated).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{import_window_progress_en.png} 
+\caption{Reconstruction progress}
+\label{fig:prog_recons}
+\end{figure}
+
+\newpage
+
+\section{Analyze}
+
+To import Analyze files, under the \textbf{File} menu, click \textbf{Import other files}, then click in the \textbf{Analyze} option as show the Figure~\ref{fig:analyze_menu}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_analyze_menu_en.png}
+\caption{Menu for importing images in analyze format.}
+\label{fig:analyze_menu}
+\end{figure}
+
+Select the Analyze file format (\textbf{.hdr}) and click on \textbf{Open} (Figure~\ref{fig:analyze_import}).
+ 
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_analyze_window_en.png}
+\caption{Import analyze file format}
+\label{fig:analyze_import}
+\end{figure}
+
+\section{NIfTI}
+
+To import NIfTI files, under the \textbf{File}  menu, click \textbf{Import other files} and then click \textbf{NIfTI} as shown in Figure~\ref{fig:import_nifti_menu_pt}.
+
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_nifti_menu_en.png}
+\caption{Menu to import images in NIfTI format}
+\label{fig:import_nifti_menu_pt}
+\end{figure}
+
+Select the NIfTI file format, (either \textbf{nii.gz} or \textbf{.nii}) then click \textbf{Open} (Figure~\ref{fig:import_nifti_window_pt}). If the file is in another format as \textbf{.hdr}, select \textbf{all files(*.*)} option.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_nifti_window_en.png}
+\caption{Importing images in NIfTI format.}
+\label{fig:import_nifti_window_pt}
+\end{figure}
+
+\section{PAR/REC}
+
+To import PAR/REC file, under the \textbf{File} menu, click \textbf{Import other files}, and then click on \textbf{PAR/REC} as shown in Figure~\ref{fig:import_parrec_menu_pt}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_parrec_menu_en.png}
+\caption{Menu for importing PAR/REC images}
+\label{fig:import_parrec_menu_pt}
+\end{figure}
+
+Select PAR/REC file type, with the file extension \textbf{.par} and click \textbf{Open} (Figure~\ref{fig:import_parrec_window_pt}). If the file has no extension, select \textbf{all files(*.*)} option.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_parrec_window_en.png}
+\caption{PAR/REC import}
+\label{fig:import_parrec_window_pt}
+\end{figure}
+
+\section{TIFF, JPG, BMP, JPEG or PNG (micro-CT)}
+
+TIFF, JPG, BMP, JPEG or PNG file format for microtomography equipment (micro-CT or $\mu$CT) or others. InVesalius imports files in these formats if pixels present are represented in \textbf{grayscale}.
+
+To import, click on menu \textbf{File}, \textbf{Import other files...} and then click on \textbf{TIFF, JPG, BMP, JPEG ou PNG ($\mu$CT)} option as shown the figure~\ref{fig:import_bmp_menu_pt}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_bmp_menu_en.png}
+\caption{Import images in BMP and others formats}
+\label{fig:import_bmp_menu_pt}
+\end{figure}
+
+Select the directory that contains the files, as shown the Figure~\ref{fig:import_bmp_select_folder}. InVesalius will search for files also in subdirectories of the chosen directory, if they exist. 
+
+Click on \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_bmp_select_folder_en.png}
+\caption{Folder selection}
+\label{fig:import_bmp_select_folder}
+\end{figure}
+
+While InVesalius is looking for TIFF, JPG, BMP, JPEG, or PNG files in the directory, the upload progress of the scanned files is displayed, as illustrated in Figure~\ref{fig:import_bmp_load_pt}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{import_bmp_load_en.png}
+\caption{Checking and loading files status.}
+\label{fig:import_bmp_load_pt}
+\end{figure}
+
+If files in the desired formats are located, a window will open (shown in Figure~\ref{fig:import_bmp_window_pt}) to display the files eligible for reconstruction. Images can also be skipped to remove files from the rebuild list. The files are sorted according to file names. It is recommended that the files are numbered according to the desired rebuild order.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{import_bmp_window_en.png}
+\caption{Window to import BMP files.}
+\label{fig:import_bmp_window_pt}
+\end{figure}
+ 
+To delete files that are not of interest, select a file by clicking the left mouse button and then pressing the delete key. You can also choose a
+range of files to delete by clicking the \textbf{left mouse button} on a file, holding down the \textbf{shift} key, clicking again with the mouse button in the last file of the track and finally pressing the \textbf{delete} button.
+
+Similar to when importing DICOM files, you can skip BMP images for re-building. In some cases, particularly where a computer with satisfactory memory and/or processing is unavailable, it may be advisable to skip some of them to retain adequate program functionality. To do this, select how many images to skip (Figure~\ref{fig:import_bmp_skip_pt}), then click \textbf{Import}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_bmp_skip_en.png}
+\caption{Importation window}
+\label{fig:import_bmp_skip_pt}
+\end{figure}
+
+To reconstruct files of this type, a project name must be defined to indicate the orientation of the images (axial, coronal or sagittal), voxel spacing ($X$, $Y$ and $Z$) in \textbf{mm} as shown in the Figure~\ref{fig:import_bmp_spacing_pt}. The voxel spacing in $X$ is the pixel width of each image, $Y$ the pixel length, and $Z$ represents the distance of each slice (voxel height).
+
+If the image set consists of microtomography images, more specifically GE and Brucker equipment, it is possible that InVesalius will read the text file with the acquisition parameters that normally stay in the same folder as the images and automatically insert the spacing. This verification can be done when the values of $X$, $Y$ and $Z$ are different from "1.00000000", otherwise it is necessary to enter the values of the respective spacing.
+
+\textbf{Correct spacing is crucial for correctly importing objects in InVesalius. Incorrect spacing will provide incorrect measurements.}
+
+Once all parameters have been input, click \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_bmp_spacing_en.png}
+\caption{Import Screen}
+\label{fig:import_bmp_spacing_pt}
+\end{figure}
+
+If insufficient memory is available when loading images, it is recommended to reduce the resolution of the slices to work with volumetric and surface visualization, as shown in Figure~\ref{fig:import_bmp_resize_pt} window.The slices will be resized according to the percentage relative to the original resolution. For example, if each slice of the exam contains the dimension of $512 x 512$ pixels and the "Percentage of the original resolution" is suggested at 60, each resulting image will  [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_window_lower_memory_en.png}
+\caption{Image resize}
+\label{fig:import_bmp_resize_pt}
+\end{figure}
+
+After the previous steps, wait a moment for the program to complete the multiplanar reconstruction as shown in Figure~\ref{fig:import_bmp_mpr_pt.png}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{import_window_progress_en.png}
+\caption{Multiplanar reconstruction in progress.}
+\label{fig:import_bmp_mpr_pt.png}
+\end{figure}
diff --git a/docs/user_guide_en_source/cap_instal.tex b/docs/user_guide_en_source/cap_instal.tex
new file mode 100644
index 0000000..579ed7c
--- /dev/null
+++ b/docs/user_guide_en_source/cap_instal.tex
@@ -0,0 +1,136 @@
+\chapter{Installation}
+
+\section{MS-Windows}
+
+
+To install InVesalius on MS-Windows, simply run the installer program. When a window asking you to confirm the file execution appears, click \textbf{Yes}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{installation_exec_en.png}
+\end{figure}
+
+\newpage
+
+A new window will ask you to select the language of the installer. Select the language and click \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{installation_select_language_en.png}
+\end{figure}
+ 
+\hspace{.2cm}
+
+The Setup installer will appear. Click \textbf{Next}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{installation_welcome_en.png}
+\end{figure}
+
+\newpage
+
+Select \textbf{I accept the agreement} and click on \textbf{Next} button.
+
+\begin{figure}[!htb] 
+\centering
+\includegraphics[scale=0.7]{installation_license_en.png}
+\end{figure}
+
+\hspace{.2cm}
+
+Select the preferred destination for the InVesalius program files, then click \textbf{Next}.
+
+\begin{figure}[!htb]  
+\centering
+\includegraphics[scale=0.7]{installation_folder_en.png}
+\end{figure}
+
+\newpage
+
+Click on \textbf{Next}  button.
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{installation_program_name_en.png}
+\end{figure}
+
+\hspace{.2cm}
+
+Select \textbf{Create a desktop shortchut} and click on \textbf{Next}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{installation_desktop_shortcut_en.png}
+\end{figure}
+
+\newpage
+
+Click on \textbf{Install} button.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{installation_resume_en.png}
+\end{figure}
+
+\hspace{.2cm}
+
+While the software is being installed, a progress window will appear.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{installation_progress_en.png}
+\end{figure}
+
+\newpage
+
+To run InVesalius after installation, check \textbf{Lauch InVesalius 3.1} and click on \textbf{Finish} button.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{installation_finish_en.png}
+\end{figure}
+
+\hspace{.2cm}
+
+When being run for the first time, a window will appear to select the InVesalius language. Select the desired language and click \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{invesalius_language_select_en.png}
+\end{figure}
+
+\newpage
+
+While InVesalius is loading, the opening window shown below will be displayed.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{splash_en.png}
+\end{figure}
+
+\hspace{.2cm}
+
+The main program window will then open, as shown below.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{main_window_without_project_en.png}
+\end{figure}
+
+\section{Mac Os X}
+
+To start the installation on Mac OS X, double-click the installer with the left mouse button to begin installation.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{mac2.png}
+\end{figure}
+
+Hold down the left button on the InVesalius software icon and drag it to the Applications folder. Both are contained in the installer.
+
+%\begin{figure}[!htb]
+%\centering
+%\includegraphics[scale=0.4]{mac4.png}
+%\end{figure}
+
+The software is already installed, just access through the menu.
\ No newline at end of file
diff --git a/docs/user_guide_en_source/cap_manip.tex b/docs/user_guide_en_source/cap_manip.tex
new file mode 100644
index 0000000..e275d13
--- /dev/null
+++ b/docs/user_guide_en_source/cap_manip.tex
@@ -0,0 +1,414 @@
+\chapter{Image Manipulation (2D)}
+
+\section{Multiplanar Reconstruction}
+
+When images are imported, InVesalius automatically shows its multiplanar reconstruction in the Axial, Sagittal and Coronal orientations, as well as a window for 3D manipulation, as seen in Figure~\ref{fig:mpr}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.40]{multiplanar_mask_window_en.png}
+\caption{Multiplanar Reconstruction}
+\label{fig:mpr}
+\end{figure}
+
+\newpage
+
+In addition to creating a multiplanar reconstruction, InVesalius segments an image, highlighting for example soft tissue bones. The highlight is represented by the application of colors on a segmented structure so that the colors form a mask over an image highlighting the structure (Figure~\ref{fig:mpr}).This is discussed in more detail in the following chapters.
+
+To hide the mask, use the data manager, located in the lower left corner of the screen. Select the \textbf{Masks} tab and click once using the \textbf{left} mouse button over the eye icon next to \textbf{"Mask 1"}, as shown in Figure~\ref{fig:ger_masc}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{data_mask_en.png}
+\caption{Mask manager}
+\label{fig:ger_masc}
+\end{figure}
+
+The eye icon disappears, and the colors of the segmentation mask are hidden (Figure~\ref{fig:mpr_sem_mask}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.30]{multiplanar_window_en.png}
+\caption{Multiplanar reconstruction without segmentation mask}
+\label{fig:mpr_sem_mask}
+\end{figure}
+
+\subsection{Axial orientation}
+
+The axial orientation consists of cuts made transversally to the region of interest, i.e. parallel cuts to the axial plane of the human body.
+In Figure~\ref{fig:axial_corte}, an axial image of the skull region is displayed.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.30]{axial_en.png}
+\caption{Axial slice}
+\label{fig:axial_corte}
+\end{figure}
+
+\subsection{Sagittal orientation}
+
+The sagittal orientation consists of cuts made laterally in relation to the region of interest, i.e. parallel cuts to the sagittal plane of the human body, which divides it into the left and right portions.
+In Figure~\ref{fig:sagital_slice}, a sagittal skull image is displayed.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.30]{sagital_en.png}
+\caption{Sagittal slice}
+\label{fig:sagital_slice}
+\end{figure}
+
+\newpage
+
+\subsection{Coronal orientation}
+
+The coronal orientation is composed of cuts parallel to the coronal plane, which divides the human body into ventral and dorsal halves.
+In Figure~\ref{fig:coronal_slice} is displayed a skull image in coronal orientation.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.30]{coronal_en.png}
+\caption{Coronal slice}
+\label{fig:coronal_slice}
+\end{figure}
+
+
+\section{Correspondence between the axial, sagittal and coronal orientations}
+\label{sec:corresp_all_orient}
+
+To find out the common point of intersection of the images in differents orientations, simply activate the "Slices cross intersection" feature with the shortcut icon located on the toolbar. See Figure~\ref{fig:cross_icon}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=1]{cross.png}
+\caption{Shortcut to show common point between different orientations}
+\label{fig:cross_icon}
+\end{figure}
+
+When the feature is activated, two cross-sections that intersect perpendicularly are displayed on each image (Figure~\ref{fig:cross_all}). The intersection point of each pair of segments represents the common point between differents orientations.
+
+\newpage
+
+To modify the point, hold down the \textbf{left} mouse button and \textbf{drag}. Automatically, the corresponding points will be updated in each image.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{multiplanar_window_cross_en.png}
+\caption{Common point between differents orientations}
+\label{fig:cross_all}
+\end{figure}
+
+To deactivate the feature, simply click on the shortcut again (Figure~\ref{fig:cross_icon}). This feature can be used in conjunction with the slice editor (which will be discussed later).
+
+\section{Interpolation}
+
+By default the 2D images visualization are interpolated (Figure~\ref{fig:interp}).a). To deactivate this feature, select the \textbf{View} menu and select \textbf{Interpolated slices} (Figure~\ref{fig:menu_interpoleted_image_pt}). It will then be possible to visualize each pixel individually as shown in Figure~\ref{fig:interp}.b.
+
+\textbf{This interpolation is for visualization purposes only, and does not directly influence segmentation or 3D surface generation.}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{menu_interpoleted_image_en.png}
+\caption{Menu to disable and enable interpolation}
+\label{fig:menu_interpoleted_image_pt}
+\end{figure}
+
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Interpolated]{\includegraphics[width=0.4\textwidth]{axial_interpoleted.png}}  \qquad
+  \subfloat[Non-interpolated]{\includegraphics[width=0.4\textwidth]{axial_not_interpoleted.png}}
+  \hfill
+  \caption{Interpolated and non-interpolated image visualization.}
+  \label{fig:interp}
+\end{figure}
+
+\section{Move}
+
+To move an image on the screen, use the Move shortcut icon on the toolbar (Figure~\ref{fig:move_icon}). Click on the icon to activate, then with the \textbf{left} mouse button on the image, \text{drag} it to the desired direction. Figure~\ref{fig:move_img} shows a displaced (moved) image.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.25]{tool_translate_original.png}
+\caption{Shortcut to move images}
+\label{fig:move_icon}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.20]{axial_pan_en.png}
+\caption{Displaced image}
+\label{fig:move_img}
+\end{figure}
+
+\section{Rotate}
+
+Images can be rotated by using the Rorate shortcut on the toolbar (Figure~\ref{fig:rot_icon}). To rotate an image, click on the icon and then with the \textbf{left} mouse button \textbf{drag} clockwise or anticlockwise as required.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.20]{tool_rotate_original.png}
+\caption{Shortcut to rotate images}
+\label{fig:rot_icon}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.20]{axial_rotate_en.png}
+\caption{Rotated image}
+\label{fig:rotate_all}
+\end{figure}
+
+
+\section{Zoom}
+
+In InVesalius, there are different ways to enlarge an image. You can maximize the desired orientation window, apply zoom directly to the image, or select the region of the image to enlarge. Each of these methods are detailed below.
+
+\subsection{Maximizing orientation windows}
+
+The main InVesalius window is divided into 4 sub-windows: axial, sagittal, coronal and 3D. Each of these can be maximized to occupy the entire area of the main window. To do this, simply \textbf{left} mouse click on the subwindow icon located in the \textbf{upper right corner} (Figure~\ref{fig:maximize_window}). To restore a maximized window to its previous size, simply click the icon again.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{maximize_sagital_mpr.png}
+\caption{Detail of a sub-window (Note the maximize icon in the upper right corner)}
+\label{fig:maximize_window}
+\end{figure}
+
+\subsection{Enlarging or shrinking an image}
+
+To enlarge or shrink an image, click on the zoom shortcut icon in the toolbar (Figure~\ref{fig:zoom_icon}). Hold down the \textbf{left} mouse button on the image and \textbf{drag} the mouse \textbf{up} to enlarge or \textbf{down} to shrink.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.25]{tool_zoom_original.png}
+\caption{Zoom shortcut}
+\label{fig:zoom_icon}
+\end{figure}
+
+\subsection{Enlarging an image area}
+
+To enlarging a certain image area, click on the "Zoom based on selection" icon in the toolbar (Figure~\ref{fig:zoom_icon_loc}). Position the mouse pointer at the origin point of the selection, click and hold the \textbf{left} mouse button and \textbf{drag} it to the end selection point to form a rectangle (Figure~\ref{fig:zoom_select}). Once the left mouse button is released, the zoom operation will be applied to the selected region (Figure~\ref{fig:zoom_applied}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.25]{tool_zoom_select_original.png}
+\caption{Zoom based on selection shortcut}
+\label{fig:zoom_icon_loc}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.25]{tool_zoom_select_image_en.png}
+\caption{Area selected for zoom}
+\label{fig:zoom_select}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.25]{tool_image_with_zoom_en.png}
+\caption{Enlarged Image}
+\label{fig:zoom_applied}
+\end{figure}
+
+
+\section{Brightness and contrast (Windows)}
+\label{sec:ww_wl}
+
+To improve image visualization, the \textit{window width} and \textit{window level} features can be used; these are more commonly known as \textit{brightness and contrast} or \textit{window} (for radiologists). With this feature, it is possible to set the range of the gray scale (\textit{window level}) and the width of the scale (\textit{window width}) to be used to display the images.
+
+The feature can be activated by the "Brightness and Contrast" shortcut icon in the toolbar. See Figure~\ref{fig:window_level_shortcut}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.70]{tool_contrast_original.png}
+\caption{Brightness and contrast shortcut}
+\label{fig:window_level_shortcut}
+\end{figure}
+
+To increase the brightness, hold down the \textbf{left} mouse button and \textbf{drag} horizontally to the right. To decrease the brightness, simply drag the mouse to the left. The contrast can be changed by dragging the mouse (with the \textbf{left} button pressed) vertically: up to increase, or down to decrease contrast.
+
+To deactivate the feature, click again on the shortcut icon (Figure~\ref{fig:window_level_shortcut}).
+
+Preset brightness and contrast patterns may be used with InVesalius. Table~\ref{tab:window_level} lists some tissue types with their respective brightness and contrast values. To use the presets, position the mouse cursor over an image and \textbf{right-click} to open a context menu, then select \textbf{Window width and level}, and click on the preset option according to the tissue type, as shown in Figure~\ref{fig:window_level}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.40]{menu_window_and_level_en.png}
+\caption{Context menu for brightness and contrast selection}
+\label{fig:window_level}
+\end{figure}
+
+\begin{table}[!h]
+\centering
+\caption{Brightness and contrast values for some tissues}
+\begin{tabular}{lcc}\\
+\hline % este comando coloca uma linha na tabela
+Tissue & Brightness & Contrast\\
+\hline
+\hline
+Default & Exam & Exam\\
+Manual & Changed & Changed\\
+Abdomen & 350 & 50\\
+Bone & 2000 & 300\\
+Brain & 80 & 40\\
+Brain posterior fossa & 120 & 40\\
+Contour & 255 & 127\\
+Emphysema & 500 & -850\\
+Ischemia - Hard, non contrast & 15 & 32\\
+Ischemia - Soft, non contrast & 80 & 20\\
+Larynx & 180 & 80\\
+Liver & 2000 & -500\\
+Lung Hard & 1000 & -600\\
+Lung Soft & 1600 & -600\\
+Mediastinum & 350 & 25\\
+Pelvis & 450 & 50\\
+Sinus & 4000 & 400\\
+Vasculature - Hard & 240 & 80\\
+Vasculature - Soft & 680 & 160\\
+\hline
+\end{tabular}
+\label{tab:window_level}
+\end{table} 
+
+\begin{figure}[!h]
+  \centering
+  \subfloat[Bone]{\label{fig:contrast_bone}\includegraphics[width=0.4\textwidth]{contraste_osso}} \qquad
+  \subfloat[Lung]{\label{fig:contrast_isq}\includegraphics[width=0.4\textwidth]{contraste_pulmao}}
+  \caption{Different types of brightness and contrast}
+  \label{fig:two_window_level}
+\end{figure}
+
+\section{Pseudo color}
+
+Another feature to improve the visualization of the images is the pseudo color. This replaces gray levels by color, or by inverted gray levels. In the latter case, previously clear regions of the image become darker and vice versa.
+
+To change the view using a pseudo color, position the mouse cursor over the image and \textbf{right-click} to open a context menu on it. When the menu opens, select the entry \textbf{Pseudo color}, and then click on the desired pseudo color option, as shown in Figure~\ref{fig:pseudo_color}.
+
+\begin{figure}[p]
+\centering
+\includegraphics[scale=0.40]{pseudo_menu_en.png}
+\caption{Pseudo Color}
+\label{fig:pseudo_color}
+\end{figure}
+
+Figures~\ref{fig:image_default}a-g demonstrate the various pseudo color options available.
+
+\begin{figure}[h]
+  \centering
+  \subfloat[Default]{\label{fig:image_default}\includegraphics[width=0.25\textwidth]{pseudo_default.jpg}} \qquad
+  \subfloat[Inverted Gray Image]{\label{fig:image_inverted}\includegraphics[width=0.25\textwidth]{pseudo_inverse.jpg}} \qquad
+  \subfloat[Rainbow]{\label{fig:image_arc}\includegraphics[width=0.25\textwidth]{pseudo_rainbow.jpg}} \\
+  \subfloat[Desert]{\label{fig:image_desert}\includegraphics[width=0.25\textwidth]{pseudo_desert.jpg}} \qquad
+  \subfloat[Hue]{\label{fig:image_matiz}\includegraphics[width=0.25\textwidth]{pseudo_hue.jpg}} \qquad
+  \subfloat[Ocean]{\label{fig:image_ocean}\includegraphics[width=0.25\textwidth]{pseudo_ocean.jpg}}\\
+\subfloat[Saturation]{\label{fig:image_saturation}\includegraphics[width=0.25\textwidth]{pseudo_saturation.jpg}}  
+  \caption{Some different types of pseudo-color}
+  \label{fig:pseudo_color_types}
+\end{figure}
+
+\newpage
+\section{Projection type}
+
+It is possible to change the projection type of the 2D images, in addition to the normal mode, InVesalius has six types of projections that can be accessed as follows: Place the mouse over the image and \textbf{rigth-click} to open a context menu on it. When the menu opens, select the projection type option, and then click on the desired projection option, as shown in the Figure~\ref{fig:menu_proj}.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{menu_projection_en.png}
+\caption{Projection Type menu}
+\label{fig:menu_proj}
+\end{figure}
+
+\subsection{Normal}
+
+Normal mode is the default view, showing the unmodified image as it was when acquired or customized previously with either brightness and contrast or pseudo color. Normal mode is shown below in Figure~\ref{fig:proj_normal}.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_en.png}
+\caption{Normal projection}
+\label{fig:proj_normal}
+\end{figure}
+
+\subsection{MaxIP}
+\label{sec:max_ip}
+
+MaxIP is also known as MIP (\textit{Maximum Intensity Projection}). MaxIP selects only voxels that have maximum intensity among those visited as shown in Figure~\ref{fig:proj_maxip}. According to the amount of, or "depth" of MaxIP, each voxel is visited in order of overlap, for example, to select MaxIP of the pixel $(0, 0)$ consisting of 3 slices it is necessary to visit pixel $(0, 0)$ of slices $(1, 2, 3)$ and select the highest value.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_maxip_en.png}
+\caption{MaxIP projection}
+\label{fig:proj_maxip}
+\end{figure}
+
+As shown in Figure~\ref{fig:proj_maxip_qtd}, the number of MaxIP images is set at the bottom of each orientation image.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.80]{multiplanar_window_maxip_number_en.png}
+\caption{Selection the amount of images that composes the MaxIP or MIP}
+\label{fig:proj_maxip_qtd}
+\end{figure}
+
+\subsection{MinIP}
+
+Unlike MaxIP, MinIP (\textit{Minimun Intensity Projection}) selects only the voxels that have minimal intensity among those visited, as shown in Figure~\ref{fig:proj_minIP}. The image number selection comprising the projection is made at the bottom of each orientation image as shown in Figure~\ref{fig:proj_maxip_qtd}.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_minip_en.png}
+\caption{MinIP projection}
+\label{fig:proj_minIP}
+\end{figure}
+
+\subsection{MeanIP}
+The MeanIP (\textit{Mean Intensity Projection}) technique which is shown in the Figure~\ref{fig:proj_meanIP} composes the projection by averaging voxels visited in the same way as the MaxIP and MinIP methods. It is also possible to define how many images will compose the projection at the bottom of the image of each orientation as shown in Figure~\ref{fig:proj_maxip_qtd}.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_mean_en.png}
+\caption{MeanIP projection}
+\label{fig:proj_meanIP}
+\end{figure}
+
+\subsection{MIDA}
+\label{sub:mida}
+The MIDA (\textit{Maximum Intensity Difference Accumulation}) technique projects an image taking into account only voxels that have local maximum values. From each pixel a ray is simulated towards the volume, with each voxel being intercepted by each ray reaching the end of the volume. Each of the voxels visited has its accumulated value, but are taken into account only if the value is greater than previously visited values. Like MaxIP, one can select how many images are used to accumula [...]
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_mida_en.png}
+\caption{MIDA projection}
+\label{fig:proj_MIDA}
+\end{figure}
+
+As Figure~\ref{fig:proj_MIDA_inv} shows, it is possible to invert the order that the voxels are visited by selecting the \textbf{Inverted order} option in the lower corner of the screen.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_mida_inverted_en.png}
+\caption{Inverted order MIDA projection}
+\label{fig:proj_MIDA_inv}
+\end{figure}
+
+\subsection{Contour MaxIP}
+
+The Contour MaxIP function consists of visualizing contours present in the projection generated with MaxIP technique(\ref{sec:max_ip}). An example is presented in Figure~\ref{fig:proj_contorno_maxip}.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_contour_maxip_en.png}
+\caption{Contour MaxIP projection}
+\label{fig:proj_contorno_maxip}
+\end{figure}
+
+\subsection{Contour MIDA}
+
+The Contour MIDA function consists of visualizing contours present in the projection generated with the MIDA technique(\ref{sub:mida}). Like MIDA, you can reverse the order that the volume is visited, as shown in Figure~\ref{fig:proj_contorno_mida}.
+
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.40]{multiplanar_window_contour_mida_en.png}
+\caption{Contour MIDA projection}
+\label{fig:proj_contorno_mida}
+\end{figure}
\ No newline at end of file
diff --git a/docs/user_guide_en_source/cap_masc.tex b/docs/user_guide_en_source/cap_masc.tex
new file mode 100644
index 0000000..1e0ffea
--- /dev/null
+++ b/docs/user_guide_en_source/cap_masc.tex
@@ -0,0 +1,189 @@
+\chapter{Mask}
+
+
+\section{Boolean operations}
+
+After segmenting, some boolean operations can be performed between masks. The boolean operations supported by InVesalius are:
+
+\begin{itemize}
+	\item \textbf{Union}, perform union between two masks;
+	\item \textbf{Difference}, perform difference from the first mask to the second one;
+	\item \textbf{Intersection}, keeps what is common in both masks.
+	\item \textbf{Exclusive disjunction (XOR)}: keeps the regions of the first mask which are not in the second mask and regions from the second mask which are no in the first mask.
+\end{itemize}
+
+To use this tool go to the \textbf{Tools}, menu, select \textbf{Mask}, and then Boolean operations as shown in Figure~\ref{fig:booleano_menu}. Select the first mask, the operation to be performed and the second mask as shown in Figure~\ref{fig:booleano_janela} then click \textbf{OK}.
+
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{mask_operation_boolean_menu_en.png}
+\caption{Menu to open boolean operations tool.}
+\label{fig:booleano_menu}
+\end{figure}
+
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{mask_boolean_dialog_en.png}
+\caption{Boolean operations tool.}
+\label{fig:booleano_janela}
+\end{figure}
+
+Figure~\ref{fig:op_boolana} shows some examples of utilization of boolean operations tool.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Mask A]{\includegraphics[width=0.332\textwidth]{booleano_m_a.png}}
+  \hfill
+  \subfloat[Mask B]{\includegraphics[width=0.332\textwidth]{booleano_m_b.png}}
+  \hfill
+  \subfloat[Union (A $\cup$ B)]{\includegraphics[width=0.332\textwidth]{booleano_uniao.png}}
+  \hfill
+  \subfloat[Difference (A - B)]{\includegraphics[width=0.332\textwidth]{booleano_dif.png}}
+  \hfill
+  \subfloat[Intersection (A $\cap$ B)]{\includegraphics[width=0.332\textwidth]{booleano_interc.png}}
+  \hfill
+  \subfloat[Exclusive disjunction (A $\oplus$ B)]{\includegraphics[width=0.332\textwidth]{booleano_disj_exc.png}}
+  \caption{example of boolean operations.}
+  \label{fig:op_boolana}
+\end{figure}
+
+\section{Mask cleaning}
+\label{cap:limpeza_mascara}
+
+A mask can be cleaned, as shown in Figure~\ref{fig:limpeza_mascara}. This is recommended before inserting Watershed markers. This tool is located on the \textbf{Tools} menu. Select \textbf{Mask}, then \textbf{Clean mask}, or use the shortcut \textbf{CTRL+SHIFT+A}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{mask_clean_menu_en.png}
+\caption{Mask cleaning}
+\label{fig:limpeza_mascara}
+\end{figure}
+
+\section{Fill holes manually}
+
+Segmentation may leave some unwanted holes. It's recommended to fill them because the surface generated from this mask may have some inconsistencies. To do this access the menu \textbf{Tools}, \textbf{Mask}, \textbf{Fill holes manually} (figure~\ref{fig:menu_mask_manual_fill_holes}). A dialog window will be shown (figure~\ref{fig:mask_manual_fill_holes_window}) to configure the parameters.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_manual_fill_holes_en.png}
+\caption{Menu to access the tool to fill holes manually.}
+\label{fig:menu_mask_manual_fill_holes}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_manual_fill_holes_window_en.png}
+\caption{Dialog to configure the parameters of Fill holes manually tool.}
+\label{fig:mask_manual_fill_holes_window}
+\end{figure}
+
+It is possible to fill hole on a mask slice (\textbf{2D - Actual slice}) or on all slices, selecting the option (\textbf{3D - All slices}). The connectivity may also be configured: $4$ or $8$ for 2D and $6$, $18$ and $26$ for 3D.
+
+After configuring the desired parameters left-click on holes to fill them. Figure~\ref{fig:mask_fill_hole}.a shows a mask with some holes and other mask with the holes filled (Figure~\ref{fig:mask_fill_hole}.b). Click on the close button or close the dialog to deactivate this tool.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Holes]{\includegraphics[width=0.4\textwidth]{mask_axial_with_hole.png}}  \qquad
+  \subfloat[Holes filled]{\includegraphics[width=0.4\textwidth]{mask_axial_filled_hole.png}}
+  \hfill
+  \caption{Example of mask with holes filled.}
+  \label{fig:mask_fill_hole}
+\end{figure}
+
+
+\section{Fill holes automatically}
+
+To open this tool go to the \textbf{Tools} menu, select \textbf{Mask} then \textbf{Fill holes automatically} (Figure~\ref{fig:menu_mask_automatic_fill_holes}). This will open a dialog to configure the parameters. This tool doesn’t require the user to click on holes he desire to fill. This tool will fill the holes based on the \textbf{max hole size parameter} given in number of voxels (Figure~\ref{fig:mask_automatic_fill_holes_window}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_automatic_fill_holes_en.png}
+\caption{Menu to open the Fill holes automatically tool.}
+\label{fig:menu_mask_automatic_fill_holes}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_automatic_fill_holes_window_en.png}
+\caption{Dialog to configure the parameters used to fill the holes.}
+\label{fig:mask_automatic_fill_holes_window}
+\end{figure}
+
+Holes can also be filled on a mask slice (\textbf{2D - Actual slice}) or on all slices, selecting the option (\textbf{3D - All slices}. The connectivity will thus be $4$ or $8$ to 2D and $6$, $18$ and $26$ to 3D. If 2D, the user must indicate in which orientation window the holes will be filled.
+
+After setting the parameters click \textbf{Apply}. If the result is not suitable set another hole size value or connectivity. Click \textbf{Close} to close this tool.
+
+\section{Remove parts}
+
+After generating a surface, it is recommended to remove the unwanted disconnected parts from a mask. This way the surface generation will use less RAM and make the process quicker. To remove any unwanted parts, go to the \textbf{Tools} menu, select \textbf{Mask} and then \textbf{Remove Parts} (Figure~\ref{fig:menu_mask_remove_part}). A dialog will be shown to configure the selection parameters  (Figure~\ref{fig:mask_remove_parts_window}).
+
+It’s possible to select disconnected parts only on a mask slice (\textbf{2D - Actual slice}) or on all slices (\textbf{3D - All slices}); users may also configure the connectivity at the same time.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_remove_part_en.png}
+\caption{Menu to open the Remove parts tool.}
+\label{fig:menu_mask_remove_part}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_remove_parts_window_en.png}
+\caption{Dialog to configure the parameters used in Remove parts.}
+\label{fig:mask_remove_parts_window}
+\end{figure}
+
+After selecting the desired parameters click with the \textbf{left-button} of the mouse on the region you want to remove. Figure~\ref{fig:mask_removed_part} shows an example of a mask before and after the removal of unused parts. Click \textbf{Close} to stop using this tool.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Input image]{\includegraphics[width=0.45\textwidth]{mask_axial_complete.png}}  \qquad
+  \subfloat[Remove the tomograph support]{\includegraphics[width=0.45\textwidth]{mask_axial_selected_part.png}}
+  \hfill
+  \caption{Example of region remove from a mask.}
+  \label{fig:mask_removed_part}
+\end{figure}
+
+\section{Select parts}
+
+To open the Select parts tool, access the \textbf{Tools} menu, select \textbf{Mask} then \textbf{Select parts} (Figure~\ref{fig:menu_mask_select_part}). A dialog will be shown to configure the the name of the new mask and the connectivity ($6$, $18$ or $26$).
+
+To select a region, \textbf{left-click} on a pixel; multiple regions can be selected. The selected region(s) will be shown with a red mask. After selecting all the wanted regions, click \textbf{OK} to create a new mask with the selected regions. Figure~\ref{fig:mask_selected_part}.a shows a region selected in red. Figure~\ref{fig:mask_selected_part}.b shows the selected region in a new mask.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_select_part_en.png}
+\caption{Menu to open the Select parts tool.}
+\label{fig:menu_mask_select_part}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_select_part_en.png}
+\caption{Dialog to configure the parameters of Select parts tool.}
+\label{fig:mask_select_part}
+\end{figure}
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Region selected in red]{\includegraphics[width=0.45\textwidth]{mask_axial_select_part_pt.png}}  \qquad
+  \subfloat[Final image with only the selected region]{\includegraphics[width=0.45\textwidth]{mask_axial_selected_part_pt.png}}
+  \hfill
+  \caption{Example of mask region selection.}
+  \label{fig:mask_selected_part}
+\end{figure}
+
+\section{Crop}
+
+The crop tool allows users to select and use a specific section of image of interest. This may reduce the amount of information needed to be processed when generating a surface. To open, access the \textbf{Tool} menu, then \textbf{Mask} and \textbf{Crop} (Figure~\ref{fig:menu_mask_crop}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_crop_en.png}
+\caption{Menu open the Crop tool.}
+\label{fig:menu_mask_crop}
+\end{figure}
+
+A box allowing for the selection of a specific area will then be displayed.
\ No newline at end of file
diff --git a/docs/user_guide_en_source/cap_med.tex b/docs/user_guide_en_source/cap_med.tex
new file mode 100644
index 0000000..25e08b4
--- /dev/null
+++ b/docs/user_guide_en_source/cap_med.tex
@@ -0,0 +1,83 @@
+\chapter{Measures}
+
+InVesalius has linear and angular measurements in 2D (axial, coronal and sagittal planes) and 3D (surfaces). It is thus possible to take measurements of volume and area on surfaces.
+
+\section{Linear Measurement}
+
+To perform linear measurements, activate the feature by clicking on the shortcut shown below, located on the toolbar (Figure\ref{fig:measure_line_original}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{measure_line_original}
+\caption{Shortcut to activate linear measurement}
+\label{fig:measure_line_original}
+\end{figure}
+
+A linear measurement is taken between two points. With the feature enabled, click \textbf{once} on the image to set the starting point. Then position the mouse pointer on the end point and click once again. The measurement is performed and the result is automatically displayed on the image or surface
+
+Figure~\ref{fig:axial_linear} shows a 2D linear measure in the axial orientation, and Figure~\ref{fig:3d_linear} shows another linear measure in 3D (surface).
+
+Once you have made a 2D linear measurement, it can be edited by placing the mouse on one end, holding down the \textbf{right mouse button} and dragging it to the desired position.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{axial_linear.png}
+\caption{Linear measure on image}
+\label{fig:axial_linear}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{3d_linear.jpg}
+\caption{Linear measure on surface}
+\label{fig:3d_linear}
+\end{figure}
+
+\textbf{Note: The linear measurement is given in millimeters (mm).}
+
+\section{Angular Measurement}
+
+An angular measurement in 2D on a surface (3D) can be done by clicking on the shortcut shown in Figure~\ref{fig:atalho_angular}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{measure_angle_original}
+\caption{Shortcut for angle measurement}
+\label{fig:atalho_angular}
+\end{figure}
+
+To perform the angular measurement, it is necessary to provide the three points that will describe the angle to be measured, A\^{B}C. Insert the first point by clicking once to select point A. Insert point B (the vertex or "point" of the angle) by positioning the cursor and clicking once again. Repeat the same actions to determine the endpoint of the angle, C. The resulting measurement is displayed on the image or surface.
+
+Figure~\ref{fig:axial_angular} illustrates an angular measurement on a flat image; Figure~\ref{fig:axial_superficie} illustrates an angular measurement on a surface.
+
+In regards to 2D linear measurement, you can also edit the 2D angular measurement. Just position the mouse on one end, hold down the right mouse button and drag it to the desired position.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.38]{axial_angular.png}
+\caption{Angular measurement}
+\label{fig:axial_angular}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.33]{angular_superficie.jpg}
+\caption{Angular measurement on surface}
+\label{fig:axial_superficie}
+\end{figure}
+
+\textbf{Note: Angular measurement is shown in degrees ($^{\circ}$)}
+
+
+\section{Volumetric Measurement}
+
+Volume and area measurements are made automatically when you create a new surface. These are displayed in the \textbf{Surfaces 3D} tab in the \textbf{Data} management panel, located in the bottom left corner of the screen, as illustrated in Figure~\ref{fig:volumetric_mensure}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{painel_volumetric_measures_en.png}
+\caption{Volumetric measurements}
+\label{fig:volumetric_mensure}
+\end{figure}
+
+\textbf{Note: Volume measurement is given in cubic millimeter ($mm^3$), already the one of area in square millimeter ($mm^2$)}
\ No newline at end of file
diff --git a/docs/user_guide_en_source/cap_nav.tex b/docs/user_guide_en_source/cap_nav.tex
new file mode 100644
index 0000000..bf376bb
--- /dev/null
+++ b/docs/user_guide_en_source/cap_nav.tex
@@ -0,0 +1,156 @@
+\chapter{Neuronavegation}
+\label{sec:neuronavegador}
+
+An introduction to neuronavigation theory was presented in section~\ref{sec:neuronavegador_intro}. Please read that section before using the features detailed below.
+
+To enable the InVesalius neuronavigation mode, select the \textbf{Mode} tab in the main menu and then Navigation (Figure~\ref{fig:nav_menu_en}). A \textbf{Navigation System} tab will then display in the panel to the left of the main window, as shown in Figure~\ref{fig:nav_painel_en}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{nav_menu_en.png}
+\caption{Menu to enable neuronavigation mode.}
+\label{fig:nav_menu_en}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_painel_en.png}
+\caption{Tab for navigation system.}
+\label{fig:nav_painel_en}
+\end{figure}
+
+\section{Spatial trackers and reference mode}
+
+Currently, InVesalius Navigator supports four spatial tracking devices from two manufacturers: the MicronTracker from ClaroNav (Toronto, Canada; Figure~\ref{fig:tracker_claron}) and Fastrak, Isotrak and Patriot from Polhemus (Colchester, United States; Figure~\ref{fig:tracker_polhemus}).
+
+First, choose the tracker in the menu \textbf{Select tracker} (Figure~\ref{fig:nav_select_tracker}). The option \textbf{Debug tracker} allows the user to test the system even if there is no spatial tracker connected, instead simulating a spatial tracker by generating random coordinates.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{tracker_claron.png}
+\caption{ClaroNav MicronTracker - www.claronav.com/microntracker/.}
+\label{fig:tracker_claron}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{tracker_polhemus.jpg}
+\caption{Polhemus Patriot tracker - http://polhemus.com/motion-tracking/overview/.}
+\label{fig:tracker_polhemus}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_select_tracker_en.png}
+\caption{Menu to select tracking device.}
+\label{fig:nav_select_tracker}
+\end{figure}
+
+There are two methods to perform the navigation: static and dynamic (Figure~\ref{fig:nav_menu_ref}). Static mode uses just one spatial tracker probe. In this mode, the subject's head must stay motionless after registration (for more info about coregistration see Section~\ref{sec:corregistro} probes: a reference probe must head (e.g. forehead). during the probe will detect and correct any 16.2). Dynamic mode uses multiple be attached to a static part of the neuronavigation process; the re [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_menu_ref_en.png}
+\caption{Menu to select reference mode.}
+\label{fig:nav_menu_ref}
+\end{figure}
+
+\section{Coregistration}
+\label{sec:corregistro}
+
+The aim of coregistration is to transform a coordinate given in the tracking device space to a coordinate in the virtual space (image). To perform coregistration, the user must use the function \textbf{Correspondence between orientations axial, sagittal and coronal} (see section~\ref{sec:corresp_all_orient}) and select three anatomical fiducials in the image. Then, collect the same three fiducials with the spatial tracker. The most common anatomical fiducials are the nasion and both trag [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{nav_selec_coord_en.png}
+\caption{Buttons and coordinates to select anatomical fiducials.}
+\label{fig:nav_selec_coord}
+\end{figure}
+
+The buttons acronyms represent:
+
+\begin{itemize}
+	\item LEI: left ear in image
+	\item REI: right ear in image
+	\item NAI: nasion in image
+	\item LET: left ear with spatial tracker
+	\item RET: right ear with spatial tracker
+	\item NAT: nasion with spatial tracker
+\end{itemize}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{nav_balls_in_head.png}
+\caption{Selected fiducial markers represented as green spheres.}
+\label{fig:nav_balls_in_head}
+\end{figure}
+
+
+\section{Fiducial registration error and navigation}
+
+After all fiducials are selected in both spaces (tracker and image), press the \textbf{Navigate} button to start the neuronavigation process. To stop navigation, simply press \textbf{Navigate} again. Immediately after the navigation starts, the \textbf{Fiducial Registration Error} (FRE) is calculated. The FRE is the root mean square distance between the image fiducials used before and after registration.
+
+
+To the left of the Navigate button there is a FRE text box. If FRE is high (greater than 3 mm) the navigation will not be precise and the text box will become red (Figure~\ref{fig:nav_fre_error}). If this occurs, the coregistration should be redone. If FRE is lower than 3 mm, the text box will turn green, showing that the navigation has an acceptable precision (Figure~\ref{fig:nav_fre_ok}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_fre_error_en.png}
+\caption{Navigation button and high FRE unsuitable for navigation.}
+\label{fig:nav_fre_error}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_fre_ok_en.png}
+\caption{Navigation button and low FRE suitable for navigation.}
+\label{fig:nav_fre_ok}
+\end{figure}
+
+\section{Markers}
+
+During navigation, it is possible to create sphere markers in the 3D space. To do so, select the \textbf{Extra tools} tools tab (Figure~\ref{fig:nav_extra_tools}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_extra_tools_en.png}
+\caption{Markers manipulation tab.}
+\label{fig:nav_extra_tools}
+\end{figure}
+
+The marker will be positioned in the current red cross position. The size and color can be changed as needed (Figure~\ref{fig:nav_vol_with_markers}).
+
+When a marker is created, its coordinates will appear in the list control. To identify one marker in the volume, \textbf{double-click with the left} mouse button on the target item and the corresponding marker will blink. To stop blinking, select another marker. It is also possible to create an ID for the marker; simply right click and select \textbf{Edit ID} (Figure~\ref{fig:nav_id_list_markers}). Finally, a window will open allowing the user to define the ID (Figure~\ref{fig:nav_edit_i [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{nav_vol_with_markers.png}
+\caption{Volume with different colors markers.}
+\label{fig:nav_vol_with_markers}
+\end{figure} 
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_id_list_markers_en.png}
+\caption{Task to manage marker creation.}
+\label{fig:nav_id_list_markers}
+\end{figure} 
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_edit_id_markers_en.png}
+\caption{Window to label the marker.}
+\label{fig:nav_edit_id_markers}
+\end{figure} 
+
+The marker coordinates may be exported using the \textbf{Save} button (the file extension will be \textit{.mks}). This extension can be opened in any word processor, e.g. Notepad or WordPad software. The file will contain the $X$, $Y$ and $Z$ coordinates followed by the RGB code, marker size and ID. Afterwards, the markers can be imported into the navigation system using the \textbf{Load} button.
+
+To remove markers, \textbf{select} one or more markers needing deletion and press \textbf{Remove}. It is also possible to remove all markers, with the button \textbf{Remove all markers}. All markers can be hidden or shown in the volume using the \textbf{show/hide button}.
+
+\section{External trigger checkbox}
+
+Markers can also be created by using an external trigger. To activate this feature, press the checkbox \textbf{External trigger} before starting navigation. This function was developed to communicate with TMS devices by creating a marker where the pulses are applied, and can be adapted as the user requires. Communication with an external device requires serial port COM1. If this port receives any RS-232 signal at a 9600 \textit{baud rate} it will create a marker in the current red cross  [...]
+
+\section{Camera volume checkbox}
+
+The volume camera positioning is updated automatically, both by the red cross and the spatial tracker probe position. The user can disable this function by unchecking the \textbf{Camera volume} checkbox. However, the camera has to be manually changed.
diff --git a/docs/user_guide_en_source/cap_segmen.tex b/docs/user_guide_en_source/cap_segmen.tex
new file mode 100644
index 0000000..78b2724
--- /dev/null
+++ b/docs/user_guide_en_source/cap_segmen.tex
@@ -0,0 +1,349 @@
+\chapter{Segmentation}
+
+To select a certain type of tissue from an image it is used the segmentation feature at InVesalius.
+
+\section{Threshold}
+
+When using the thresholding segmentation technique, only the pixels whose intensity is inside the threshold range defined by the user are detected. The threshold is defined by two values, the initial (minimum) and final (maximum) threshold.
+
+In thresholding segmentation technique only the \textit{pixels} whose intensity is inside threshold range defined by the user. Threshold is defined by two number, the initial and final threshold, also known as minimum and maximum threshold. ...
+
+Thresholding segmentation is located the InVesalius left-panel, item \textbf{2. Select region of interest} (Figure~\ref{fig:region_selection}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{segmentation_threshold_window_left_en.png}
+\caption{Select region of interest - Threshold}
+\label{fig:region_selection}
+\end{figure}
+
+Before starting a segment it is necessary to configure a mask. A mask is a image over to examine an image where the selected regions are colored. (Figure~\ref{fig:region_selection_masc}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{segmentation_threshold_axial_en.png}
+\caption{Mask - selected region in yellow.}
+\label{fig:region_selection_masc}
+\end{figure}
+
+To change the threshold, use the image greyscale control (Figure~\ref{fig:region_selection_bar}). Move the \textit{left} sliding control to change the initial threshold. Move the \textbf{right} sliding control to change the final threshold. It is also possible to to input the desired threshold values in the text boxes in
+the left and right side of the thresholding control. The mask will be automatically updated when the thresholding values are changed, showing in color the pixels inside the thresholding range.
+
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.75]{segmentation_threshold_bar.png}
+\caption{Selecting \textit{pixels} with intensity between $226$ and $3021$ (Bone)}
+\label{fig:region_selection_bar}
+\end{figure}
+
+It is also possible to select some predefined thresholding values based on some type of tissues, like those displayed in Figure~\ref{fig:limiar_presets}. Just select the desired tissue and the mask will automatically update.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.65]{segmentation_threshold_presets_en.png}
+\caption{Selection list with some predefined thresholding values.}
+\label{fig:limiar_presets}
+\end{figure}
+
+Table~\ref{tab:limiar} show thresholding values according to some tissues or materials.
+
+\begin{table}[h]
+\centering
+\caption{Predefined thresholding values to some materials}
+\begin{tabular}{lcc}\\
+\hline % este comando coloca uma linha na tabela
+Material & Initial threshold & Final Threshold\\
+\hline
+\hline
+Bone & 226 & 3021\\
+Compact Bone (Adult) & 662 & 1988\\
+Compact Bone (Child) & 586 & 2198\\
+Custom & User Def. & User Def.\\
+Enamel (Adult) & 1553 & 2850\\
+Enamel (Child) & 2042 & 3021\\
+Fat Tissue (Adult) & -205 & -51\\
+Fat Tissue (Child) & -212 & -72\\
+Muscle Tissue (Adult) & -5 & 135\\
+Muscle Tissue (Child) & -25 & 139\\
+Skin Tissue (Adult) & -718 & -177\\
+Skin Tissue (Child) & -766 & -202\\
+Soft Tissue & -700 & 225\\
+Spongial Bone (Adult) & 148 & 661\\
+Spongial Bone (Child) & 156 & 585\\
+\hline
+\end{tabular}
+\label{tab:limiar}
+\end{table}
+\newpage
+
+Table~\ref{tab:limiar} indicates images obtained from medical tomographs. The range of gray values from images obtained from odontological tomographs are greater and non-regular. Thus, it is necessary to use sliding controls (Figure~\ref{fig:region_selection_bar}) to adjust the thresholding values.
+
+To create a new mask, click \textbf{Create new mask} (Figure~\ref{fig:shortcut_new_mask}). Then, click \textbf{Select region of interest}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{object_add_original}
+\caption{Button to create a new mask.}
+\label{fig:shortcut_new_mask}
+\end{figure}
+
+After clicking on this button a dialog will be shown (Figure~\ref{fig:create_new_mask}). Select the desired threshold and click on \textbf{Ok}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.55]{segmentation_threshold_window_dialog_en.png}
+\caption{Creating a new mask.}
+\label{fig:create_new_mask}
+\end{figure}
+
+\newpage
+
+After segmentation it is possible to generate a corresponding 3D surface. The surface is formed by triangles. The following chapter will give more details about surfaces.
+
+Click on the \textbf{Create surface} button (Figure~\ref{fig:generate_surface}) to create a new surface. If there is a surface created previously you may overwrite it with the new one. To do this select the option \textbf{Overwrite last surface} before creating the new surface.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.55]{segmentation_generate_surface_en.png}
+\caption{Create surface button.}
+\label{fig:generate_surface}
+\end{figure}
+
+After a few moments the surface will be displayed at the 3D visualization window of InVesalius (Figure~\ref{fig:surface}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{surface_from_threshold.png}
+\caption{3D surface.}
+\label{fig:surface}
+\end{figure}
+
+
+
+\section{Manual segmentation (Image edition)}
+
+Thresholding segmentation may not be efficient in some cases since it is applied to the whole image. Manual segmentation may be used to segment only an isolated region. Manual segmentation also allows users to add or remove some image regions from the segmentation. To use it click on \textbf{Manual edition} (Figure~\ref{fig:advanced_edition}) to open the manual segmentation panel.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.75]{segmentation_manual_label_en.png}
+\caption{Icon to open the Manual segmentation panel.}
+\label{fig:advanced_edition}
+\end{figure}
+
+Figure~\ref{fig:edition_slices_ref} show the Manual segmentation panel.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{segmentation_manual_window_en.png}
+\caption{Manual segmentation panel.}
+\label{fig:edition_slices_ref}
+\end{figure}
+
+There are two brushes used for segmentation: a circle and a square. Click on the triangle icon (see Figure~\ref{fig:brush_type}) to show brush types, then click on the desired brush.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.9]{segmentation_manual_pencil_type.png}
+\caption{Brush types.}
+\label{fig:brush_type}
+\end{figure}
+
+\newpage
+
+Brush sizes can also be adjusted, as shown in Figure~\ref{fig:select_diameter}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{segmentation_manual_diameter.png}
+\caption{Adjusting the brush size.}
+\label{fig:select_diameter}
+\end{figure}
+
+The following are available options when using brushes in InVesalius:
+
+\begin{itemize}
+	\item \textbf{Draw}: for adding a non-selected region to the segmentation;
+
+	\item \textbf{Erase}: for removal of a non-selected region;
+
+	\item \textbf{Threshold}: applies the thresholding locally, adding or removing a region inside or outside of the threshold range.
+\end{itemize}
+
+Figure~\ref{fig:select_brush_operations} shows the available brush operations.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{segmentation_manual_pencil_type_operation_type_en.png}
+\caption{Brush operations}
+\label{fig:select_brush_operations}
+\end{figure}
+
+Figure~\ref{fig:noise_amalgaman} shows a image with noise caused by the presence of a dental prosthesis. Note the rays emerging from the dental arch: the thresholding segments the noise since its intensity is inside of the threshold of bone.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam.jpg}
+\caption{Noisy image segmented with threshold.}
+\label{fig:noise_amalgaman}
+\end{figure}
+
+Figure~\ref{fig:surface_amagaman} shows a surface created from that segmentation.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_3d.jpg}
+\caption{Surface generated from noisy image.}
+\label{fig:surface_amagaman}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_3d_zoom.jpg}
+\caption{Zoom in the noisy area.}
+\label{fig:surface_amagaman_zoom}
+\end{figure}
+
+In such cases use the manual segmentation with the \textbf{erase} brush. Keep the \textbf{left} mouse button pressed while dragging the brush over the region to be removed (in mask).
+
+Figure\ref{fig:editor_amalgaman} shows the image from Figure~\ref{fig:noise_amalgaman} after.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_removed.jpg}
+\caption{After removing the noise.}
+\label{fig:editor_amalgaman}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_removed_3d_zoom.jpg}
+\caption{Surface generate after removing the noise.}
+\label{fig:surface_edited_amalgaman}
+\end{figure}
+
+A surface can be generated after manual segmentation (Figure~\ref{fig:surface_edited_amalgaman}). Since it was used in the manual segmentation procedure, when clicking on Create surface button, a dialog (Figure~\ref{fig:new_surface_edited}) will be opened to to select if the surface will be created with the method \textbf{Binary} (blocky) or \textbf{Context aware smoothing (smoother)}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{surface_generation_dialog_en.png}
+\caption{Surface creation methods}
+\label{fig:new_surface_edited}
+\end{figure}
+
+
+\section{Watershed}
+
+In watershed segmentation the user demarcates objects and background detail. This method treats the image as watershed (hence the name) in which the gray values (intensity) are the altitudes, forming valleys and mountains. The markers are water source. The waters fill the watershed until the waters gather together, thus distinguishing background from object. To use Watershed segmentation click on Watershed to open the watershed panel (Figure~\ref{fig:watershed_painel}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.75]{segmentation_watershed_panel_en.png}
+\caption{Watershed segmentation panel.}
+\label{fig:watershed_painel}
+\end{figure}
+
+Before segmenting to with Watershed it recommended to clean the mask (see section~\ref{cap:limpeza_mascara}).
+
+To insert a marker (object or background), a brush is used, similar to manual segmenting. You can use a circle or square brush and set its size.
+
+Select brush operations from the following:
+
+\begin{itemize}
+    \item \textbf{Object}: to insert object markers;
+    \item \textbf{Background}: to insert background markers (not object);
+    \item \textbf{Delete}: to delete markers;
+\end{itemize}
+
+
+The option \textbf{Overwrite mask} is used when the user wants the result of watershed segmentation to overwrite the existing segmentation. The option \textbf{Use WWWL} is used to make watershed take into account the image with the values of window width and window level (not the raw image) which may result in better segmentation.
+
+Click on the button on the left side of the panel (Figure~\ref{fig:watershed_conf}) to access more watershed configurations. This button will open a dialog (Figure~\ref{fig:watershed_janela_conf}). The method option allows to choose the Watershed algorithm to be used to segment. It may be the conventional \textbf{Watershed} or \textbf{Watershed IFT}, which is based on the IFT (\textit{Image Forest Transform}) method. In some cases, like brain segmentation, the \textbf{Watershed IFT} may  [...]
+
+The connectivity option refers to the pixel neighbourhood ($4$ or $8$ when in 2D,  or $6$, $18$ or $26$ when in 3D). \textbf{Gaussian sigma} is a parameter used in the smoothing algorithm (the image is smoothed before the segmentation to remove the noise and get better results). The greater this value the smoother the smoother the image will be.
+
+\begin{figure}[!htb]
+    \centering
+    \includegraphics[scale=0.5]{configuration.png}
+    \caption{Button to open the Watershed configuration dialog.}
+    \label{fig:watershed_conf}
+\end{figure}
+
+\begin{figure}[!htb]
+    \centering
+    \includegraphics[scale=0.55]{segmentation_watershed_conf_en.png}
+    \caption{Watershed configuration dialog.}
+    \label{fig:watershed_janela_conf}
+\end{figure}
+
+Normally the \textbf{Watershed} is applied only in one slice, not in the whole image. After adding the markers is possible to apply the watershed to the whole image by clicking on the button \textbf{Expand watershed to 3D}. Figure~\ref{fig:watershed_2d} shows the result of watershed segmentation in a slice (2D) of brain image. 
+
+Figure~\ref{fig:watershed_3d} shows the segmentation expanded to the whole image (3D).
+
+Figure~\ref{fig:watershed_2d} also shows the object markers (in light green), the background markers (in red) and the segmentation mask (in green) overlaying the selected regions (result).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{segmentation_watershed_axial.png}
+\caption{Watershed applied to a slice.}
+\label{fig:watershed_2d}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{segmentation_watershed_multiplanar_3d_pt.png}
+\caption{Brain segmentation using the watershed method applied to the whole image (3D).}
+\label{fig:watershed_3d}
+\end{figure}
+
+\section{Region growing}
+
+Region growing tool is accessed in the menu \textbf{Tools}, \textbf{Segmentation}, \textbf{Region growing} (figure~\ref{fig:menu_segmentation_region_growing}). Before segmenting select if the operation will be in \textbf{2D - Actual slice} or \textbf{3D - All slices}. It is also necessary to select the connectivity: $4$ or $8$ to 2D or $6$, $18$ or $26$ to 3D. It's also necessary to select the method, which may be \textbf{Dynamic, Threshold, or Confidence} (figure~\ref{fig:segmentation_r [...]
+
+\begin{figure}[!htb]
+    \centering
+    \includegraphics[scale=0.5]{menu_segmentation_region_growing_en.png}
+    \caption{Menu to access the region growing segmentation segmentation tool.}
+    \label{fig:menu_segmentation_region_growing}
+\end{figure}
+
+\begin{figure}[!htb]
+    \centering
+    \includegraphics[scale=0.7]{segmentation_region_growing_dinamic_en.png}
+    \caption{Dialog to configure the parameters of region growing segmentation tool.}
+    \label{fig:segmentation_region_growing_dinamic}
+\end{figure}
+
+This segmentation technique starts with a pixel (indicated by the user left-clicking with the mouse). The selection expands by analyzing the neighbourhood of the selected pixels and including those of a given set of qualities. Each region growing method has a different condition of selection:
+
+\begin{itemize}
+	\item \textbf{Dynamic}: Uses the value of the pixel clicked by the user. Then every connected pixel inside the lower (min) and the upper (max) range deviation are selected. The option \textbf{Use WWWL} is default and takes into account the image with \textbf{window width} and \textbf{window level} applied not the raw one (figure~\ref{fig:segmentation_region_growing_dinamic_parameter}).
+
+	\begin{figure}[!htb]
+	\centering
+	\includegraphics[scale=0.7]{segmentation_region_growing_dinamic_parameter_en.png}
+	\caption{Dynamic method parameters.}
+	\label{fig:segmentation_region_growing_dinamic_parameter}
+	\end{figure}
+
+	\item \textbf{Threshold}: This method selects the pixels whose intensity are inside the minimum and maximum threshold (Figure~\ref{fig:segmentation_region_growing_limiar}).
+
+	\begin{figure}[!htb]
+	\centering
+	\includegraphics[scale=0.7]{segmentation_region_growing_limiar_en.png}
+    \caption{Adjust the threshold.}
+	\label{fig:segmentation_region_growing_limiar}
+	\end{figure}
+
+    \item \textbf{Confidence}: This method starts by calculating the standard deviation and the mean value of the pixel selected by the user and its neighbourhood. Connected pixels with value inside the range (given by the mean more and less the standard deviation multiplied by the \textbf{Multiplier} parameter). It then calculates the mean and the standard deviation from the selected pixels, then carries out the expansion.  This process is repeated according to the \textbf{Iterations} p [...]
+
+	\begin{figure}[!htb]
+	\centering
+	\includegraphics[scale=0.7]{segmentation_region_growing_confidence_parameter_en.png}
+    \caption{Confidence parameter.}
+	\label{fig:segmentation_region_growing_confidence_parameter}
+	\end{figure}
+
+
+\end{itemize}
diff --git a/docs/user_guide_en_source/cap_stereoscop.tex b/docs/user_guide_en_source/cap_stereoscop.tex
new file mode 100644
index 0000000..b96122c
--- /dev/null
+++ b/docs/user_guide_en_source/cap_stereoscop.tex
@@ -0,0 +1,44 @@
+\chapter{Stereoscopic Visualization}
+
+InVesalius supports stereoscopic visualization of 3D models. First a surface (see chapter~\ref{cap_surface}) or an active volumetric visualization (see chapter~\ref{cap:vis_vol}) must be created. Then, click the icon (shown in Figure~\ref{fig:ster}) on the bottom right part of the interface and choose the desired projection type (Figure~\ref{fig:st_menu}).
+
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{3D_glasses.png}
+\caption{Shortcut to activate stereoscopic viewing methods.}
+\label{fig:ster}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{st_menu_en.png}
+\caption{Different methods of stereoscopic visualization.}
+\label{fig:st_menu}
+\end{figure}
+
+InVesalius supports the following types of stereoscopic viewing:
+
+\begin{itemize}
+	\item Red-blue
+	\item Anaglyph
+	\item CristalEyes
+	\item Interlaced
+	\item Left
+	\item Right
+	\item Dresden
+	\item Checkboard
+\end{itemize}
+
+Figure~\ref{fig:st_surf_methods} presents three different types of projections.
+
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Interlaced]{\includegraphics[width=0.3\textwidth]{st_surf_interlaced.jpg}} \qquad
+  \subfloat[Anaglyph]{\includegraphics[width=0.3\textwidth]{st_surf_anaglyph.jpg}} \qquad
+  \subfloat[Red-blue]{\includegraphics[width=0.3\textwidth]{st_surf_red_blue.jpg}}  
+  \hfill
+  \caption{Example of different methods of stereoscopic applied on a surface.}
+  \label{fig:st_surf_methods}
+\end{figure}
\ No newline at end of file
diff --git a/docs/user_guide_en_source/cap_superf.tex b/docs/user_guide_en_source/cap_superf.tex
new file mode 100644
index 0000000..6864254
--- /dev/null
+++ b/docs/user_guide_en_source/cap_superf.tex
@@ -0,0 +1,220 @@
+\chapter{Surface (Triangle mesh)}
+\label{cap_surface}
+
+InVesalius, generates 3D surfaces based on image segmentation. A surface is generated using the marching cubes algorithm by transforming voxels from the stacked and segmented images to polygons (triangles in this case).
+
+The controls to configure a 3D surface are accessible on the left panel, under \textbf{3. Configure 3D surface}, \textbf{Surface properties} you have the controls to configure a 3D surface (Figure~\ref{fig:3d_surface_managment}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.65]{surface_config_panel_en.png}
+\caption{3D surface configuration.}
+\label{fig:3d_surface_managment}
+\end{figure}
+
+
+\section{Creating 3D surfaces}
+
+News surfaces can be created using an already segmented mask. To do so, on the left panel under \textbf{3. Configure 3D surface}, click on the button shown in Figure~\ref{fig:shortcut_new_surface}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.18]{object_add_original}
+\caption{Button to create a 3D surface.}
+\label{fig:shortcut_new_surface}
+\end{figure}
+
+After clicking this button a dialog will be shown (Figure~\ref{fig:create_surface_1}). This dialog allows for the configuration of the 3D surface created, including setting the quality of the surface, filling surface holes whilst keeping the largest connected region of the surface intact.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{surface_config_window_en.png}
+\caption{3D surface creation dialog.}
+\label{fig:create_surface_1}
+\end{figure}
+
+The keep largest region option may be used, for instance, to remove the tomograph supports. Figure~\ref{fig:surface_ex1} displays a surface created with \textbf{Keep largest region} and \textbf{Fill holes} activated, whereas Figure~\ref{fig:surface_ex2} displays the surface create without activating that options. Note the tomograph support and the holes.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Frente]{\label{fig:__1}\includegraphics[width=0.338\textwidth]{surface_model_front.jpg}}
+  \subfloat[Baixo]{\label{fig:__1}\includegraphics[width=0.3\textwidth]{surface_model_bottom.jpg}}
+  \caption{Surface created with the options \textbf{Keep largest region} and \textbf{Fill holes} activated.}
+  \label{fig:surface_ex1}
+\end{figure}
+
+\begin{figure}
+  \centering
+  \subfloat[Frente]{\label{fig:__2}\includegraphics[width=0.371\textwidth]{surface_model_front_all_parts.jpg}}
+  \subfloat[Baixo]{\label{fig:__2}\includegraphics[width=0.3\textwidth]{surface_model_bottom_all_parts.jpg}}
+  \caption{Surface created with the options \textbf{Keep largest region} and \textbf{Fill holes} deactivated.}
+  \label{fig:surface_ex2}
+\end{figure}
+
+The \textbf{Surface creation method} item has the following options: \textbf{Binary}, \textbf{Context aware smoothing} and \textbf{Default}. Figure~\ref{fig:surf_method} shows an example of surface created using each of these 3 methods.
+
+The \textbf{Binary} method takes as input the segmentation mask which is binary, where selected regions have value 1 and non-selected have value 0. As it is binary, the surface generated has a blocky aspect, mainly in high curvature areas, appearing staircases.
+
+\textbf{Context aware smoothing} starts generating the surface using Binary, then uses another algorithm in order to smooth the surface to avoid staircase details. This method has 4 parameters presented below.
+
+The \textbf{angle} parameter is the angle between 2 adjacent triangles. If the calculated angle is greater than the angle parameter the triangle will be considered a staircase triangle and will be smoothed. The angle parameter ranges from $0$ to $1$, where $0$ is $0^\circ$ and $1$ is $90^\circ$. The \textbf{Max distance} is the maximum distance that a non-staircase triangle may be from a staircase triangle to be considered to be smoothed. Non-staircase triangles with distance greater tha [...]
+
+The \textbf{Default} method is enabled only when thresholding segmentation was used without any manual modification to the mask. This method does not use the mask image, but the raw image, and generates a smoother surface.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Binary]{\label{fig:surf_binary}\includegraphics[width=0.33\textwidth]{binary.png}}
+  \hfill
+  \subfloat[Context aware]{\label{fig:surf_context}\includegraphics[width=0.32\textwidth]{context.png}}
+  \hfill
+  \subfloat[Default]{\label{fig:surfa_default}\includegraphics[width=0.332\textwidth]{default.png}}
+  \caption{Surface generated by each method.}
+  \label{fig:surf_method}
+\end{figure}
+
+\section{Transparency}
+
+The Transparency function allows for the displaying of a surface transparently. To do so, select the desired surface from the list of surfaces, in the item \textbf{3. Configure 3D surface}, \textbf{Surface properties} (Figure~\ref{fig:select_surface}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{surface_select_menu_en.png}
+\caption{Surface selection.}
+\label{fig:select_surface}
+\end{figure}
+
+Then, to set the level of surface transparency, use the sliding control shown in Figure~\ref{fig:select_transparency}; the more to the right, the more transparent the surface will be.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{surface_transparency_en.png}
+\caption{Selection of surface transparency.}
+\label{fig:select_transparency}
+\end{figure}
+
+Figure~\ref{fig:model_transparency} shows 2 surfaces: the external surface in green has some level of transparency which permits to see the internal surface in yellow.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{transparency_2}
+\caption{Surface with transparency.}
+\label{fig:model_transparency}
+\end{figure}
+
+\newpage
+
+\section{Color}
+
+Surface colors can be altered by selecting the surface (Figure~\ref{fig:select_surface}), and clicking on the colored button on the right of the surface selection list. Figure~\ref{fig:change_surface_color} displays this button, inside item \textbf{3. Configure 3D surface}, \textbf{Surface properties}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{surface_button_select_color_yellow.png}
+\caption{Button to change surface color.}
+\label{fig:change_surface_color}
+\end{figure}
+
+A dialog will be shown (Figure~\ref{fig:button_select_color}). Select the desired color and click on \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{surface_select_color_windows_so_en.png}
+\caption{Color dialog.}
+\label{fig:button_select_color}
+\end{figure}
+
+\section{Splitting disconnected surfaces}
+
+To split disconnected surfaces, select \textbf{3. Configure 3D surface}, \textbf{Advanced options} (Figure~\ref{fig:advanced_tools}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{surface_painel_advanced_options_en.png}
+\caption{Advanced options.}
+\label{fig:advanced_tools}
+\end{figure}
+
+\newpage
+
+The advanced options panel will be displayed (Figure~\ref{fig:advanced_tools_expanded}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{surface_split_en.png}
+\caption{Advanced options panel.}
+\label{fig:advanced_tools_expanded}
+\end{figure}
+
+\subsection{Select largest surface}
+
+The option \textbf{Select largest surface} selects, automatically, only surface with the greater volume. Click on the button illustrated in Figure~\ref{fig:short_connectivity_largest}. This operation creates new a surface with only the largest surface.
+
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{connectivity_largest}
+\caption{Button to split the largest disconnected surface}
+\label{fig:short_connectivity_largest}
+\end{figure}
+
+As an example, the Figure~\ref{fig:extract_most_region_1} shows a surface before \textbf{Select largest surface}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{surface_extract_most_region_1.jpg}
+\caption{Disconnected surfaces.}
+\label{fig:extract_most_region_1}
+\end{figure}
+
+Whereas the Figure~\ref{fig:extract_most_region2} shows the surface with largest disconnected region separated.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{surface_extract_most_region2.jpg}
+\caption{Largest disconnected region separated.}
+\label{fig:extract_most_region2}
+\end{figure}
+
+\newpage
+
+\subsection{Select regions of interest}
+
+Another selection option is Select regions of interest. To do this operation click on the button illustrated in Figure~\ref{fig:short_connectivity_manual}, then click on the desired disconnected surface regions you want to select. Next click on \textbf{Select regions of interest}. This operation will create a new surface with only the selected disconnected regions.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{connectivity_manual}
+\caption{Button to select the regions of interest.}
+\label{fig:short_connectivity_manual}
+\end{figure}
+
+As an example, the Figure~\ref{fig:extract_most_region3} shows the surface created after the user selects the cranium and the right part of the tomograph support.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.35]{surface_extract_most_region3.jpg}
+\caption{Example of selected regions of interest}
+\label{fig:extract_most_region3}
+\end{figure}
+
+
+\subsection{Split all disconnected surfaces}
+
+Disconnected surface regions can also be split automatically. To do this, click on the button illustrated in Figure\ref{fig:connectivity_split_all}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{connectivity_split_all}
+\caption{Button to split all the disconnected regions surface.}
+\label{fig:connectivity_split_all}
+\end{figure}
+
+Figure~\ref{fig:extrac_most_region_4} shows an example.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{surface_extract_most_region_4.jpg}
+\caption{Example of split all disconnected regions surface.}
+\label{fig:extrac_most_region_4}
+\end{figure}
+
diff --git a/docs/user_guide_en_source/cap_visual_simult.tex b/docs/user_guide_en_source/cap_visual_simult.tex
new file mode 100644
index 0000000..320f7b2
--- /dev/null
+++ b/docs/user_guide_en_source/cap_visual_simult.tex
@@ -0,0 +1,50 @@
+\chapter{Simultaneous viewing of images and surfaces}
+
+Images and surfaces can be viewed simultaneously by \textbf{left-clicking} on the shortcut (Figure~\ref{fig:slice_plane_original}) located in the lower right corner of the InVesalius interface.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{slice_plane_original}
+\caption{Shortcut for simultaneous viewing}
+\label{fig:slice_plane_original}
+\end{figure}
+
+This feature allows users to enable or disable the displaying of images in different orientations (or plans) within the same display window of the 3D surface. Simply check or uncheck the corresponding option in the menu shown in Figure~\ref{fig:view_2d_3d_1}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{view_2d_3d_1_en.png}
+\caption{Selection of the guidelines (plans) to display}
+\label{fig:view_2d_3d_1}
+\end{figure}
+
+It is worth noting that when a particular orientation is selected, a check is presented in the corresponding option. This is illustrated in Figure~\ref{fig:view_2d_3d_2}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{view_2d_3d_2_en.png}
+\caption{Selected Guidelines for display}
+\label{fig:view_2d_3d_2}
+\end{figure}
+
+\newpage
+
+If the surface is already displayed, the plans of the guidelines will be presented as shown in Figure~\ref{fig:only_2d_planes}. Otherwise, only the plans will be displayed.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{3d_planes}
+\caption{Surface and plans displayed simultaneously}
+\label{fig:3d_planes}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.55]{only_2d_planes}
+\caption{Flat display (no surface)}
+\label{fig:only_2d_planes}
+\end{figure}
+
+\newpage
+
+To view the display of a plan, just uncheck the corresponding option in the menu (Figure~\ref{fig:view_2d_3d_2}).
\ No newline at end of file
diff --git a/docs/user_guide_en_source/cap_visual_vol.tex b/docs/user_guide_en_source/cap_visual_vol.tex
new file mode 100644
index 0000000..2c2e06f
--- /dev/null
+++ b/docs/user_guide_en_source/cap_visual_vol.tex
@@ -0,0 +1,147 @@
+\chapter{Volume Rendering}
+\label{cap:vis_vol}
+
+For volume rendering models, InVesalius employs a technique known as raycasting. Raycasting is a technique that simulates the trace of a beam of light toward the object through each screen pixel. The pixel color is based on the color and transparency of each voxel intercepted by the light beam.
+
+InVesalius contains several pre-defined patterns (presets) to display specific tissue types or different types of exam (tomographic contrast, for example).
+
+To access this feature, simply click the shortcut shown in Figure~\ref{fig:volume_raycasting_origina} in the lower right corner of the screen (next to the surfaces display window) and select one of the available presets.
+
+To turn off volume rendering, click again on the path indicated by Figure~\ref{fig:volume_raycasting_origina} and select the \textbf{Disable} option.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{volume_raycasting_origina}
+\caption{Shortcut to volume visualization}
+\label{fig:volume_raycasting_origina}
+\end{figure}
+
+\section{Viewing Standards}
+
+There are several predefined viewing patterns. Some examples are illustrated in the following figures.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.68]{brilhante_I}
+\caption{Bright}
+\label{fig:brilhante_I}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering 
+\includegraphics[scale=0.65]{vias_aereas_II}
+\caption{Airway II}
+\label{fig:vias_aereas_II} 
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.42]{contraste_medio}
+\caption{Contrast Medium}
+\label{fig:contraste_medio}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.55]{MIP}
+\caption{MIP}
+\label{fig:MIP}
+\end{figure}
+
+\newpage
+
+\section{Standard Customization}
+
+Some patterns can be personalized (and customized). Figure~\ref{fig:customize_1} is exhibiting a pattern and some graphical controls adjustment. With these features, the color of a given structure and its opacity can be altered, determining if and how it will be displayed.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{customize_1}
+\caption{Settings for the display pattern Soft Skin + II}
+\label{fig:customize_1}
+\end{figure}
+
+
+\newpage
+
+To hide a structure, use the control setting chart to decrease the opacity of the corresponding region. In the example in Figure~\ref{fig:customize_1} suppose we want to hide the muscular part (appearing in red). To do this, simply position the pointer over the muscular part in red and, using the left mouse button, drag the point down to reduce opacity and make the part transparent. Figure~\ref{fig:customize_2} illustrates the result.
+
+Note: The Alpha value indicates the opacity of the color and the \textbf{value}, the color intensity of the pixel.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{customize_2}
+\caption{Display Standard Soft Skin + II changed}
+\label{fig:customize_2}
+\end{figure}
+
+
+\newpage
+
+We can also remove or add points on the graph control setting. To remove, simply click with the right mouse button on the point. To add a new point, click the left button on the line graph. One can also save the resulting pattern by clicking the shortcut shown in Figure~\ref{fig:save_preset}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{save_preset}
+\caption{Shortcut to save standard}
+\label{fig:save_preset}
+\end{figure}
+ 
+To save the pattern, InVesalius displays a window like the one shown in Figure~\ref{fig:save_window_preset}. Enter a name for the custom pattern and \textbf{click OK}. The saved pattern will be available for the next time the software is opened.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{save_window_preset_en.png}
+\caption{Window to save name of pattern.}
+\label{fig:save_window_preset}
+\end{figure}
+
+\section{Standard Customization with Brightness and Contrast}
+
+You can customize a pattern without using the graphical control settings presented in the previous section. This is done through the \textbf{brightness and contrast} controls on the toolbar. Activate these by clicking the icon shown in Figure~\ref{fig:tool_contrast_original_vol}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{tool_contrast_original}
+\caption{Shortcut to Brightness and Contrast}
+\label{fig:tool_contrast_original_vol}
+\end{figure}
+
+Enable the control by dragging the mouse, with the left button pressed on the volume window. This will change the values of the window width and window level. The procedure is the same as with slices applied to 2D images, which can be seen in section~\ref{sec:ww_wl}. Dragging the mouse in a horizontal direction changes the window level value; drag left to decrease and right to increase. Dragging the mouse vertically changes the value of window width; drag down to decrease and up to increase.
+
+Manipulating these values can be useful for different viewing results. For example, to add tissue to the display, \textbf{drag} the mouse diagonally with \textbf{left button} pressed from the lower right to the upper left corner of the preview window. To remove tissue visualization, do the opposite, (i.e drag the mouse diagonally from top left to bottom right with the left button pressed.). See Figure~\ref{fig:raycasting_add}.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Bone]{\label{fig:raycasting_add_1}\includegraphics[width=0.33\textwidth]{raycasting_add_1}}                
+  \hfill
+  \subfloat[Muscle]{\label{fig:raycasting_add_2}\includegraphics[width=0.333\textwidth]{raycasting_add_2}}	
+  \hfill  
+  \subfloat[Skin]{\label{fig:raycasting_add_3}\includegraphics[width=0.332\textwidth]{raycasting_add_3}}
+  \caption{Tissue Addition}
+  \label{fig:raycasting_add}
+\end{figure}
+
+\newpage
+
+\section{Cut}
+
+In volume rendering, the cut function is used to view a cross-section of a region. With a volume pattern selected, click \textbf{Tools}, and then click \textbf{Cut plane} (Figure~\ref{fig:activate_cut_plane}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{activate_cut_plane_en.png}
+\caption{Enabling plan to cut}
+\label{fig:activate_cut_plane}
+\end{figure}
+
+An outline for cutting appears next to the volume. To make the cut, hold the left mouse button on the plane and drag the mouse. To rotate the plane, hold the left mouse button pressed on its edge and move the mouse in the desired direction as shown in Figure~\ref{fig:cutted_image}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{cutted_image}
+\caption{Image with clipping plane}
+\label{fig:cutted_image}
+\end{figure}
+
+When finished using the function, click \textbf{Tools} and again click \textbf{Cut plane} (Figure~\ref{fig:cutted_image}).
\ No newline at end of file
diff --git a/docs/user_guide_en_source/capa.tex b/docs/user_guide_en_source/capa.tex
new file mode 100644
index 0000000..e378559
--- /dev/null
+++ b/docs/user_guide_en_source/capa.tex
@@ -0,0 +1,16 @@
+\thispagestyle{empty}
+
+\begin{flushright}
+
+\flushright \scalebox{2.5}{\sffamily{\textbf{InVesalius}}}
+\par
+\vspace{180pt}
+\scalebox{2.8}{\sffamily User Guide}
+\ThisLLCornerWallPaper{1}{capa2.png}
+
+\begin{figure}[h!]
+\flushright 
+\includegraphics[scale=0.5, bb = 0 0 300 601]{logo_cti.jpg}
+\end{figure}		
+
+\end{flushright}
\ No newline at end of file
diff --git a/docs/user_guide_en_source/intro.tex b/docs/user_guide_en_source/intro.tex
new file mode 100644
index 0000000..c438be6
--- /dev/null
+++ b/docs/user_guide_en_source/intro.tex
@@ -0,0 +1,134 @@
+\chapter{Introduction}
+
+This manual aims to guide end users in the application of InVesalius tools and also presents some concepts to facilitate the use of the software.
+
+InVesalius is software that is designed to assist health professionals on diagnosis and surgical planning. It should be noted, however, that all software in the diagnostic context is fully supplementary, and each and every act committed is the responsibility of health professionals.
+ 
+In addition to medicine, InVesalius can be utilized in other areas such as archeology, medicine, dentistry, veterinary, or even in industrial applications. As a basic requirement, the images to be analyzed are in DICOM (Digital Imaging Communications in Medicine). To date, InVesalius reconstructs images stemmed from CT scanners and MRI machines. To operate the software, basic computer literacy is essential. Understanding medical images can help to form a better understanding of the operations.
+
+\section{Important Concepts}
+
+Detailed in this section are a list of concepts essential to better understand and operate the software.
+
+\subsection{DICOM (\textit{Digital Image Communications in Medicine})}	
+
+DICOM is a standard the transmission, storage and treatment of medical images. The standard encompasses various origins of medical images, such as images emanating from computed tomography (CT) equipment, magnetic resonance, ultrasound, and electrocardiogram, among others.
+
+A DICOM image consists of two main components, namely, an array containing the pixels of the image and a set of meta-information. This information includes, but is not limited to, patient name, mode image and the image position in relation to the space (in the case of CT and MRI).
+
+\subsection{Computed Tomography - Medical}
+
+Computed tomography indicates the radiodensity of tissues, i.e., the average X-ray absorption by the tissues. The radiodensity reading is translated into an image gray levels, called the Hounsfield scale, named Godfrey Newbold Hounsfield, one of the creators of the first CT scan.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{tomografo.jpg}
+\caption{Medical CT scanner - www.toshibamedical.com.br}
+\end{figure}
+
+Most modern CT scanning appliances are equipped with a radiation emitter and a sensor bank (with channels ranging from 2 to 256), which circle the patient while the stretcher is moved, forming a spiral. This generates a large number of images simultaneously, with little emission of X-rays.
+
+\subsubsection{Hounsfield Scale}
+
+As mentioned in the previous section, the CT images are generated in gray levels, expressed in Hounsfield (HU), wherein lighter shades represent denser matters, and the darker, less dense matter such as skin and brain tissues. 
+
+Table~\ref{tab:escala_hounsfield} presents some materials and their respective values in Hounsfield Units (HU).
+
+\begin{table}[h]
+\centering
+\caption{Escala de Hounsfield}
+\begin{tabular}{lcc}\\
+\hline % este comando coloca uma linha na tabela
+Material & HU\\
+\hline
+\hline
+Air & -1000 or less\\
+Fat & -120\\
+Water & 0\\
+Muscle & 40\\
+Contrast & 130\\
+Bone & 400 or more\\
+\hline
+\end{tabular}
+\label{tab:escala_hounsfield}
+\end{table}
+
+
+\subsection{Computed Tomography - Dental (CBCT)}
+
+The dental CT commonly works with less radiation emission compared to medical CT, and therefore makes it possible to view more details of delicate regions such as alveolar cortical.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{feixe_conico.jpg}
+\caption{Dental tomography - www.kavo.com.br}
+\end{figure}
+
+Image acquisition is performed with the patient positioned vertically (as opposed to medical tomography in which the patient is horizontal). A transmitter X-ray surround the patient's skull, forming an arc of $180^\circ$ or $360^\circ$. The images generated are compiled as a volume of the patient's skull. This volume is then "sliced" by the software into individual layers, being able to generate images with different spacing or fields of view, such as a panoramic view of the region of interest.
+
+The images acquired by dental scanners often require more post processing when it is necessary to separate (segmental) certain structures using other software such as InVesalius. This is because, typically, these images have more gray levels than, which makes use of segmentation patterns (preset) less. Another very common feature in the images of provincial dental CT scanners is the high presence of speckle noise and other forms of noise typically caused by the presence of amalgam prosthetics.
+
+\subsection{Magnetic Resonance Imaging - MRI}
+
+MRI is an examination performed without the use of ionizing radiation. Instead, it use a strong magnetic field to align the atoms of any element present in our body, most commonly hydrogen. After alignment, radio waves are triggered to excite atoms. The sensors measure the time that the hydrogen atoms take to realign. This makes it possible to distinguish between different tissues, as different types possess different quantities of hydrogen atoms.
+
+To avoid interference and improve the quality of the radiofrequency signal, the patient is placed inside a narrow tube encompassed by the coil and scanning unit.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.2]{rm_ge.jpg}
+\caption{Magnetic resonance imaging equipment - www.gehealthcare.com}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{bobina.jpg}
+\caption{Coil - www.healthcare.philips.com}
+\end{figure}
+
+\subsection{Neuronavigation}
+\label{sec:neuronavegador_intro}
+
+Neuronavigation is a technique that allows tracking and localization of surgical instruments relative to neuronal
+structures through computer visualization. In addition, neuronavigation systems a fundamental tool to aid surgical plan and to increase the accuracy of experiments in neuroscience, such as transcranial magnetic stimulation (TMS), electroencephalography (EEG), magnetoencephalography (MEG) and near-infrared spectroscopy (NIRS).
+Despite the vast field of applications, the use of neuronavigation in research centers is limited by its high cost.
+InVesalius Navigator offers users a low-cost, open-source alternative to commercial neuronavigation systems. In this sense, it is possible to use specific tools for
+neuronavigation and still have the possibility of developing features on demand. The software for neuronavigation is distributed in an executable version compatible with Windows 7, 8 and 10 operating system. The chapter~\ref{sec:neuronavegador} goes into details of all features of neuronavigation in InVesalius.
+
+\section{Resources needed}
+
+InVesalius is designed to run on personal computers, such as desktops and notebooks. Currently, it is compatible with the following operating systems:
+
+\begin{itemize}
+	\item Microsoft Windows (Windows 7, 8, 10)
+	\item GNU/Linux (Ubuntu, Mandriva, Fedora) 
+	\item Apple Mac OS X
+\end{itemize}
+
+The performance of InVesalius depends mainly on the amount of reconstructed slices (images offered by the software), the amount of random access memory (RAM) available, the processor clock rate \& frequency, and operating system architecture (32-bit or 64-bit).
+
+It is important to note that, as a general rule, the greater the amount of RAM available on the system, the greater the number of slices that can be opened simultaneously. For example, with 1 GB of available memory, it can open about 300 slices with a resolution of 512x512 pixels. With 4 GB of memory, around 1000 images can be opened simultaneously at the same resolution.
+
+\subsection{Minimum settings}
+
+\begin{itemize}
+	\item 32-bit Operating System
+	\item Intel Pentium 4 or equivalent 1.5 GHz
+	\item 1 GB of RAM
+	\item 10 GB available hard disk space
+	\item Graphics card with 64 MB memory
+	\item Video resolution of 1024x768 pixels
+\end{itemize}
+
+
+\subsection{Recommended settings}
+\begin{itemize}
+	\item 64-bit Operating System
+	\item Intel Core 2 Duo processor or equivalent 2.5 GHz
+	\item 8 GB of RAM
+	\item 20 GB available hard disk space
+	\item NVidia or ATI graphics card with 128 MB of memory
+	\item Video resolution of 1920x1080 pixels
+\end{itemize}
+
+
diff --git a/docs/user_guide_en_source/resumo.tex b/docs/user_guide_en_source/resumo.tex
new file mode 100644
index 0000000..b53a937
--- /dev/null
+++ b/docs/user_guide_en_source/resumo.tex
@@ -0,0 +1,38 @@
+\newpage
+\vspace*{10pt}
+\thispagestyle{empty}
+
+\begin{center} \emph{\begin{large}  About InVesalius \end{large}}
+\vspace{2pt}
+\end{center}
+
+\onehalfspacing
+ 		
+InVesalius is public health software that performs analysis and segmentation of
+Virtual anatomical models, enabling the creation of physical models with the aid of
+rapid prototyping (3D printing).
+From two-dimensional (2D) images obtained through Computed Tomography (CT) or Magnetic Resonance Imaging (MRI), the program allows users to create
+three-dimensional (3D) anatomical representations of patients for further medical use.
+
+InVesalius is named in honour of the Belgian doctor Andreas Vesalius (1514-1564), widely
+considered the father of modern anatomy.
+InVesalius software is developed by CTI (Center for Information Technology Center Renato
+Archer), a unit of the Brazilian Ministry of Science and Technology (MCT), since 2001. Initially, only
+the installation program was distributed as freeware. In November 2007
+InVesalius was made fully available as free software and open source via the Public Software Portal, allowing for communities of users and developers to connect.
+InVesalius is, in short, a simple yet robust, free cross-platform tool that is easy to use.
+
+
+The use of visualization technologies and three-dimensional analysis of medical images, when combined with rapid prototyping (3D printing), assists the surgeon in diagnosing pathologies and a detailed surgical planning and simulation of complex process in advance, which may involve, for example, a high degree of facial deformity or integration of prosthetics.
+
+InVesalius has demonstrated great versatility and has applications in different areas, including medicine, dentistry, veterinary medicine, archeology and engineering.
+
+Download options:
+
+\begin{itemize}
+	\item \href{https://www.cti.gov.br/invesalius}{https://www.cti.gov.br/invesalius}
+	\item \href{http://invesalius.github.io}{http://invesalius.github.io}	
+	\item \href{http://www.softwarepublico.gov.br}{www.softwarepublico.gov.br}
+\end{itemize}
+		
+\noindent
\ No newline at end of file
diff --git a/docs/user_guide_en_source/user_guide_en.tex b/docs/user_guide_en_source/user_guide_en.tex
new file mode 100644
index 0000000..0879aac
--- /dev/null
+++ b/docs/user_guide_en_source/user_guide_en.tex
@@ -0,0 +1,59 @@
+\documentclass[12pt,a4paper]{report}
+\usepackage[utf8]{inputenc}
+
+\usepackage[T1]{fontenc} %to search pdf
+\usepackage{ucs}
+\usepackage{amsmath, amssymb}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage[english]{babel} % Comentário, Português do Brasil
+\usepackage{graphicx}
+\usepackage{setspace}
+\usepackage{fancyhdr}
+\usepackage[pdftex, colorlinks,linkcolor=black,hyperindex]{hyperref}
+\usepackage{wrapfig}
+\usepackage{wallpaper}
+\usepackage{subfig}
+\usepackage{float}
+\usepackage{esvect}
+
+
+\hypersetup{
+    colorlinks,
+    citecolor=black,
+    filecolor=black,
+    linkcolor=black,
+    urlcolor=blue
+}
+
+\graphicspath{{../user_guide_figures/}{../user_guide_figures/invesalius_screen/}{../user_guide_figures/icons/}}
+
+\author{Centro de Tecnologia da Informação Renato Archer}
+\title{InVesalius - User guide}
+\date{}
+
+\begin{document}
+
+\include{capa}
+\include{resumo}
+\tableofcontents
+\include{intro}
+\include{cap_instal}
+\include{cap_import}
+\include{cap_img}
+\include{cap_manip}
+\include{cap_segmen}
+\include{cap_masc}
+\include{cap_superf}
+\include{cap_med}
+\include{cap_geren_dados}
+\include{cap_visual_simult}
+\include{cap_visual_vol}
+\include{cap_stereoscop}
+\include{cap_export}
+\include{cap_cust}
+\include{cap_nav}
+\include{autores}
+\end{document}
+
+
diff --git a/docs/user_guide_pt_BR_source/img/bobina.jpg b/docs/user_guide_figures/bobina.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/bobina.jpg
rename to docs/user_guide_figures/bobina.jpg
diff --git a/docs/user_guide_pt_BR_source/img/capa.png b/docs/user_guide_figures/capa.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/capa.png
rename to docs/user_guide_figures/capa.png
diff --git a/docs/user_guide_pt_BR_source/img/capa2.png b/docs/user_guide_figures/capa2.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/capa2.png
rename to docs/user_guide_figures/capa2.png
diff --git a/docs/user_guide_pt_BR_source/img/capa3.png b/docs/user_guide_figures/capa3.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/capa3.png
rename to docs/user_guide_figures/capa3.png
diff --git a/docs/user_guide_pt_BR_source/img/feixe_conico.jpg b/docs/user_guide_figures/feixe_conico.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/feixe_conico.jpg
rename to docs/user_guide_figures/feixe_conico.jpg
diff --git a/docs/user_guide_figures/icons/3D_glasses.png b/docs/user_guide_figures/icons/3D_glasses.png
new file mode 100644
index 0000000..be430f3
Binary files /dev/null and b/docs/user_guide_figures/icons/3D_glasses.png differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/Floppy.png b/docs/user_guide_figures/icons/Floppy.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/Floppy.png
rename to docs/user_guide_figures/icons/Floppy.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/annotation.png b/docs/user_guide_figures/icons/annotation.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/annotation.png
rename to docs/user_guide_figures/icons/annotation.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/brush_circle.jpg b/docs/user_guide_figures/icons/brush_circle.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/brush_circle.jpg
rename to docs/user_guide_figures/icons/brush_circle.jpg
diff --git a/docs/user_guide_pt_BR_source/img/icons/brush_square.jpg b/docs/user_guide_figures/icons/brush_square.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/brush_square.jpg
rename to docs/user_guide_figures/icons/brush_square.jpg
diff --git a/docs/user_guide_pt_BR_source/img/icons/configuration.png b/docs/user_guide_figures/icons/configuration.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/configuration.png
rename to docs/user_guide_figures/icons/configuration.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/connectivity_largest.png b/docs/user_guide_figures/icons/connectivity_largest.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/connectivity_largest.png
rename to docs/user_guide_figures/icons/connectivity_largest.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/connectivity_manual.png b/docs/user_guide_figures/icons/connectivity_manual.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/connectivity_manual.png
rename to docs/user_guide_figures/icons/connectivity_manual.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/connectivity_split_all.png b/docs/user_guide_figures/icons/connectivity_split_all.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/connectivity_split_all.png
rename to docs/user_guide_figures/icons/connectivity_split_all.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/cross.png b/docs/user_guide_figures/icons/cross.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/cross.png
rename to docs/user_guide_figures/icons/cross.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/cross_original.png b/docs/user_guide_figures/icons/cross_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/cross_original.png
rename to docs/user_guide_figures/icons/cross_original.png
diff --git a/docs/user_guide_figures/icons/data_duplicate.png b/docs/user_guide_figures/icons/data_duplicate.png
new file mode 100644
index 0000000..479c7cf
Binary files /dev/null and b/docs/user_guide_figures/icons/data_duplicate.png differ
diff --git a/docs/user_guide_figures/icons/data_new.png b/docs/user_guide_figures/icons/data_new.png
new file mode 100644
index 0000000..7633b51
Binary files /dev/null and b/docs/user_guide_figures/icons/data_new.png differ
diff --git a/docs/user_guide_figures/icons/data_remove.png b/docs/user_guide_figures/icons/data_remove.png
new file mode 100644
index 0000000..e52d305
Binary files /dev/null and b/docs/user_guide_figures/icons/data_remove.png differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/de_DE.bmp b/docs/user_guide_figures/icons/de_DE.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/de_DE.bmp
rename to docs/user_guide_figures/icons/de_DE.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/el_GR.bmp b/docs/user_guide_figures/icons/el_GR.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/el_GR.bmp
rename to docs/user_guide_figures/icons/el_GR.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/en.bmp b/docs/user_guide_figures/icons/en.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/en.bmp
rename to docs/user_guide_figures/icons/en.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/es.bmp b/docs/user_guide_figures/icons/es.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/es.bmp
rename to docs/user_guide_figures/icons/es.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_export.png b/docs/user_guide_figures/icons/file_export.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_export.png
rename to docs/user_guide_figures/icons/file_export.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_from_internet.png b/docs/user_guide_figures/icons/file_from_internet.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_from_internet.png
rename to docs/user_guide_figures/icons/file_from_internet.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_from_internet_original.png b/docs/user_guide_figures/icons/file_from_internet_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_from_internet_original.png
rename to docs/user_guide_figures/icons/file_from_internet_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_import.png b/docs/user_guide_figures/icons/file_import.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_import.png
rename to docs/user_guide_figures/icons/file_import.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_import_original.png b/docs/user_guide_figures/icons/file_import_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_import_original.png
rename to docs/user_guide_figures/icons/file_import_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_open.png b/docs/user_guide_figures/icons/file_open.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_open.png
rename to docs/user_guide_figures/icons/file_open.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_open_original.png b/docs/user_guide_figures/icons/file_open_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_open_original.png
rename to docs/user_guide_figures/icons/file_open_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_save.png b/docs/user_guide_figures/icons/file_save.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_save.png
rename to docs/user_guide_figures/icons/file_save.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_save_original.png b/docs/user_guide_figures/icons/file_save_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/file_save_original.png
rename to docs/user_guide_figures/icons/file_save_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/fr.bmp b/docs/user_guide_figures/icons/fr.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/fr.bmp
rename to docs/user_guide_figures/icons/fr.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/inv3_icon.ico b/docs/user_guide_figures/icons/inv3_icon.ico
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/inv3_icon.ico
rename to docs/user_guide_figures/icons/inv3_icon.ico
diff --git a/docs/user_guide_pt_BR_source/img/icons/invesalius.ico b/docs/user_guide_figures/icons/invesalius.ico
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/invesalius.ico
rename to docs/user_guide_figures/icons/invesalius.ico
diff --git a/docs/user_guide_pt_BR_source/img/icons/it_IT.bmp b/docs/user_guide_figures/icons/it_IT.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/it_IT.bmp
rename to docs/user_guide_figures/icons/it_IT.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/it_IT.png b/docs/user_guide_figures/icons/it_IT.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/it_IT.png
rename to docs/user_guide_figures/icons/it_IT.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/ko.bmp b/docs/user_guide_figures/icons/ko.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/ko.bmp
rename to docs/user_guide_figures/icons/ko.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_data_only.gif b/docs/user_guide_figures/icons/layout_data_only.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_data_only.gif
rename to docs/user_guide_figures/icons/layout_data_only.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_data_only.png b/docs/user_guide_figures/icons/layout_data_only.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_data_only.png
rename to docs/user_guide_figures/icons/layout_data_only.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_data_only_original.gif b/docs/user_guide_figures/icons/layout_data_only_original.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_data_only_original.gif
rename to docs/user_guide_figures/icons/layout_data_only_original.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_data_only_original.png b/docs/user_guide_figures/icons/layout_data_only_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_data_only_original.png
rename to docs/user_guide_figures/icons/layout_data_only_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_full.gif b/docs/user_guide_figures/icons/layout_full.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_full.gif
rename to docs/user_guide_figures/icons/layout_full.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_full.png b/docs/user_guide_figures/icons/layout_full.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_full.png
rename to docs/user_guide_figures/icons/layout_full.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_full_original.gif b/docs/user_guide_figures/icons/layout_full_original.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_full_original.gif
rename to docs/user_guide_figures/icons/layout_full_original.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_full_original.png b/docs/user_guide_figures/icons/layout_full_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/layout_full_original.png
rename to docs/user_guide_figures/icons/layout_full_original.png
diff --git a/docs/user_guide_figures/icons/load_mesh.png b/docs/user_guide_figures/icons/load_mesh.png
new file mode 100644
index 0000000..489d4d7
Binary files /dev/null and b/docs/user_guide_figures/icons/load_mesh.png differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/mask.png b/docs/user_guide_figures/icons/mask.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/mask.png
rename to docs/user_guide_figures/icons/mask.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/mask_small.png b/docs/user_guide_figures/icons/mask_small.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/mask_small.png
rename to docs/user_guide_figures/icons/mask_small.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_angle.jpg b/docs/user_guide_figures/icons/measure_angle.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/measure_angle.jpg
rename to docs/user_guide_figures/icons/measure_angle.jpg
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_angle.png b/docs/user_guide_figures/icons/measure_angle.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/measure_angle.png
rename to docs/user_guide_figures/icons/measure_angle.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_angle_original.jpg b/docs/user_guide_figures/icons/measure_angle_original.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/measure_angle_original.jpg
rename to docs/user_guide_figures/icons/measure_angle_original.jpg
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_angle_original.png b/docs/user_guide_figures/icons/measure_angle_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/measure_angle_original.png
rename to docs/user_guide_figures/icons/measure_angle_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_line.png b/docs/user_guide_figures/icons/measure_line.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/measure_line.png
rename to docs/user_guide_figures/icons/measure_line.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_line_original.png b/docs/user_guide_figures/icons/measure_line_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/measure_line_original.png
rename to docs/user_guide_figures/icons/measure_line_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_add.gif b/docs/user_guide_figures/icons/object_add.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_add.gif
rename to docs/user_guide_figures/icons/object_add.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_add.png b/docs/user_guide_figures/icons/object_add.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_add.png
rename to docs/user_guide_figures/icons/object_add.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_add_original.png b/docs/user_guide_figures/icons/object_add_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_add_original.png
rename to docs/user_guide_figures/icons/object_add_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_colour.jpg b/docs/user_guide_figures/icons/object_colour.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_colour.jpg
rename to docs/user_guide_figures/icons/object_colour.jpg
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_invisible.jpg b/docs/user_guide_figures/icons/object_invisible.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_invisible.jpg
rename to docs/user_guide_figures/icons/object_invisible.jpg
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_remove.gif b/docs/user_guide_figures/icons/object_remove.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_remove.gif
rename to docs/user_guide_figures/icons/object_remove.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_remove.png b/docs/user_guide_figures/icons/object_remove.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_remove.png
rename to docs/user_guide_figures/icons/object_remove.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_remove_original.png b/docs/user_guide_figures/icons/object_remove_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_remove_original.png
rename to docs/user_guide_figures/icons/object_remove_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_visible.jpg b/docs/user_guide_figures/icons/object_visible.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/object_visible.jpg
rename to docs/user_guide_figures/icons/object_visible.jpg
diff --git a/docs/user_guide_pt_BR_source/img/icons/print.png b/docs/user_guide_figures/icons/print.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/print.png
rename to docs/user_guide_figures/icons/print.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/print_original.png b/docs/user_guide_figures/icons/print_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/print_original.png
rename to docs/user_guide_figures/icons/print_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/pt.bmp b/docs/user_guide_figures/icons/pt.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/pt.bmp
rename to docs/user_guide_figures/icons/pt.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/pt_BR.bmp b/docs/user_guide_figures/icons/pt_BR.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/pt_BR.bmp
rename to docs/user_guide_figures/icons/pt_BR.bmp
diff --git a/docs/user_guide_pt_BR_source/img/icons/show_task.png b/docs/user_guide_figures/icons/show_task.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/show_task.png
rename to docs/user_guide_figures/icons/show_task.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/show_task_min.png b/docs/user_guide_figures/icons/show_task_min.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/show_task_min.png
rename to docs/user_guide_figures/icons/show_task_min.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice.png b/docs/user_guide_figures/icons/slice.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/slice.png
rename to docs/user_guide_figures/icons/slice.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice_original.png b/docs/user_guide_figures/icons/slice_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/slice_original.png
rename to docs/user_guide_figures/icons/slice_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice_plane.png b/docs/user_guide_figures/icons/slice_plane.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/slice_plane.png
rename to docs/user_guide_figures/icons/slice_plane.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice_plane_original.png b/docs/user_guide_figures/icons/slice_plane_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/slice_plane_original.png
rename to docs/user_guide_figures/icons/slice_plane_original.png
diff --git a/docs/user_guide_figures/icons/splash_de.png b/docs/user_guide_figures/icons/splash_de.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_de.png differ
diff --git a/docs/user_guide_figures/icons/splash_de_DE.png b/docs/user_guide_figures/icons/splash_de_DE.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_de_DE.png differ
diff --git a/docs/user_guide_figures/icons/splash_el_GR.png b/docs/user_guide_figures/icons/splash_el_GR.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_el_GR.png differ
diff --git a/docs/user_guide_figures/icons/splash_en.png b/docs/user_guide_figures/icons/splash_en.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_en.png differ
diff --git a/docs/user_guide_figures/icons/splash_es.png b/docs/user_guide_figures/icons/splash_es.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_es.png differ
diff --git a/docs/user_guide_figures/icons/splash_fr.png b/docs/user_guide_figures/icons/splash_fr.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_fr.png differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_it_IT.png b/docs/user_guide_figures/icons/splash_it_IT.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/splash_it_IT.png
rename to docs/user_guide_figures/icons/splash_it_IT.png
diff --git a/docs/user_guide_figures/icons/splash_ko.png b/docs/user_guide_figures/icons/splash_ko.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_ko.png differ
diff --git a/docs/user_guide_figures/icons/splash_pt.png b/docs/user_guide_figures/icons/splash_pt.png
new file mode 100644
index 0000000..56daf3b
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_pt.png differ
diff --git a/docs/user_guide_figures/icons/splash_zh_TW.png b/docs/user_guide_figures/icons/splash_zh_TW.png
new file mode 100644
index 0000000..9e34bd1
Binary files /dev/null and b/docs/user_guide_figures/icons/splash_zh_TW.png differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/surface_export.png b/docs/user_guide_figures/icons/surface_export.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/surface_export.png
rename to docs/user_guide_figures/icons/surface_export.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/surface_export_original.png b/docs/user_guide_figures/icons/surface_export_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/surface_export_original.png
rename to docs/user_guide_figures/icons/surface_export_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/text.gif b/docs/user_guide_figures/icons/text.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/text.gif
rename to docs/user_guide_figures/icons/text.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/text.png b/docs/user_guide_figures/icons/text.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/text.png
rename to docs/user_guide_figures/icons/text.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/text_inverted.png b/docs/user_guide_figures/icons/text_inverted.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/text_inverted.png
rename to docs/user_guide_figures/icons/text_inverted.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/text_inverted_original.png b/docs/user_guide_figures/icons/text_inverted_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/text_inverted_original.png
rename to docs/user_guide_figures/icons/text_inverted_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/text_original.png b/docs/user_guide_figures/icons/text_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/text_original.png
rename to docs/user_guide_figures/icons/text_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_annotation.png b/docs/user_guide_figures/icons/tool_annotation.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_annotation.png
rename to docs/user_guide_figures/icons/tool_annotation.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_annotation_original.png b/docs/user_guide_figures/icons/tool_annotation_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_annotation_original.png
rename to docs/user_guide_figures/icons/tool_annotation_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_contrast.png b/docs/user_guide_figures/icons/tool_contrast.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_contrast.png
rename to docs/user_guide_figures/icons/tool_contrast.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_contrast_original.png b/docs/user_guide_figures/icons/tool_contrast_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_contrast_original.png
rename to docs/user_guide_figures/icons/tool_contrast_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_photo.png b/docs/user_guide_figures/icons/tool_photo.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_photo.png
rename to docs/user_guide_figures/icons/tool_photo.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_photo_original.png b/docs/user_guide_figures/icons/tool_photo_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_photo_original.png
rename to docs/user_guide_figures/icons/tool_photo_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_rotate.png b/docs/user_guide_figures/icons/tool_rotate.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_rotate.png
rename to docs/user_guide_figures/icons/tool_rotate.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_rotate_original.gif b/docs/user_guide_figures/icons/tool_rotate_original.gif
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_rotate_original.gif
rename to docs/user_guide_figures/icons/tool_rotate_original.gif
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_rotate_original.png b/docs/user_guide_figures/icons/tool_rotate_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_rotate_original.png
rename to docs/user_guide_figures/icons/tool_rotate_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_translate.png b/docs/user_guide_figures/icons/tool_translate.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_translate.png
rename to docs/user_guide_figures/icons/tool_translate.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_translate_original.png b/docs/user_guide_figures/icons/tool_translate_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_translate_original.png
rename to docs/user_guide_figures/icons/tool_translate_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom.png b/docs/user_guide_figures/icons/tool_zoom.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom.png
rename to docs/user_guide_figures/icons/tool_zoom.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in.png b/docs/user_guide_figures/icons/tool_zoom_in.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom_in.png
rename to docs/user_guide_figures/icons/tool_zoom_in.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in_original.png b/docs/user_guide_figures/icons/tool_zoom_in_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom_in_original.png
rename to docs/user_guide_figures/icons/tool_zoom_in_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_original.png b/docs/user_guide_figures/icons/tool_zoom_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom_original.png
rename to docs/user_guide_figures/icons/tool_zoom_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out.png b/docs/user_guide_figures/icons/tool_zoom_out.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom_out.png
rename to docs/user_guide_figures/icons/tool_zoom_out.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out_original.png b/docs/user_guide_figures/icons/tool_zoom_out_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom_out_original.png
rename to docs/user_guide_figures/icons/tool_zoom_out_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select.png b/docs/user_guide_figures/icons/tool_zoom_select.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom_select.png
rename to docs/user_guide_figures/icons/tool_zoom_select.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select_original.png b/docs/user_guide_figures/icons/tool_zoom_select_original.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/tool_zoom_select_original.png
rename to docs/user_guide_figures/icons/tool_zoom_select_original.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_back.png b/docs/user_guide_figures/icons/view_back.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/view_back.png
rename to docs/user_guide_figures/icons/view_back.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_bottom.png b/docs/user_guide_figures/icons/view_bottom.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/view_bottom.png
rename to docs/user_guide_figures/icons/view_bottom.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_front.png b/docs/user_guide_figures/icons/view_front.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/view_front.png
rename to docs/user_guide_figures/icons/view_front.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_isometric.png b/docs/user_guide_figures/icons/view_isometric.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/view_isometric.png
rename to docs/user_guide_figures/icons/view_isometric.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_left.png b/docs/user_guide_figures/icons/view_left.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/view_left.png
rename to docs/user_guide_figures/icons/view_left.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_right.png b/docs/user_guide_figures/icons/view_right.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/view_right.png
rename to docs/user_guide_figures/icons/view_right.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_top.png b/docs/user_guide_figures/icons/view_top.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/view_top.png
rename to docs/user_guide_figures/icons/view_top.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/volume_raycasting.png b/docs/user_guide_figures/icons/volume_raycasting.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/volume_raycasting.png
rename to docs/user_guide_figures/icons/volume_raycasting.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/volume_raycasting_origina.png b/docs/user_guide_figures/icons/volume_raycasting_origina.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/volume_raycasting_origina.png
rename to docs/user_guide_figures/icons/volume_raycasting_origina.png
diff --git a/docs/user_guide_pt_BR_source/img/icons/zh_TW.bmp b/docs/user_guide_figures/icons/zh_TW.bmp
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/icons/zh_TW.bmp
rename to docs/user_guide_figures/icons/zh_TW.bmp
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_automatic_position.png b/docs/user_guide_figures/invesalius_screen/3d_automatic_position.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/3d_automatic_position.png
rename to docs/user_guide_figures/invesalius_screen/3d_automatic_position.png
diff --git a/docs/user_guide_figures/invesalius_screen/3d_automatic_position_en.png b/docs/user_guide_figures/invesalius_screen/3d_automatic_position_en.png
new file mode 100644
index 0000000..ef2db83
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/3d_automatic_position_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/3d_background_changed.png b/docs/user_guide_figures/invesalius_screen/3d_background_changed.png
new file mode 100644
index 0000000..1c0537b
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/3d_background_changed.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_linear.jpg b/docs/user_guide_figures/invesalius_screen/3d_linear.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/3d_linear.jpg
rename to docs/user_guide_figures/invesalius_screen/3d_linear.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_planes.jpg b/docs/user_guide_figures/invesalius_screen/3d_planes.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/3d_planes.jpg
rename to docs/user_guide_figures/invesalius_screen/3d_planes.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/MIP.jpg b/docs/user_guide_figures/invesalius_screen/MIP.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/MIP.jpg
rename to docs/user_guide_figures/invesalius_screen/MIP.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/activate_cut_plane_en.png b/docs/user_guide_figures/invesalius_screen/activate_cut_plane_en.png
new file mode 100644
index 0000000..3210843
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/activate_cut_plane_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/activate_cut_plane.png b/docs/user_guide_figures/invesalius_screen/activate_cut_plane_pt.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/activate_cut_plane.png
rename to docs/user_guide_figures/invesalius_screen/activate_cut_plane_pt.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/angular_superficie.jpg b/docs/user_guide_figures/invesalius_screen/angular_superficie.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/angular_superficie.jpg
rename to docs/user_guide_figures/invesalius_screen/angular_superficie.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029_.jpg b/docs/user_guide_figures/invesalius_screen/axial.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029_.jpg
rename to docs/user_guide_figures/invesalius_screen/axial.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/axial_angular.png b/docs/user_guide_figures/invesalius_screen/axial_angular.png
new file mode 100644
index 0000000..7f4e6e0
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_angular.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/axial_en.png b/docs/user_guide_figures/invesalius_screen/axial_en.png
new file mode 100644
index 0000000..1a3624e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/axial_interpoleted.png b/docs/user_guide_figures/invesalius_screen/axial_interpoleted.png
new file mode 100644
index 0000000..63163e6
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_interpoleted.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/axial_linear.png b/docs/user_guide_figures/invesalius_screen/axial_linear.png
new file mode 100644
index 0000000..e966a22
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_linear.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/axial_no_tex_en.png b/docs/user_guide_figures/invesalius_screen/axial_no_tex_en.png
new file mode 100644
index 0000000..001e939
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_no_tex_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/axial_not_interpoleted.png b/docs/user_guide_figures/invesalius_screen/axial_not_interpoleted.png
new file mode 100644
index 0000000..1ab76b3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_not_interpoleted.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_84Dec311201.jpg b/docs/user_guide_figures/invesalius_screen/axial_pan.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_84Dec311201.jpg
rename to docs/user_guide_figures/invesalius_screen/axial_pan.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/axial_pan_en.png b/docs/user_guide_figures/invesalius_screen/axial_pan_en.png
new file mode 100644
index 0000000..26b7c10
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_pan_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201_.jpg b/docs/user_guide_figures/invesalius_screen/axial_rotate.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201_.jpg
rename to docs/user_guide_figures/invesalius_screen/axial_rotate.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/axial_rotate_en.png b/docs/user_guide_figures/invesalius_screen/axial_rotate_en.png
new file mode 100644
index 0000000..ef03403
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/axial_rotate_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/binary.png b/docs/user_guide_figures/invesalius_screen/binary.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/binary.png
rename to docs/user_guide_figures/invesalius_screen/binary.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_dif.png b/docs/user_guide_figures/invesalius_screen/booleano_dif.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_dif.png
rename to docs/user_guide_figures/invesalius_screen/booleano_dif.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_disj_exc.png b/docs/user_guide_figures/invesalius_screen/booleano_disj_exc.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_disj_exc.png
rename to docs/user_guide_figures/invesalius_screen/booleano_disj_exc.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_interc.png b/docs/user_guide_figures/invesalius_screen/booleano_interc.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_interc.png
rename to docs/user_guide_figures/invesalius_screen/booleano_interc.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_m_a.png b/docs/user_guide_figures/invesalius_screen/booleano_m_a.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_m_a.png
rename to docs/user_guide_figures/invesalius_screen/booleano_m_a.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_m_b.png b/docs/user_guide_figures/invesalius_screen/booleano_m_b.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_m_b.png
rename to docs/user_guide_figures/invesalius_screen/booleano_m_b.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_uniao.png b/docs/user_guide_figures/invesalius_screen/booleano_uniao.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_uniao.png
rename to docs/user_guide_figures/invesalius_screen/booleano_uniao.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/brilhante_I.jpg b/docs/user_guide_figures/invesalius_screen/brilhante_I.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/brilhante_I.jpg
rename to docs/user_guide_figures/invesalius_screen/brilhante_I.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/colour_button.png b/docs/user_guide_figures/invesalius_screen/colour_button.png
new file mode 100644
index 0000000..94a6367
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/colour_button.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/colour_button_en.png b/docs/user_guide_figures/invesalius_screen/colour_button_en.png
new file mode 100644
index 0000000..7e12a7c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/colour_button_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/context.png b/docs/user_guide_figures/invesalius_screen/context.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/context.png
rename to docs/user_guide_figures/invesalius_screen/context.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_medio.jpg b/docs/user_guide_figures/invesalius_screen/contraste_medio.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_medio.jpg
rename to docs/user_guide_figures/invesalius_screen/contraste_medio.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_osso.png b/docs/user_guide_figures/invesalius_screen/contraste_osso.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_osso.png
rename to docs/user_guide_figures/invesalius_screen/contraste_osso.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_pulmao.png b/docs/user_guide_figures/invesalius_screen/contraste_pulmao.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_pulmao.png
rename to docs/user_guide_figures/invesalius_screen/contraste_pulmao.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141_.jpg b/docs/user_guide_figures/invesalius_screen/coronal.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141_.jpg
rename to docs/user_guide_figures/invesalius_screen/coronal.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/coronal_en.png b/docs/user_guide_figures/invesalius_screen/coronal_en.png
new file mode 100644
index 0000000..4e08d2d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/coronal_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_1.png b/docs/user_guide_figures/invesalius_screen/customize_1.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/customize_1.png
rename to docs/user_guide_figures/invesalius_screen/customize_1.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_2.png b/docs/user_guide_figures/invesalius_screen/customize_2.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/customize_2.png
rename to docs/user_guide_figures/invesalius_screen/customize_2.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/cutted_image.png b/docs/user_guide_figures/invesalius_screen/cutted_image.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/cutted_image.png
rename to docs/user_guide_figures/invesalius_screen/cutted_image.png
diff --git a/docs/user_guide_figures/invesalius_screen/data_mask_en.png b/docs/user_guide_figures/invesalius_screen/data_mask_en.png
new file mode 100644
index 0000000..924886a
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/data_mask_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/data_mask_pt.png b/docs/user_guide_figures/invesalius_screen/data_mask_pt.png
new file mode 100644
index 0000000..d02602e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/data_mask_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/default.png b/docs/user_guide_figures/invesalius_screen/default.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/default.png
rename to docs/user_guide_figures/invesalius_screen/default.png
diff --git a/docs/user_guide_figures/invesalius_screen/export_bmp_en.png b/docs/user_guide_figures/invesalius_screen/export_bmp_en.png
new file mode 100644
index 0000000..c0b934a
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/export_bmp_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/export_bmp_pt.png b/docs/user_guide_figures/invesalius_screen/export_bmp_pt.png
new file mode 100644
index 0000000..90920a4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/export_bmp_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/export_data_window.PNG b/docs/user_guide_figures/invesalius_screen/export_data_window.PNG
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/export_data_window.PNG
rename to docs/user_guide_figures/invesalius_screen/export_data_window.PNG
diff --git a/docs/user_guide_figures/invesalius_screen/export_surface.png b/docs/user_guide_figures/invesalius_screen/export_surface.png
new file mode 100644
index 0000000..139dad3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/export_surface.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/export_surface_en.png b/docs/user_guide_figures/invesalius_screen/export_surface_en.png
new file mode 100644
index 0000000..4d763c9
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/export_surface_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/eye.jpg b/docs/user_guide_figures/invesalius_screen/eye.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/eye.jpg
rename to docs/user_guide_figures/invesalius_screen/eye.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_adjust_center.png b/docs/user_guide_figures/invesalius_screen/image_reorient_adjust_center.png
new file mode 100644
index 0000000..e850cbe
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_adjust_center.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_adjust_center_en.png b/docs/user_guide_figures/invesalius_screen/image_reorient_adjust_center_en.png
new file mode 100644
index 0000000..96d2bb2
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_adjust_center_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_applied_en.png b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_applied_en.png
new file mode 100644
index 0000000..07ad3a1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_applied_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_applied_pt.png b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_applied_pt.png
new file mode 100644
index 0000000..fdca765
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_applied_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_en.png b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_en.png
new file mode 100644
index 0000000..12d4c83
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_pt.png b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_pt.png
new file mode 100644
index 0000000..b2d44b6
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_rotated_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_window_en.png b/docs/user_guide_figures/invesalius_screen/image_reorient_window_en.png
new file mode 100644
index 0000000..144431f
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/image_reorient_window_pt.png b/docs/user_guide_figures/invesalius_screen/image_reorient_window_pt.png
new file mode 100644
index 0000000..5d8599a
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/image_reorient_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_analyze_menu_en.png b/docs/user_guide_figures/invesalius_screen/import_analyze_menu_en.png
new file mode 100644
index 0000000..e56a4a1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_analyze_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_analyze_menu_pt.png b/docs/user_guide_figures/invesalius_screen/import_analyze_menu_pt.png
new file mode 100644
index 0000000..8b3f8cb
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_analyze_menu_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_analyze_window_en.png b/docs/user_guide_figures/invesalius_screen/import_analyze_window_en.png
new file mode 100644
index 0000000..52c3832
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_analyze_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_analyze_window_pt.png b/docs/user_guide_figures/invesalius_screen/import_analyze_window_pt.png
new file mode 100644
index 0000000..a39b9e4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_analyze_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_load_en.png b/docs/user_guide_figures/invesalius_screen/import_bmp_load_en.png
new file mode 100644
index 0000000..a2545b3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_load_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_load_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_load_pt.png
new file mode 100644
index 0000000..8b72980
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_load_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_menu_en.png b/docs/user_guide_figures/invesalius_screen/import_bmp_menu_en.png
new file mode 100644
index 0000000..73cc264
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_menu_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_menu_pt.png
new file mode 100644
index 0000000..1b241a1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_menu_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_mpr_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_mpr_pt.png
new file mode 100644
index 0000000..928f2e4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_mpr_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_resize_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_resize_pt.png
new file mode 100644
index 0000000..ee38b68
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_resize_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_select_folder_en.png b/docs/user_guide_figures/invesalius_screen/import_bmp_select_folder_en.png
new file mode 100644
index 0000000..934b963
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_select_folder_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_select_folder_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_select_folder_pt.png
new file mode 100644
index 0000000..9248af5
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_select_folder_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_skip_en.png b/docs/user_guide_figures/invesalius_screen/import_bmp_skip_en.png
new file mode 100644
index 0000000..68b04ea
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_skip_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_skip_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_skip_pt.png
new file mode 100644
index 0000000..879181c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_skip_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_spacing_en.png b/docs/user_guide_figures/invesalius_screen/import_bmp_spacing_en.png
new file mode 100644
index 0000000..cda20d5
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_spacing_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_spacing_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_spacing_pt.png
new file mode 100644
index 0000000..6052900
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_spacing_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_window_en.png b/docs/user_guide_figures/invesalius_screen/import_bmp_window_en.png
new file mode 100644
index 0000000..c805e93
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_bmp_window_pt.png b/docs/user_guide_figures/invesalius_screen/import_bmp_window_pt.png
new file mode 100644
index 0000000..c7a583c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_bmp_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_load_files_en.png b/docs/user_guide_figures/invesalius_screen/import_load_files_en.png
new file mode 100644
index 0000000..f67b402
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_load_files_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_load_files_pt.png b/docs/user_guide_figures/invesalius_screen/import_load_files_pt.png
new file mode 100644
index 0000000..b6a9503
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_load_files_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_nifti_menu_en.png b/docs/user_guide_figures/invesalius_screen/import_nifti_menu_en.png
new file mode 100644
index 0000000..6730327
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_nifti_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_nifti_menu_pt.png b/docs/user_guide_figures/invesalius_screen/import_nifti_menu_pt.png
new file mode 100644
index 0000000..c3eb5c3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_nifti_menu_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_nifti_window_en.png b/docs/user_guide_figures/invesalius_screen/import_nifti_window_en.png
new file mode 100644
index 0000000..8aea01c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_nifti_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_nifti_window_pt.png b/docs/user_guide_figures/invesalius_screen/import_nifti_window_pt.png
new file mode 100644
index 0000000..31dad15
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_nifti_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_parrec_menu_en.png b/docs/user_guide_figures/invesalius_screen/import_parrec_menu_en.png
new file mode 100644
index 0000000..d6d1679
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_parrec_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_parrec_menu_pt.png b/docs/user_guide_figures/invesalius_screen/import_parrec_menu_pt.png
new file mode 100644
index 0000000..e143f17
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_parrec_menu_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_parrec_window_en.png b/docs/user_guide_figures/invesalius_screen/import_parrec_window_en.png
new file mode 100644
index 0000000..1fbf8f1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_parrec_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_parrec_window_pt.png b/docs/user_guide_figures/invesalius_screen/import_parrec_window_pt.png
new file mode 100644
index 0000000..e3976fa
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_parrec_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_select_folder_en.png b/docs/user_guide_figures/invesalius_screen/import_select_folder_en.png
new file mode 100644
index 0000000..8e5e559
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_select_folder_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_select_folder_pt.png b/docs/user_guide_figures/invesalius_screen/import_select_folder_pt.png
new file mode 100644
index 0000000..d31762d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_select_folder_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_surface_en.png b/docs/user_guide_figures/invesalius_screen/import_surface_en.png
new file mode 100644
index 0000000..7b2c3b8
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_surface_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_surface_pt.png b/docs/user_guide_figures/invesalius_screen/import_surface_pt.png
new file mode 100644
index 0000000..180d43f
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_surface_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_detail_en.png b/docs/user_guide_figures/invesalius_screen/import_window_detail_en.png
new file mode 100644
index 0000000..288f388
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_detail_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_detail_pt.png b/docs/user_guide_figures/invesalius_screen/import_window_detail_pt.png
new file mode 100644
index 0000000..7fd3fe8
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_detail_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_en.png b/docs/user_guide_figures/invesalius_screen/import_window_en.png
new file mode 100644
index 0000000..006a4e5
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_lower_memory_en.png b/docs/user_guide_figures/invesalius_screen/import_window_lower_memory_en.png
new file mode 100644
index 0000000..a89ff00
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_lower_memory_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_lower_memory_pt.png b/docs/user_guide_figures/invesalius_screen/import_window_lower_memory_pt.png
new file mode 100644
index 0000000..2f210ac
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_lower_memory_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_progress.png b/docs/user_guide_figures/invesalius_screen/import_window_progress.png
new file mode 100644
index 0000000..04e93bc
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_progress.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_progress_en.png b/docs/user_guide_figures/invesalius_screen/import_window_progress_en.png
new file mode 100644
index 0000000..c8b16bd
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_progress_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_pt.png b/docs/user_guide_figures/invesalius_screen/import_window_pt.png
new file mode 100644
index 0000000..75120d6
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_skip_slice_en.png b/docs/user_guide_figures/invesalius_screen/import_window_skip_slice_en.png
new file mode 100644
index 0000000..8fe5e39
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_skip_slice_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/import_window_skip_slice_pt.png b/docs/user_guide_figures/invesalius_screen/import_window_skip_slice_pt.png
new file mode 100644
index 0000000..f2bb85c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/import_window_skip_slice_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_desktop_shortcut_en.png b/docs/user_guide_figures/invesalius_screen/installation_desktop_shortcut_en.png
new file mode 100644
index 0000000..77edb29
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_desktop_shortcut_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_desktop_shortcut_pt.png b/docs/user_guide_figures/invesalius_screen/installation_desktop_shortcut_pt.png
new file mode 100644
index 0000000..49aa6d1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_desktop_shortcut_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_exec_en.png b/docs/user_guide_figures/invesalius_screen/installation_exec_en.png
new file mode 100644
index 0000000..0f473a4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_exec_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_exec_pt.png b/docs/user_guide_figures/invesalius_screen/installation_exec_pt.png
new file mode 100644
index 0000000..713b30d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_exec_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_finish_en.png b/docs/user_guide_figures/invesalius_screen/installation_finish_en.png
new file mode 100644
index 0000000..9718152
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_finish_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_finish_pt.png b/docs/user_guide_figures/invesalius_screen/installation_finish_pt.png
new file mode 100644
index 0000000..6c49605
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_finish_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_folder_en.png b/docs/user_guide_figures/invesalius_screen/installation_folder_en.png
new file mode 100644
index 0000000..264ad30
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_folder_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_folder_pt.png b/docs/user_guide_figures/invesalius_screen/installation_folder_pt.png
new file mode 100644
index 0000000..2f47b90
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_folder_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_license_en.png b/docs/user_guide_figures/invesalius_screen/installation_license_en.png
new file mode 100644
index 0000000..6b22dbe
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_license_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_license_pt.png b/docs/user_guide_figures/invesalius_screen/installation_license_pt.png
new file mode 100644
index 0000000..6f440e4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_license_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_program_name_en.png b/docs/user_guide_figures/invesalius_screen/installation_program_name_en.png
new file mode 100644
index 0000000..94238b3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_program_name_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_program_name_pt.png b/docs/user_guide_figures/invesalius_screen/installation_program_name_pt.png
new file mode 100644
index 0000000..5a03fec
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_program_name_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_progress_en.png b/docs/user_guide_figures/invesalius_screen/installation_progress_en.png
new file mode 100644
index 0000000..d5de400
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_progress_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_progress_pt.png b/docs/user_guide_figures/invesalius_screen/installation_progress_pt.png
new file mode 100644
index 0000000..e34c8b0
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_progress_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_resume_en.png b/docs/user_guide_figures/invesalius_screen/installation_resume_en.png
new file mode 100644
index 0000000..b5c6745
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_resume_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_resume_pt.png b/docs/user_guide_figures/invesalius_screen/installation_resume_pt.png
new file mode 100644
index 0000000..91f965d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_resume_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_select_language_en.png b/docs/user_guide_figures/invesalius_screen/installation_select_language_en.png
new file mode 100644
index 0000000..ed6c59b
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_select_language_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_select_language_pt.png b/docs/user_guide_figures/invesalius_screen/installation_select_language_pt.png
new file mode 100644
index 0000000..f400657
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_select_language_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_welcome_en.png b/docs/user_guide_figures/invesalius_screen/installation_welcome_en.png
new file mode 100644
index 0000000..2091edc
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_welcome_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/installation_welcome_pt.png b/docs/user_guide_figures/invesalius_screen/installation_welcome_pt.png
new file mode 100644
index 0000000..623dc44
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/installation_welcome_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/invert_axis_axial_en.png b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_en.png
new file mode 100644
index 0000000..c5e603b
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/invert_axis_axial_inverted_en.png b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_inverted_en.png
new file mode 100644
index 0000000..d9be80e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_inverted_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/invert_axis_axial_inverted_pt.png b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_inverted_pt.png
new file mode 100644
index 0000000..1d904db
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_inverted_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/invert_axis_axial_pt.png b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_pt.png
new file mode 100644
index 0000000..2c11720
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/invert_axis_axial_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/invesalius_language_select_en.png b/docs/user_guide_figures/invesalius_screen/invesalius_language_select_en.png
new file mode 100644
index 0000000..8823fdb
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/invesalius_language_select_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/invesalius_language_select_pt.png b/docs/user_guide_figures/invesalius_screen/invesalius_language_select_pt.png
new file mode 100644
index 0000000..e61585d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/invesalius_language_select_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mac2.png b/docs/user_guide_figures/invesalius_screen/mac2.png
new file mode 100644
index 0000000..6434b58
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mac2.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mac4.png b/docs/user_guide_figures/invesalius_screen/mac4.png
new file mode 100644
index 0000000..716a0c9
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mac4.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/main_window_without_project_en.png b/docs/user_guide_figures/invesalius_screen/main_window_without_project_en.png
new file mode 100644
index 0000000..87cb923
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/main_window_without_project_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/main_window_without_project_pt.png b/docs/user_guide_figures/invesalius_screen/main_window_without_project_pt.png
new file mode 100644
index 0000000..6e117ab
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/main_window_without_project_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_automatic_fill_holes_window_en.png b/docs/user_guide_figures/invesalius_screen/mask_automatic_fill_holes_window_en.png
new file mode 100644
index 0000000..2465b1f
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_automatic_fill_holes_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_automatic_fill_holes_window_pt.png b/docs/user_guide_figures/invesalius_screen/mask_automatic_fill_holes_window_pt.png
new file mode 100644
index 0000000..b8f4324
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_automatic_fill_holes_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_axial_complete.png b/docs/user_guide_figures/invesalius_screen/mask_axial_complete.png
new file mode 100644
index 0000000..d7b6558
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_axial_complete.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_axial_filled_hole.png b/docs/user_guide_figures/invesalius_screen/mask_axial_filled_hole.png
new file mode 100644
index 0000000..7c316c2
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_axial_filled_hole.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_axial_select_part_pt.png b/docs/user_guide_figures/invesalius_screen/mask_axial_select_part_pt.png
new file mode 100644
index 0000000..bb3e1f8
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_axial_select_part_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_axial_selected_part.png b/docs/user_guide_figures/invesalius_screen/mask_axial_selected_part.png
new file mode 100644
index 0000000..b3c50de
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_axial_selected_part.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_axial_selected_part_pt.png b/docs/user_guide_figures/invesalius_screen/mask_axial_selected_part_pt.png
new file mode 100644
index 0000000..79bf15c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_axial_selected_part_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_axial_with_hole.png b/docs/user_guide_figures/invesalius_screen/mask_axial_with_hole.png
new file mode 100644
index 0000000..5fd6f53
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_axial_with_hole.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_boolean_dialog_en.png b/docs/user_guide_figures/invesalius_screen/mask_boolean_dialog_en.png
new file mode 100644
index 0000000..8e3feb2
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_boolean_dialog_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_boolean_dialog_pt.png b/docs/user_guide_figures/invesalius_screen/mask_boolean_dialog_pt.png
new file mode 100644
index 0000000..85d1a0b
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_boolean_dialog_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_clean_menu_en.png b/docs/user_guide_figures/invesalius_screen/mask_clean_menu_en.png
new file mode 100644
index 0000000..304b852
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_clean_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_clean_menu_pt.png b/docs/user_guide_figures/invesalius_screen/mask_clean_menu_pt.png
new file mode 100644
index 0000000..7cb6ea2
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_clean_menu_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_crop_pt.png b/docs/user_guide_figures/invesalius_screen/mask_crop_pt.png
new file mode 100644
index 0000000..eac746a
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_crop_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_manual_fill_holes_window_en.png b/docs/user_guide_figures/invesalius_screen/mask_manual_fill_holes_window_en.png
new file mode 100644
index 0000000..152ecbf
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_manual_fill_holes_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_manual_fill_holes_window_pt.png b/docs/user_guide_figures/invesalius_screen/mask_manual_fill_holes_window_pt.png
new file mode 100644
index 0000000..687d0f4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_manual_fill_holes_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_operation_boolean_menu_en.png b/docs/user_guide_figures/invesalius_screen/mask_operation_boolean_menu_en.png
new file mode 100644
index 0000000..292d261
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_operation_boolean_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_operation_boolean_menu_pt.png b/docs/user_guide_figures/invesalius_screen/mask_operation_boolean_menu_pt.png
new file mode 100644
index 0000000..e0f15e2
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_operation_boolean_menu_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_remove_parts_window.png b/docs/user_guide_figures/invesalius_screen/mask_remove_parts_window.png
new file mode 100644
index 0000000..37e414e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_remove_parts_window.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_remove_parts_window_en.png b/docs/user_guide_figures/invesalius_screen/mask_remove_parts_window_en.png
new file mode 100644
index 0000000..f73abc0
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_remove_parts_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_select_part_en.png b/docs/user_guide_figures/invesalius_screen/mask_select_part_en.png
new file mode 100644
index 0000000..7714b3a
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_select_part_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mask_select_part_pt.png b/docs/user_guide_figures/invesalius_screen/mask_select_part_pt.png
new file mode 100644
index 0000000..0fc7d69
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mask_select_part_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/maximize_sagital_mpr.png b/docs/user_guide_figures/invesalius_screen/maximize_sagital_mpr.png
new file mode 100644
index 0000000..7225c24
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/maximize_sagital_mpr.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_img_mirroring_axis_en.png b/docs/user_guide_figures/invesalius_screen/menu_img_mirroring_axis_en.png
new file mode 100644
index 0000000..906d542
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_img_mirroring_axis_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_img_mirroring_axis_pt.png b/docs/user_guide_figures/invesalius_screen/menu_img_mirroring_axis_pt.png
new file mode 100644
index 0000000..f6f8647
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_img_mirroring_axis_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_img_reorient_en.png b/docs/user_guide_figures/invesalius_screen/menu_img_reorient_en.png
new file mode 100644
index 0000000..51121d8
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_img_reorient_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_img_reorient_pt.png b/docs/user_guide_figures/invesalius_screen/menu_img_reorient_pt.png
new file mode 100644
index 0000000..7b21f86
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_img_reorient_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_interpoleted_image_en.png b/docs/user_guide_figures/invesalius_screen/menu_interpoleted_image_en.png
new file mode 100644
index 0000000..e7c6dec
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_interpoleted_image_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_interpoleted_image_pt.png b/docs/user_guide_figures/invesalius_screen/menu_interpoleted_image_pt.png
new file mode 100644
index 0000000..2b213ed
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_interpoleted_image_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_invert_axis_en.png b/docs/user_guide_figures/invesalius_screen/menu_invert_axis_en.png
new file mode 100644
index 0000000..a728b52
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_invert_axis_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_invert_axis_pt.png b/docs/user_guide_figures/invesalius_screen/menu_invert_axis_pt.png
new file mode 100644
index 0000000..5bc22e1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_invert_axis_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_automatic_fill_holes_en.png b/docs/user_guide_figures/invesalius_screen/menu_mask_automatic_fill_holes_en.png
new file mode 100644
index 0000000..acc1453
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_automatic_fill_holes_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_automatic_fill_holes_pt.png b/docs/user_guide_figures/invesalius_screen/menu_mask_automatic_fill_holes_pt.png
new file mode 100644
index 0000000..ad90003
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_automatic_fill_holes_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_crop_en.png b/docs/user_guide_figures/invesalius_screen/menu_mask_crop_en.png
new file mode 100644
index 0000000..b47f908
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_crop_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_crop_pt.png b/docs/user_guide_figures/invesalius_screen/menu_mask_crop_pt.png
new file mode 100644
index 0000000..a7c1250
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_crop_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_manual_fill_holes_en.png b/docs/user_guide_figures/invesalius_screen/menu_mask_manual_fill_holes_en.png
new file mode 100644
index 0000000..5feb600
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_manual_fill_holes_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_manual_fill_holes_pt.png b/docs/user_guide_figures/invesalius_screen/menu_mask_manual_fill_holes_pt.png
new file mode 100644
index 0000000..e7fde01
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_manual_fill_holes_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_remove_part_en.png b/docs/user_guide_figures/invesalius_screen/menu_mask_remove_part_en.png
new file mode 100644
index 0000000..6188724
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_remove_part_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_remove_part_pt.png b/docs/user_guide_figures/invesalius_screen/menu_mask_remove_part_pt.png
new file mode 100644
index 0000000..05b3fc4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_remove_part_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_select_part_en.png b/docs/user_guide_figures/invesalius_screen/menu_mask_select_part_en.png
new file mode 100644
index 0000000..e09ccdc
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_select_part_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_mask_select_part_pt.png b/docs/user_guide_figures/invesalius_screen/menu_mask_select_part_pt.png
new file mode 100644
index 0000000..cbafece
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_mask_select_part_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_projection_en.png b/docs/user_guide_figures/invesalius_screen/menu_projection_en.png
new file mode 100644
index 0000000..03ff348
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_projection_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/menu_projection.png b/docs/user_guide_figures/invesalius_screen/menu_projection_pt.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/menu_projection.png
rename to docs/user_guide_figures/invesalius_screen/menu_projection_pt.png
diff --git a/docs/user_guide_figures/invesalius_screen/menu_save_image_window_en.png b/docs/user_guide_figures/invesalius_screen/menu_save_image_window_en.png
new file mode 100644
index 0000000..911ac48
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_save_image_window_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/menu_save_image_window.PNG b/docs/user_guide_figures/invesalius_screen/menu_save_image_window_pt.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/menu_save_image_window.PNG
rename to docs/user_guide_figures/invesalius_screen/menu_save_image_window_pt.png
diff --git a/docs/user_guide_figures/invesalius_screen/menu_segmentation_region_growing_en.png b/docs/user_guide_figures/invesalius_screen/menu_segmentation_region_growing_en.png
new file mode 100644
index 0000000..0ccd753
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_segmentation_region_growing_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_segmentation_region_growing_pt.png b/docs/user_guide_figures/invesalius_screen/menu_segmentation_region_growing_pt.png
new file mode 100644
index 0000000..40e0aed
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_segmentation_region_growing_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/menu_window_and_level_en.png b/docs/user_guide_figures/invesalius_screen/menu_window_and_level_en.png
new file mode 100644
index 0000000..1549fb0
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/menu_window_and_level_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_0.png b/docs/user_guide_figures/invesalius_screen/menu_window_and_level_pt.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_0.png
rename to docs/user_guide_figures/invesalius_screen/menu_window_and_level_pt.png
diff --git a/docs/user_guide_figures/invesalius_screen/mirror_axial.png b/docs/user_guide_figures/invesalius_screen/mirror_axial.png
new file mode 100644
index 0000000..586ad80
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mirror_axial.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mirror_axial_en.png b/docs/user_guide_figures/invesalius_screen/mirror_axial_en.png
new file mode 100644
index 0000000..7a4c8ee
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mirror_axial_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mirror_axial_mirrored.png b/docs/user_guide_figures/invesalius_screen/mirror_axial_mirrored.png
new file mode 100644
index 0000000..ae08e81
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mirror_axial_mirrored.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/mirror_axial_mirrored_en.png b/docs/user_guide_figures/invesalius_screen/mirror_axial_mirrored_en.png
new file mode 100644
index 0000000..3cdc0ac
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/mirror_axial_mirrored_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_mask_window_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_mask_window_en.png
new file mode 100644
index 0000000..2e51ebc
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_mask_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_mask_window_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_mask_window_pt.png
new file mode 100644
index 0000000..f8e91f0
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_mask_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_maxip_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_maxip_en.png
new file mode 100644
index 0000000..c456fae
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_maxip_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_maxip_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_maxip_pt.png
new file mode 100644
index 0000000..282294d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_maxip_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_mida_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_mida_en.png
new file mode 100644
index 0000000..5d580e7
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_mida_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_mida_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_mida_pt.png
new file mode 100644
index 0000000..4a3317e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_contour_mida_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_cross_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_cross_en.png
new file mode 100644
index 0000000..96ddad1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_cross_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_cross_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_cross_pt.png
new file mode 100644
index 0000000..8f2d7fd
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_cross_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_en.png
new file mode 100644
index 0000000..6f22e67
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_en.png
new file mode 100644
index 0000000..ae0976e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_number_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_number_en.png
new file mode 100644
index 0000000..3d02c2c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_number_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_number_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_number_pt.png
new file mode 100644
index 0000000..a746a15
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_number_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_pt.png
new file mode 100644
index 0000000..93f12ac
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_maxip_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_mean_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mean_en.png
new file mode 100644
index 0000000..22749b4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mean_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_mean_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mean_pt.png
new file mode 100644
index 0000000..a4a75b0
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mean_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_en.png
new file mode 100644
index 0000000..ac074a2
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_inverted_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_inverted_en.png
new file mode 100644
index 0000000..3efaed6
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_inverted_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_inverted_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_inverted_pt.png
new file mode 100644
index 0000000..2800551
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_inverted_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_pt.png
new file mode 100644
index 0000000..f4cae25
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_mida_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_minip_en.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_minip_en.png
new file mode 100644
index 0000000..0a18618
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_minip_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_minip_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_minip_pt.png
new file mode 100644
index 0000000..6a45efa
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_minip_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/multiplanar_window_pt.png b/docs/user_guide_figures/invesalius_screen/multiplanar_window_pt.png
new file mode 100644
index 0000000..2a4512b
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/multiplanar_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_balls_in_head.png b/docs/user_guide_figures/invesalius_screen/nav_balls_in_head.png
new file mode 100644
index 0000000..50a8eca
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_balls_in_head.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_edit_id_markers_en.png b/docs/user_guide_figures/invesalius_screen/nav_edit_id_markers_en.png
new file mode 100644
index 0000000..99469f5
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_edit_id_markers_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_edit_id_markers_pt.png b/docs/user_guide_figures/invesalius_screen/nav_edit_id_markers_pt.png
new file mode 100644
index 0000000..43d5c7e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_edit_id_markers_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_extra_tools_en.png b/docs/user_guide_figures/invesalius_screen/nav_extra_tools_en.png
new file mode 100644
index 0000000..d0f0238
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_extra_tools_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_extra_tools_pt.png b/docs/user_guide_figures/invesalius_screen/nav_extra_tools_pt.png
new file mode 100644
index 0000000..79417e0
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_extra_tools_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_fre_error_en.png b/docs/user_guide_figures/invesalius_screen/nav_fre_error_en.png
new file mode 100644
index 0000000..70528b9
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_fre_error_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_fre_error_pt.png b/docs/user_guide_figures/invesalius_screen/nav_fre_error_pt.png
new file mode 100644
index 0000000..29b33b1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_fre_error_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_fre_ok_en.png b/docs/user_guide_figures/invesalius_screen/nav_fre_ok_en.png
new file mode 100644
index 0000000..b91e349
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_fre_ok_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_fre_ok_pt.png b/docs/user_guide_figures/invesalius_screen/nav_fre_ok_pt.png
new file mode 100644
index 0000000..6a20c50
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_fre_ok_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_id_list_markers_en.png b/docs/user_guide_figures/invesalius_screen/nav_id_list_markers_en.png
new file mode 100644
index 0000000..26b0344
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_id_list_markers_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_id_list_markers_pt.png b/docs/user_guide_figures/invesalius_screen/nav_id_list_markers_pt.png
new file mode 100644
index 0000000..8192413
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_id_list_markers_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_menu_en.png b/docs/user_guide_figures/invesalius_screen/nav_menu_en.png
new file mode 100644
index 0000000..f925b05
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_menu_pt.png b/docs/user_guide_figures/invesalius_screen/nav_menu_pt.png
new file mode 100644
index 0000000..9d268e7
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_menu_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_menu_ref_en.png b/docs/user_guide_figures/invesalius_screen/nav_menu_ref_en.png
new file mode 100644
index 0000000..da87244
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_menu_ref_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_menu_ref_pt.png b/docs/user_guide_figures/invesalius_screen/nav_menu_ref_pt.png
new file mode 100644
index 0000000..27e06be
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_menu_ref_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_painel_en.png b/docs/user_guide_figures/invesalius_screen/nav_painel_en.png
new file mode 100644
index 0000000..e99736d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_painel_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_painel_pt.png b/docs/user_guide_figures/invesalius_screen/nav_painel_pt.png
new file mode 100644
index 0000000..10b8aca
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_painel_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_selec_coord_en.png b/docs/user_guide_figures/invesalius_screen/nav_selec_coord_en.png
new file mode 100644
index 0000000..fe5eb4e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_selec_coord_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_selec_coord_pt.png b/docs/user_guide_figures/invesalius_screen/nav_selec_coord_pt.png
new file mode 100644
index 0000000..308a268
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_selec_coord_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_select_tracker_en.png b/docs/user_guide_figures/invesalius_screen/nav_select_tracker_en.png
new file mode 100644
index 0000000..844e3bf
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_select_tracker_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_select_tracker_pt.png b/docs/user_guide_figures/invesalius_screen/nav_select_tracker_pt.png
new file mode 100644
index 0000000..c733e66
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_select_tracker_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/nav_vol_with_markers.png b/docs/user_guide_figures/invesalius_screen/nav_vol_with_markers.png
new file mode 100644
index 0000000..dad3875
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/nav_vol_with_markers.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/only_2d_planes.jpg b/docs/user_guide_figures/invesalius_screen/only_2d_planes.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/only_2d_planes.jpg
rename to docs/user_guide_figures/invesalius_screen/only_2d_planes.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/painel_data_export_en.png b/docs/user_guide_figures/invesalius_screen/painel_data_export_en.png
new file mode 100644
index 0000000..91b8ee3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_data_export_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_data_export_pt.png b/docs/user_guide_figures/invesalius_screen/painel_data_export_pt.png
new file mode 100644
index 0000000..514a232
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_data_export_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_data_export_selection_en.png b/docs/user_guide_figures/invesalius_screen/painel_data_export_selection_en.png
new file mode 100644
index 0000000..6bef46e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_data_export_selection_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_data_export_selection_pt.png b/docs/user_guide_figures/invesalius_screen/painel_data_export_selection_pt.png
new file mode 100644
index 0000000..00760fe
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_data_export_selection_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_mask_manager_en.png b/docs/user_guide_figures/invesalius_screen/painel_mask_manager_en.png
new file mode 100644
index 0000000..3d299df
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_mask_manager_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_mask_manager_pt.png b/docs/user_guide_figures/invesalius_screen/painel_mask_manager_pt.png
new file mode 100644
index 0000000..5343b9d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_mask_manager_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_measures_manager_en.png b/docs/user_guide_figures/invesalius_screen/painel_measures_manager_en.png
new file mode 100644
index 0000000..ad7fa49
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_measures_manager_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_measures_manager_pt.png b/docs/user_guide_figures/invesalius_screen/painel_measures_manager_pt.png
new file mode 100644
index 0000000..ab07544
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_measures_manager_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_selected_mask_en.png b/docs/user_guide_figures/invesalius_screen/painel_selected_mask_en.png
new file mode 100644
index 0000000..f52e7a9
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_selected_mask_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_selected_mask_pt.png b/docs/user_guide_figures/invesalius_screen/painel_selected_mask_pt.png
new file mode 100644
index 0000000..9f39c74
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_selected_mask_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_volumetric_measures_en.png b/docs/user_guide_figures/invesalius_screen/painel_volumetric_measures_en.png
new file mode 100644
index 0000000..77acc5e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_volumetric_measures_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/painel_volumetric_measures_pt.png b/docs/user_guide_figures/invesalius_screen/painel_volumetric_measures_pt.png
new file mode 100644
index 0000000..4848aea
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/painel_volumetric_measures_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMaxIP_1.PNG b/docs/user_guide_figures/invesalius_screen/proj_contornoMaxIP_1.PNG
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMaxIP_1.PNG
rename to docs/user_guide_figures/invesalius_screen/proj_contornoMaxIP_1.PNG
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMaxIP_4.PNG b/docs/user_guide_figures/invesalius_screen/proj_contornoMaxIP_4.PNG
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMaxIP_4.PNG
rename to docs/user_guide_figures/invesalius_screen/proj_contornoMaxIP_4.PNG
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_maxIP_qtd.PNG b/docs/user_guide_figures/invesalius_screen/proj_maxIP_qtd.PNG
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/proj_maxIP_qtd.PNG
rename to docs/user_guide_figures/invesalius_screen/proj_maxIP_qtd.PNG
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029.jpg b/docs/user_guide_figures/invesalius_screen/pseudo_default.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029.jpg
rename to docs/user_guide_figures/invesalius_screen/pseudo_default.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Jan021944.jpg b/docs/user_guide_figures/invesalius_screen/pseudo_desert.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Jan021944.jpg
rename to docs/user_guide_figures/invesalius_screen/pseudo_desert.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Jan021944.jpg b/docs/user_guide_figures/invesalius_screen/pseudo_hue.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Jan021944.jpg
rename to docs/user_guide_figures/invesalius_screen/pseudo_hue.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Jan021944.jpg b/docs/user_guide_figures/invesalius_screen/pseudo_inverse.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Jan021944.jpg
rename to docs/user_guide_figures/invesalius_screen/pseudo_inverse.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/pseudo_menu_en.png b/docs/user_guide_figures/invesalius_screen/pseudo_menu_en.png
new file mode 100644
index 0000000..824ce3e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/pseudo_menu_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/pseudo_menu.png b/docs/user_guide_figures/invesalius_screen/pseudo_menu_pt.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/pseudo_menu.png
rename to docs/user_guide_figures/invesalius_screen/pseudo_menu_pt.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Jan021944.jpg b/docs/user_guide_figures/invesalius_screen/pseudo_ocean.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Jan021944.jpg
rename to docs/user_guide_figures/invesalius_screen/pseudo_ocean.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Jan021944.jpg b/docs/user_guide_figures/invesalius_screen/pseudo_rainbow.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Jan021944.jpg
rename to docs/user_guide_figures/invesalius_screen/pseudo_rainbow.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Jan021944.jpg b/docs/user_guide_figures/invesalius_screen/pseudo_saturation.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Jan021944.jpg
rename to docs/user_guide_figures/invesalius_screen/pseudo_saturation.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_1.PNG b/docs/user_guide_figures/invesalius_screen/raycasting_add_1.PNG
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_1.PNG
rename to docs/user_guide_figures/invesalius_screen/raycasting_add_1.PNG
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_2.PNG b/docs/user_guide_figures/invesalius_screen/raycasting_add_2.PNG
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_2.PNG
rename to docs/user_guide_figures/invesalius_screen/raycasting_add_2.PNG
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_3.PNG b/docs/user_guide_figures/invesalius_screen/raycasting_add_3.PNG
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_3.PNG
rename to docs/user_guide_figures/invesalius_screen/raycasting_add_3.PNG
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029_.jpg b/docs/user_guide_figures/invesalius_screen/sagital.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029_.jpg
rename to docs/user_guide_figures/invesalius_screen/sagital.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/sagital_en.png b/docs/user_guide_figures/invesalius_screen/sagital_en.png
new file mode 100644
index 0000000..43e455f
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/sagital_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_preset.png b/docs/user_guide_figures/invesalius_screen/save_preset.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/save_preset.png
rename to docs/user_guide_figures/invesalius_screen/save_preset.png
diff --git a/docs/user_guide_figures/invesalius_screen/save_window_preset_en.png b/docs/user_guide_figures/invesalius_screen/save_window_preset_en.png
new file mode 100644
index 0000000..94a8aad
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/save_window_preset_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/save_window_preset_pt.png b/docs/user_guide_figures/invesalius_screen/save_window_preset_pt.png
new file mode 100644
index 0000000..c312196
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/save_window_preset_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_generate_surface_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_generate_surface_en.png
new file mode 100644
index 0000000..e94f6ac
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_generate_surface_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_generate_surface_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_generate_surface_pt.png
new file mode 100644
index 0000000..0b52512
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_generate_surface_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_diameter.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_diameter.png
new file mode 100644
index 0000000..e643ba3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_diameter.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_label_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_label_en.png
new file mode 100644
index 0000000..c9217dc
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_label_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_label_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_label_pt.png
new file mode 100644
index 0000000..0918cc8
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_label_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/noise_amalgam.jpg b/docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/noise_amalgam.jpg
rename to docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam.jpg b/docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_3d.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam.jpg
rename to docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_3d.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam_zoom.jpg b/docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_3d_zoom.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam_zoom.jpg
rename to docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_3d_zoom.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/editor_amagam.jpg b/docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_removed.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/editor_amagam.jpg
rename to docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_removed.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/edited_amalgam.jpg b/docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_removed_3d_zoom.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/edited_amalgam.jpg
rename to docs/user_guide_figures/invesalius_screen/segmentation_manual_noise_amalgam_removed_3d_zoom.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type.png
new file mode 100644
index 0000000..d5b4f99
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type_operation_type_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type_operation_type_en.png
new file mode 100644
index 0000000..e17c6e3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type_operation_type_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type_operation_type_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type_operation_type_pt.png
new file mode 100644
index 0000000..57f4f66
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_pencil_type_operation_type_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_window_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_window_en.png
new file mode 100644
index 0000000..bc49c29
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_manual_window_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_manual_window_pt.png
new file mode 100644
index 0000000..168d043
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_manual_window_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_confidence_parameter_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_confidence_parameter_en.png
new file mode 100644
index 0000000..c77697d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_confidence_parameter_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_confidence_parameter_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_confidence_parameter_pt.png
new file mode 100644
index 0000000..1f8f0d9
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_confidence_parameter_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_en.png
new file mode 100644
index 0000000..5a58043
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_parameter_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_parameter_en.png
new file mode 100644
index 0000000..06e1e39
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_parameter_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_parameter_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_parameter_pt.png
new file mode 100644
index 0000000..673afa5
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_parameter_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_pt.png
new file mode 100644
index 0000000..c9b576b
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_dinamic_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_limiar_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_limiar_en.png
new file mode 100644
index 0000000..d2e5a7d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_limiar_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_limiar_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_limiar_pt.png
new file mode 100644
index 0000000..ee3b93d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_region_growing_limiar_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_axial_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_axial_en.png
new file mode 100644
index 0000000..3c94f1a
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_axial_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_principal.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_axial_pt.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_principal.png
rename to docs/user_guide_figures/invesalius_screen/segmentation_threshold_axial_pt.png
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_bar.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_bar.png
new file mode 100644
index 0000000..a977c9d
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_bar.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_presets_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_presets_en.png
new file mode 100644
index 0000000..a478af5
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_presets_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_presets_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_presets_pt.png
new file mode 100644
index 0000000..1c2828f
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_presets_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_dialog_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_dialog_en.png
new file mode 100644
index 0000000..e4567cb
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_dialog_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_dialog_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_dialog_pt.png
new file mode 100644
index 0000000..c759455
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_dialog_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_left_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_left_en.png
new file mode 100644
index 0000000..e0fa8d2
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_left_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_left_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_left_pt.png
new file mode 100644
index 0000000..5453be9
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_threshold_window_left_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_watershed_axial.png b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_axial.png
new file mode 100644
index 0000000..c74d664
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_axial.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_watershed_conf_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_conf_en.png
new file mode 100644
index 0000000..f767c21
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_conf_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_watershed_conf_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_conf_pt.png
new file mode 100644
index 0000000..ada0a21
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_conf_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_watershed_multiplanar_3d_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_multiplanar_3d_pt.png
new file mode 100644
index 0000000..31ffe91
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_multiplanar_3d_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_watershed_panel_en.png b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_panel_en.png
new file mode 100644
index 0000000..a463ca4
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_panel_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/segmentation_watershed_panel_pt.png b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_panel_pt.png
new file mode 100644
index 0000000..fa94050
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/segmentation_watershed_panel_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/selec_operacao.png b/docs/user_guide_figures/invesalius_screen/selec_operacao.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/selec_operacao.png
rename to docs/user_guide_figures/invesalius_screen/selec_operacao.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/sem_sombreamento_II.jpg b/docs/user_guide_figures/invesalius_screen/sem_sombreamento_II.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/sem_sombreamento_II.jpg
rename to docs/user_guide_figures/invesalius_screen/sem_sombreamento_II.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/st_menu.png b/docs/user_guide_figures/invesalius_screen/st_menu.png
new file mode 100644
index 0000000..09cee19
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/st_menu.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/st_menu_en.png b/docs/user_guide_figures/invesalius_screen/st_menu_en.png
new file mode 100644
index 0000000..984c67e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/st_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/st_surf_anaglyph.jpg b/docs/user_guide_figures/invesalius_screen/st_surf_anaglyph.jpg
new file mode 100644
index 0000000..432dc31
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/st_surf_anaglyph.jpg differ
diff --git a/docs/user_guide_figures/invesalius_screen/st_surf_interlaced.jpg b/docs/user_guide_figures/invesalius_screen/st_surf_interlaced.jpg
new file mode 100644
index 0000000..fdc87c3
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/st_surf_interlaced.jpg differ
diff --git a/docs/user_guide_figures/invesalius_screen/st_surf_red_blue.jpg b/docs/user_guide_figures/invesalius_screen/st_surf_red_blue.jpg
new file mode 100644
index 0000000..08fd125
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/st_surf_red_blue.jpg differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_button_select_color_yellow.png b/docs/user_guide_figures/invesalius_screen/surface_button_select_color_yellow.png
new file mode 100644
index 0000000..df1105c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_button_select_color_yellow.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_config_panel_en.png b/docs/user_guide_figures/invesalius_screen/surface_config_panel_en.png
new file mode 100644
index 0000000..564682c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_config_panel_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_config_panel_pt.png b/docs/user_guide_figures/invesalius_screen/surface_config_panel_pt.png
new file mode 100644
index 0000000..7ee6894
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_config_panel_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_config_window_en.png b/docs/user_guide_figures/invesalius_screen/surface_config_window_en.png
new file mode 100644
index 0000000..ff57f3e
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_config_window_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_config_window_pt.png b/docs/user_guide_figures/invesalius_screen/surface_config_window_pt.png
new file mode 100644
index 0000000..49dea29
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_config_window_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region2.jpg b/docs/user_guide_figures/invesalius_screen/surface_extract_most_region2.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region2.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_extract_most_region2.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region3.jpg b/docs/user_guide_figures/invesalius_screen/surface_extract_most_region3.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region3.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_extract_most_region3.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region_1.jpg b/docs/user_guide_figures/invesalius_screen/surface_extract_most_region_1.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region_1.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_extract_most_region_1.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/extrac_most_region_4.jpg b/docs/user_guide_figures/invesalius_screen/surface_extract_most_region_4.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/extrac_most_region_4.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_extract_most_region_4.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_model.png b/docs/user_guide_figures/invesalius_screen/surface_from_threshold.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/3d_model.png
rename to docs/user_guide_figures/invesalius_screen/surface_from_threshold.png
diff --git a/docs/user_guide_figures/invesalius_screen/surface_generation_dialog_en.png b/docs/user_guide_figures/invesalius_screen/surface_generation_dialog_en.png
new file mode 100644
index 0000000..9a794d5
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_generation_dialog_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_generation_dialog_pt.png b/docs/user_guide_figures/invesalius_screen/surface_generation_dialog_pt.png
new file mode 100644
index 0000000..fef8b26
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_generation_dialog_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/surface_manager.jpg b/docs/user_guide_figures/invesalius_screen/surface_manager.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/surface_manager.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_manager.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Jan232334.jpg b/docs/user_guide_figures/invesalius_screen/surface_model_bottom.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Jan232334.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_model_bottom.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Jan232336.jpg b/docs/user_guide_figures/invesalius_screen/surface_model_bottom_all_parts.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Jan232336.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_model_bottom_all_parts.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48_Jan_23_23_34.jpg b/docs/user_guide_figures/invesalius_screen/surface_model_front.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48_Jan_23_23_34.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_model_front.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Jan232335.jpg b/docs/user_guide_figures/invesalius_screen/surface_model_front_all_parts.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Jan232335.jpg
rename to docs/user_guide_figures/invesalius_screen/surface_model_front_all_parts.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/surface_painel_advanced_options_en.png b/docs/user_guide_figures/invesalius_screen/surface_painel_advanced_options_en.png
new file mode 100644
index 0000000..f5eaa3b
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_painel_advanced_options_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_painel_advanced_options_pt.png b/docs/user_guide_figures/invesalius_screen/surface_painel_advanced_options_pt.png
new file mode 100644
index 0000000..f7cb9f1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_painel_advanced_options_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_select_color_windows_so_en.png b/docs/user_guide_figures/invesalius_screen/surface_select_color_windows_so_en.png
new file mode 100644
index 0000000..7e12a7c
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_select_color_windows_so_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_select_color_windows_so_pt.png b/docs/user_guide_figures/invesalius_screen/surface_select_color_windows_so_pt.png
new file mode 100644
index 0000000..bb91645
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_select_color_windows_so_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_select_menu.png b/docs/user_guide_figures/invesalius_screen/surface_select_menu.png
new file mode 100644
index 0000000..00fc3ab
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_select_menu.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_select_menu_en.png b/docs/user_guide_figures/invesalius_screen/surface_select_menu_en.png
new file mode 100644
index 0000000..74ff3ab
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_select_menu_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_split_en.png b/docs/user_guide_figures/invesalius_screen/surface_split_en.png
new file mode 100644
index 0000000..a295bda
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_split_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_split_pt.png b/docs/user_guide_figures/invesalius_screen/surface_split_pt.png
new file mode 100644
index 0000000..ff22c2f
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_split_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_transparency_en.png b/docs/user_guide_figures/invesalius_screen/surface_transparency_en.png
new file mode 100644
index 0000000..bb08c6f
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_transparency_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/surface_transparency_pt.png b/docs/user_guide_figures/invesalius_screen/surface_transparency_pt.png
new file mode 100644
index 0000000..45165c1
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/surface_transparency_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/text_off.png b/docs/user_guide_figures/invesalius_screen/text_off.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/text_off.png
rename to docs/user_guide_figures/invesalius_screen/text_off.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/text_on.png b/docs/user_guide_figures/invesalius_screen/text_on.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/text_on.png
rename to docs/user_guide_figures/invesalius_screen/text_on.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Jan062046.jpg b/docs/user_guide_figures/invesalius_screen/tool_image_with_zoom.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Jan062046.jpg
rename to docs/user_guide_figures/invesalius_screen/tool_image_with_zoom.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/tool_image_with_zoom_en.png b/docs/user_guide_figures/invesalius_screen/tool_image_with_zoom_en.png
new file mode 100644
index 0000000..95de62a
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/tool_image_with_zoom_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Jan062046.jpg b/docs/user_guide_figures/invesalius_screen/tool_zoom_select_image.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Jan062046.jpg
rename to docs/user_guide_figures/invesalius_screen/tool_zoom_select_image.jpg
diff --git a/docs/user_guide_figures/invesalius_screen/tool_zoom_select_image_en.png b/docs/user_guide_figures/invesalius_screen/tool_zoom_select_image_en.png
new file mode 100644
index 0000000..910e460
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/tool_zoom_select_image_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency_2.png b/docs/user_guide_figures/invesalius_screen/transparency_2.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/transparency_2.png
rename to docs/user_guide_figures/invesalius_screen/transparency_2.png
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/vias_aereas_II.jpg b/docs/user_guide_figures/invesalius_screen/vias_aereas_II.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/vias_aereas_II.jpg
rename to docs/user_guide_figures/invesalius_screen/vias_aereas_II.jpg
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_1.png b/docs/user_guide_figures/invesalius_screen/view_2d_3d_1.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_1.png
rename to docs/user_guide_figures/invesalius_screen/view_2d_3d_1.png
diff --git a/docs/user_guide_figures/invesalius_screen/view_2d_3d_1_en.png b/docs/user_guide_figures/invesalius_screen/view_2d_3d_1_en.png
new file mode 100644
index 0000000..ecdf9db
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/view_2d_3d_1_en.png differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_2.png b/docs/user_guide_figures/invesalius_screen/view_2d_3d_2.png
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_2.png
rename to docs/user_guide_figures/invesalius_screen/view_2d_3d_2.png
diff --git a/docs/user_guide_figures/invesalius_screen/view_2d_3d_2_en.png b/docs/user_guide_figures/invesalius_screen/view_2d_3d_2_en.png
new file mode 100644
index 0000000..7c9bcb6
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/view_2d_3d_2_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/window_gantry_tilt_en.png b/docs/user_guide_figures/invesalius_screen/window_gantry_tilt_en.png
new file mode 100644
index 0000000..640f221
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/window_gantry_tilt_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/window_gantry_tilt_pt.png b/docs/user_guide_figures/invesalius_screen/window_gantry_tilt_pt.png
new file mode 100644
index 0000000..bfed938
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/window_gantry_tilt_pt.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/window_mpr_not_painels_en.png b/docs/user_guide_figures/invesalius_screen/window_mpr_not_painels_en.png
new file mode 100644
index 0000000..80009e9
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/window_mpr_not_painels_en.png differ
diff --git a/docs/user_guide_figures/invesalius_screen/window_mpr_not_painels_pt.png b/docs/user_guide_figures/invesalius_screen/window_mpr_not_painels_pt.png
new file mode 100644
index 0000000..873f7fe
Binary files /dev/null and b/docs/user_guide_figures/invesalius_screen/window_mpr_not_painels_pt.png differ
diff --git a/docs/user_guide_pt_BR_source/img/logo_cti.jpg b/docs/user_guide_figures/logo_cti.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/logo_cti.jpg
rename to docs/user_guide_figures/logo_cti.jpg
diff --git a/docs/user_guide_pt_BR_source/img/rm_ge.jpg b/docs/user_guide_figures/rm_ge.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/rm_ge.jpg
rename to docs/user_guide_figures/rm_ge.jpg
diff --git a/docs/user_guide_pt_BR_source/img/tomografo.jpg b/docs/user_guide_figures/tomografo.jpg
similarity index 100%
rename from docs/user_guide_pt_BR_source/img/tomografo.jpg
rename to docs/user_guide_figures/tomografo.jpg
diff --git a/docs/user_guide_figures/tracker_claron.png b/docs/user_guide_figures/tracker_claron.png
new file mode 100644
index 0000000..8ffa658
Binary files /dev/null and b/docs/user_guide_figures/tracker_claron.png differ
diff --git a/docs/user_guide_figures/tracker_polhemus.jpg b/docs/user_guide_figures/tracker_polhemus.jpg
new file mode 100644
index 0000000..0db89e2
Binary files /dev/null and b/docs/user_guide_figures/tracker_polhemus.jpg differ
diff --git a/docs/user_guide_pt_BR.pdf b/docs/user_guide_pt_BR.pdf
index 2d90815..c40a02c 100644
Binary files a/docs/user_guide_pt_BR.pdf and b/docs/user_guide_pt_BR.pdf differ
diff --git a/docs/user_guide_pt_BR_source/Makefile b/docs/user_guide_pt_BR_source/Makefile
index 76854c1..003b056 100644
--- a/docs/user_guide_pt_BR_source/Makefile
+++ b/docs/user_guide_pt_BR_source/Makefile
@@ -3,9 +3,11 @@ all:
 	bibtex manual_pt_BR
 	pdflatex manual_pt_BR
 	pdflatex manual_pt_BR
-
 clean: 
 	rm -f *.dvi *.log *.toc *.aux *.bbl *.blg *.loa *.los *.out *.cb 
 
 cleanall:
-	rm -f manual_pt_BR.pdf *.dvi *.log *.toc *.aux *.bbl *.blg *.loa *.los *.out *.cb 
+	rm -f manual_pt_BR.pdf *.dvi *.log *.toc *.aux *.bbl *.blg *.loa *.los *.out *.cb
+
+move:
+	mv -f manual_pt_BR.pdf ../user_guide_pt_BR.pdf
diff --git a/docs/user_guide_pt_BR_source/autores.tex b/docs/user_guide_pt_BR_source/autores.tex
index 5edbb63..e486444 100644
--- a/docs/user_guide_pt_BR_source/autores.tex
+++ b/docs/user_guide_pt_BR_source/autores.tex
@@ -20,8 +20,31 @@ Fábio de Souza Azevedo
 \\
 
 
+André Salles Cunha Peres (Neuronavegador)
+
+\href{mailto:peres.asc at gmail.com}{peres.asc at gmail.com}
+\\
+
+Victor Hugo de Oliveira e Souza  (Neuronavegador)
+
+\href{mailto:victorhos at hotmail.com}{victorhos at hotmail.com}
+\\
+
+
+Renan Hiroshi Matsuda (Neuronavegador)
+
+\href{mailto:renan\_hiroshi at hotmail.com}{renan\_hiroshi at hotmail.com}
+\\
+
+
+Oswaldo Baffa Filho (Neuronavegador)
+
+\href{mailto:baffa at usp.br}{baffa at usp.br}
+\\
+
 Jorge Vicente Lopes da Silva
 
 
 \href{mailto:jorge.silva at cti.gov.br}{jorge.silva at cti.gov.br}
 \\
+
diff --git a/docs/user_guide_pt_BR_source/cap_cust.tex b/docs/user_guide_pt_BR_source/cap_cust.tex
index 587e3b5..48e6140 100644
--- a/docs/user_guide_pt_BR_source/cap_cust.tex
+++ b/docs/user_guide_pt_BR_source/cap_cust.tex
@@ -20,7 +20,7 @@ visualização das imagens, conforme mostra a figura \ref{fig:closed_tool_menu}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{closed_tool_menu}
+\includegraphics[scale=0.4]{window_mpr_not_painels_pt.png}
 \caption{Menu lateral ocultado}
 \label{fig:closed_tool_menu}
 \end{figure}
@@ -49,7 +49,7 @@ direito da tela do InVesalius.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.8]{color_button}
+\includegraphics[scale=0.8]{colour_button.png}
 \caption{Atalho para cor de fundo da janela de volume/superfície}
 \label{fig:button_select_color_2}
 \end{figure}
@@ -59,7 +59,7 @@ Após isso, basta clicar sobre a cor desejada e, em seguida, clicar em \textbf{O
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{ScreenHunter_33Dec311142}
+\includegraphics[scale=0.6]{surface_select_color_windows_so_pt.png}
 \caption{Seleção de cor de fundo}
 \label{fig:color_window_background}
 \end{figure}
@@ -68,7 +68,7 @@ A figura \ref{fig:background_color} mostra um exemplo dessa janela com a cor de
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{3d_background}
+\includegraphics[scale=0.7]{3d_background_changed.png}
 \caption{Cor de fundo alterada}
 \label{fig:background_color}
 \end{figure}
diff --git a/docs/user_guide_pt_BR_source/cap_export.tex b/docs/user_guide_pt_BR_source/cap_export.tex
index 1197353..84b629d 100644
--- a/docs/user_guide_pt_BR_source/cap_export.tex
+++ b/docs/user_guide_pt_BR_source/cap_export.tex
@@ -10,7 +10,7 @@ duplo com o botão \textbf{esquerdo} do mouse sobre o item para expandi-lo. A fi
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{data_export}
+\includegraphics[scale=0.8]{painel_data_export_pt.png}
 \caption{Menu para exportação de dados}
 \label{fig:data_export}
 \end{figure}
@@ -24,7 +24,7 @@ figura \ref{fig:data_export_selection}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{data_export_selection}
+\includegraphics[scale=0.7]{painel_data_export_selection_pt.png}
 \caption{Seleção de superfície a exportar}
 \label{fig:data_export_selection}
 \end{figure}
@@ -39,12 +39,12 @@ Em seguida, clique sobre o ícone que a figura \ref{fig:surface_export_original}
 \end{figure}
 
 Na janela exibida (figura \ref{fig:export_data_window}), insira o nome do arquivo e
-selecione o formato desejado para a exportação. Em seguida, clique em \textbf{Save (Salvar)}.
+selecione o formato desejado para a exportação. Em seguida, clique em \textbf{Salvar}.
 
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{export_data_window}
+\includegraphics[scale=0.4]{export_surface.png}
 \caption{Janela para exportar superfície}
 \label{fig:export_data_window}
 \end{figure}
@@ -83,17 +83,17 @@ exibido na figura \ref{fig:menu_save_image_window} e selecione a sub-janela corr
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{menu_save_image_window}
+\includegraphics[scale=0.5]{menu_save_image_window_pt.png}
 \caption{Menu para exportar imagem}
 \label{fig:menu_save_image_window}
 \end{figure}
 
 Na janela exibida (figura \ref{fig:save_image_window}), selecione o formato do arquivo e
-clique no botão \textbf{Save (Salvar)}.
+clique no botão \textbf{Salvar}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{save_image_window}
+\includegraphics[scale=0.4]{export_bmp_pt.png}
 \caption{Janela para exportar imagem}
 \label{fig:save_image_window}
 \end{figure}
diff --git a/docs/user_guide_pt_BR_source/cap_geren_dados.tex b/docs/user_guide_pt_BR_source/cap_geren_dados.tex
index bb7c91d..9763fe0 100644
--- a/docs/user_guide_pt_BR_source/cap_geren_dados.tex
+++ b/docs/user_guide_pt_BR_source/cap_geren_dados.tex
@@ -16,7 +16,7 @@ correspondentes aos elementos a que se referem.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{mask_manager}
+\includegraphics[scale=0.7]{painel_mask_manager_pt.png}
 \caption{Gerenciamento de dados}
 \label{fig:volumetric_data}
 \end{figure}
@@ -42,7 +42,7 @@ no atalho que a figura \ref{fig:delete_data} ilustra.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{selected_mask}
+\includegraphics[scale=0.7]{painel_selected_mask_pt.png}
 \caption{Dado selecionado}
 \label{fig:selected_mask}
 \end{figure}
@@ -50,7 +50,7 @@ no atalho que a figura \ref{fig:delete_data} ilustra.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.8]{delete_data}
+\includegraphics[scale=0.8]{data_remove.png}
 \caption{Excluir dado}
 \label{fig:delete_data}
 \end{figure}
@@ -60,7 +60,7 @@ Para criar uma nova máscara, superfície ou medição, basta clicar no atalho i
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.8]{new_data}
+\includegraphics[scale=0.8]{data_new.png}
 \caption{Novo dado}
 \label{fig:new_data}
 \end{figure}
@@ -70,7 +70,7 @@ ilustra.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.8]{duplicate_data}
+\includegraphics[scale=0.8]{data_duplicate.png}
 \caption{Copiar dado}
 \label{fig:duplicate_data}
 \end{figure}
@@ -94,11 +94,28 @@ traz um exemplo.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{surface_manager}
+\includegraphics[scale=0.7]{painel_volumetric_measures_pt.png}
 \caption{Gerenciamento de superfícies}
 \label{fig:surface_manager}
 \end{figure}
 
+\subsection{Importação de superfície}
+
+É possível importar arquivos do tipo STL, OBJ, PLY e VTP (VTK Polydata File Format) com um projeto do InVesalius ativo, para isso é necessário clicar no ícone que é mostrado na figura~\ref{fig:import_stl}, selecionar (figura~\ref{fig:import_surface}) o formato do arquivo que será importado e depois clicar no \textbf{Abrir}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.8]{load_mesh.png}
+\caption{Importar Superfície}
+\label{fig:import_stl}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_surface_pt.png}
+\caption{Janela para importação de superfície}
+\label{fig:import_surface}
+\end{figure}
 
 \newpage
 
@@ -112,7 +129,7 @@ a coluna \textbf{Valor} informa a medida propriamente dita. Veja a figura \ref{f
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{manager_mensuares}
+\includegraphics[scale=0.7]{painel_measures_manager_pt.png}
 \caption{Gerenciamento de medições}
 \label{fig:manager_mensuares}
 \end{figure}
diff --git a/docs/user_guide_pt_BR_source/cap_img.tex b/docs/user_guide_pt_BR_source/cap_img.tex
new file mode 100644
index 0000000..f718c7f
--- /dev/null
+++ b/docs/user_guide_pt_BR_source/cap_img.tex
@@ -0,0 +1,122 @@
+\chapter{Ajuste de imagem}
+
+O InVesalius não garante a correta ordem das imagens pois depende de informações que estão presentes nas imagens, algumas vezes essas imagens tem as informações incorretas ou não seguem o padrão DICOM. Dessa forma é recomendável confirmar se a lesão ou algum outro marco anatômico presente em um determinado paciente é exibido no lado correto da imagem. Caso não seja, é possível utilizar as ferramentas de espelhar a imagem ou inverter eixos. Também para o alinhamento da imagem, existe a fe [...]
+
+\section{Espelhar}
+
+É possível espelhar um dos lados da imagem de modo que eles se invertam, para isso é necessário ir no menu, \textbf{Ferramentas}, \textbf{Imagem}, \textbf{Espelhar} e clicar em uma das seguintes opções (figura~\ref{fig:menu_img_mirroring_axis_pt}):
+
+\begin{itemize}
+	\item Direita - Esquerda
+	\item Anterior - Posterior
+	\item Superior - Inferior
+\end{itemize}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_img_mirroring_axis_pt.png}
+\caption{Menu para ativar ferramenta de espelhar imagem.}
+\label{fig:menu_img_mirroring_axis_pt}
+\end{figure}
+
+
+A figura~\ref{fig:mirrored} apresenta um comparativo entre a imagem não espelhada e a imagem espelhada. Por o conjunto de imagens formar um volume, ao aplicar espelhamento todas as outras orientações são modificadas também.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Imagem entrada]{\includegraphics[width=0.45\textwidth]{mirror_axial.png}}  \qquad
+  \subfloat[Imagem espelhada]{\includegraphics[width=0.45\textwidth]{mirror_axial_mirrored.png}}
+  \hfill
+  \caption{Exemplo de imagem com direita-esquerda espelhada.}
+  \label{fig:mirrored}
+\end{figure}
+
+\section{Trocar Eixo}
+
+A ferramenta de troca de eixo, muda as orientações da imagem caso ela tem sido importada erroneamente. Para isso é necessário ir no menu, \textbf{Ferramentas}, \textbf{Imagem}, \textbf{Trocar Eixo} e clicar em uma das seguintes opções (figura~\ref{fig:menu_invert_axis}):
+
+\begin{itemize}
+	\item Da Direita para Anterior-Posterior
+	\item Da Direita-Esquerda para Superior-Inferior
+	\item Da Anterior-Posterior para Superior-Inferior
+\end{itemize}
+
+
+As figuras~\ref{fig:invert_axis_axial} e~\ref{fig:invert_axis_axial_inverted}, apresentam um exemplo de imagens com eixo invertido.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_invert_axis_pt.png}
+\caption{Menu para ativar espelhar um dos lados da imagem.}
+\label{fig:menu_invert_axis}
+\end{figure}
+
+\begin{figure}[!htbp]
+\centering
+\includegraphics[scale=0.4]{invert_axis_axial_pt.png}
+\caption{Conjunto de imagens antes de inverter eixo - Da Anterior-Posterior para Superior-Inferior.}
+\label{fig:invert_axis_axial}
+\end{figure}
+
+\begin{figure}[!htbp]
+\centering
+\includegraphics[scale=0.4]{invert_axis_axial_inverted_pt.png}
+\caption{Conjunto de imagens com eixo invertido - Da Anterior-Posterior para Superior-Inferior.}
+\label{fig:invert_axis_axial_inverted}
+\end{figure}
+
+\section{Reorientar imagem (Rotacionar)}
+
+Caso seja necessário alinhar a imagem levando em consideração algum ponto de referencia como algum marco anatômico, é possível realizar essa tarefa utilizando a ferramenta de reorientação de imagem. Para abrir a ferramenta é necessário ir ao menu, \textbf{Ferramentas}, \textbf{Imagem} e por último \textbf{Reorientar imagem} (figura~\ref{fig:menu_img_reorient}).
+
+\begin{figure}[!htbp]
+\centering
+\includegraphics[scale=0.4]{menu_img_reorient_pt.png}
+\caption{Menu para ativar o recurso de reorientar imagem.}
+\label{fig:menu_img_reorient}
+\end{figure}
+
+Ao abrir a ferramenta será exibida uma janela (figura~\ref{fig:image_reorient_window}) que mostra em qual orientação e quantos graus a imagem foi rotacionada.
+
+\begin{figure}[!htbp]
+\centering
+\includegraphics[scale=0.65]{image_reorient_window_pt.png}
+\caption{Janela responsável por exibir os parâmetros de reorientação de imagem.}
+\label{fig:image_reorient_window}
+\end{figure}
+
+\newpage
+
+Inicialmente é necessário definir qual o método de interpolação que será aplicado ao rotacionar a imagem, por padrão o método é o tricúbico. As outras opções de interpolação são:
+
+\begin{itemize}
+	\item Vizinho mais próximo
+	\item Trilinear
+	\item Tricúbica
+	\item Lanczos
+\end{itemize}
+
+Após selecionado o método de interpolação, é necessário definir em função de qual ponto a imagem será rotacionada, para isso é necessário \textbf{manter o botão esquerdo do mouse pressionado} entre a interseção de duas linhas (figura~\ref{fig:image_reorient_adjust_center}) em uma das janelas de orientação axial, coronal ou sagital e arrastar até o ponto desejado.
+
+\begin{figure}[!htbp]
+\centering
+\includegraphics[scale=0.4]{image_reorient_adjust_center.png}
+\caption{Definição do eixo de rotação da imagem.}
+\label{fig:image_reorient_adjust_center}
+\end{figure}
+
+Para rotacionar a imagem é necessário \textbf{manter o botão esquerdo do mouse pressionado} e \textbf{arrastar} de forma que o ponto de referencia ou marco anatômico fique alinhado com uma das linhas (figura~\ref{fig:image_reorient_rotated}). Após a imagem estar na posição desejada, é necessário clicar no botão \textbf{Aplicar}, presente na janela de parâmetros (figura~\ref{fig:image_reorient_window}), dependo do tamanho da imagem é necessário aguardar alguns segundos até o processo fina [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{image_reorient_rotated_pt.png}
+\caption{Imagem rotacionada.}
+\label{fig:image_reorient_rotated}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{image_reorient_rotated_applied_pt.png}
+\caption{Imagem rotacionada após a finalização do processo.}
+\label{fig:image_reorient_rotated_applied}
+\end{figure}
diff --git a/docs/user_guide_pt_BR_source/cap_import.tex b/docs/user_guide_pt_BR_source/cap_import.tex
index 0727b3e..04f9896 100644
--- a/docs/user_guide_pt_BR_source/cap_import.tex
+++ b/docs/user_guide_pt_BR_source/cap_import.tex
@@ -27,7 +27,7 @@ Clique em \textbf{OK}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_04Dec311139.jpg}
+\includegraphics[scale=0.5]{import_select_folder_pt.png}
 \caption{Seleção de diretório}
 \label{fig:win_folder}
 \end{figure}
@@ -39,7 +39,7 @@ do carregamento dos arquivos verificados, como ilustra a figura \ref{fig:ver_fil
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_03Dec311131.jpg}
+\includegraphics[scale=0.6]{import_load_files_pt.png}
 \caption{Status de verificação e carregamento de arquivos}
 \label{fig:ver_file}
 \end{figure}
@@ -52,7 +52,7 @@ pular imagens para reconstrução.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{ScreenHunter_06Dec311139.jpg}
+\includegraphics[scale=0.4]{import_window_pt.png}
 \caption{Tela de importação}
 \label{fig:win_import}
 \end{figure}
@@ -66,7 +66,7 @@ com o botão \textbf{esquerdo} do mouse sobre a descrição da série. Veja a fi
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{ScreenHunter_08Dec311139_.jpg}
+\includegraphics[scale=0.5]{import_window_detail_pt.png}
 \caption{Seleção de série}
 \label{fig:import_serie}
 \end{figure}
@@ -77,11 +77,11 @@ Em alguns casos, em particular quando não se dispõe de um computador com memó
 processamento satisfatórios para trabalhar com muitas imagens em uma série, pode ser
 recomendável pular (ignorar) algumas delas. Para isso, clique \textbf{uma vez} com o botão
 \textbf{esquerdo} do mouse sobre a descrição da série (figura \ref{fig:import_serie}) e selecione
-quantas imagens serão puladas (figura \ref{fig:skip_image}). Clique em \textbf{OK}.
+quantas imagens serão puladas (figura \ref{fig:skip_image}). Clique em \textbf{Importar}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_13Dec311140_.jpg}
+\includegraphics[scale=0.6]{import_window_skip_slice_pt.png}
 \caption{Pular imagens}
 \label{fig:skip_image}
 \end{figure}
@@ -96,17 +96,26 @@ cada imagem resultante terá 307 x 307 pixeis. Caso deseje abrir com a resoluç
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{file_import_resize.png}
+\includegraphics[scale=0.5]{import_window_lower_memory_pt.png}
 \caption{Redução de dimensão da imagem}
 \label{fig:resize_image}
 \end{figure}
 
+Se a imagem foi obtida com o gantry inclinado, será necessário fazer a correção para evitar deformações na reconstrução. O InVesalius permite fazer essa correção. Ao importar uma imagem com o gantry inclinado aparecerá uma janela com o grau de inclinação do tilt (figura~\ref{fig:gantry_tilt}). É possível alterar esse valor, mas não é recomendável. Clique no botão \textbf{OK} para fazer a correção. Se clicar em \textbf{Cancelar} a reconstrução será realizada sem a correção.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.75]{window_gantry_tilt_pt.png}
+\caption{Correção de gantry tilt}
+\label{fig:gantry_tilt}
+\end{figure}
+
 Após os procedimentos anteriores, será apresentada uma janela (figura \ref{fig:prog_recons}) com o progresso
 da reconstrução (quando as imagens são empilhadas e interpoladas).
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{ScreenHunter_14Dec311140.jpg}
+\includegraphics[scale=0.6]{import_window_progress.png} 
 \caption{Progresso da reconstrução}
 \label{fig:prog_recons}
 \end{figure}
@@ -119,7 +128,7 @@ Para importar arquivos no formato Analyze, no menu \textbf{Arquivo}, clique na o
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{analyze_menu.png}
+\includegraphics[scale=0.4]{import_analyze_menu_pt.png}
 \caption{Menu para importar imagens no formato analyze}
 \label{fig:analyze_menu}
 \end{figure}
@@ -128,7 +137,139 @@ Selecione o arquivo do tipo Analyze, na extensão \textbf{.hdr} e clique em \tex
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{analyze_import.png}
+\includegraphics[scale=0.4]{import_analyze_window_pt.png}
 \caption{Importar imagens no formato analyze}
 \label{fig:analyze_import}
-\end{figure}
\ No newline at end of file
+\end{figure}
+
+\section{NIfTI}
+
+Para importar arquivos no formato NIfTI, no menu \textbf{Arquivo}, clique na opção \textbf{Importar outros arquivos...} em seguida a opção \textbf{NIfTI} como mostra a figura \ref{fig:import_nifti_menu_pt}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_nifti_menu_pt.png}
+\caption{Menu para importar imagens no formato NIfTI}
+\label{fig:import_nifti_menu_pt}
+\end{figure}
+
+Selecione o arquivo do tipo NIfTI, na extensão \textbf{nii.gz} ou \textbf{.nii} e clique em \textbf{Abrir}. (figura \ref{fig:import_nifti_window_pt}). Caso o arquivo esteja em outra extensão como \textbf{.hdr}, selecione a opção \textbf{all files(*.*)}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_nifti_window_pt.png}
+\caption{Importar imagens no formato NIfTI}
+\label{fig:import_nifti_window_pt}
+\end{figure}
+
+\section{PAR/REC}
+
+
+Para importar arquivos no formato PAR/REC, no menu \textbf{Arquivo}, clique na opção \textbf{Importar outros arquivos...} em seguida a opção \textbf{PAR/REC} como mostra a figura \ref{fig:import_parrec_menu_pt}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_parrec_menu_pt.png}
+\caption{Menu para importar imagens no formato PAR/REC}
+\label{fig:import_parrec_menu_pt}
+\end{figure}
+
+Selecione o arquivo do tipo PAR/REC, na extensão \textbf{.par} e clique em \textbf{Abrir}. (figura \ref{fig:import_parrec_window_pt}). Caso o arquivo esteja sem extensão, selecione a opção \textbf{all files(*.*)}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_parrec_window_pt.png}
+\caption{Importar imagens no formato PAR/REC}
+\label{fig:import_parrec_window_pt}
+\end{figure}
+
+
+
+\section{TIFF, JPG, BMP, JPEG ou PNG (micro-CT)}
+
+Arquivos em formato TIFF, JPG, BMP, JPEG ou PNG para reconstrução podem ser providos de equipamentos de microtomografia (micro-CT ou $\mu$CT) e outros. O InVesalius importa arquivos nesses formatos desde que os pixels presentes estejam em escala de cinza.
+
+Para importar, clique no menu \textbf{Arquivo} e na opção \textbf{Importar outros arquivos...} em seguida clique na opção \textbf{TIFF, JPG, BMP, JPEG ou PNG ($\mu$CT)} como mostra a figura~\ref{fig:import_bmp_menu_pt}. 
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_bmp_menu_pt.png}
+\caption{Importar imagens no formato BMP e outros}
+\label{fig:import_bmp_menu_pt}
+\end{figure}
+
+Selecione o diretório que contenha os arquivos, como mostra a figura \ref{fig:import_bmp_select_folder}. O InVesalius irá procurar por arquivos também em subdiretórios do diretório escolhido, caso existam.
+
+Clique em \textbf{OK}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_bmp_select_folder_pt.png}
+\caption{Seleção de diretório}
+\label{fig:import_bmp_select_folder}
+\end{figure}
+
+
+Enquanto o InVesalius procura por arquivos TIFF, JPG, BMP, JPEG ou PNG no diretório, é exibido o progresso do carregamento dos arquivos verificados, como ilustra a figura \ref{fig:import_bmp_load_pt}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{import_bmp_load_pt.png}
+\caption{Status de verificação e carregamento de arquivos}
+\label{fig:import_bmp_load_pt}
+\end{figure}
+
+
+Se arquivos do tipo TIFF, JPG, BMP, JPEG ou PNG  forem encontrados, é aberta uma janela (figura~\ref{fig:import_bmp_window_pt}) para exibir os arquivos encontrados elegíveis para reconstrução. Também é possível pular imagens para reconstrução ou remover arquivos da lista para reconstrução. Os arquivos são ordenados de acordo com o nome do arquivo, recomenda-se utilizar números em seus nomes de acordo com a ordem que deseja-se obter na reconstrução.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.3]{import_bmp_window_pt.png}
+\caption{Janela para importação de arquivos do tipo BMP.}
+\label{fig:import_bmp_window_pt}
+\end{figure}
+
+Para excluir os arquivos que não são de interesse, é possível selecionar um arquivo clicando com o \textbf{botão esquerdo do mouse} e em seguida pressionar a tecla \textbf{delete}. É possível também escolher uma faixa de arquivos para deletar, para isso é necessário clicar com o \textbf{botão esquerdo do mouse} no primeiro arquivo da faixa, manter pressionada a tecla \textbf{shift}, clicar novamente com o \textbf{botão esquerdo do mouse} no último arquivo da faixa e finalmente pressionar [...]
+ 
+A exemplo da importação de arquivos DICOM, é possível pular imagens BMP para reconstrução. Em alguns casos, em particular quando não se dispõe de um computador com memória e/ou processamento satisfatórios para trabalhar com muitas imagens em uma série, pode ser recomendável pular (ignorar) algumas delas. Para isso, selecione quantas imagens serão puladas (figura \ref{fig:import_bmp_skip_pt}). Clique em \textbf{Importar}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{import_bmp_skip_pt.png}
+\caption{Tela de importação}
+\label{fig:import_bmp_skip_pt}
+\end{figure}
+
+Para a reconstrução desse tipo de arquivo é necessário definir um nome para o projeto, indicar qual a orientação das imagens (axial, coronal ou sagital), espaçamento do voxel ($X$, $Y$ e $Z$) em \textbf{milímetros} como mostra a figura~\ref{fig:import_bmp_spacing_pt}. O espaçamento do voxel em $X$ é largura do pixel de cada imagem, $Y$ o comprimento do pixel e $Z$ representa a distância de cada fatia (altura do voxel). 
+
+Caso o conjunto de imagens seja de imagens de microtomografia, mais especificamente de equipamentos das marcas GE e Brucker, é possível que o InVesalius realize a leitura do arquivo texto com os parâmetros de aquisição que normalmente fica na mesma pasta das imagens e insira automaticamente o espaçamento. Essa constatação pode ser feita quando os valores de $X$, $Y$ e $Z$ são diferentes de "1.00000000", caso contrário é necessário digitar os valores dos respectivos espaçamento. 
+
+\textbf{Atenção, o espaçamento é um parâmetro primordial para a correta dimensão dos objetos no software. Espaçamento incorreto irá fornecer medidas incorretas.}
+
+Uma vez preenchido todos os parâmetros, basta clicar no botão \textbf{Ok}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_bmp_spacing_pt.png}
+\caption{Tela de importação}
+\label{fig:import_bmp_spacing_pt}
+\end{figure}
+
+Caso seja detectado quantidade insuficiente de memória disponível na hora de carregar as imagens é recomentado  reduzir a resolução das fatias para trabalhar com visualização volumétrica e de superfície, como mostra a janela \ref{fig:import_bmp_resize_pt}.  As fatias serão redimensionadas de acordo com a porcentagem em relação a resolução original. Por exemplo,  se cada fatia do exame contém a dimensão de 512 x 512 pixeis e for sugerido a "Porcentagem da resolução original" em 60\%, cada [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{import_bmp_resize_pt.png}
+\caption{Redimensionamento de imagens}
+\label{fig:import_bmp_resize_pt}
+\end{figure}
+
+
+Após os passos anteriores é necessário aguardar um instante para completar a reconstrução multiplanar conforme mostra a figura~\ref{fig:import_bmp_mpr_pt.png}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{import_bmp_mpr_pt.png}
+\caption{Reconstrução multiplanar em andamento.}
+\label{fig:import_bmp_mpr_pt.png}
+\end{figure}
diff --git a/docs/user_guide_pt_BR_source/cap_instal.tex b/docs/user_guide_pt_BR_source/cap_instal.tex
index 0b2ba91..a17a6ef 100644
--- a/docs/user_guide_pt_BR_source/cap_instal.tex
+++ b/docs/user_guide_pt_BR_source/cap_instal.tex
@@ -4,11 +4,11 @@
 
 Para instalar o InVesalius no MS-Windows, basta executar o programa instalador.
 Quando aparecer uma janela pedindo para confirmar a execução do arquivo, clique
-em \textbf{Executar}.
+em \textbf{Sim}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.7]{ScreenHunter_02Dec311523.jpg}
+\includegraphics[scale=0.5]{installation_exec_pt.png}
 \end{figure}
 
 \newpage
@@ -17,7 +17,7 @@ o idioma e clique em \textbf{OK}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.7]{ScreenHunter_03Dec311523.jpg}
+\includegraphics[scale=0.7]{installation_select_language_pt.png}
 \end{figure}
  
 \hspace{.2cm}
@@ -26,44 +26,42 @@ Em seguida, será exibida a janela do instalador. Clique em \textbf{Avançar}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_02Dec310024.jpg}
+\includegraphics[scale=0.7]{installation_welcome_pt.png}
 \end{figure}
 
 \newpage
 
 Selecione \textbf{Eu aceito os termos do Contrato} e clique em \textbf{Avançar}.
 
-\begin{figure}[!htb]
+\begin{figure}[!htb] 
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_04Dec310024.jpg}
+\includegraphics[scale=0.7]{installation_license_pt.png}
 \end{figure}
 
 \hspace{.2cm}
 
-Clique em \textbf{Avançar} novamente.
+Clique em \textbf{Avançar} novamente. 
 
-\begin{figure}[!htb]
+\begin{figure}[!htb]  
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_05Dec310024.jpg}
+\includegraphics[scale=0.7]{installation_folder_pt.png}
 \end{figure}
 
 \newpage
 
 Clique em \textbf{Avançar}.
-
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_06Dec310024.jpg}
+\includegraphics[scale=0.7]{installation_program_name_pt.png}
 \end{figure}
 
 \hspace{.2cm}
 
-Selecione \textbf{Criar um ícone na Área de Trabalho} e \textbf{Criar um ícone
-na Barra de Inicialização Rápida} e clique em \textbf{Avançar}.
+Selecione \textbf{Criar um ícone na Área de Trabalho} e clique em \textbf{Avançar}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_08Dec310024.jpg}
+\includegraphics[scale=0.7]{installation_desktop_shortcut_pt.png}
 \end{figure}
 
 \newpage
@@ -72,7 +70,7 @@ Clique em \textbf{Instalar}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_09Dec310024.jpg}
+\includegraphics[scale=0.7]{installation_resume_pt.png}
 \end{figure}
 
 \hspace{.2cm}
@@ -82,7 +80,7 @@ da instalação.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_11Dec310025.jpg}
+\includegraphics[scale=0.7]{installation_progress_pt.png}
 \end{figure}
 
 \newpage
@@ -91,7 +89,7 @@ Para executar o InVesalius após a instalação, clique em \textbf{Concluir}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_14Dec310025.jpg}
+\includegraphics[scale=0.7]{installation_finish_pt.png}
 \end{figure}
 
 \hspace{.2cm}
@@ -102,7 +100,7 @@ para selecionar o idioma do InVesalius. Selecione o idioma desejado e clique em
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.7]{ScreenHunter_15Dec310025.jpg}
+\includegraphics[scale=0.7]{invesalius_language_select_pt.png}
 \end{figure}
 
 \newpage
@@ -112,7 +110,7 @@ seguinte.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{ScreenHunter_17Dec310026.jpg}
+\includegraphics[scale=0.4]{splash_pt.png}
 \end{figure}
 
 \hspace{.2cm}
@@ -121,7 +119,7 @@ Em seguida, a janela principal do programa é aberta.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{ScreenHunter_18Dec310026.jpg}
+\includegraphics[scale=0.4]{main_window_without_project_pt.png}
 \end{figure}
 
 \section{Mac Os X}
@@ -131,15 +129,15 @@ Em seguida o instalador será inicializado.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{mac2.png}
+\includegraphics[scale=0.4]{mac2.png}
 \end{figure}
 
 Mantenha o botão esquerdo pressionado sobre o ícone do software InVesalius e arraste-o para o ícone \textit{Applications}
 ambos contidos no instalador.
 
-\begin{figure}[!htb]
-\centering
-\includegraphics[scale=0.4]{mac4.png}
-\end{figure}
+%\begin{figure}[!htb]
+%\centering
+%\includegraphics[scale=0.4]{mac4.png}
+%\end{figure}
 
 O software já encontra-se instalado, bastando acessar pelo menu
diff --git a/docs/user_guide_pt_BR_source/cap_manip.tex b/docs/user_guide_pt_BR_source/cap_manip.tex
index 173b5e8..a03b64e 100644
--- a/docs/user_guide_pt_BR_source/cap_manip.tex
+++ b/docs/user_guide_pt_BR_source/cap_manip.tex
@@ -2,13 +2,13 @@
 
 \section{Reconstrução Multiplanar}
 
-Ao importar as imagens DICOM, o InVesalius mostra, automaticamente, a sua reconstrução
+Ao importar as imagens, o InVesalius mostra, automaticamente, a sua reconstrução
 multiplanar nas orientações Axial, Sagital e Coronal, bem como uma janela para manipulação 3D.
 Veja a figura \ref{fig:mpr}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.25]{ScreenHunter_18Dec311140_1.jpg}
+\includegraphics[scale=0.30]{multiplanar_mask_window_pt.png}
 \caption{Reconstrução multiplanar}
 \label{fig:mpr}
 \end{figure}
@@ -27,7 +27,7 @@ da tela. Basta escolher a aba \textbf{Máscaras} e clicar \textbf{uma} vez com o
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{ScreenHunter_29Dec311141_.jpg}
+\includegraphics[scale=0.8]{data_mask_pt.png}
 \caption{Gerenciador de máscaras}
 \label{fig:ger_masc}
 \end{figure}
@@ -37,7 +37,7 @@ O ícone do olho desaparece, e as cores da máscara de segmentação são escond
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.25]{ScreenHunter_28Dec311141_.jpg}
+\includegraphics[scale=0.30]{multiplanar_window_pt.png}
 \caption{Reconstrução multiplanar sem máscara de segmentação}
 \label{fig:mpr_sem_mask}
 \end{figure}
@@ -51,7 +51,7 @@ região do crânio.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.15]{ScreenHunter_24Dec310029_.jpg}
+\includegraphics[scale=0.15]{axial.jpg}
 \caption{Corte axial}
 \label{fig:axial_corte}
 \end{figure}
@@ -65,7 +65,7 @@ A figura \ref{fig:sagital_slice} mostra uma imagem do crânio em orientação sa
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.15]{ScreenHunter_25Dec310029_.jpg}
+\includegraphics[scale=0.15]{sagital.jpg}
 \caption{Corte sagital}
 \label{fig:sagital_slice}
 \end{figure}
@@ -81,13 +81,14 @@ coronal.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.15]{ScreenHunter_24Dec311141_.jpg}
+\includegraphics[scale=0.15]{coronal.jpg}
 \caption{Corte coronal}
 \label{fig:coronal_slice}
 \end{figure}
 
 
 \section{Correspondência entre as orientações axial, sagital e coronal}
+\label{sec:corresp_all_orient}
 
 Para saber qual o ponto comum das imagens nas diferentes orientações, basta acionar o
 recurso "Cruz de interseção de fatias" pelo ícone de atalho localizado na barra de ferramentas.
@@ -111,7 +112,7 @@ Para modificar o ponto, mantenha \textbf{pressionado} o botão \textbf{esquerdo}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{ScreenHunter_01Jan021941.jpg}
+\includegraphics[scale=0.4]{multiplanar_window_cross_pt.png}
 \caption{Ponto comum entre orientações diferentes}
 \label{fig:cross_all}
 \end{figure}
@@ -119,7 +120,29 @@ Para modificar o ponto, mantenha \textbf{pressionado} o botão \textbf{esquerdo}
 Para desativar a funcionalidade, basta clicar novamente sobre o atalho (figura \ref{fig:cross_icon}).
 Esse recurso pode ser utilizado em conjunto com o editor de fatias (que será comentado mais à frente).
 
-\newpage
+
+\section{Interpolação}
+
+Por padrão a visualização das imagens 2D são interpoladas (figura~\ref{fig:interp}).a, caso deseja desativar esse recurso, basta ir no menu \textbf{Visualizar}, \textbf{Fatias interpoladas} (figura~\ref{fig:menu_interpoleted_image_pt}). Dessa forma será possível visualizar cada pixel individualmente como mostra a figura~\ref{fig:interp}.b. 
+
+\textbf{Observação: Essa interpolação é apenas para efeitos de visualização, não influenciando diretamente na segmentação ou na geração de superfície 3D.}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{menu_interpoleted_image_pt.png}
+\caption{Menu para desativar e ativar interpolação}
+\label{fig:menu_interpoleted_image_pt}
+\end{figure}
+
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Interpolada]{\includegraphics[width=0.4\textwidth]{axial_interpoleted.png}}  \qquad
+  \subfloat[Não interpolada]{\includegraphics[width=0.4\textwidth]{axial_not_interpoleted.png}}
+  \hfill
+  \caption{Visualização de imagem interpolada e não interpolada.}
+  \label{fig:interp}
+\end{figure}
 
 \section{Mover}
 
@@ -128,16 +151,16 @@ Para mover uma imagem na tela, pode-se utilizar o ícone do atalho "Mover" da ba
 \textbf{esquerdo} do mouse pressionado sobre a imagem, \textbf{arraste-a} para a direção desejada.
 A figura \ref{fig:move_img} mostra uma imagem deslocada (movida).
 
-\begin{figure}[!htb]
+\begin{figure}[!h]
 \centering
 \includegraphics[scale=0.25]{tool_translate_original.png}
 \caption{Atalho para mover imagens}
 \label{fig:move_icon}
 \end{figure}
 
-\begin{figure}[!htb]
+\begin{figure}[!h]
 \centering
-\includegraphics[scale=0.25]{ScreenHunter_84Dec311201.jpg}
+\includegraphics[scale=0.15]{axial_pan.jpg}
 \caption{Imagem deslocada}
 \label{fig:move_img}
 \end{figure}
@@ -149,16 +172,16 @@ A rotação de imagens pode ser ativada pelo ícone do atalho "Rotacionar" da ba
 \textbf{esquerdo} do mouse pressionado sobre a imagem, \textbf{arraste-a} no sentido horário ou
 anti-horário, dependendo do sentido de rotação desejado.
 
-\begin{figure}[!htb]
+\begin{figure}[!h]
 \centering
 \includegraphics[scale=0.25]{tool_rotate_original.png}
 \caption{Atalho para rotacionar imagens}
 \label{fig:rot_icon}
 \end{figure}
 
-\begin{figure}[!htb]
+\begin{figure}[!h]
 \centering
-\includegraphics[scale=0.25]{ScreenHunter_83Dec311201_.jpg}
+\includegraphics[scale=0.15]{axial_rotate.jpg}
 \caption{Imagem rotacionada}
 \label{fig:rotate_all}
 \end{figure}
@@ -180,7 +203,7 @@ anterior, basta clicar novamente no ícone.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{ScreenHunter_27Dec311141__.jpg}
+\includegraphics[scale=0.6]{maximize_sagital_mpr.png}
 \caption{Detalhe de uma subjanela (Observe o ícone de maximizar no canto superior direito)}
 \label{fig:maximize_window}
 \end{figure}
@@ -199,13 +222,6 @@ caso deseje reduzi-la.
 \label{fig:zoom_icon}
 \end{figure}
 
-%\begin{figure}[!htb]
-%\centering
-%\includegraphics[scale=0.2]{ScreenHunter_76Dec311201_.jpg}
-%\caption{Imagem com \textit{Zoom} aplicado}
-%\label{fig:zoom_}
-%\end{figure}
-
 \subsection{Ampliando uma área da imagem}
 
 Para ampliar uma área determinada da imagem, clique sobre o ícone do atalho "Zoom baseado na seleção" 
@@ -224,14 +240,14 @@ botão esquerdo do mouse for liberado, a operação de \textit{zoom} será aplic
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.25]{ScreenHunter_06Jan062046.jpg}
+\includegraphics[scale=0.15]{tool_zoom_select_image.jpg}
 \caption{Área selecionada para \textit{zoom}}
 \label{fig:zoom_select}
 \end{figure}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.25]{ScreenHunter_08Jan062046.jpg}
+\includegraphics[scale=0.15]{tool_image_with_zoom.jpg}
 \caption{Imagem ampliada}
 \label{fig:zoom_applied}
 \end{figure}
@@ -271,7 +287,7 @@ seguida, clique sobre a opção pré-definida, de acordo com o tipo de tecido, c
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.40]{ScreenHunter_12Jan021943_0.png}
+\includegraphics[scale=0.40]{menu_window_and_level_pt.png}
 \caption{Menu de contexto para seleção de brilho e contraste}
 \label{fig:window_level}
 \end{figure}
@@ -309,7 +325,7 @@ Vascular - Mole & 680 & 160\\
 
 \begin{figure}
   \centering
-  \subfloat[Osso]{\label{fig:contrast_bone}\includegraphics[width=0.4\textwidth]{contraste_osso}}                
+  \subfloat[Osso]{\label{fig:contrast_bone}\includegraphics[width=0.4\textwidth]{contraste_osso}} \qquad          
   \subfloat[Pulmão]{\label{fig:contrast_isq}\includegraphics[width=0.4\textwidth]{contraste_pulmao}}
   \caption{Diferentes tipos de brilho e constraste}
   \label{fig:two_window_level}
@@ -329,61 +345,25 @@ mostra a figura \ref{fig:pseudo_color}.
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.40]{pseudo_menu.png}
+\includegraphics[scale=0.40]{pseudo_menu_pt.png}
 \caption{Pseudo Cor}
 \label{fig:pseudo_color}
 \end{figure}
 
 As figuras de \ref{fig:image_default} a \ref{fig:image_saturation} exemplificam as diversas opções de
-pseudocor disponíveis.\\
+pseudocor disponíveis.
 
-\begin{figure}[H]
-\centering
-\includegraphics[scale=0.30]{ScreenHunter_24Dec310029.jpg}
-\caption{Padrão}
-\label{fig:image_default}
-\end{figure}
-
-\begin{figure}[H]
-\centering
-\includegraphics[scale=0.30]{ScreenHunter_21Jan021944.jpg}
-\caption{Imagem Cinza Invertido}
-\label{fig:image_inverted}
-\end{figure}
-
-\begin{figure}[H]
-\centering
-\includegraphics[scale=0.30]{ScreenHunter_20Jan021944}
-\caption{Arco-íris}
-\label{fig:image_arc}
-\end{figure}
-
-\begin{figure}[H]
-\centering
-\includegraphics[scale=0.30]{ScreenHunter_22Jan021944}
-\caption{Deserto}
-\label{fig:image_desert}
-\end{figure}
-
-\begin{figure}[H]
-\centering
-\includegraphics[scale=0.30]{ScreenHunter_23Jan021944}
-\caption{Matiz}
-\label{fig:image_matiz}
-\end{figure}
-
-\begin{figure}[H]
-\centering
-\includegraphics[scale=0.30]{ScreenHunter_24Jan021944}
-\caption{Oceano}
-\label{fig:image_ocean}
-\end{figure}
-
-\begin{figure}[H]
-\centering
-\includegraphics[scale=0.30]{ScreenHunter_25Jan021944}
-\caption{Saturação}
-\label{fig:image_saturation}
+\begin{figure}[h]
+  \centering
+  \subfloat[Default]{\label{fig:image_default}\includegraphics[width=0.25\textwidth]{pseudo_default.jpg}} \qquad
+  \subfloat[Inverted Gray Image]{\label{fig:image_inverted}\includegraphics[width=0.25\textwidth]{pseudo_inverse.jpg}} \qquad
+  \subfloat[Rainbow]{\label{fig:image_arc}\includegraphics[width=0.25\textwidth]{pseudo_rainbow.jpg}} \\
+  \subfloat[Desert]{\label{fig:image_desert}\includegraphics[width=0.25\textwidth]{pseudo_desert.jpg}} \qquad
+  \subfloat[Hue]{\label{fig:image_matiz}\includegraphics[width=0.25\textwidth]{pseudo_hue.jpg}} \qquad
+  \subfloat[Ocean]{\label{fig:image_ocean}\includegraphics[width=0.25\textwidth]{pseudo_ocean.jpg}}\\
+\subfloat[Saturation]{\label{fig:image_saturation}\includegraphics[width=0.25\textwidth]{pseudo_saturation.jpg}}  
+  \caption{Alguns tipos diferentes de pseudo-cor}
+  \label{fig:pseudo_color_types}
 \end{figure}
 
 \newpage
@@ -394,7 +374,7 @@ pseudocor disponíveis.\\
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.60]{menu_projection}
+\includegraphics[scale=0.60]{menu_projection_pt.png}
 \caption{Menu de Tipo de projeção}
 \label{fig:menu_proj}
 \end{figure}
@@ -405,7 +385,7 @@ O modo normal é a visualização padrão, ou seja, sem nenhum tipo de projeçã
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.20]{proj_normal}
+\includegraphics[scale=0.40]{multiplanar_window_pt.png}
 \caption{Projeção normal}
 \label{fig:proj_normal}
 \end{figure}
@@ -416,7 +396,7 @@ MaxIP também é conhecido como MIP (\textit{Maximum Intensity Projection}), o m
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.20]{proj_maxIP}
+\includegraphics[scale=0.40]{multiplanar_window_maxip_pt.png}
 \caption{Projeção MaxIP ou MIP}
 \label{fig:proj_maxip}
 \end{figure}
@@ -425,7 +405,7 @@ Como mostra a figura~\ref{fig:proj_maxip_qtd}, a quantidade de imagens que irá
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.50]{proj_maxIP_qtd}
+\includegraphics[scale=0.80]{multiplanar_window_maxip_number_pt.png}
 \caption{Seleção da quantidade de imagens que compõe o MaxIP ou MIP}
 \label{fig:proj_maxip_qtd}
 \end{figure}
@@ -436,7 +416,7 @@ Ao contrário do MaxIP, o MinIP (\textit{Minimun Intensity Projection}) selecion
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.20]{proj_minIP}
+\includegraphics[scale=0.40]{multiplanar_window_minip_pt.png}
 \caption{Projeção MinIP}
 \label{fig:proj_minIP}
 \end{figure}
@@ -446,7 +426,7 @@ A técnica MeanIP (\textit{Mean Intensity Projection}) que é mostrada na figura
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.20]{proj_meanIP}
+\includegraphics[scale=0.40]{multiplanar_window_mean_pt.png}
 \caption{Projeção MeanIP}
 \label{fig:proj_meanIP}
 \end{figure}
@@ -457,7 +437,7 @@ A técnica MIDA (\textit{Maximum Intensity Difference Accumulation}) projeta uma
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.18]{proj_MIDA}
+\includegraphics[scale=0.40]{multiplanar_window_mida_pt.png}
 \caption{Projeção MIDA}
 \label{fig:proj_MIDA}
 \end{figure}
@@ -466,7 +446,7 @@ Como mostra a figura~\ref{fig:proj_MIDA_inv}, é possível inverter a ordem que
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.18]{proj_MIDA_inv}
+\includegraphics[scale=0.40]{multiplanar_window_mida_inverted_pt}
 \caption{Projeção MIDA em ordem invertida}
 \label{fig:proj_MIDA_inv}
 \end{figure}
@@ -477,7 +457,7 @@ Compõe a projeção 2D do conjunto de imagens que contém o volume usando a té
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.20]{proj_contornoMaxIP}
+\includegraphics[scale=0.40]{multiplanar_window_contour_maxip_pt.png}
 \caption{Projeção de Contorno MaxIP}
 \label{fig:proj_contorno_maxip}
 \end{figure}
@@ -488,7 +468,7 @@ Compõe a projeção 2D do conjunto de imagens que contém o volume usando a té
 
 \begin{figure}[H]
 \centering
-\includegraphics[scale=0.20]{proj_contornoMIDA}
+\includegraphics[scale=0.40]{multiplanar_window_contour_mida_pt.png}
 \caption{Projeção de Contorno MIDA}
 \label{fig:proj_contorno_mida}
 \end{figure}
\ No newline at end of file
diff --git a/docs/user_guide_pt_BR_source/cap_masc.tex b/docs/user_guide_pt_BR_source/cap_masc.tex
new file mode 100644
index 0000000..a5140aa
--- /dev/null
+++ b/docs/user_guide_pt_BR_source/cap_masc.tex
@@ -0,0 +1,189 @@
+\chapter{Máscara}
+
+
+\section{Operações booleanas}
+
+Após efetuar segmentações, é possível realizar operações booleanas entre as máscaras. As operações booleanas suportadas são:
+
+\begin{itemize}
+	\item \textbf{União}, realiza a união de duas máscaras;
+	\item \textbf{Diferença}, realiza a diferença entre a primeira máscara com a segunda;
+	\item \textbf{Intersecção}, para apagar marcadores de objeto ou fundo.
+	\item \textbf{Disjunção exclusiva}, também é conhecida como XOR, mantém as regiões de ambas as máscara que possuem diferença.
+\end{itemize}
+
+Para ativar essa ferramenta é necessário ir no menu \textbf{Ferramentas}, \textbf{Máscara}, \textbf{Operações boolenas}, como é exibido na figura~\ref{fig:booleano_menu} 
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{mask_operation_boolean_menu_pt.png}
+\caption{Menu para ativar a ferramenta de operações booleanas.}
+\label{fig:booleano_menu}
+\end{figure}
+
+É necessário selecionar a primeira máscara, a operação a ser realizada e a segunda máscara conforme mostra a figura~\ref{fig:booleano_janela}. Em seguida é necessário clicar no botão \textbf{Ok}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{mask_boolean_dialog_pt.png}
+\caption{Ferramenta de operações booleanas.}
+\label{fig:booleano_janela}
+\end{figure}
+
+Na figura~\ref{fig:op_boolana}, apresentamos um exemplo de utilização da ferramenta.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Máscara A]{\includegraphics[width=0.332\textwidth]{booleano_m_a.png}}                
+  \hfill
+  \subfloat[Máscara B]{\includegraphics[width=0.332\textwidth]{booleano_m_b.png}}	
+  \hfill  
+  \subfloat[União (A $\cup$ B)]{\includegraphics[width=0.332\textwidth]{booleano_uniao.png}}
+  \hfill  
+  \subfloat[Diferença (A - B)]{\includegraphics[width=0.332\textwidth]{booleano_dif.png}}
+  \hfill  
+  \subfloat[Intersecção (A $\cap$ B)]{\includegraphics[width=0.332\textwidth]{booleano_interc.png}}
+  \hfill  
+  \subfloat[Disjunção exclusiva (A $\oplus$ B)]{\includegraphics[width=0.332\textwidth]{booleano_disj_exc.png}}
+  \caption{Exemplo de operações booleanas.}
+  \label{fig:op_boolana}
+\end{figure}
+
+\section{Limpeza total da máscara}
+\label{cap:limpeza_mascara}
+
+Pode-se efetuar a limpeza total da máscara (figura~\ref{fig:limpeza_mascara}). Isso é recomendado antes de iniciar a inserção de marcadores de Watershed. A ferramenta está localizada no menu \textbf{Ferramentas}, \textbf{Máscara}, \textbf{Limpar máscara}. Também é possível executa-la pressionando as teclas \textbf{CTRL+SHIFT+A}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{mask_clean_menu_pt.png}
+\caption{Limpeza de máscara}
+\label{fig:limpeza_mascara}
+\end{figure}
+
+\section{Fechar buracos manualmente}
+
+Ao realizar a segmentação é possível que pequenas partes (buracos) que deseja-se ser selecionadas não sejam e ao gerar a superfície para a impressão 3D pode ser que ocorra inconsistências por causa desses buracos, para evitar esse tipo de problema é recomendável preenche-los. Para isso é basta acessar o menu \textbf{Ferramentas}, \textbf{Máscara} e por último clicar em \textbf{Fechar buracos manualmente} (figura~\ref{fig:menu_mask_manual_fill_holes}). Em seguida será exibido uma tela (fi [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_manual_fill_holes_pt.png}
+\caption{Menu para acessa a ferramenta de fechamento de buracos manual.}
+\label{fig:menu_mask_manual_fill_holes}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_manual_fill_holes_window_pt.png}
+\caption{Tela para configurar parâmetros de fechamento de buracos.}
+\label{fig:mask_manual_fill_holes_window}
+\end{figure}
+
+Entre os parâmetros existe a opção de realizar o fechamento de buraco levando em consideração somente a fatia atual (\textbf{2D - Fatia Atual}) ou todas as fatias (\textbf{3D - Todas as fatias}) e suas respectivas conectividades, no caso 2D, conectividade $4$ ou $8$, conectividade $6$,$18$ ou $26$. No caso 3D se houver conectividade no buraco em diferentes fatias ele irá expandir para as demais fatias.
+
+Quando os parâmetros estiverem configurados, clique com o \textbf{botão esquerdo} do mouse sobre o buraco que deseja-se fechar.
+
+Podemos observar na imagem~\ref{fig:mask_fill_hole}.a, um exemplo de uma máscara sem preenchimento de buracos e outra com os buracos preenchidos (imagem~\ref{fig:mask_fill_hole}.b). Após o uso da ferramenta, para sair clique no botão \textbf{fechar ou close} no canto inferior direito da janela de configuração de parâmetros.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Buracos]{\includegraphics[width=0.4\textwidth]{mask_axial_with_hole.png}}  \qquad
+  \subfloat[Buracos fechados]{\includegraphics[width=0.4\textwidth]{mask_axial_filled_hole.png}}
+  \hfill
+  \caption{Exemplo de máscara com buracos e buracos preenchidos.}
+  \label{fig:mask_fill_hole}
+\end{figure}
+
+
+\section{Fechar buracos automaticamente}
+
+Para abrir a ferramenta, no menu do InVesalius clique em \textbf{Ferramentas}, \textbf{Máscara} e por fim \textbf{Fechar buracos automaticamente} (figura~\ref{fig:menu_mask_automatic_fill_holes}), será aberto uma janela para configurar os parâmetros dos buracos que deseja-se fechar. A ferramenta não requer que o usuário clique nos buracos que deseja fechar, ela leva em consideração o tamanho do buraco em voxels que é configurado na janela de configuração de parâmetros (figura~\ref{fig:ma [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_automatic_fill_holes_pt.png}
+\caption{Menu para acessar a ferramenta de fechamento de buracos automático.}
+\label{fig:menu_mask_automatic_fill_holes}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_automatic_fill_holes_window_pt.png}
+\caption{Tela para configurar parâmetros de fechamento de buracos.}
+\label{fig:mask_automatic_fill_holes_window}
+\end{figure}
+
+Entre os parâmetros existe a opção de realizar o fechamento de buraco levando em consideração somente a fatia atual (\textbf{2D - Fatia Atual}) ou todas as fatias (\textbf{3D - Todas as fatias}) e suas respectivas conectividades, no caso 2D, conectividade $4$ ou $8$, conectividade $6$,$18$ ou $26$. No caso 2D é necessário indicar qual a janela será aplicado o fechamento de buracos, sendo axial, coronal ou sagital. No caso 3D se houver conectividade no buraco em diferentes fatias ele irá  [...]
+
+Com os parâmetros configurados, clique no botão \textbf{Aplicar ou Apply}, caso o resultado não seja satisfatório, reconfigure o tamanho do buraco ou outros parâmetros como conectividade e aplique novamente. Para sair clique no botão \textbf{Sair ou Close}.
+
+\section{Remover partes}
+
+Antes de gerar a superfície é recomendável remover as partes desconexas não desejadas na máscara, dessa forma ao gerar a superfície será utilizada menores quantidades de memória RAM e o processo será mais rápido. Para remover as partes não desejáveis é necessário abrir a ferramenta de remover partes, clicando no menu \textbf{Ferramentas}, \textbf{Máscara} e \textbf{Remover Partes} (figura~\ref{fig:menu_mask_remove_part}). Em seguida irá ser exibido uma janela para configurar os parâmetro [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_remove_part_pt.png}
+\caption{Menu para acessar a ferramenta de remoção de partes.}
+\label{fig:menu_mask_remove_part}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_remove_parts_window.png}
+\caption{Tela para configurar parâmetros de remoção de partes.}
+\label{fig:mask_remove_parts_window}
+\end{figure}
+
+Selecionado os parâmetros desejados, basta clicar com o \textbf{botão esquerdo do mouse} sobre a região que deseja remover. A figura~\ref{fig:mask_removed_part} apresenta uma exemplo de parte removida e não removida. Para sair da ferramenta clique no botão \textbf{Sair ou Close}.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Imagem de entrada]{\includegraphics[width=0.45\textwidth]{mask_axial_complete.png}}  \qquad
+  \subfloat[Imagem com suporte do tomografo removido]{\includegraphics[width=0.45\textwidth]{mask_axial_selected_part.png}}
+  \hfill
+  \caption{Exemplo de região removida na máscara.}
+  \label{fig:mask_removed_part}
+\end{figure}
+
+\section{Selecionar partes}
+
+Para abrir a ferramenta de seleção de partes desconexas é necessário ir ao menu, \textbf{Ferramentas}, \textbf{Máscara} e por fim \textbf{Selecionar Partes} (figura~\ref{fig:menu_mask_select_part}). A ferramenta irá apresentar uma tela de configuração de parâmetros que consiste em qual conectividade será levada em consideração (figura~\ref{fig:mask_select_part}), podendo ser $6$, $18$ ou $26$ e o nome da nova máscara que irá ter a imagem resultante.
+
+Todas as imagens a região que tem conectividade com o pixel selecionado. Para selecionar o pixel, é necessário clicar com o \textbf{botão esquerdo do mouse} em sobre o pixel desejado, o objeto irá ficar da cor vermelha, é possível selecionar vários objetos. Após a seleção é necessário clicar no \textbf{botão Ok}. A figura~\ref{fig:mask_selected_part}.a apresenta um objeto selecionado na cor vermelha e a figura~\ref{fig:mask_selected_part}.b  somente o objeto após ter fechado a ferramenta [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_select_part_pt.png}
+\caption{Menu para acessar a ferramenta de seleção de partes.}
+\label{fig:menu_mask_select_part}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.7]{mask_select_part_pt.png}
+\caption{Tela para configurar parâmetros de seleção de partes.}
+\label{fig:mask_select_part}
+\end{figure}
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Região selecionada em vermelho]{\includegraphics[width=0.45\textwidth]{mask_axial_select_part_pt.png}}  \qquad
+  \subfloat[Imagem final, somente com a região selecionada]{\includegraphics[width=0.45\textwidth]{mask_axial_selected_part_pt.png}}
+  \hfill
+  \caption{Exemplo de região selecionada na máscara.}
+  \label{fig:mask_selected_part}
+\end{figure}
+
+\section{Cortar}
+
+É possível cortar parte da máscara afim de selecionar uma região de interesse, isso pode ajudar reduzindo a quantidade de informações a ser processadas ao gerar superfície. Para abrir a ferramenta é necessário ir no menu \textbf{Ferramentas}, \textbf{Máscara} e por último \textbf{Cortar} (figura~\ref{fig:menu_mask_crop}).
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{menu_mask_crop_pt.png}
+\caption{Menu para acessar a ferramenta de corte.}
+\label{fig:menu_mask_crop}
+\end{figure}
+
+Será exibida uma caixa delimitadora em cada janela das orientações axial, coronal e sagital.
diff --git a/docs/user_guide_pt_BR_source/cap_med.tex b/docs/user_guide_pt_BR_source/cap_med.tex
index 008d3df..108c8c3 100644
--- a/docs/user_guide_pt_BR_source/cap_med.tex
+++ b/docs/user_guide_pt_BR_source/cap_med.tex
@@ -25,22 +25,22 @@ superfície.
 A figura \ref{fig:axial_linear} mostra uma medida linear em 2D na orientação axial,
 e a figura \ref{fig:3d_linear} mostra outra medida linear em 3D (superfície).
 
+Uma vez feita a medida linear em 2D, é possível edita-la, para isso é necessário posicionar o mouse sobre uma das extremidades, manter o \textbf{botão direito do mouse} pressionado e arrastar para a posição desejada.
+
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{axial_linear}
+\includegraphics[scale=0.4]{axial_linear.png}
 \caption{Medida linear sobre imagem plana}
 \label{fig:axial_linear}
 \end{figure}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{3d_linear}
+\includegraphics[scale=0.3]{3d_linear.jpg}
 \caption{Medida linear sobre superfície}
 \label{fig:3d_linear}
 \end{figure}
 
-\newpage
-
 \textbf{Nota: A medida linear é dada em milímetros (mm).}
 
 \section{Medição angular}
@@ -66,16 +66,18 @@ a imagem ou superfície.
 A figura \ref{fig:axial_angular} ilustra uma medida angular em uma imagem plana, e a
 figura \ref{fig:axial_superficie} ilustra uma medida angular sobre uma superfície.
 
+A exemplo da medida linear em 2D, também é possível editar a medida angular 2D, para isso é necessário posicionar o mouse sobre uma das extremidades, manter o \textbf{botão direito do mouse} pressionado e arrastar para a posição desejada.
+
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.38]{axial_angular}
+\includegraphics[scale=0.38]{axial_angular.png}
 \caption{Medida angular sobre imagem plana}
 \label{fig:axial_angular}
 \end{figure}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.33]{angular_superficie}
+\includegraphics[scale=0.33]{angular_superficie.jpg}
 \caption{Medida angular sobre superfície}
 \label{fig:axial_superficie}
 \end{figure}
@@ -85,15 +87,15 @@ figura \ref{fig:axial_superficie} ilustra uma medida angular sobre uma superfíc
 
 \section{Medição volumétrica}
 
-As medições volumétricas são feitas automaticamente ao se criar uma nova superfície.
+As medições de volume e área são feitas automaticamente ao se criar uma nova superfície.
 Elas são exibidas na aba \textbf{Superfícies 3D}, no painel de gerenciamento de \textbf{Dados}, localizado no canto
 inferior esquerdo da tela, como ilustra a figura \ref{fig:volumetric_mensure}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{medida_volumetrica}
+\includegraphics[scale=0.7]{painel_volumetric_measures_pt.png}
 \caption{Medidas volumétricas}
 \label{fig:volumetric_mensure}
 \end{figure}
 
-\textbf{Nota: A medida volumétrica é dada em milímetros cúbicos ($mm^3$)}
+\textbf{Nota: A medida de volume é dada em milímetro cúbico ($mm^3$), já a de área em milímetro quadrado ($mm^2$)}
diff --git a/docs/user_guide_pt_BR_source/cap_nav.tex b/docs/user_guide_pt_BR_source/cap_nav.tex
new file mode 100644
index 0000000..3a226d9
--- /dev/null
+++ b/docs/user_guide_pt_BR_source/cap_nav.tex
@@ -0,0 +1,159 @@
+\chapter{Neuronavegação}
+\label{sec:neuronavegador}
+
+A introdução sobre a neuronavegação é feita na seção~\ref{sec:neuronavegador_intro}, é recomendável a leitura caso não tenha sido feita.
+
+Para utilizar o neuronavegador, é necessário habilitar o modo de neuronavegação do InVesalius selecionando no menu \textbf{Modo} em seguida \textbf{Navegação} (figura~\ref{fig:nav_menu_pt}). Será ativada uma nova aba "Sistema de navegação" que ficará visível no painel à esquerda da janela principal como é apresentado na figura~\ref{fig:nav_painel_pt}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{nav_menu_pt.png}
+\caption{Menu para ativar o modulo de neuronavegação.}
+\label{fig:nav_menu_pt}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_painel_pt.png}
+\caption{Aba do sistema de neuronavegação.}
+\label{fig:nav_painel_pt}
+\end{figure}
+
+\section{Rastreadores espaciais e modo de referência}
+
+O sistema de neuronavegação se comunica com vários sistemas de rastreamento espacial. Atualmente, suporta os dispositivos fabricados pela ClaroNav (figura~\ref{fig:tracker_claron}) e Polhemus (figura~\ref{fig:tracker_polhemus}). 
+
+O usuário deve selecionar o dispositivo correspondente no botão \textbf{Selecione o rastreador:}, figura~\ref{fig:nav_select_tracker}.  Caso o usuário não possua nenhum dos rastreadores suportados e deseja realizar um teste do sistema, deve selecionar a opção \textbf{Depurar rastreador} e realizar normalmente os procedimentos que serão citados a seguir. Nessa opção, trata-se de uma simulação, do qual serão geradas coordenadas aleatórias.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{tracker_claron.png}
+\caption{Rastreador Claron - www.claronav.com/microntracker/.}
+\label{fig:tracker_claron}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{tracker_polhemus.jpg}
+\caption{Rastreador Polhemus - http://polhemus.com/motion-tracking/overview/.}
+\label{fig:tracker_polhemus}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{nav_select_tracker_pt.png}
+\caption{Menu para seleção de rastreador.}
+\label{fig:nav_select_tracker}
+\end{figure}
+
+É possível realizar a navegação com dois diferentes tipos de referência, estático e dinâmico (figura~\ref{fig:nav_menu_ref}). No modo estático as coordenadas do dispositivo de rastreamento são detectadas com apenas uma sonda. Este modo de navegação é chamado de modo de referência estática porque a cabeça dos sujeitos deve permanecer estática na posição em que foram detectados os pontos fiduciais (Mais informações na seção~\ref{sec:corregistro}).
+Para evitar problemas relacionados com o movimento da cabeça, alguns dispositivos de rastreamento fornecem uma sonda de referência. A sonda de referência pode ser ligada a uma parte não móvel da cabeça, por exemplo testa, para acompanhar as translações e rotações durante o procedimento de navegação. O uso de uma sonda de referência é o chamado modo de referência dinâmica.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{nav_menu_ref_pt.png}
+\caption{Menu para seleção de referência.}
+\label{fig:nav_menu_ref}
+\end{figure}
+
+\section{Corregistro}
+\label{sec:corregistro}
+
+O objetivo do corregistro é estabelecer uma relação entre o espaço de coordenadas do rastreador espacial e o espaço de coordenadas virtual (imagem). Para realizar o corregistro, o usuário deve selecionar três marcadores fiduciais na imagem, para isso primeiramente deverá ativar o recurso de \textbf{Correspondência entre as orientações axial, sagital e coronal} (ver seção~\ref{sec:corresp_all_orient}), coletar as três coordenadas fiduciais usando a sonda do dispositivo de rastreamento. Os [...]
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{nav_selec_coord_pt.png}
+\caption{Botões e coordenadas para seleção de pontos fiduciais.}
+\label{fig:nav_selec_coord}
+\end{figure}
+
+As siglas dos botões para coleta dos fiduciais representam:
+
+\begin{itemize}
+	\item OEI: trago auricular esquerdo na imagem
+	\item ODI: trago auricular direito na imagem
+	\item NAI: fossa nasal na imagem
+	\item OER: trago auricular esquerdo no rastreador
+	\item OER: trago auricular direito no rastreador
+	\item NAR: fossa nasal esquerdo no rastreador
+\end{itemize}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.5]{nav_balls_in_head.png}
+\caption{Criação de marcadores nos pontos fiduciais da imagem.}
+\label{fig:nav_balls_in_head}
+\end{figure}
+
+
+\section{Erro de registro fiducial e navegação}
+
+Após o usuário selecionar os três pontos fiduciais na imagem e os respectivos pontos com o rastreador espacial, o próximo passo é clicar no \textbf{botão Navegar} e o procedimento de navegação será iniciado. Para pausar a navegação, basta clicar novamente no \textbf{botão Navegar}. Automaticamente após selecionado a navegação é calculado o erro de registro fiducial, conhecido como \textit{Fiducial Registration Error} (FRE). Esse erro representa a distância média quadrática do ponto fiduc [...]
+
+Ao lado do botão de navegação, há a caixa de texto respectivo ao FRE. Se o FRE apresentar um valor alto (acima de 3 mm) a navegação não será precisa e a caixa de texto ficará vermelha, figura~\ref{fig:nav_fre_error}, recomenda-se que o corregistro seja refeito. Caso contrário, para FRE menor que 3 mm a caixa de texto fica verde, representando que a navegação terá precisão aceitável, figura~\ref{fig:nav_fre_ok}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_fre_error_pt.png}
+\caption{Botão de navegação e FRE com valor elevado para navegação.}
+\label{fig:nav_fre_error}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_fre_ok_pt.png}
+\caption{Botão de navegação e FRE com valor aceitável para navegação.}
+\label{fig:nav_fre_ok}
+\end{figure}
+
+\section{Marcadores}
+
+Durante a navegação, é possível criar marcadores esféricos no volume 3D. Para acessar essa função, basta clicar na aba \textbf{Ferramentas extras}, figura~\ref{fig:nav_extra_tools}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_extra_tools_pt.png}
+\caption{Aba para manipulação de marcadores.}
+\label{fig:nav_extra_tools}
+\end{figure}
+
+A criação de marcadores pode ser executada clicando no botão correspondente, com isso será criado um marcador na posição da cruz vermelha com as características escolhidas na aba, figura~\ref{fig:nav_extra_tools}. O número 4 representa o tamanho do raio da esfera que será criada. Ao lado do tamanho do marcador é possível definir a cor da esfera (figura~\ref{fig:nav_vol_with_markers}). 
+
+Caso o usuário desejar identificar o marcador criado no volume, um \textbf{clique duplo com o botão esquerdo do mouse} deve ser realizado no marcador desejado, com isso o respectivo começará a piscar.
+
+É possível criar uma identificação para o marcador, para isso, deve-se clicar com o botão direto sobre o marcador desejado e selecionar \textbf{Editar ID}, figura~\ref{fig:nav_id_list_markers}, será aberto uma janela para o usuário digitar a identificação, figura~\ref{fig:nav_edit_id_markers}.
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{nav_vol_with_markers.png}
+\caption{Volume com marcadores em diferentes cores.}
+\label{fig:nav_vol_with_markers}
+\end{figure} 
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_id_list_markers_pt.png}
+\caption{Aba para manipulação de marcadores.}
+\label{fig:nav_id_list_markers}
+\end{figure} 
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{nav_edit_id_markers_pt.png}
+\caption{Janela para editar identificação do marcador.}
+\label{fig:nav_edit_id_markers}
+\end{figure} 
+
+A exportação dos marcadores é feita através do \textbf{botão salvar}, a extensão do arquivo gerado é o .mks. Essa extensão de arquivo pode ser aberta por processadores de texto como bloco de notas. O arquivo possui as coordenadas $X$, $Y$ e $Z$ seguido o código $RGB$, tamanho de marcador e a identificação. Posteriormente, esse arquivo pode ser importado através do \textbf{botão Carregar}.
+
+Caso o usuário desejar excluir apenas um marcador basta \textbf{selecionar} o item desejado na lista e clicar no \textbf{botão Remover}, também existe a opção de excluir todos os marcadores criados, \textbf{Deletar todos marcadores}. Além disso, pode-se ocultar/mostrar a exibição dos marcadores no volume pelo \textbf{botão ocultar/mostrar}.
+
+\section{Caixas de seleção, trigger externo}
+
+Outra maneira para criação de marcadores é a monitoração externa de trigger. Para ativa-la basta selecionar a caixa de seleção \textbf{Trigger externo}. Essa função foi desenvolvida para comunicar dispositivos EMT e criar automaticamente o marcador em posições onde os pulsos foram aplicados. No entanto, outras aplicações são possíveis de acordo com a necessidade do usuário.
+A comunicação com o dispositivo externo é feita através da porta serial COM1, e basta enviar qualquer sinal do tipo RS-232 em uma velocidade \textit{baud rate} de 9600 no pino de recepção que será criado um marcador na atual posição da cruz.
+
+\section{Câmera do volume}
+
+O posicionamento da câmera do volume é atualizado automaticamente, tanto pela posição da cruz vermelha das fatias quanto pela posição da sonda durante a navegação. O usuário pode desabilitar a atualização automática e atualizar a câmera manualmente. O posicionamento será alterado caso o usuário o fizer na janela de volume.  Para isso, basta desmarcar a caixa de seleção \textbf{Câmera do volume}.
diff --git a/docs/user_guide_pt_BR_source/cap_segmen.tex b/docs/user_guide_pt_BR_source/cap_segmen.tex
index 86c98da..21e9881 100644
--- a/docs/user_guide_pt_BR_source/cap_segmen.tex
+++ b/docs/user_guide_pt_BR_source/cap_segmen.tex
@@ -16,7 +16,7 @@ no item \textbf{2. Selecione a região de interesse} (figura \ref{fig:region_sel
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{ScreenHunter01Jan201144.jpg}
+\includegraphics[scale=0.6]{segmentation_threshold_window_left_pt.png}
 \caption{Seleção de região de interesse}
 \label{fig:region_selection}
 \end{figure}
@@ -27,7 +27,7 @@ imagem com a região selecionada colorida e sobreposta à imagem original. Veja
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{limiar_principal}
+\includegraphics[scale=0.4]{segmentation_threshold_axial_pt.png}
 \caption{Máscara (regiões em amarelo)}
 \label{fig:region_selection_masc}
 \end{figure}
@@ -41,7 +41,7 @@ pintando somente os \textit{pixels} com intensidade dentro da faixa determinada.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.7]{limiar_barra}
+\includegraphics[scale=0.75]{segmentation_threshold_bar.png}
 \caption{Seleção dos \textit{pixels} com intensidade entre 226 e 3021 (Osso)}
 \label{fig:region_selection_bar}
 \end{figure}
@@ -52,7 +52,7 @@ automaticamente.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{limiar_presets}
+\includegraphics[scale=0.65]{segmentation_threshold_presets_pt.png}
 \caption{Caixa de seleção de valores pré-definidos de limiar}
 \label{fig:limiar_presets}
 \end{figure}
@@ -107,7 +107,7 @@ Selecione a faixa de limiar desejada e clique em \textbf{OK}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{limiar_janela}
+\includegraphics[scale=0.55]{segmentation_threshold_window_dialog_pt.png}
 \caption{Criar uma nova máscara}
 \label{fig:create_new_mask}
 \end{figure}
@@ -124,7 +124,7 @@ selecionar, \textbf{antes} da geração, a opção \textbf{Sobrescrever anterior
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{generate_surface}
+\includegraphics[scale=0.55]{segmentation_generate_surface_pt.png}
 \caption{Botão Gerar superfície}
 \label{fig:generate_surface}
 \end{figure}
@@ -134,7 +134,7 @@ Após alguns instantes, a superfície será exibida na janela de visualização
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{3d_model}
+\includegraphics[scale=0.5]{surface_from_threshold.png}
 \caption{Superfície 3D}
 \label{fig:surface}
 \end{figure}
@@ -151,8 +151,8 @@ por parte do usuário. Para utilizá-la, é necessário clicar em \textbf{Ediç
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{edicao_avancada.png}
-\caption{Ferramentas avançadas de edição}
+\includegraphics[scale=0.75]{segmentation_manual_label_pt.png}
+\caption{Ícone para abrir a ferramenta de edição manual}
 \label{fig:advanced_edition}
 \end{figure}
 
@@ -160,7 +160,7 @@ O painel de edição aparece como mostra a figura \ref{fig:edition_slices_ref}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{edition_slices}
+\includegraphics[scale=0.6]{segmentation_manual_window_pt.png}
 \caption{Painel de edição}
 \label{fig:edition_slices_ref}
 \end{figure}
@@ -172,7 +172,7 @@ mostra a figura \ref{fig:brush_type}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{edit_pencil}
+\includegraphics[scale=0.9]{segmentation_manual_pencil_type.png}
 \caption{Tipo de pincel}
 \label{fig:brush_type}
 \end{figure}
@@ -183,24 +183,26 @@ Também é possível alterar o diâmetro do pincel, conforme mostra a figura \re
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{diametro_pincel}
+\includegraphics[scale=0.8]{segmentation_manual_diameter.png}
 \caption{Seleção do diâmetro do pincel}
 \label{fig:select_diameter}
 \end{figure}
 
 É necessário selecionar o tipo de operação que será realizada pelo pincel. As opções são as
-seguintes:\\
-\\
-\textbf{Desenhar}, para pintar uma região que não foi selecionada;\\
-\textbf{Apagar}, para remover uma região que foi selecionada;\\
-\textbf{Limiar}, para remover uma região que está fora do limiar e foi selecionada, ou pintar
-uma região que está dentro do limiar e não foi selecionada.\\
+seguintes:
+
+\begin{itemize}
+	\item \textbf{Desenhar}, para pintar uma região que não foi selecionada;
+	\item \textbf{Apagar}, para remover uma região que foi selecionada;
+	\item \textbf{Limiar}, para remover uma região que está fora do limiar e foi selecionada, ou pintar
+uma região que está dentro do limiar e não foi selecionada.
+\end{itemize}
 
 A figura \ref{fig:select_brush_operations} ilustra a lista de operações do pincel:
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{select_brush_operation}
+\includegraphics[scale=0.7]{segmentation_manual_pencil_type_operation_type_pt.png}
 \caption{Seleção do tipo de operação do pincel}
 \label{fig:select_brush_operations}
 \end{figure}
@@ -212,7 +214,7 @@ seleciona parte dos ruídos, pois eles estão na mesma intensidade do limiar par
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{noise_amalgam}
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam.jpg}
 \caption{Imagem com ruído segmentada com limiar}
 \label{fig:noise_amalgaman}
 \end{figure}
@@ -222,14 +224,14 @@ segmentação.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{case_almagam}
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_3d.jpg}
 \caption{Superfície gerada a partir de imagem com ruído}
 \label{fig:surface_amagaman}
 \end{figure}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{case_almagam_zoom}
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_3d_zoom.jpg}
 \caption{Zoom da região com ruído}
 \label{fig:surface_amagaman_zoom}
 \end{figure}
@@ -245,14 +247,14 @@ edição.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{editor_amagam}
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_removed.jpg}
 \caption{Imagem com ruído removido}
 \label{fig:editor_amalgaman}
 \end{figure}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{edited_amalgam}
+\includegraphics[scale=0.3]{segmentation_manual_noise_amalgam_removed_3d_zoom.jpg}
 \caption{Superfície criada a partir da imagem com ruído removido}
 \label{fig:surface_edited_amalgaman}
 \end{figure}
@@ -261,13 +263,13 @@ edição.
 Realizada a edição, basta gerar a superfície a partir da imagem editada (figura
 \ref{fig:surface_edited_amalgaman}). Como houve edição, ao clicar em \textbf{Criar superfície}, será
 requerido se deseja gerar a superfície a partir do método \textbf{binário} ou utilizando o método de suavização
-\textbf{Context aware smoothing} (figura \ref{fig:new_surface_edited}) para minimizar os "degraus" na superfície.
+\textbf{Suavização sensível ao contexto} (figura \ref{fig:new_surface_edited}) para minimizar os "degraus" na superfície.
 Demais detalhes serão discutidos no capítulo \ref{cap_surface}.
 %\ref{fig:generate_surface}).
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{create_surface_edited.png}
+\includegraphics[scale=0.5]{surface_generation_dialog_pt.png}
 \caption{Método de criação de superfície}
 \label{fig:new_surface_edited}
 \end{figure}
@@ -279,14 +281,7 @@ A segmentação por watershed, necessita que o usuário indique através de marc
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{watershed_panel.png}
-\caption{Painel de segmentação por Watershed}
-\label{fig:watershed_painel}
-\end{figure}
-
-\begin{figure}[!htb]
-\centering
-\includegraphics[scale=0.6]{watershed_panel.png}
+\includegraphics[scale=0.75]{segmentation_watershed_panel_pt.png}
 \caption{Painel de segmentação por Watershed}
 \label{fig:watershed_painel}
 \end{figure}
@@ -296,11 +291,12 @@ Antes de iniciar a segmentação por Watershed, é recomendável limpar toda a m
 Para inserir marcadores de fundo e objeto, é utilizada uma ferramenta em forma de pincel, a exemplo da segmentação manual, existe a opção de selecionar pincel retangular ou circular, também é possível alterar o tamanho deles. 
 
 É necessário também selecionar o tipo de operação que será realizada pelo pincel. As opções são as
-seguintes:\\
-\\
-\textbf{Objeto}, para inserir marcadores de objeto;\\
-\textbf{Fundo}, para inserir marcadores de fundo (não é objeto);\\
-\textbf{Apagar}, para apagar marcadores de objeto ou fundo.\\
+seguintes:
+\begin{itemize}
+\item \textbf{Objeto}, para inserir marcadores de objeto;
+\item \textbf{Fundo}, para inserir marcadores de fundo (não é objeto);
+\item \textbf{Apagar}, para apagar marcadores de objeto ou fundo.
+\end{itemize}
 
 A opção "\textbf{Sobrescrever máscara}" é utilizada quando deseja-se que a máscara selecionada seja substituída pelo resultado da segmentação. Já a opção "\textbf{Considerar brilho e contraste}" é utilizada para o algoritmo levar em consideração a imagem que está sendo visualizada, assim é possível alterar o brilho e contraste e obter resultados melhores de segmentação.
 
@@ -317,7 +313,7 @@ A conectividade dos pixels que serão levados em consideração, pode ser altera
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{watershed_opcao.png}
+\includegraphics[scale=0.55]{segmentation_watershed_conf_pt.png}
 \caption{Opções de configuração do método de Watershed}
 \label{fig:watershed_janela_conf}
 \end{figure}
@@ -328,72 +324,65 @@ Ainda na figura~\ref{fig:watershed_2d}, podemos visualizar os marcadores de obje
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.2]{watershed_2d.png}
+\includegraphics[scale=0.2]{segmentation_watershed_axial.png}
 \caption{Watershed aplicado em uma fatia de um volume.}
 \label{fig:watershed_2d}
 \end{figure}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.2]{watershed_3d.png}
+\includegraphics[scale=0.4]{segmentation_watershed_multiplanar_3d_pt.png}
 \caption{Segmentação do cérebro com o método de Watershed aplicado em todo um volume (expandido em 3D).}
 \label{fig:watershed_3d}
 \end{figure}
 
-\section{Operações booleanas}
+\section{Crescimento de região}
 
-Após efetuar segmentações, é possível realizar operações booleanas entre as máscaras. As operações booleanas suportadas são:\\
-\\
-\textbf{União}, realiza a união de duas máscaras;\\
-\textbf{Diferença}, realiza a diferença entre a primeira máscara com a segunda;\\
-\textbf{Intersecção}, para apagar marcadores de objeto ou fundo.\\
-\textbf{Disjunção exclusiva}, também é conhecida como XOR, mantém as regiões de ambas as máscara que possuem diferença.\\
-
-Para ativar essa ferramenta é necessário ir no menu \textbf{Ferramentas}, \textbf{Operações boolenas}, como é exibido na figura~\ref{fig:booleano_menu} 
+A técnica de segmentação por crescimento de região é ativada no menu \textbf{Ferramentas}, \textbf{Segmentação}, por último \textbf{Crescimento de região} (figura~\ref{fig:menu_segmentation_region_growing}). Inicialmente deve-se selecionar a configuração entre \textbf{2D - Fatia atual} ou \textbf{3D - Todas as fatias}, também é necessário selecionar a conectividade do crescimento entre $4$ ou $8$ para o 2D e $6$, $18$ ou $26$ para 3D. Por último é necessário selecionar o método, entre \t [...]
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{booleano_menu.png}
-\caption{Menu para ativar a ferramenta de operações booleanas.}
-\label{fig:booleano_menu}
+\includegraphics[scale=0.5]{menu_segmentation_region_growing_pt.png}
+\caption{Menu para ativar a segmentação por região de crescimento.}
+\label{fig:menu_segmentation_region_growing}
 \end{figure}
 
-É necessário selecionar a primeira máscara, a operação a ser realizada e a segunda máscara conforme mostra a figura~\ref{fig:booleano_janela}. Em seguida é necessário clicar no botão \textbf{Ok}.
-
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{boolano_janela.png}
-\caption{Ferramenta de operações booleanas.}
-\label{fig:booleano_janela}
+\includegraphics[scale=0.7]{segmentation_region_growing_dinamic_pt.png}
+\caption{Tela para ajuste de parâmetros de segmentação por crescimento de região.}
+\label{fig:segmentation_region_growing_dinamic}
 \end{figure}
 
-Na figura~\ref{fig:op_boolana}, apresentamos um exemplo de utilização da ferramenta.
-
-\begin{figure}[!htb]
-  \centering
-  \subfloat[Máscara A]{\includegraphics[width=0.332\textwidth]{booleano_m_a}}                
-  \hfill
-  \subfloat[Máscara B]{\includegraphics[width=0.332\textwidth]{booleano_m_b}}	
-  \hfill  
-  \subfloat[União (A $\cup$ B)]{\includegraphics[width=0.332\textwidth]{booleano_uniao}}
-  \hfill  
-  \subfloat[Diferença (A - B)]{\includegraphics[width=0.332\textwidth]{booleano_dif}}
-  \hfill  
-  \subfloat[Intersecção (A $\cap$ B)]{\includegraphics[width=0.332\textwidth]{booleano_interc}}
-  \hfill  
-  \subfloat[Disjunção exclusiva (A $\oplus$ B)]{\includegraphics[width=0.332\textwidth]{booleano_disj_exc}}
-  \caption{Exemplo de operações booleanas.}
-  \label{fig:op_boolana}
-\end{figure}
-
-\section{Limpeza total da máscara}
-\label{cap:limpeza_mascara}
-
-Pode-se efetuar a limpeza total da máscara (figura~\ref{fig:limpeza_mascara}), isso é recomendado antes de iniciar a inserção de marcadores de Watershed. A ferramenta está localizada no menu, \textbf{Ferramentas}, \textbf{Máscara}, \textbf{Limpar máscara}, também é possível executa-la pressionando as teclas \textbf{CTRL+SHIFT+A}.
-
-\begin{figure}[!htb]
-\centering
-\includegraphics[scale=0.6]{watershed_limpeza.png}
-\caption{Limpeza de máscara}
-\label{fig:limpeza_mascara}
-\end{figure}
\ No newline at end of file
+A técnica parte de um pixel inicial que é indicado clicando com o \textbf{botão esquerdo} do mouse, os pixels vizinhos que satisfazem as condições indicadas anteriormente são selecionados. Cada método leva em consideração diferentes condições, a seguir são apresentadas as diferenças entre cada método:
+
+\begin{itemize}
+	\item \textbf{Dinâmico}: Esse método captura o valor do pixel que foi clicado, levando em consideração o desvio para baixo (min) e desvio para cima (max). A opção \textbf{Considerar o brilho e contraste} é ativada por padrão, essa opção permite levar em consideração os valores de níveis de cinza que são exibidos e/ou ajustados na opção brilho e contraste. Ao desativar essa opção será levado em consideração os valores de cinza gravados na imagem (figura~\ref{fig:segmentation_region_growi [...]
+	
+	\begin{figure}[!htb]
+	\centering
+	\includegraphics[scale=0.7]{segmentation_region_growing_dinamic_parameter_pt.png}
+	\caption{Ajuste de parâmetros para o método dinâmico.}
+	\label{fig:segmentation_region_growing_dinamic_parameter}
+	\end{figure}
+	
+	\item \textbf{Limiar}: O método limiar selecionará os pixels cuja a vizinhança estejam dentro do valor mínimo e máximo (figura~\ref{fig:segmentation_region_growing_limiar}).
+
+	\begin{figure}[!htb]
+	\centering
+	\includegraphics[scale=0.7]{segmentation_region_growing_limiar_pt.png}
+	\caption{Ajuste de faixa de valores do método limiar.}
+	\label{fig:segmentation_region_growing_limiar}
+	\end{figure}	
+	
+\item \textbf{Confidência}: Esse método inicia calculando o desvio padrão e a média do pixel selecionado pelo usuário e sua vizinhança. Pixels conectados com valores dentro da faixa (que é dado pela média mais e menos o desvio padrão multiplicado pelo \textbf{multiplicador}). É calculada a média e desvio padrão dos pixeis selecionado. Que é seguido por outra etapa de expansão. Esse processo é repetido de acordo com o parâmetro \textbf{Iteração}. A figura~\ref{fig:segmentation_region_grow [...]
+	
+	\begin{figure}[!htb]
+	\centering
+	\includegraphics[scale=0.7]{segmentation_region_growing_confidence_parameter_pt.png}
+	\caption{Ajuste de faixa de valores do método limiar.}
+	\label{fig:segmentation_region_growing_confidence_parameter}
+	\end{figure}	
+	
+	
+\end{itemize}
diff --git a/docs/user_guide_pt_BR_source/cap_stereoscop.tex b/docs/user_guide_pt_BR_source/cap_stereoscop.tex
new file mode 100644
index 0000000..29e2197
--- /dev/null
+++ b/docs/user_guide_pt_BR_source/cap_stereoscop.tex
@@ -0,0 +1,42 @@
+\chapter{Visualização Estereoscópica}
+
+O InVesalius suporta visualização estereoscópica de modelos 3D, para isso é necessário criar uma superfície (ver capítulo~\ref{cap_surface}) ou uma visualização volumétrica ativa (ver capítulo~\ref{cap:vis_vol}), em seguida ir clicar no ícone que a figura~\ref{fig:ster} mostra, no lado direito parte inferior do InVesalius e escolher o tipo de projeção desejada (figura~\ref{fig:st_menu}). 
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.6]{3D_glasses.png}
+\caption{Atalho para ativar os métodos de visualização estereoscópica.}
+\label{fig:ster}
+\end{figure}
+
+\begin{figure}[!htb]
+\centering
+\includegraphics[scale=0.4]{st_menu.png}
+\caption{Diferentes métodos de visualização estereoscópica.}
+\label{fig:st_menu}
+\end{figure}
+
+O InVesalius suporta os seguintes tipos de visualização estereoscópica:
+
+\begin{itemize}
+	\item Vermelho e azul
+	\item Anaglifo
+	\item \textit{CristalEyes}
+	\item Entrelaçado
+	\item Esquerda
+	\item Direita
+	\item Dresden
+	\item Checkboard
+\end{itemize}
+
+A figura~\ref{fig:st_surf_methods} apresenta três diferentes tipos de projeções.
+
+\begin{figure}[!htb]
+  \centering
+  \subfloat[Entrelaçado]{\includegraphics[width=0.3\textwidth]{st_surf_interlaced.jpg}} \qquad
+  \subfloat[Anaglifo]{\includegraphics[width=0.3\textwidth]{st_surf_anaglyph.jpg}} \qquad
+  \subfloat[Vermelho e azul]{\includegraphics[width=0.3\textwidth]{st_surf_red_blue.jpg}}  
+  \hfill
+  \caption{Exemplo de diferentes métodos de estereoscópica aplicado em uma superfície.}
+  \label{fig:st_surf_methods}
+\end{figure}
\ No newline at end of file
diff --git a/docs/user_guide_pt_BR_source/cap_superf.tex b/docs/user_guide_pt_BR_source/cap_superf.tex
index a36a53d..36bfe93 100644
--- a/docs/user_guide_pt_BR_source/cap_superf.tex
+++ b/docs/user_guide_pt_BR_source/cap_superf.tex
@@ -13,7 +13,7 @@ no painel esquerdo do software, dentro do item \textbf{3. Configure a superfíci
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{ScreenHunter_23_Jan_23_23_10}
+\includegraphics[scale=0.65]{surface_config_panel_pt.png}
 \caption{Configuração de uma superfície 3D}
 \label{fig:3d_surface_managment}
 \end{figure}
@@ -39,7 +39,7 @@ seleção da maior região da superfície.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{new_surface.png}
+\includegraphics[scale=0.5]{surface_config_window_pt.png}
 \caption{Janela para criação de superfície}
 \label{fig:create_surface_1}
 \end{figure}
@@ -55,8 +55,8 @@ selecionadas: "Preencher buracos" e "Manter maior região".
 
 \begin{figure}
   \centering
-  \subfloat[Frente]{\label{fig:__1}\includegraphics[width=0.338\textwidth]{ScreenHunter_48_Jan_23_23_34}}                
-  \subfloat[Baixo]{\label{fig:__1}\includegraphics[width=0.3\textwidth]{ScreenHunter_50Jan232334}}
+  \subfloat[Frente]{\label{fig:__1}\includegraphics[width=0.338\textwidth]{surface_model_front.jpg}}                
+  \subfloat[Baixo]{\label{fig:__1}\includegraphics[width=0.3\textwidth]{surface_model_bottom.jpg}}
   \caption{Superfície com região maior selecionada e com buracos preenchidos}
   \label{fig:surface_ex1}
 \end{figure}
@@ -68,8 +68,8 @@ suporte do tomógrafo e a superfície aberta.
 
 \begin{figure}
   \centering
-  \subfloat[Frente]{\label{fig:__2}\includegraphics[width=0.371\textwidth]{ScreenHunter_52Jan232335}}                
-  \subfloat[Baixo]{\label{fig:__2}\includegraphics[width=0.3\textwidth]{ScreenHunter_53Jan232336}}
+  \subfloat[Frente]{\label{fig:__2}\includegraphics[width=0.371\textwidth]{surface_model_front_all_parts.jpg}}                
+  \subfloat[Baixo]{\label{fig:__2}\includegraphics[width=0.3\textwidth]{surface_model_bottom_all_parts.jpg}}
   \caption{Superfície sem a seleção da maior região e com buracos abertos}
   \label{fig:surface_ex2}
 \end{figure}
@@ -80,9 +80,9 @@ O método \textbf{binário}, tem como partida a máscara que foi segmentada, sen
 
 No método \textbf{Context aware smoothing}, inicialmente a superfície é gerada a partir do método binário, mas em seguida é executado o algoritmo "Context aware smoothing" para suavizar a superfície resultante e evitar os "degraus" na mesma. Neste passo é requerido 4 valores, que serão apresentados a seguir.
 
-O \textbf{ângulo}, nesse caso será formado entre 2 normais de triângulos adjacentes, que \textbf{caso esteja acima do valor} definido no campo ângulo, o triângulo é elegido para ser o ponto de partida da suavização, a faixa de valor é de 0 até 1, sendo $0^\circ$ e $90^\circ$ respectivamente. A \textbf{distância máxima} é o raio a partir dos triângulos elegidos no passo anterior, que será utilizada como limite de suavização. O \textbf{peso mínimo} é o quanto de suavização será aplicado na [...]
+O \textbf{ângulo}, nesse caso será formado entre 2 normais de triângulos adjacentes, que \textbf{caso esteja acima do valor} definido no campo ângulo, o triângulo é elegido para ser o ponto de partida da suavização, a faixa de valor é de 0 até 1, sendo $0^\circ$ e $90^\circ$ respectivamente. A \textbf{distância máxima} é o raio a partir dos triângulos elegidos no passo anterior, que será utilizada como limite de suavização. O \textbf{peso mínimo} é o quanto de suavização será aplicado na [...]
 
-O método \textbf{padrão} é ativo \textbf{somente quando não existir edição manual na máscara}, os pixeis da imagem original que estão sob a máscara é utilizado para a geração de superfície, como normalmente imagens de tomografia ou ressonância possui vários níveis de cinza, é gerada uma superfície com curvas mais suaves.
+O método \textbf{padrão} é ativo \textbf{somente quando usado a segmentação por limiar e não existir edição manual na máscara}, os pixeis da imagem original que estão sob a máscara é utilizado para a geração de superfície, como normalmente imagens de tomografia ou ressonância possui vários níveis de cinza, é gerada uma superfície com curvas mais suaves.
 
 \begin{figure}[!htb]
   \centering
@@ -105,7 +105,7 @@ superfície por meio da lista de seleção, dentro do item \textbf{3. Configure
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{select_surface}
+\includegraphics[scale=0.8]{surface_select_menu.png}
 \caption{Seleção de superfície}
 \label{fig:select_surface}
 \end{figure}
@@ -116,7 +116,7 @@ o controle, maior será a transparência aplicada.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{transparency}
+\includegraphics[scale=0.7]{surface_transparency_pt.png}
 \caption{Seleção de nível de transparência}
 \label{fig:select_transparency}
 \end{figure}
@@ -143,7 +143,7 @@ superfície 3D}, opção \textbf{Propriedades da superfície}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{button_select_color}
+\includegraphics[scale=0.6]{surface_button_select_color_yellow.png}
 \caption{Botão para alteração de cor}
 \label{fig:change_surface_color}
 \end{figure}
@@ -153,7 +153,7 @@ desejada e clique no botão \textbf{OK}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{ScreenHunter_33Dec311142}
+\includegraphics[scale=0.6]{surface_select_color_windows_so_pt.png}
 \caption{Opções de cor}
 \label{fig:button_select_color}
 \end{figure}
@@ -166,8 +166,8 @@ figura \ref{fig:advanced_tools}.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{ferramentas_avancadas}
-\caption{Atalho para ferramentas avançadas}
+\includegraphics[scale=0.7]{surface_painel_advanced_options_pt.png}
+\caption{Atalho para opções avançadas}
 \label{fig:advanced_tools}
 \end{figure}
 
@@ -178,8 +178,8 @@ Um menu com as opções disponíveis será exibido, como ilustra a figura
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.5]{exract_region}
-\caption{Ferramentas avançadas}
+\includegraphics[scale=0.7]{surface_split_pt.png}
+\caption{Opções avançadas}
 \label{fig:advanced_tools_expanded}
 \end{figure}
 
@@ -202,7 +202,7 @@ da maior região.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{extract_most_region_1}
+\includegraphics[scale=0.3]{surface_extract_most_region_1.jpg}
 \caption{Superfícies desconexas}
 \label{fig:extract_most_region_1}
 \end{figure}
@@ -212,7 +212,7 @@ desconexa separada.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{extract_most_region2}
+\includegraphics[scale=0.3]{surface_extract_most_region2.jpg}
 \caption{Maior região separada}
 \label{fig:extract_most_region2}
 \end{figure}
@@ -224,7 +224,8 @@ desconexa separada.
 Outra modalidade de seleção se dá pela opção \textbf{Selecionar as regiões de interesse...}.
 Para ativá-la, o usuário deve clicar sobre o botão ilustrado na figura
 \ref{fig:short_connectivity_manual}. Em seguida, basta clicar sobre as regiões desconexas
-da superfície que se pretende selecionar.
+da superfície que se pretende selecionar. Depois, clique novamente em \textbf{Selecionar as regiões de interesse...}
+para gerar uma nova superfície com as regiões selecionadas.
 
 \begin{figure}[!htb]
 \centering
@@ -238,7 +239,7 @@ direita do suporte do tomógrafo.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.35]{extract_most_region3}
+\includegraphics[scale=0.35]{surface_extract_most_region3.jpg}
 \caption{Exemplo de regiões de interesse selecionadas}
 \label{fig:extract_most_region3}
 \end{figure}
@@ -261,7 +262,7 @@ A figura \ref{fig:extrac_most_region_4} mostra um exemplo.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.3]{extrac_most_region_4}
+\includegraphics[scale=0.3]{surface_extract_most_region_4.jpg}
 \caption{Exemplo de separação de todas as regiões desconexas}
 \label{fig:extrac_most_region_4}
 \end{figure}
diff --git a/docs/user_guide_pt_BR_source/cap_visual_vol.tex b/docs/user_guide_pt_BR_source/cap_visual_vol.tex
index 1999276..1ded486 100644
--- a/docs/user_guide_pt_BR_source/cap_visual_vol.tex
+++ b/docs/user_guide_pt_BR_source/cap_visual_vol.tex
@@ -1,4 +1,5 @@
 \chapter{Visualização volumétrica}
+\label{cap:vis_vol}
 
 Para a visualização volumétrica dos modelos, o InVesalius dispõe de uma técnica
 conhecida como \textit{Raycasting}. Trata-se de uma técnica que,
@@ -118,7 +119,7 @@ disponível com os demais na próxima vez em que o software for aberto.
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{save_window_preset}
+\includegraphics[scale=0.7]{save_window_preset_pt.png}
 \caption{Janela para nomear e salvar um padrão}
 \label{fig:save_window_preset}
 \end{figure}
@@ -176,7 +177,7 @@ um padrão de visualização selecionado, clique em \textbf{Ferramentas} e, em s
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.6]{activate_cut_plane}
+\includegraphics[scale=0.6]{activate_cut_plane_pt.png}
 \caption{Ativando plano para corte}
 \label{fig:activate_cut_plane}
 \end{figure}
diff --git a/docs/user_guide_pt_BR_source/capa.tex b/docs/user_guide_pt_BR_source/capa.tex
index b0d30ce..ca6fe7e 100644
--- a/docs/user_guide_pt_BR_source/capa.tex
+++ b/docs/user_guide_pt_BR_source/capa.tex
@@ -6,11 +6,11 @@
 \par
 \vspace{180pt}
 \scalebox{2.8}{\sffamily Guia do Usuário}
-\ThisLLCornerWallPaper{1}{img/capa2.png}
+\ThisLLCornerWallPaper{1}{capa2.png}
 
 \begin{figure}[h!]
 \flushright 
-\includegraphics[scale=0.5, bb = 0 0 300 601]{img/logo_cti.jpg}
+\includegraphics[scale=0.5, bb = 0 0 300 601]{logo_cti.jpg}
 \end{figure}		
 
 \end{flushright}
\ No newline at end of file
diff --git a/docs/user_guide_pt_BR_source/img/bobina.bb b/docs/user_guide_pt_BR_source/img/bobina.bb
deleted file mode 100644
index 7dca76c..0000000
--- a/docs/user_guide_pt_BR_source/img/bobina.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./bobina.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 112 117
-%%CreationDate: Mon Jan  3 22:16:42 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/capa.bb b/docs/user_guide_pt_BR_source/img/capa.bb
deleted file mode 100644
index 0904af3..0000000
--- a/docs/user_guide_pt_BR_source/img/capa.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./capa.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 351 1200
-%%CreationDate: Thu Dec  9 19:23:25 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/capa2.bb b/docs/user_guide_pt_BR_source/img/capa2.bb
deleted file mode 100644
index bf5ca95..0000000
--- a/docs/user_guide_pt_BR_source/img/capa2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./capa2.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 307 1175
-%%CreationDate: Thu Dec  9 20:43:24 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/feixe_conico.bb b/docs/user_guide_pt_BR_source/img/feixe_conico.bb
deleted file mode 100644
index c32a5ce..0000000
--- a/docs/user_guide_pt_BR_source/img/feixe_conico.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./feixe_conico.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 169 278
-%%CreationDate: Mon Jan  3 22:16:42 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/Floppy.bb b/docs/user_guide_pt_BR_source/img/icons/Floppy.bb
deleted file mode 100644
index fb7eea8..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/Floppy.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./Floppy.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 17 17
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/annotation.bb b/docs/user_guide_pt_BR_source/img/icons/annotation.bb
deleted file mode 100644
index 7cfe618..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/annotation.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./annotation.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 184 184
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/connectivity_largest.bb b/docs/user_guide_pt_BR_source/img/icons/connectivity_largest.bb
deleted file mode 100644
index 66fde22..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/connectivity_largest.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./connectivity_largest.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 104 104
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/connectivity_manual.bb b/docs/user_guide_pt_BR_source/img/icons/connectivity_manual.bb
deleted file mode 100644
index 885628c..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/connectivity_manual.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./connectivity_manual.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 104 104
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/connectivity_split_all.bb b/docs/user_guide_pt_BR_source/img/icons/connectivity_split_all.bb
deleted file mode 100644
index eeba5d4..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/connectivity_split_all.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./connectivity_split_all.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 104 104
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/cross.bb b/docs/user_guide_pt_BR_source/img/icons/cross.bb
deleted file mode 100644
index 2f2ef6f..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/cross.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./cross.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/cross_original.bb b/docs/user_guide_pt_BR_source/img/icons/cross_original.bb
deleted file mode 100644
index 8e42f2d..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/cross_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./cross_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/data_duplicate.bb b/docs/user_guide_pt_BR_source/img/icons/data_duplicate.bb
deleted file mode 100644
index 854ecbf..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/data_duplicate.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./data_duplicate.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 13 13
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/data_duplicate.png b/docs/user_guide_pt_BR_source/img/icons/data_duplicate.png
deleted file mode 100644
index 2bce611..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/data_duplicate.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/data_new.bb b/docs/user_guide_pt_BR_source/img/icons/data_new.bb
deleted file mode 100644
index b721ff2..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/data_new.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./data_new.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 13 13
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/data_new.png b/docs/user_guide_pt_BR_source/img/icons/data_new.png
deleted file mode 100644
index 9f748f8..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/data_new.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/data_remove.bb b/docs/user_guide_pt_BR_source/img/icons/data_remove.bb
deleted file mode 100644
index f407090..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/data_remove.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./data_remove.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 13 13
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/data_remove.png b/docs/user_guide_pt_BR_source/img/icons/data_remove.png
deleted file mode 100644
index 43e40c9..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/data_remove.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_export.bb b/docs/user_guide_pt_BR_source/img/icons/file_export.bb
deleted file mode 100644
index 5f62116..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_export.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_export.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_from_internet.bb b/docs/user_guide_pt_BR_source/img/icons/file_from_internet.bb
deleted file mode 100644
index a3515a9..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_from_internet.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_from_internet.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_from_internet_original.bb b/docs/user_guide_pt_BR_source/img/icons/file_from_internet_original.bb
deleted file mode 100644
index 1dbdf91..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_from_internet_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_from_internet_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_import.bb b/docs/user_guide_pt_BR_source/img/icons/file_import.bb
deleted file mode 100644
index 7ce04df..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_import.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_import.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_import_original.bb b/docs/user_guide_pt_BR_source/img/icons/file_import_original.bb
deleted file mode 100644
index b371728..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_import_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_import_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_open.bb b/docs/user_guide_pt_BR_source/img/icons/file_open.bb
deleted file mode 100644
index 99308b0..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_open.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_open.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_open_original.bb b/docs/user_guide_pt_BR_source/img/icons/file_open_original.bb
deleted file mode 100644
index b62b86e..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_open_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_open_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_save.bb b/docs/user_guide_pt_BR_source/img/icons/file_save.bb
deleted file mode 100644
index 6cd6060..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_save.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_save.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/file_save_original.bb b/docs/user_guide_pt_BR_source/img/icons/file_save_original.bb
deleted file mode 100644
index c1d5a3f..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/file_save_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./file_save_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/it_IT.bb b/docs/user_guide_pt_BR_source/img/icons/it_IT.bb
deleted file mode 100644
index e378f59..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/it_IT.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./it_IT.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 14 9
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_data_only.bb b/docs/user_guide_pt_BR_source/img/icons/layout_data_only.bb
deleted file mode 100644
index cca2ecd..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/layout_data_only.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./layout_data_only.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 29 24
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_data_only_original.bb b/docs/user_guide_pt_BR_source/img/icons/layout_data_only_original.bb
deleted file mode 100644
index a355def..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/layout_data_only_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./layout_data_only_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 29 29
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_full.bb b/docs/user_guide_pt_BR_source/img/icons/layout_full.bb
deleted file mode 100644
index 4487451..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/layout_full.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./layout_full.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 29 24
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/layout_full_original.bb b/docs/user_guide_pt_BR_source/img/icons/layout_full_original.bb
deleted file mode 100644
index 334bce4..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/layout_full_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./layout_full_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 29 29
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/mask.bb b/docs/user_guide_pt_BR_source/img/icons/mask.bb
deleted file mode 100644
index 497e51d..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/mask.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./mask.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 52 52
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/mask_small.bb b/docs/user_guide_pt_BR_source/img/icons/mask_small.bb
deleted file mode 100644
index 272aaa0..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/mask_small.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./mask_small.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_angle.bb b/docs/user_guide_pt_BR_source/img/icons/measure_angle.bb
deleted file mode 100644
index 1c5d7d6..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/measure_angle.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./measure_angle.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_angle_original.bb b/docs/user_guide_pt_BR_source/img/icons/measure_angle_original.bb
deleted file mode 100644
index 3d3dfe7..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/measure_angle_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./measure_angle_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_line.bb b/docs/user_guide_pt_BR_source/img/icons/measure_line.bb
deleted file mode 100644
index 0cb33ad..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/measure_line.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./measure_line.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/measure_line_original.bb b/docs/user_guide_pt_BR_source/img/icons/measure_line_original.bb
deleted file mode 100644
index 5f68205..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/measure_line_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./measure_line_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_add.bb b/docs/user_guide_pt_BR_source/img/icons/object_add.bb
deleted file mode 100644
index a779171..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/object_add.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./object_add.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_add_original.bb b/docs/user_guide_pt_BR_source/img/icons/object_add_original.bb
deleted file mode 100644
index caeb7fa..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/object_add_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./object_add_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_remove.bb b/docs/user_guide_pt_BR_source/img/icons/object_remove.bb
deleted file mode 100644
index e66f7ff..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/object_remove.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./object_remove.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 23 23
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/object_remove_original.bb b/docs/user_guide_pt_BR_source/img/icons/object_remove_original.bb
deleted file mode 100644
index c6cdd03..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/object_remove_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./object_remove_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/print.bb b/docs/user_guide_pt_BR_source/img/icons/print.bb
deleted file mode 100644
index 2b6520a..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/print.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./print.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/print_original.bb b/docs/user_guide_pt_BR_source/img/icons/print_original.bb
deleted file mode 100644
index 8655575..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/print_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./print_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/show_task.bb b/docs/user_guide_pt_BR_source/img/icons/show_task.bb
deleted file mode 100644
index c502cea..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/show_task.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./show_task.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 63 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/show_task_min.bb b/docs/user_guide_pt_BR_source/img/icons/show_task_min.bb
deleted file mode 100644
index 17fa711..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/show_task_min.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./show_task_min.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 18 19
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice.bb b/docs/user_guide_pt_BR_source/img/icons/slice.bb
deleted file mode 100644
index f4d2321..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/slice.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./slice.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 22 22
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice_original.bb b/docs/user_guide_pt_BR_source/img/icons/slice_original.bb
deleted file mode 100644
index 987dea1..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/slice_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./slice_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice_plane.bb b/docs/user_guide_pt_BR_source/img/icons/slice_plane.bb
deleted file mode 100644
index 1cb3e7f..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/slice_plane.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./slice_plane.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 17 15
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/slice_plane_original.bb b/docs/user_guide_pt_BR_source/img/icons/slice_plane_original.bb
deleted file mode 100644
index d4603d2..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/slice_plane_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./slice_plane_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 33 29
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_de.bb b/docs/user_guide_pt_BR_source/img/icons/splash_de.bb
deleted file mode 100644
index cb82fcc..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_de.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_de.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_de.png b/docs/user_guide_pt_BR_source/img/icons/splash_de.png
deleted file mode 100644
index 47d6e63..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_de.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_de_DE.bb b/docs/user_guide_pt_BR_source/img/icons/splash_de_DE.bb
deleted file mode 100644
index a5e4914..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_de_DE.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_de_DE.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_de_DE.png b/docs/user_guide_pt_BR_source/img/icons/splash_de_DE.png
deleted file mode 100644
index 47d6e63..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_de_DE.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_el_GR.bb b/docs/user_guide_pt_BR_source/img/icons/splash_el_GR.bb
deleted file mode 100644
index 3e6f0f4..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_el_GR.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_el_GR.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_el_GR.png b/docs/user_guide_pt_BR_source/img/icons/splash_el_GR.png
deleted file mode 100644
index 47d6e63..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_el_GR.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_en.bb b/docs/user_guide_pt_BR_source/img/icons/splash_en.bb
deleted file mode 100644
index 54b753b..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_en.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_en.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_en.png b/docs/user_guide_pt_BR_source/img/icons/splash_en.png
deleted file mode 100644
index 47d6e63..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_en.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_es.bb b/docs/user_guide_pt_BR_source/img/icons/splash_es.bb
deleted file mode 100644
index f9c34f1..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_es.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_es.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_es.png b/docs/user_guide_pt_BR_source/img/icons/splash_es.png
deleted file mode 100644
index 769f357..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_es.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_fr.bb b/docs/user_guide_pt_BR_source/img/icons/splash_fr.bb
deleted file mode 100644
index 1fea670..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_fr.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_fr.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_fr.png b/docs/user_guide_pt_BR_source/img/icons/splash_fr.png
deleted file mode 100644
index 50a32df..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_fr.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_it_IT.bb b/docs/user_guide_pt_BR_source/img/icons/splash_it_IT.bb
deleted file mode 100644
index cefb6eb..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_it_IT.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_it_IT.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_ko.bb b/docs/user_guide_pt_BR_source/img/icons/splash_ko.bb
deleted file mode 100644
index dfd435e..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_ko.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_ko.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_ko.png b/docs/user_guide_pt_BR_source/img/icons/splash_ko.png
deleted file mode 100644
index 47d6e63..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_ko.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_pt.bb b/docs/user_guide_pt_BR_source/img/icons/splash_pt.bb
deleted file mode 100644
index 16cde17..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_pt.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_pt.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_pt.png b/docs/user_guide_pt_BR_source/img/icons/splash_pt.png
deleted file mode 100644
index 50a32df..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_pt.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_zh_TW.bb b/docs/user_guide_pt_BR_source/img/icons/splash_zh_TW.bb
deleted file mode 100644
index 7e4f0d8..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/splash_zh_TW.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_zh_TW.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/splash_zh_TW.png b/docs/user_guide_pt_BR_source/img/icons/splash_zh_TW.png
deleted file mode 100644
index 47d6e63..0000000
Binary files a/docs/user_guide_pt_BR_source/img/icons/splash_zh_TW.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/icons/surface_export.bb b/docs/user_guide_pt_BR_source/img/icons/surface_export.bb
deleted file mode 100644
index 77668ce..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/surface_export.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./surface_export.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 23 23
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/surface_export_original.bb b/docs/user_guide_pt_BR_source/img/icons/surface_export_original.bb
deleted file mode 100644
index a07261e..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/surface_export_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./surface_export_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/text.bb b/docs/user_guide_pt_BR_source/img/icons/text.bb
deleted file mode 100644
index db7657b..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/text.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./text.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/text_inverted.bb b/docs/user_guide_pt_BR_source/img/icons/text_inverted.bb
deleted file mode 100644
index 42231b8..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/text_inverted.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./text_inverted.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/text_inverted_original.bb b/docs/user_guide_pt_BR_source/img/icons/text_inverted_original.bb
deleted file mode 100644
index 6e1d44d..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/text_inverted_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./text_inverted_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/text_original.bb b/docs/user_guide_pt_BR_source/img/icons/text_original.bb
deleted file mode 100644
index f3d7fa1..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/text_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./text_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_annotation.bb b/docs/user_guide_pt_BR_source/img/icons/tool_annotation.bb
deleted file mode 100644
index 36ee417..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_annotation.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_annotation.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_annotation_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_annotation_original.bb
deleted file mode 100644
index 7cfb466..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_annotation_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_annotation_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_contrast.bb b/docs/user_guide_pt_BR_source/img/icons/tool_contrast.bb
deleted file mode 100644
index 05a01e9..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_contrast.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_contrast.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_contrast_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_contrast_original.bb
deleted file mode 100644
index f6b9b6a..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_contrast_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_contrast_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 23 23
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_photo.bb b/docs/user_guide_pt_BR_source/img/icons/tool_photo.bb
deleted file mode 100644
index 97c5b9e..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_photo.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_photo.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 23 23
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_photo_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_photo_original.bb
deleted file mode 100644
index 19a3456..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_photo_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_photo_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_rotate.bb b/docs/user_guide_pt_BR_source/img/icons/tool_rotate.bb
deleted file mode 100644
index 188c8e6..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_rotate.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_rotate.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_rotate_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_rotate_original.bb
deleted file mode 100644
index 33c1a76..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_rotate_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_rotate_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_translate.bb b/docs/user_guide_pt_BR_source/img/icons/tool_translate.bb
deleted file mode 100644
index 19bcce1..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_translate.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_translate.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 20
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_translate_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_translate_original.bb
deleted file mode 100644
index b4c8070..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_translate_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_translate_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom.bb
deleted file mode 100644
index aac9da8..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in.bb
deleted file mode 100644
index 7ad3f1e..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom_in.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in_original.bb
deleted file mode 100644
index bcfdd4a..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_in_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom_in_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom_original.bb
deleted file mode 100644
index ff7564a..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out.bb
deleted file mode 100644
index 1b6236d..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom_out.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out_original.bb
deleted file mode 100644
index 5234163..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_out_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom_out_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select.bb
deleted file mode 100644
index f3876fc..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom_select.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select_original.bb b/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select_original.bb
deleted file mode 100644
index bcd846c..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/tool_zoom_select_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tool_zoom_select_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 92 92
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_back.bb b/docs/user_guide_pt_BR_source/img/icons/view_back.bb
deleted file mode 100644
index 4016d51..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/view_back.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./view_back.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_bottom.bb b/docs/user_guide_pt_BR_source/img/icons/view_bottom.bb
deleted file mode 100644
index f03836d..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/view_bottom.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./view_bottom.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_front.bb b/docs/user_guide_pt_BR_source/img/icons/view_front.bb
deleted file mode 100644
index c0e373e..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/view_front.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./view_front.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_isometric.bb b/docs/user_guide_pt_BR_source/img/icons/view_isometric.bb
deleted file mode 100644
index cdba692..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/view_isometric.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./view_isometric.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_left.bb b/docs/user_guide_pt_BR_source/img/icons/view_left.bb
deleted file mode 100644
index 40f746d..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/view_left.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./view_left.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_right.bb b/docs/user_guide_pt_BR_source/img/icons/view_right.bb
deleted file mode 100644
index 2e1a5b2..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/view_right.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./view_right.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/view_top.bb b/docs/user_guide_pt_BR_source/img/icons/view_top.bb
deleted file mode 100644
index 2e34834..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/view_top.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./view_top.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/volume_raycasting.bb b/docs/user_guide_pt_BR_source/img/icons/volume_raycasting.bb
deleted file mode 100644
index d6efaeb..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/volume_raycasting.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./volume_raycasting.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 16
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/icons/volume_raycasting_original.bb b/docs/user_guide_pt_BR_source/img/icons/volume_raycasting_original.bb
deleted file mode 100644
index a091192..0000000
--- a/docs/user_guide_pt_BR_source/img/icons/volume_raycasting_original.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./volume_raycasting_original.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 29 29
-%%CreationDate: Fri Dec 31 23:25:23 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_automatic_position.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_automatic_position.bb
deleted file mode 100644
index 3fcd47d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_automatic_position.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/3d_automatic_position.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 104 156
-%%CreationDate: Thu Feb  3 15:32:05 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_background.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_background.bb
deleted file mode 100644
index 2c08192..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_background.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/3d_background.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 271 232
-%%CreationDate: Thu Feb  3 16:22:13 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_background.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_background.png
deleted file mode 100644
index 146bf1f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_background.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_linear.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_linear.bb
deleted file mode 100644
index c4d1fe7..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_linear.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/3d_linear.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 392 367
-%%CreationDate: Fri Jan 28 12:41:53 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_model.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_model.bb
deleted file mode 100644
index 2d63a57..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_model.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./3d_model.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 205 168
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_planes.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_planes.bb
deleted file mode 100644
index 418b90c..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/3d_planes.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/paulo/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/3d_planes.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 436 310
-%%CreationDate: Thu Feb  3 08:58:58 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/MIP.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/MIP.bb
deleted file mode 100644
index f8bc90e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/MIP.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/MIP.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 355 328
-%%CreationDate: Wed Feb  2 08:59:35 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter01Jan201144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter01Jan201144.bb
deleted file mode 100644
index 1ba2edc..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter01Jan201144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter01Jan201144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 202 197
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter01Jan201144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter01Jan201144.jpg
deleted file mode 100644
index 0187d55..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter01Jan201144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01 Jan. 02 19.41.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01 Jan. 02 19.41.bb
deleted file mode 100644
index 1c3b58f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01 Jan. 02 19.41.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_01 Jan. 02 19.41.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 717 636
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Dec311131.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Dec311131.bb
deleted file mode 100644
index ed4fd19..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Dec311131.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_01Dec311131.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 235 263
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Dec311131.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Dec311131.jpg
deleted file mode 100644
index 31b2c70..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Dec311131.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Jan021941.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Jan021941.bb
deleted file mode 100644
index 61f894b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Jan021941.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_01Jan021941.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 713 633
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Jan021941.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Jan021941.jpg
deleted file mode 100644
index f7d9cc9..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_01Jan021941.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec310024.bb
deleted file mode 100644
index 3012f13..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_02Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec310024.jpg
deleted file mode 100644
index 5ea2694..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311131.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311131.bb
deleted file mode 100644
index b0aa052..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311131.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_02Dec311131.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 235 263
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311131.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311131.jpg
deleted file mode 100644
index 31b2c70..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311131.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311523.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311523.bb
deleted file mode 100644
index f88a073..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311523.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_02Dec311523.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 291 222
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311523.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311523.jpg
deleted file mode 100644
index 15ebbb5..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_02Dec311523.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec310024.bb
deleted file mode 100644
index 18b304d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_03Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec310024.jpg
deleted file mode 100644
index 18f9f05..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311131.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311131.bb
deleted file mode 100644
index f80eb9e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311131.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_03Dec311131.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 180 108
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311131.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311131.jpg
deleted file mode 100644
index c39eb97..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311131.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311523.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311523.bb
deleted file mode 100644
index dc9c72b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311523.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_03Dec311523.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 218 113
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311523.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311523.jpg
deleted file mode 100644
index 4933e1e..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_03Dec311523.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec310024.bb
deleted file mode 100644
index 4394788..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_04Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec310024.jpg
deleted file mode 100644
index a68e191..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec311139.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec311139.bb
deleted file mode 100644
index 0917ca6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec311139.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_04Dec311139.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 235 263
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec311139.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec311139.jpg
deleted file mode 100644
index 9b5dea4..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_04Dec311139.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec310024.bb
deleted file mode 100644
index 5ee4ed3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_05Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec310024.jpg
deleted file mode 100644
index 8d85350..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec311139.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec311139.bb
deleted file mode 100644
index aa912db..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec311139.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_05Dec311139.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 180 108
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec311139.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec311139.jpg
deleted file mode 100644
index ad22a9f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_05Dec311139.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec310024.bb
deleted file mode 100644
index 3117495..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_06Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec310024.jpg
deleted file mode 100644
index aa2b85a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec311139.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec311139.bb
deleted file mode 100644
index 20eecca..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec311139.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_06Dec311139.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec311139.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec311139.jpg
deleted file mode 100644
index 516d150..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Dec311139.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Jan062046.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Jan062046.bb
deleted file mode 100644
index 9da98ae..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_06Jan062046.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_06Jan062046.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 503 431
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07 Jan. 06 20.46.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07 Jan. 06 20.46.jpg
deleted file mode 100644
index f005a97..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07 Jan. 06 20.46.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec310024.bb
deleted file mode 100644
index 1ecca2d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_07Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec310024.jpg
deleted file mode 100644
index 9474836..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec311139.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec311139.bb
deleted file mode 100644
index 95b8fdf..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec311139.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_07Dec311139.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec311139.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec311139.jpg
deleted file mode 100644
index 819f4c0..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_07Dec311139.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec310024.bb
deleted file mode 100644
index 1f18c78..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_08Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec310024.jpg
deleted file mode 100644
index a52b48a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139.bb
deleted file mode 100644
index 256e14b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_08Dec311139.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139.jpg
deleted file mode 100644
index 34771ec..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139_.bb
deleted file mode 100644
index 5fecfa3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_08Dec311139_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 556 181
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139_.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139_.jpg
deleted file mode 100644
index dcfa0e2..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Dec311139_.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Jan062046.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Jan062046.bb
deleted file mode 100644
index 57a8ae7..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_08Jan062046.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_08Jan062046.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 503 429
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec310024.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec310024.bb
deleted file mode 100644
index b066342..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec310024.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_09Dec310024.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec310024.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec310024.jpg
deleted file mode 100644
index 11a3391..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec310024.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec311140.bb
deleted file mode 100644
index 8be8a85..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_09Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec311140.jpg
deleted file mode 100644
index 199cb96..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_09Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec310025.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec310025.bb
deleted file mode 100644
index 6046427..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec310025.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_10Dec310025.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec310025.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec310025.jpg
deleted file mode 100644
index 99608b0..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec310025.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec311140.bb
deleted file mode 100644
index 10dcc4d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_10Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec311140.jpg
deleted file mode 100644
index d878abe..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_10Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec310025.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec310025.bb
deleted file mode 100644
index 9bb9768..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec310025.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_11Dec310025.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec310025.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec310025.jpg
deleted file mode 100644
index afef568..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec310025.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec311140.bb
deleted file mode 100644
index a9f9fa1..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_11Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec311140.jpg
deleted file mode 100644
index eb1aea0..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_11Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12 Jan. 02 19.43.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12 Jan. 02 19.43.bb
deleted file mode 100644
index 121aae4..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12 Jan. 02 19.43.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_12 Jan. 02 19.43.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Dec311140.bb
deleted file mode 100644
index 9ce06b8..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_12Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Dec311140.jpg
deleted file mode 100644
index 680c49d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943.bb
deleted file mode 100644
index 26a8ce2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_12Jan021943.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943.jpg
deleted file mode 100644
index b7f7a10..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_0.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_0.bb
deleted file mode 100644
index eff65c2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_12Jan021943_0.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 253 222
-%%CreationDate: Fri Jan 21 15:11:26 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_1.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_1.bb
deleted file mode 100644
index e95ad46..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_12Jan021943_1.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_1.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_1.jpg
deleted file mode 100644
index b7f7a10..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_12Jan021943_1.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13 Jan. 02 19.43.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13 Jan. 02 19.43.bb
deleted file mode 100644
index 06ed413..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13 Jan. 02 19.43.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_13 Jan. 02 19.43.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140.bb
deleted file mode 100644
index 59724d5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_13Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140.jpg
deleted file mode 100644
index 2f50e5a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140_.bb
deleted file mode 100644
index c4102cf..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_13Dec311140_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 324 86
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140_.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140_.jpg
deleted file mode 100644
index 1e222c0..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Dec311140_.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Jan021943.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Jan021943.bb
deleted file mode 100644
index e5aea95..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Jan021943.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_13Jan021943.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Jan021943.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Jan021943.jpg
deleted file mode 100644
index 804cd26..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_13Jan021943.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14 Jan. 02 19.43.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14 Jan. 02 19.43.bb
deleted file mode 100644
index b423008..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14 Jan. 02 19.43.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_14 Jan. 02 19.43.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec310025.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec310025.bb
deleted file mode 100644
index 3749459..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec310025.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_14Dec310025.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 362 282
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec310025.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec310025.jpg
deleted file mode 100644
index b1f9b39..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec310025.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec311140.bb
deleted file mode 100644
index 9e22a14..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_14Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 180 108
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec311140.jpg
deleted file mode 100644
index 215de4e..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Jan021943.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Jan021943.bb
deleted file mode 100644
index 1623b9b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Jan021943.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_14Jan021943.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Jan021943.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Jan021943.jpg
deleted file mode 100644
index 72106ea..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_14Jan021943.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15 Jan. 02 19.43.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15 Jan. 02 19.43.bb
deleted file mode 100644
index 8b28137..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15 Jan. 02 19.43.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_15 Jan. 02 19.43.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec310025.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec310025.bb
deleted file mode 100644
index 49ed58d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec310025.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_15Dec310025.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 135 87
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec310025.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec310025.jpg
deleted file mode 100644
index d0f4184..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec310025.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec311140.bb
deleted file mode 100644
index 2b3b921..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_15Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec311140.jpg
deleted file mode 100644
index b0b341a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Jan021943.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Jan021943.bb
deleted file mode 100644
index 3b29507..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Jan021943.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_15Jan021943.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Jan021943.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Jan021943.jpg
deleted file mode 100644
index d085eb9..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_15Jan021943.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16 Jan. 02 19.43.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16 Jan. 02 19.43.bb
deleted file mode 100644
index c8fdbbb..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16 Jan. 02 19.43.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_16 Jan. 02 19.43.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec310025.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec310025.bb
deleted file mode 100644
index ff895da..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec310025.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_16Dec310025.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 135 87
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec310025.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec310025.jpg
deleted file mode 100644
index 1292876..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec310025.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec311140.bb
deleted file mode 100644
index 7a70636..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_16Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec311140.jpg
deleted file mode 100644
index d972d08..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Jan021943.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Jan021943.bb
deleted file mode 100644
index 1711374..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Jan021943.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_16Jan021943.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Jan021943.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Jan021943.jpg
deleted file mode 100644
index 01cb3d1..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_16Jan021943.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17 Jan. 02 19.43.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17 Jan. 02 19.43.bb
deleted file mode 100644
index 3138435..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17 Jan. 02 19.43.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_17 Jan. 02 19.43.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec310026.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec310026.bb
deleted file mode 100644
index 326b4c2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec310026.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_17Dec310026.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 419 252
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec310026.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec310026.jpg
deleted file mode 100644
index c1d14b4..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec310026.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec311140.bb
deleted file mode 100644
index dcc98d7..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_17Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec311140.jpg
deleted file mode 100644
index c28983d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Jan021943.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Jan021943.bb
deleted file mode 100644
index 739df9e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Jan021943.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_17Jan021943.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Jan021943.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Jan021943.jpg
deleted file mode 100644
index b27b9c0..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_17Jan021943.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18 Jan. 02 19.43.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18 Jan. 02 19.43.bb
deleted file mode 100644
index 45c0240..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18 Jan. 02 19.43.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_18 Jan. 02 19.43.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec310026.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec310026.bb
deleted file mode 100644
index 979d2e3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec310026.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_18Dec310026.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec310026.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec310026.jpg
deleted file mode 100644
index 433867e..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec310026.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140.bb
deleted file mode 100644
index 4d76a31..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_18Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140.jpg
deleted file mode 100644
index 2d04f35..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140_1.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140_1.bb
deleted file mode 100644
index 6810d23..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140_1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_18Dec311140_1.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 717 638
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140_1.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140_1.jpg
deleted file mode 100644
index d955ccf..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Dec311140_1.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Jan021943.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Jan021943.bb
deleted file mode 100644
index 943c82d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Jan021943.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_18Jan021943.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Jan021943.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Jan021943.jpg
deleted file mode 100644
index 172e62d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_18Jan021943.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19 Jan. 02 19.44.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19 Jan. 02 19.44.bb
deleted file mode 100644
index 33ec6f1..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19 Jan. 02 19.44.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_19 Jan. 02 19.44.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec310026.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec310026.bb
deleted file mode 100644
index faa1f5b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec310026.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_19Dec310026.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec310026.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec310026.jpg
deleted file mode 100644
index ae2b944..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec310026.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec311140.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec311140.bb
deleted file mode 100644
index 92704ca..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec311140.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_19Dec311140.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec311140.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec311140.jpg
deleted file mode 100644
index 8fafe62..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Dec311140.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Jan021944.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Jan021944.bb
deleted file mode 100644
index 15f8462..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Jan021944.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_19Jan021944.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Jan021944.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Jan021944.jpg
deleted file mode 100644
index 460b2ec..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_19Jan021944.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20 Jan. 02 19.44.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20 Jan. 02 19.44.bb
deleted file mode 100644
index 730592e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20 Jan. 02 19.44.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_20 Jan. 02 19.44.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec310027.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec310027.bb
deleted file mode 100644
index 86b41b0..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec310027.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_20Dec310027.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec310027.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec310027.jpg
deleted file mode 100644
index cf320c7..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec310027.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec311141.bb
deleted file mode 100644
index cb7caab..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_20Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec311141.jpg
deleted file mode 100644
index 58301ee..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Jan021944.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Jan021944.bb
deleted file mode 100644
index 003f55a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_20Jan021944.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_20Jan021944.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21 Jan. 02 19.44.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21 Jan. 02 19.44.bb
deleted file mode 100644
index 53f2670..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21 Jan. 02 19.44.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_21 Jan. 02 19.44.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec310027.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec310027.bb
deleted file mode 100644
index bdab3dd..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec310027.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_21Dec310027.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec310027.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec310027.jpg
deleted file mode 100644
index b235760..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec310027.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec311141.bb
deleted file mode 100644
index 077f2b6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_21Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec311141.jpg
deleted file mode 100644
index c285f38..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Jan021944.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Jan021944.bb
deleted file mode 100644
index cc0ef7c..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_21Jan021944.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_21Jan021944.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22 Jan. 02 19.44.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22 Jan. 02 19.44.bb
deleted file mode 100644
index 806e4b6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22 Jan. 02 19.44.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_22 Jan. 02 19.44.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec310029.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec310029.bb
deleted file mode 100644
index e606442..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec310029.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_22Dec310029.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec310029.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec310029.jpg
deleted file mode 100644
index 6a93868..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec310029.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec311141.bb
deleted file mode 100644
index d84a1d2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_22Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec311141.jpg
deleted file mode 100644
index 9bdb58b..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Jan021944.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Jan021944.bb
deleted file mode 100644
index e2dcac3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_22Jan021944.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_22Jan021944.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23 Jan. 02 19.44.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23 Jan. 02 19.44.bb
deleted file mode 100644
index 00f516d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23 Jan. 02 19.44.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_23 Jan. 02 19.44.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec310029.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec310029.bb
deleted file mode 100644
index 9ea2de3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec310029.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_23Dec310029.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec310029.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec310029.jpg
deleted file mode 100644
index a96f1ae..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec310029.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec311141.bb
deleted file mode 100644
index 1a82c04..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_23Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec311141.jpg
deleted file mode 100644
index 2c350db..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Jan021944.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Jan021944.bb
deleted file mode 100644
index 63945ad..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23Jan021944.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_23Jan021944.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23_Jan_23_23_10.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23_Jan_23_23_10.bb
deleted file mode 100644
index 5dfa049..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23_Jan_23_23_10.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_23_Jan_23_23_10.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 204 174
-%%CreationDate: Mon Jan 24 15:39:46 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23_Jan_23_23_10.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23_Jan_23_23_10.jpg
deleted file mode 100644
index ca7dc8f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_23_Jan_23_23_10.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24 Jan. 02 19.44.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24 Jan. 02 19.44.bb
deleted file mode 100644
index 74734c6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24 Jan. 02 19.44.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_24 Jan. 02 19.44.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029.bb
deleted file mode 100644
index 326bba2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_24Dec310029.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029_.bb
deleted file mode 100644
index 68fab51..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec310029_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_24Dec310029_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 697 618
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141.bb
deleted file mode 100644
index 5fe57fb..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_24Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141.jpg
deleted file mode 100644
index f011bcd..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141_.bb
deleted file mode 100644
index f72b1ff..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Dec311141_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_24Dec311141_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 696 615
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Jan021944.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Jan021944.bb
deleted file mode 100644
index d59a1e0..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_24Jan021944.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_24Jan021944.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25 Jan. 02 19.44.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25 Jan. 02 19.44.bb
deleted file mode 100644
index 331706c..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25 Jan. 02 19.44.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_25 Jan. 02 19.44.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:18 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029.bb
deleted file mode 100644
index 0e19702..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_25Dec310029.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029.jpg
deleted file mode 100644
index 916c7ee..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029_.bb
deleted file mode 100644
index 5668e6f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec310029_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_25Dec310029_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 697 613
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec311141.bb
deleted file mode 100644
index cf2d09d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_25Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec311141.jpg
deleted file mode 100644
index 5cc15b9..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Jan021944.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Jan021944.bb
deleted file mode 100644
index 9521887..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_25Jan021944.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_25Jan021944.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26 Jan. 02 19.46.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26 Jan. 02 19.46.bb
deleted file mode 100644
index 7e3e93d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26 Jan. 02 19.46.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_26 Jan. 02 19.46.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Sun Jan  2 19:52:19 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec310030.bb
deleted file mode 100644
index eaee8da..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_26Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec310030.jpg
deleted file mode 100644
index cd0c40e..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec311141.bb
deleted file mode 100644
index 33c0a0e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_26Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec311141.jpg
deleted file mode 100644
index 18b5509..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Jan021946.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Jan021946.bb
deleted file mode 100644
index 1f64bad..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Jan021946.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_26Jan021946.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Jan021946.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Jan021946.jpg
deleted file mode 100644
index 306a20d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_26Jan021946.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27De.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27De.bb
deleted file mode 100644
index e6c80a9..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27De.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_27De.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27De.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27De.jpg
deleted file mode 100644
index 099de1b..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27De.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec310030.bb
deleted file mode 100644
index 5961150..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_27Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec310030.jpg
deleted file mode 100644
index 384d63b..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141.bb
deleted file mode 100644
index 009234e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_27Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Mon Jan  3 14:56:57 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141__.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141__.bb
deleted file mode 100644
index 1cfb8d7..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141__.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_27Dec311141__.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 168 163
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141__.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141__.jpg
deleted file mode 100644
index 92e0d27..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_27Dec311141__.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec310030.bb
deleted file mode 100644
index 9a25995..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_28Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec310030.jpg
deleted file mode 100644
index 352873d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141.bb
deleted file mode 100644
index 72643c2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_28Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141.jpg
deleted file mode 100644
index 03b612a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141_.bb
deleted file mode 100644
index 32c120b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_28Dec311141_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 714 636
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141_.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141_.jpg
deleted file mode 100644
index ced1ded..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_28Dec311141_.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec310030.bb
deleted file mode 100644
index fcecdc8..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_29Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec310030.jpg
deleted file mode 100644
index 2597b42..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141.bb
deleted file mode 100644
index c0653bd..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_29Dec311141.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141.jpg
deleted file mode 100644
index dd0ace5..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141_.bb
deleted file mode 100644
index 2162eb6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_29Dec311141_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 202 158
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141_.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141_.jpg
deleted file mode 100644
index d7fbb02..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_29Dec311141_.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec310030.bb
deleted file mode 100644
index 7747293..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_30Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec310030.jpg
deleted file mode 100644
index f62a8a7..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec311142.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec311142.bb
deleted file mode 100644
index e268ba9..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec311142.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_30Dec311142.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec311142.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec311142.jpg
deleted file mode 100644
index 4a4ac1c..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_30Dec311142.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec310030.bb
deleted file mode 100644
index 4bc1ff3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_31Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec310030.jpg
deleted file mode 100644
index 95e7b04..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec311142.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec311142.bb
deleted file mode 100644
index 30fc38e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec311142.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_31Dec311142.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec311142.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec311142.jpg
deleted file mode 100644
index 86f8baa..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_31Dec311142.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec310030.bb
deleted file mode 100644
index a15482a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_32Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec310030.jpg
deleted file mode 100644
index 868ea5a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec311142.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec311142.bb
deleted file mode 100644
index 9c486e5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec311142.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_32Dec311142.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec311142.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec311142.jpg
deleted file mode 100644
index 0f669aa..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_32Dec311142.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec310030.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec310030.bb
deleted file mode 100644
index 6206d8f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec310030.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_33Dec310030.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec310030.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec310030.jpg
deleted file mode 100644
index 9fa7ce8..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec310030.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec311142.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec311142.bb
deleted file mode 100644
index 3758852..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec311142.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_33Dec311142.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 326 238
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec311142.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec311142.jpg
deleted file mode 100644
index 9260552..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_33Dec311142.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_34Dec311142.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_34Dec311142.bb
deleted file mode 100644
index 06c17cc..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_34Dec311142.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_34Dec311142.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_34Dec311142.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_34Dec311142.jpg
deleted file mode 100644
index c41d229..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_34Dec311142.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_35Dec311142.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_35Dec311142.bb
deleted file mode 100644
index 59a0b66..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_35Dec311142.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_35Dec311142.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_35Dec311142.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_35Dec311142.jpg
deleted file mode 100644
index a361aef..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_35Dec311142.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_36Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_36Dec311143.bb
deleted file mode 100644
index 421715c..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_36Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_36Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 405 302
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_36Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_36Dec311143.jpg
deleted file mode 100644
index 76a2228..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_36Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_37Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_37Dec311143.bb
deleted file mode 100644
index 347fbf5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_37Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_37Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 405 302
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_37Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_37Dec311143.jpg
deleted file mode 100644
index 507a135..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_37Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_38Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_38Dec311143.bb
deleted file mode 100644
index fe4ee23..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_38Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_38Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_38Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_38Dec311143.jpg
deleted file mode 100644
index 13cc2c3..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_38Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_39Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_39Dec311143.bb
deleted file mode 100644
index 3ff03e2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_39Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_39Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_39Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_39Dec311143.jpg
deleted file mode 100644
index b5541b1..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_39Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_40Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_40Dec311143.bb
deleted file mode 100644
index c3d6a88..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_40Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_40Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_40Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_40Dec311143.jpg
deleted file mode 100644
index 963716d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_40Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_41Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_41Dec311143.bb
deleted file mode 100644
index e1234e4..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_41Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_41Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_41Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_41Dec311143.jpg
deleted file mode 100644
index e52d91d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_41Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_42Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_42Dec311143.bb
deleted file mode 100644
index 16f37ae..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_42Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_42Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_42Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_42Dec311143.jpg
deleted file mode 100644
index 7e3f619..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_42Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_43Dec311143.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_43Dec311143.bb
deleted file mode 100644
index 304a5d3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_43Dec311143.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_43Dec311143.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_43Dec311143.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_43Dec311143.jpg
deleted file mode 100644
index 429fd01..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_43Dec311143.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_44Dec311144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_44Dec311144.bb
deleted file mode 100644
index 2e26af6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_44Dec311144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_44Dec311144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_44Dec311144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_44Dec311144.jpg
deleted file mode 100644
index d64ce2c..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_44Dec311144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_45Dec311144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_45Dec311144.bb
deleted file mode 100644
index ba80acd..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_45Dec311144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_45Dec311144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_45Dec311144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_45Dec311144.jpg
deleted file mode 100644
index e32656a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_45Dec311144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46 Jan_23_23_34.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46 Jan_23_23_34.bb
deleted file mode 100644
index beeb10a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46 Jan_23_23_34.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/ScreenHunter_46 Jan_23_23_34.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 196 138
-%%CreationDate: Tue Jan 25 08:35:02 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46Dec311144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46Dec311144.bb
deleted file mode 100644
index d876596..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46Dec311144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_46Dec311144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46Dec311144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46Dec311144.jpg
deleted file mode 100644
index 258a101..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_46Dec311144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_47Dec311144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_47Dec311144.bb
deleted file mode 100644
index 9848170..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_47Dec311144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_47Dec311144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_47Dec311144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_47Dec311144.jpg
deleted file mode 100644
index c901b47..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_47Dec311144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48 Jan_23_23_34.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48 Jan_23_23_34.bb
deleted file mode 100644
index 05f25a5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48 Jan_23_23_34.bb	
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/ScreenHunter_48 Jan_23_23_34.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 275 274
-%%CreationDate: Tue Jan 25 11:30:16 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48Dec311144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48Dec311144.bb
deleted file mode 100644
index 13fe3ba..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48Dec311144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_48Dec311144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48Dec311144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48Dec311144.jpg
deleted file mode 100644
index 2cdf1b4..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48Dec311144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48_Jan_23_23_34.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48_Jan_23_23_34.bb
deleted file mode 100644
index 992bad5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_48_Jan_23_23_34.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/ScreenHunter_48_Jan_23_23_34.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 275 274
-%%CreationDate: Wed Jan 26 14:52:24 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_49Dec311144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_49Dec311144.bb
deleted file mode 100644
index ecc5e78..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_49Dec311144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_49Dec311144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_49Dec311144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_49Dec311144.jpg
deleted file mode 100644
index aeed5c4..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_49Dec311144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Dec311144.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Dec311144.bb
deleted file mode 100644
index cc4607b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Dec311144.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_50Dec311144.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Dec311144.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Dec311144.jpg
deleted file mode 100644
index dc5ca90..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Dec311144.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Jan232334.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Jan232334.bb
deleted file mode 100644
index 3406b79..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_50Jan232334.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/ScreenHunter_50Jan232334.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 279 312
-%%CreationDate: Wed Jan 26 15:01:41 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_51Dec311148.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_51Dec311148.bb
deleted file mode 100644
index fdebb5c..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_51Dec311148.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_51Dec311148.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_51Dec311148.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_51Dec311148.jpg
deleted file mode 100644
index 32a75c5..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_51Dec311148.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Dec311149.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Dec311149.bb
deleted file mode 100644
index 142e771..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Dec311149.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_52Dec311149.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Dec311149.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Dec311149.jpg
deleted file mode 100644
index 32a75c5..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Dec311149.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Jan232335.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Jan232335.bb
deleted file mode 100644
index ba0eec5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_52Jan232335.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/ScreenHunter_52Jan232335.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 300 220
-%%CreationDate: Wed Jan 26 15:19:06 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Dec311149.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Dec311149.bb
deleted file mode 100644
index 81347ac..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Dec311149.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_53Dec311149.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Dec311149.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Dec311149.jpg
deleted file mode 100644
index 32a75c5..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Dec311149.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Jan232336.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Jan232336.bb
deleted file mode 100644
index 36ff471..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_53Jan232336.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/ScreenHunter_53Jan232336.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 242 220
-%%CreationDate: Wed Jan 26 15:19:10 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_54Dec311149.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_54Dec311149.bb
deleted file mode 100644
index 11b941f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_54Dec311149.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_54Dec311149.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_54Dec311149.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_54Dec311149.jpg
deleted file mode 100644
index 2aab504..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_54Dec311149.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_55Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_55Dec311150.bb
deleted file mode 100644
index 5c24564..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_55Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_55Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_55Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_55Dec311150.jpg
deleted file mode 100644
index 678dedf..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_55Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_56Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_56Dec311150.bb
deleted file mode 100644
index 1578813..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_56Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_56Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_56Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_56Dec311150.jpg
deleted file mode 100644
index b8c239a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_56Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_57Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_57Dec311150.bb
deleted file mode 100644
index 10467b3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_57Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_57Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_57Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_57Dec311150.jpg
deleted file mode 100644
index 678dedf..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_57Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_58Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_58Dec311150.bb
deleted file mode 100644
index a7027c5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_58Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_58Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_58Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_58Dec311150.jpg
deleted file mode 100644
index fee85fc..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_58Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_59Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_59Dec311150.bb
deleted file mode 100644
index edc7803..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_59Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_59Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_59Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_59Dec311150.jpg
deleted file mode 100644
index 19936bc..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_59Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_60Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_60Dec311150.bb
deleted file mode 100644
index de7f012..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_60Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_60Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_60Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_60Dec311150.jpg
deleted file mode 100644
index edd8d1f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_60Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_61Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_61Dec311150.bb
deleted file mode 100644
index bc7bce6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_61Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_61Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_61Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_61Dec311150.jpg
deleted file mode 100644
index cb63493..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_61Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_62Dec311150.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_62Dec311150.bb
deleted file mode 100644
index 3e6e793..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_62Dec311150.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_62Dec311150.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_62Dec311150.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_62Dec311150.jpg
deleted file mode 100644
index d6ba2cf..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_62Dec311150.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_63Dec311151.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_63Dec311151.bb
deleted file mode 100644
index a983b64..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_63Dec311151.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_63Dec311151.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_63Dec311151.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_63Dec311151.jpg
deleted file mode 100644
index 4eb2a9a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_63Dec311151.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_64Dec311151.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_64Dec311151.bb
deleted file mode 100644
index d367cd3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_64Dec311151.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_64Dec311151.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_64Dec311151.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_64Dec311151.jpg
deleted file mode 100644
index 11a70a7..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_64Dec311151.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_65Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_65Dec311152.bb
deleted file mode 100644
index 133dce9..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_65Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_65Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_65Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_65Dec311152.jpg
deleted file mode 100644
index 855bc9d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_65Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_66Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_66Dec311152.bb
deleted file mode 100644
index 60e777b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_66Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_66Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_66Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_66Dec311152.jpg
deleted file mode 100644
index 4288b40..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_66Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_67Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_67Dec311152.bb
deleted file mode 100644
index ef408b0..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_67Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_67Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_67Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_67Dec311152.jpg
deleted file mode 100644
index 77faa1f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_67Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_68Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_68Dec311152.bb
deleted file mode 100644
index 93c0712..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_68Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_68Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_68Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_68Dec311152.jpg
deleted file mode 100644
index 2d6476f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_68Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_69Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_69Dec311152.bb
deleted file mode 100644
index 1fb9f22..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_69Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_69Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_69Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_69Dec311152.jpg
deleted file mode 100644
index 1dcb079..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_69Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_70Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_70Dec311152.bb
deleted file mode 100644
index 3b7f705..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_70Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_70Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_70Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_70Dec311152.jpg
deleted file mode 100644
index ec0bb05..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_70Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_71Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_71Dec311152.bb
deleted file mode 100644
index 5527c70..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_71Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_71Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_71Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_71Dec311152.jpg
deleted file mode 100644
index 7b0ddbd..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_71Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_72Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_72Dec311152.bb
deleted file mode 100644
index eba827d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_72Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_72Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_72Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_72Dec311152.jpg
deleted file mode 100644
index 11a70a7..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_72Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_73Dec311152.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_73Dec311152.bb
deleted file mode 100644
index dfde7b5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_73Dec311152.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_73Dec311152.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_73Dec311152.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_73Dec311152.jpg
deleted file mode 100644
index bbc1df0..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_73Dec311152.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_74Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_74Dec311201.bb
deleted file mode 100644
index 6c0a688..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_74Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_74Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_74Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_74Dec311201.jpg
deleted file mode 100644
index 51a9a19..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_74Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_75Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_75Dec311201.bb
deleted file mode 100644
index bd8b1f3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_75Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_75Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_75Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_75Dec311201.jpg
deleted file mode 100644
index e8d1843..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_75Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201.bb
deleted file mode 100644
index 352070c..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_76Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201.jpg
deleted file mode 100644
index d3a5ee2..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201_.bb
deleted file mode 100644
index 1392d81..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_76Dec311201_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 696 613
-%%CreationDate: Thu Jan 20 15:06:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201_.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201_.jpg
deleted file mode 100644
index e4a8c4f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_76Dec311201_.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_77Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_77Dec311201.bb
deleted file mode 100644
index ec52762..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_77Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_77Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_77Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_77Dec311201.jpg
deleted file mode 100644
index 4817bb8..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_77Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_78Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_78Dec311201.bb
deleted file mode 100644
index 7ea4971..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_78Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_78Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_78Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_78Dec311201.jpg
deleted file mode 100644
index ee65981..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_78Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_79Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_79Dec311201.bb
deleted file mode 100644
index d918a85..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_79Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_79Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_79Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_79Dec311201.jpg
deleted file mode 100644
index 6ce2e81..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_79Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_80Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_80Dec311201.bb
deleted file mode 100644
index b775d0a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_80Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_80Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_80Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_80Dec311201.jpg
deleted file mode 100644
index f90159a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_80Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_81Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_81Dec311201.bb
deleted file mode 100644
index 26579d0..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_81Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_81Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_81Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_81Dec311201.jpg
deleted file mode 100644
index 6ce2e81..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_81Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_82Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_82Dec311201.bb
deleted file mode 100644
index 12e85eb..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_82Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_82Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_82Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_82Dec311201.jpg
deleted file mode 100644
index 6ce2e81..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_82Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201.bb
deleted file mode 100644
index e880a34..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_83Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 922 719
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201.jpg
deleted file mode 100644
index 934fc4c..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201_.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201_.bb
deleted file mode 100644
index f714bf6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_83Dec311201_.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_83Dec311201_.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 696 615
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_84Dec311201.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_84Dec311201.bb
deleted file mode 100644
index 12bd431..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ScreenHunter_84Dec311201.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./ScreenHunter_84Dec311201.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 693 613
-%%CreationDate: Thu Jan 20 15:06:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/activate_cut_plane.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/activate_cut_plane.bb
deleted file mode 100644
index b787f02..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/activate_cut_plane.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/activate_cut_plane.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 196 181
-%%CreationDate: Wed Feb  2 15:20:27 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/analyze_import.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/analyze_import.png
deleted file mode 100644
index 05c2b08..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/analyze_import.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/analyze_menu.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/analyze_menu.png
deleted file mode 100644
index 93e872f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/analyze_menu.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/angular_superficie.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/angular_superficie.bb
deleted file mode 100644
index 675e00e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/angular_superficie.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/angular_superficie.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 357 333
-%%CreationDate: Fri Jan 28 13:05:37 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_angular.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_angular.bb
deleted file mode 100644
index 6ee3efd..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_angular.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./axial_angular.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 304 272
-%%CreationDate: Fri Jan 28 13:05:12 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_angular.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_angular.jpg
deleted file mode 100644
index 532482d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_angular.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_linear.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_linear.bb
deleted file mode 100644
index 2367db0..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_linear.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/axial_linear.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 298 280
-%%CreationDate: Fri Jan 28 12:36:19 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_linear.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_linear.jpg
deleted file mode 100644
index a5f3e28..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/axial_linear.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/boolano_janela.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/boolano_janela.png
deleted file mode 100644
index 392865b..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/boolano_janela.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_menu.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_menu.png
deleted file mode 100644
index d280eec..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/booleano_menu.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/brilhante_I.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/brilhante_I.bb
deleted file mode 100644
index b5615bc..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/brilhante_I.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/brilhante_I.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 300 249
-%%CreationDate: Tue Feb  1 16:42:56 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/button_select_color.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/button_select_color.bb
deleted file mode 100644
index 6d4a3dc..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/button_select_color.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/button_select_color.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 20 16
-%%CreationDate: Thu Jan 27 14:11:33 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/button_select_color.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/button_select_color.jpg
deleted file mode 100644
index ef6ba45..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/button_select_color.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam.bb
deleted file mode 100644
index 303e43a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./case_almagam.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 611 586
-%%CreationDate: Mon Jan 24 09:42:26 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam_zoom.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam_zoom.bb
deleted file mode 100644
index 70149b4..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/case_almagam_zoom.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./case_almagam_zoom.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 679 286
-%%CreationDate: Mon Jan 24 09:53:14 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/closed_tool_menu.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/closed_tool_menu.bb
deleted file mode 100644
index 32c05b9..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/closed_tool_menu.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/closed_tool_menu.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 675 536
-%%CreationDate: Thu Feb  3 15:11:24 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/closed_tool_menu.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/closed_tool_menu.png
deleted file mode 100644
index 449932b..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/closed_tool_menu.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/color_button.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/color_button.bb
deleted file mode 100644
index dc535d4..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/color_button.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/color_button.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 17 17
-%%CreationDate: Thu Feb  3 16:06:03 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/color_button.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/color_button.png
deleted file mode 100644
index b1ab925..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/color_button.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_medio.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_medio.bb
deleted file mode 100644
index c41afbd..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_medio.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/contraste_medio.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 474 415
-%%CreationDate: Wed Feb  2 08:57:31 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_osso.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_osso.bb
deleted file mode 100644
index 65351d5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_osso.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./contraste_osso.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 150 252
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_pulmao.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_pulmao.bb
deleted file mode 100644
index 0702b50..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/contraste_pulmao.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./contraste_pulmao.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 150 252
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/create_surface_edited.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/create_surface_edited.png
deleted file mode 100644
index 33b1739..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/create_surface_edited.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_1.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_1.bb
deleted file mode 100644
index 1f9a628..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/customize_1.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 492 436
-%%CreationDate: Wed Feb  2 09:50:52 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_2.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_2.bb
deleted file mode 100644
index 17fb8c6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/customize_2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/customize_2.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 492 433
-%%CreationDate: Wed Feb  2 09:50:58 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/cutted_image.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/cutted_image.bb
deleted file mode 100644
index 7e898e4..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/cutted_image.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/cutted_image.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 322 303
-%%CreationDate: Wed Feb  2 15:28:57 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export.PNG
deleted file mode 100644
index 586115c..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export.bb
deleted file mode 100644
index 2ac1a6a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/paulo/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/data_export.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 203 71
-%%CreationDate: Thu Feb  3 10:06:16 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export_selection.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export_selection.PNG
deleted file mode 100644
index 3639ff3..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export_selection.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export_selection.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export_selection.bb
deleted file mode 100644
index 4fe38ea..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/data_export_selection.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/paulo/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/data_export_selection.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 202 122
-%%CreationDate: Thu Feb  3 10:22:48 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/delete_data.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/delete_data.bb
deleted file mode 100644
index 718105f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/delete_data.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/delete_data.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 10 10
-%%CreationDate: Mon Jan 31 16:18:23 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/delete_data.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/delete_data.jpg
deleted file mode 100644
index b903107..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/delete_data.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/diametro_pincel.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/diametro_pincel.bb
deleted file mode 100644
index 4302db3..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/diametro_pincel.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./diametro_pincel.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 87 19
-%%CreationDate: Fri Jan 21 15:53:39 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/diametro_pincel.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/diametro_pincel.png
deleted file mode 100644
index 3248241..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/diametro_pincel.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/duplicate_data.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/duplicate_data.bb
deleted file mode 100644
index 34d6e4e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/duplicate_data.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/duplicate_data.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 15 14
-%%CreationDate: Tue Feb  1 15:34:15 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/duplicate_data.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/duplicate_data.jpg
deleted file mode 100644
index c467c7f..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/duplicate_data.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/edicao_avancada.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/edicao_avancada.bb
deleted file mode 100644
index 9a72eed..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/edicao_avancada.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./edicao_avancada.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 180 9
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/edicao_avancada.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/edicao_avancada.png
deleted file mode 100644
index 40c4009..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/edicao_avancada.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/edit_pencil.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/edit_pencil.bb
deleted file mode 100644
index 9a378bf..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/edit_pencil.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./edit_pencil.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 33 27
-%%CreationDate: Fri Jan 21 15:24:49 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/edit_pencil.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/edit_pencil.png
deleted file mode 100644
index a82c2ff..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/edit_pencil.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/edition_slices.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/edition_slices.bb
deleted file mode 100644
index 86fef8f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/edition_slices.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./edition_slices.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 184 123
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/edition_slices.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/edition_slices.png
deleted file mode 100644
index 107a663..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/edition_slices.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/editor_amagam.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/editor_amagam.bb
deleted file mode 100644
index 513fa91..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/editor_amagam.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./editor_amagam.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 441 392
-%%CreationDate: Mon Jan 24 10:37:55 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/export_data_window.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/export_data_window.bb
deleted file mode 100644
index a3fb486..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/export_data_window.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/paulo/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/export_data_window.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 405 369
-%%CreationDate: Thu Feb  3 10:38:08 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/exract_region.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/exract_region.bb
deleted file mode 100644
index 843fc97..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/exract_region.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/exract_region.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 181 97
-%%CreationDate: Thu Jan 27 14:38:07 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/exract_region.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/exract_region.jpg
deleted file mode 100644
index a7ee39d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/exract_region.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region2.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region2.bb
deleted file mode 100644
index dbb07c8..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/extract_most_region2.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 309 314
-%%CreationDate: Thu Jan 27 15:20:37 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region3.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region3.bb
deleted file mode 100644
index 8fa60d4..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region3.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/extract_most_region3.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 257 240
-%%CreationDate: Thu Jan 27 15:42:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region_1.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region_1.bb
deleted file mode 100644
index a09676e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/extract_most_region_1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/extract_most_region_1.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 279 213
-%%CreationDate: Thu Jan 27 15:06:44 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/eye.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/eye.bb
deleted file mode 100644
index 3799564..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/eye.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/eye.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 11 9
-%%CreationDate: Mon Jan 31 15:15:28 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ferramentas_avancadas.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/ferramentas_avancadas.bb
deleted file mode 100644
index 9ac5abd..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/ferramentas_avancadas.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/ferramentas_avancadas.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 183 12
-%%CreationDate: Thu Jan 27 14:34:41 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/ferramentas_avancadas.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/ferramentas_avancadas.jpg
deleted file mode 100644
index b00ec1d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/ferramentas_avancadas.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/file_import_resize.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/file_import_resize.png
deleted file mode 100644
index 3e78690..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/file_import_resize.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/generate_surface.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/generate_surface.bb
deleted file mode 100644
index 3f67f27..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/generate_surface.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./generate_surface.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 188 23
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/generate_surface.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/generate_surface.png
deleted file mode 100644
index 04c9ae6..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/generate_surface.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_barra.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_barra.bb
deleted file mode 100644
index c9f5747..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_barra.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./limiar_barra.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 179 17
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_barra.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_barra.png
deleted file mode 100644
index a55c75e..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_barra.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_janela.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_janela.bb
deleted file mode 100644
index 5ddeb5f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_janela.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./limiar_janela.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 241 139
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_janela.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_janela.png
deleted file mode 100644
index 96ccb12..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_janela.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_presets.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_presets.bb
deleted file mode 100644
index 116846b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_presets.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./limiar_presets.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 182 20
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_presets.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_presets.png
deleted file mode 100644
index 789c33d..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_presets.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_principal.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_principal.bb
deleted file mode 100644
index 6122d80..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/limiar_principal.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./limiar_principal.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 331 268
-%%CreationDate: Fri Jan 21 15:11:25 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac2.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/mac2.bb
deleted file mode 100644
index 13164f0..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./mac2.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 490 327
-%%CreationDate: Wed May  4 13:58:21 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac2.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/mac2.png
deleted file mode 100644
index 7c8153c..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac2.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac4.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/mac4.bb
deleted file mode 100644
index 86b7bcb..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac4.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./mac4.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 253 81
-%%CreationDate: Wed May  4 14:04:28 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac4.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/mac4.png
deleted file mode 100644
index 6382ab8..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/mac4.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/manager_mensuares.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/manager_mensuares.bb
deleted file mode 100644
index 118d8bf..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/manager_mensuares.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/manager_mensuares.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 220 127
-%%CreationDate: Tue Feb  1 15:00:55 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/manager_mensuares.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/manager_mensuares.jpg
deleted file mode 100644
index 0b136a9..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/manager_mensuares.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/mask_manager.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/mask_manager.bb
deleted file mode 100644
index fb94b5a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/mask_manager.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/mask_manager.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 203 125
-%%CreationDate: Mon Jan 31 14:50:40 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/mask_manager.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/mask_manager.jpg
deleted file mode 100644
index 815c087..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/mask_manager.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/medida_volumetrica.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/medida_volumetrica.bb
deleted file mode 100644
index 456ee1d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/medida_volumetrica.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/medida_volumetrica.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 202 127
-%%CreationDate: Mon Jan 31 09:01:15 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/medida_volumetrica.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/medida_volumetrica.jpg
deleted file mode 100644
index 96362a1..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/medida_volumetrica.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/menu_save_image_window.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/menu_save_image_window.bb
deleted file mode 100644
index a13e373..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/menu_save_image_window.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/menu_save_image_window.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 95 68
-%%CreationDate: Thu Feb  3 13:53:17 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/new_data.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/new_data.bb
deleted file mode 100644
index 5c7607b..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/new_data.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/new_data.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 15 16
-%%CreationDate: Tue Feb  1 15:23:02 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/new_data.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/new_data.jpg
deleted file mode 100644
index e42de87..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/new_data.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/new_surface.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/new_surface.png
deleted file mode 100644
index 85c9cb7..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/new_surface.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/noise_amalgam.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/noise_amalgam.bb
deleted file mode 100644
index d9308eb..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/noise_amalgam.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./noise_amalgam.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 422 390
-%%CreationDate: Mon Jan 24 09:08:47 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/only_2d_planes.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/only_2d_planes.bb
deleted file mode 100644
index 9b92f34..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/only_2d_planes.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/paulo/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/only_2d_planes.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 393 266
-%%CreationDate: Thu Feb  3 09:02:11 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_MIDA.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_MIDA.PNG
deleted file mode 100644
index 6ec1273..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_MIDA.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_MIDA_inv.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_MIDA_inv.PNG
deleted file mode 100644
index a58a33c..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_MIDA_inv.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMIDA.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMIDA.PNG
deleted file mode 100644
index 2433f1c..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMIDA.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMaxIP.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMaxIP.PNG
deleted file mode 100644
index 3f9866a..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_contornoMaxIP.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_maxIP.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_maxIP.PNG
deleted file mode 100644
index e946734..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_maxIP.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_meanIP.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_meanIP.PNG
deleted file mode 100644
index 7306893..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_meanIP.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_minIP.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_minIP.PNG
deleted file mode 100644
index 1773a68..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_minIP.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_normal.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_normal.PNG
deleted file mode 100644
index d24c7d4..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/proj_normal.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/pseudo_menu.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/pseudo_menu.bb
deleted file mode 100644
index 59b2fa5..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/pseudo_menu.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./pseudo_menu.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 184 103
-%%CreationDate: Fri Jan 21 15:11:26 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_1.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_1.bb
deleted file mode 100644
index 11ff91f..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/raycasting_add_1.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 224 204
-%%CreationDate: Fri Feb  4 15:22:39 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_2.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_2.bb
deleted file mode 100644
index f0d7981..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/raycasting_add_2.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 229 207
-%%CreationDate: Fri Feb  4 15:22:45 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_3.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_3.bb
deleted file mode 100644
index 93b4e06..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/raycasting_add_3.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/raycasting_add_3.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 228 206
-%%CreationDate: Fri Feb  4 15:22:52 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_image_window.PNG b/docs/user_guide_pt_BR_source/img/invesalius_screen/save_image_window.PNG
deleted file mode 100644
index b4357ca..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_image_window.PNG and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_image_window.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/save_image_window.bb
deleted file mode 100644
index 7e11213..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_image_window.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/save_image_window.PNG
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 406 349
-%%CreationDate: Thu Feb  3 13:58:02 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_preset.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/save_preset.bb
deleted file mode 100644
index 6a9aef4..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_preset.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/save_preset.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 16 17
-%%CreationDate: Wed Feb  2 14:14:35 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_window_preset.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/save_window_preset.bb
deleted file mode 100644
index 5bdb538..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_window_preset.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/save_window_preset.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 242 102
-%%CreationDate: Wed Feb  2 14:19:51 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_window_preset.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/save_window_preset.jpg
deleted file mode 100644
index 9540911..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/save_window_preset.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/selec_operacao.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/selec_operacao.bb
deleted file mode 100644
index e98d16c..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/selec_operacao.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./selec_operacao.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 45 20
-%%CreationDate: Fri Jan 21 15:58:50 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_brush_operation.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/select_brush_operation.bb
deleted file mode 100644
index 0d7343a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_brush_operation.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./select_brush_operation.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 42 45
-%%CreationDate: Mon Jan 24 08:48:30 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_brush_operation.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/select_brush_operation.jpg
deleted file mode 100644
index b737521..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_brush_operation.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_surface.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/select_surface.bb
deleted file mode 100644
index fe54353..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_surface.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./select_surface.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 149 15
-%%CreationDate: Thu Jan 27 13:38:34 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_surface.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/select_surface.jpg
deleted file mode 100644
index 620d796..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/select_surface.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/selected_mask.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/selected_mask.bb
deleted file mode 100644
index 694f6b2..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/selected_mask.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/selected_mask.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 204 125
-%%CreationDate: Tue Feb  1 14:44:38 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/selected_mask.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/selected_mask.jpg
deleted file mode 100644
index c400518..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/selected_mask.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/sem_sombreamento_II.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/sem_sombreamento_II.bb
deleted file mode 100644
index 8a60f76..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/sem_sombreamento_II.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/sem_sombreamento_II.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 312 293
-%%CreationDate: Wed Feb  2 08:55:48 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/surface_manager.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/surface_manager.bb
deleted file mode 100644
index e70c10a..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/surface_manager.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/surface_manager.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 204 125
-%%CreationDate: Tue Feb  1 14:56:12 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/text_off.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/text_off.bb
deleted file mode 100644
index 465659e..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/text_off.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/text_off.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 279 235
-%%CreationDate: Thu Feb  3 16:54:46 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/text_on.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/text_on.bb
deleted file mode 100644
index df065ba..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/text_on.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/text_on.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 284 238
-%%CreationDate: Thu Feb  3 16:54:50 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency.bb
deleted file mode 100644
index 4f6f147..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/transparency.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 175 24
-%%CreationDate: Thu Jan 27 13:56:41 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency.jpg b/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency.jpg
deleted file mode 100644
index 79c49b1..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency.jpg and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency_2.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency_2.bb
deleted file mode 100644
index 8df43c1..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/transparency_2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/transparency_2.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 406 299
-%%CreationDate: Thu Jan 27 13:58:31 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/vias_aereas_II.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/vias_aereas_II.bb
deleted file mode 100644
index edd1b1d..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/vias_aereas_II.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/phamorim/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/vias_aereas_II.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 319 263
-%%CreationDate: Wed Feb  2 08:51:53 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_1.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_1.bb
deleted file mode 100644
index ca22ba8..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/paulo/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/view_2d_3d_1.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 71 47
-%%CreationDate: Thu Feb  3 08:47:53 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_2.bb b/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_2.bb
deleted file mode 100644
index ddba6e6..0000000
--- a/docs/user_guide_pt_BR_source/img/invesalius_screen/view_2d_3d_2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: /home/paulo/Dropbox/CTI/Docs/Manual InVesalius/invesaliusmanual/img/invesalius_screen/view_2d_3d_2.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 76 50
-%%CreationDate: Thu Feb  3 08:48:00 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_2d.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_2d.png
deleted file mode 100644
index 357de88..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_2d.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_3d.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_3d.png
deleted file mode 100644
index 36f18ec..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_3d.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_limpeza.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_limpeza.png
deleted file mode 100644
index 46cdde0..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_limpeza.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_opcao.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_opcao.png
deleted file mode 100644
index 99f2bc6..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_opcao.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_panel.png b/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_panel.png
deleted file mode 100644
index 4b852ae..0000000
Binary files a/docs/user_guide_pt_BR_source/img/invesalius_screen/watershed_panel.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/logo_cti.bb b/docs/user_guide_pt_BR_source/img/logo_cti.bb
deleted file mode 100644
index e86b942..0000000
--- a/docs/user_guide_pt_BR_source/img/logo_cti.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./logo_cti.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 935 359
-%%CreationDate: Mon Jan  3 22:16:42 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/rm_ge.bb b/docs/user_guide_pt_BR_source/img/rm_ge.bb
deleted file mode 100644
index 60725e0..0000000
--- a/docs/user_guide_pt_BR_source/img/rm_ge.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./rm_ge.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 737 737
-%%CreationDate: Mon Jan  3 22:16:42 2011
-
diff --git a/docs/user_guide_pt_BR_source/img/splash_pt.bb b/docs/user_guide_pt_BR_source/img/splash_pt.bb
deleted file mode 100644
index c74126f..0000000
--- a/docs/user_guide_pt_BR_source/img/splash_pt.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./splash_pt.png
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 418 251
-%%CreationDate: Sun Dec  5 12:15:07 2010
-
diff --git a/docs/user_guide_pt_BR_source/img/splash_pt.png b/docs/user_guide_pt_BR_source/img/splash_pt.png
deleted file mode 100644
index 50a32df..0000000
Binary files a/docs/user_guide_pt_BR_source/img/splash_pt.png and /dev/null differ
diff --git a/docs/user_guide_pt_BR_source/img/tomografo.bb b/docs/user_guide_pt_BR_source/img/tomografo.bb
deleted file mode 100644
index 89cb296..0000000
--- a/docs/user_guide_pt_BR_source/img/tomografo.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-%%Title: ./tomografo.jpg
-%%Creator: extractbb 20090708
-%%BoundingBox: 0 0 410 262
-%%CreationDate: Mon Jan  3 22:16:42 2011
-
diff --git a/docs/user_guide_pt_BR_source/intro.tex b/docs/user_guide_pt_BR_source/intro.tex
index f11bb60..4913c3b 100644
--- a/docs/user_guide_pt_BR_source/intro.tex
+++ b/docs/user_guide_pt_BR_source/intro.tex
@@ -51,7 +51,7 @@ Newbold Hounsfield, um dos criadores da primeira máquina de tomografia computad
 %\end{wrapfigure}
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{img/tomografo.jpg}
+\includegraphics[scale=0.4]{tomografo.jpg}
 \caption{Tomógrafo médico - www.toshibamedical.com.br}
 \end{figure}
 
@@ -104,7 +104,7 @@ torna possível visualizar mais detalhes de regiões delicadas, como a cortical
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.4]{img/feixe_conico.jpg}
+\includegraphics[scale=0.4]{feixe_conico.jpg}
 \caption{Tomógrafo odontológico - www.kavo.com.br}
 \end{figure}
 
@@ -139,22 +139,27 @@ paciente ficar dentro do equipamento, é colocada uma bobina na região de inter
  
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.2]{img/rm_ge.jpg}
+\includegraphics[scale=0.2]{rm_ge.jpg}
 \caption{Equipamento de ressonância magnética - www.gehealthcare.com}
 \end{figure}
 
 \begin{figure}[!htb]
 \centering
-\includegraphics[scale=0.8]{img/bobina.jpg}
+\includegraphics[scale=0.8]{bobina.jpg}
 \caption{Bobina - www.healthcare.philips.com}
 \end{figure}
 
+\subsection{Neuronavegação}
+\label{sec:neuronavegador_intro}
+
+Neuronavegação é a uma técnica que permite localizar e rastrear instrumentos cirúrgicos em relação às estruturas neuronais através da visualização computacional. Além disso, sistemas de neuronavegação têm sido apontados como uma ferramenta fundamental para estudos em planejamento pré-cirúrgico e aumentar a precisão de experimentos em neurociência, como a estimulação magnética transcraniana (EMT), eletroencefalografia (EEG), magnetoencefalografia (MEG) e espectroscopia no infravermelho pr [...]
+
 
 \section{Recursos necessários}
 O InVesalius é projetado para executar em computadores pessoais, como
 \textit{desktops} e \textit{notebooks}. Atualmente, ele é compatível com
 os seguintes sistemas operacionais:\\
-- MS-Windows (XP, Vista, Windows 7)\\
+- MS-Windows (Windows 7, 8 e 10)\\
 - GNU/Linux (Ubuntu, Mandriva, Fedora)\\
 - Apple Mac OS X
 
@@ -170,21 +175,25 @@ pode-se abrir cerca de 300 fatias com resolução de 512x512 \textit{pixels}.
 Já com 4 GB de memória, pode-se abrir em torno de 1000 imagens com a mesma
 resolução.
 
+\newpage
 			
 \subsection{Configurações mínimas}
-Sistema Operacional de 32 \textit{bits}\\
-Processador Intel Pentium 4 ou equivalente, com frequência de 1,5 GHz\\
-1 GB de memória RAM\\
-80 GB de disco rígido\\
-Placa gráfica com 64 MB de memória\\
-Resolução de vídeo de 1024x768 \textit{pixels}
-
+\begin{itemize}
+	\item Sistema operacional de 32-bit
+	\item Intel Pentium 4 ou equivalente 1.5 GHz
+	\item 1 GB de RAM
+	\item 10 GB de espaço disponível em disco
+	\item Placa gráfica com 64 MB de memória
+	\item Resolução de vídeo de 1024x768 pixels
+\end{itemize}
 
 \subsection{Configurações recomendadas}
-Sistema Operacional de 64 \textit{bits}\\
-Processador Intel Core 2 Duo ou equivalente, com frequência de 2,5 GHz\\
-4 GB de memória RAM\\
-180 GB de disco rígido\\
-Placa gráfica NVidia ou ATI, com 128 MB de memória\\
-Resolução de vídeo de 1024x768 \textit{pixels}
+\begin{itemize}
+	\item Sistema Operacional de 64-bit
+	\item Intel Core 2 Duo processor ou equivalente 2.5 GHz
+	\item 8 GB de RAM
+	\item 20 GB de espaço disponível em disco
+	\item Placa gráfica NVidia ou ATI, com 128 MB de memória
+	\item Resolução de vídeo de 1920x1080 pixels
+\end{itemize}
 
diff --git a/docs/user_guide_pt_BR_source/manual_pt_BR.tex b/docs/user_guide_pt_BR_source/manual_pt_BR.tex
index 87dff7c..57f7d68 100644
--- a/docs/user_guide_pt_BR_source/manual_pt_BR.tex
+++ b/docs/user_guide_pt_BR_source/manual_pt_BR.tex
@@ -15,6 +15,8 @@
 \usepackage{wallpaper}
 \usepackage{subfig}
 \usepackage{float}
+\usepackage{esvect}
+
 
 \hypersetup{
     colorlinks,
@@ -24,7 +26,7 @@
     urlcolor=blue
 }
 
-\graphicspath{{img/invesalius_screen/}{img/icons/}}
+\graphicspath{{../user_guide_figures/}{../user_guide_figures/invesalius_screen/}{../user_guide_figures/icons/}}
 
 \author{Centro de Tecnologia da Informação Renato Archer}
 \title{Software InVesalius - Manual de Usuário}
@@ -38,15 +40,19 @@
 \include{intro}
 \include{cap_instal}
 \include{cap_import}
+\include{cap_img}
 \include{cap_manip}
 \include{cap_segmen}
+\include{cap_masc}
 \include{cap_superf}
 \include{cap_med}
 \include{cap_geren_dados}
 \include{cap_visual_simult}
 \include{cap_visual_vol}
+\include{cap_stereoscop}
 \include{cap_export}
 \include{cap_cust}
+\include{cap_nav}
 \include{autores}
 \end{document}
 
diff --git a/docs/user_guide_pt_BR_source/resumo.tex b/docs/user_guide_pt_BR_source/resumo.tex
index 98ac199..76cf45f 100644
--- a/docs/user_guide_pt_BR_source/resumo.tex
+++ b/docs/user_guide_pt_BR_source/resumo.tex
@@ -21,8 +21,8 @@ considerado o "pai da anatomia moderna".
 O software InVesalius é desenvolvido pelo CTI (Centro de Tecnologia da Informação Renato
 Archer), unidade do Ministério da Ciência e Tecnologia (MCT), desde 2001. Inicialmente, apenas
 o programa de instalação era distribuído gratuitamente. A partir de novembro de 2007,
-o InVesalius foi disponibilizado como software livre no Portal do Software Público
-(\href{http://www.softwarepublico.gov.br}{www.softwarepublico.gov.br}), consolidando comunidades de usuários e de desenvolvedores.
+o InVesalius foi disponibilizado como software livre no Portal do Software Público, 
+consolidando comunidades de usuários e de desenvolvedores.
 Trata-se de uma ferramenta simples, livre e gratuita,
 robusta, multiplataforma, com comandos em Português, com funções claras e diretas, de fácil
 manuseio e rápida quando executada em microcomputador PC.
@@ -35,5 +35,15 @@ de próteses.
 
 O InVesalius tem demonstrado grande versatilidade e vem contribuindo com diversas áreas,
 dentre as quais medicina, odontologia, veterinária, arqueologia e engenharia.
-		
+
+\newpage
+
+Opções para download:
+
+\begin{itemize}
+	\item \href{https://www.cti.gov.br/invesalius}{https://www.cti.gov.br/invesalius}
+	\item \href{http://invesalius.github.io}{http://invesalius.github.io}	
+	\item \href{http://www.softwarepublico.gov.br}{www.softwarepublico.gov.br}
+\end{itemize}
+
 \noindent
diff --git a/icons/data_duplicate.png b/icons/data_duplicate.png
index 2f4ed32..479c7cf 100644
Binary files a/icons/data_duplicate.png and b/icons/data_duplicate.png differ
diff --git a/icons/data_new.png b/icons/data_new.png
index ef15227..7633b51 100644
Binary files a/icons/data_new.png and b/icons/data_new.png differ
diff --git a/icons/inv3_icon.ico b/icons/inv3_icon.ico
index 47b8f08..123bd37 100644
Binary files a/icons/inv3_icon.ico and b/icons/inv3_icon.ico differ
diff --git a/icons/invesalius.ico b/icons/invesalius.ico
index 427bf10..6dbb8fd 100644
Binary files a/icons/invesalius.ico and b/icons/invesalius.ico differ
diff --git a/icons/ja.bmp b/icons/ja.bmp
new file mode 100644
index 0000000..2e73771
Binary files /dev/null and b/icons/ja.bmp differ
diff --git a/icons/load_mesh.png b/icons/load_mesh.png
new file mode 100644
index 0000000..489d4d7
Binary files /dev/null and b/icons/load_mesh.png differ
diff --git a/icons/ru.bmp b/icons/ru.bmp
new file mode 100644
index 0000000..7e50a2b
Binary files /dev/null and b/icons/ru.bmp differ
diff --git a/icons/splash_de.png b/icons/splash_de.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_de.png and b/icons/splash_de.png differ
diff --git a/icons/splash_de_DE.png b/icons/splash_de_DE.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_de_DE.png and b/icons/splash_de_DE.png differ
diff --git a/icons/splash_el_GR.png b/icons/splash_el_GR.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_el_GR.png and b/icons/splash_el_GR.png differ
diff --git a/icons/splash_en.png b/icons/splash_en.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_en.png and b/icons/splash_en.png differ
diff --git a/icons/splash_es.png b/icons/splash_es.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_es.png and b/icons/splash_es.png differ
diff --git a/icons/splash_fr.png b/icons/splash_fr.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_fr.png and b/icons/splash_fr.png differ
diff --git a/icons/splash_it.png b/icons/splash_it.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_it.png and b/icons/splash_it.png differ
diff --git a/icons/splash_ko.png b/icons/splash_ko.png
index 43343a5..9e34bd1 100644
Binary files a/icons/splash_ko.png and b/icons/splash_ko.png differ
diff --git a/icons/splash_pt.png b/icons/splash_pt.png
index 35f956c..56daf3b 100644
Binary files a/icons/splash_pt.png and b/icons/splash_pt.png differ
diff --git a/icons/splash_zh_TW.png b/icons/splash_zh_TW.png
index 6d72b17..9e34bd1 100644
Binary files a/icons/splash_zh_TW.png and b/icons/splash_zh_TW.png differ
diff --git a/invesalius/__init__.py b/invesalius/__init__.py
new file mode 100644
index 0000000..0b52a02
--- /dev/null
+++ b/invesalius/__init__.py
@@ -0,0 +1,18 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
diff --git a/invesalius/constants.py b/invesalius/constants.py
index 287f7cc..2fbf23e 100644
--- a/invesalius/constants.py
+++ b/invesalius/constants.py
@@ -21,10 +21,10 @@ import os.path
 import platform
 import sys
 import wx
+import itertools
 
-from project import Project
-
-INVESALIUS_VERSION = "3.0"
+#from invesalius.project import Project
+INVESALIUS_VERSION = "3.1.1"
 
 #---------------
 
@@ -140,7 +140,24 @@ MODE_NAVIGATOR = 1
 MODE_RADIOLOGY = 2
 MODE_ODONTOLOGY = 3
 
+#Crop box sides code
+
+AXIAL_RIGHT = 1
+AXIAL_LEFT = 2
+AXIAL_UPPER = 3
+AXIAL_BOTTOM = 4
+
+SAGITAL_RIGHT = 5
+SAGITAL_LEFT = 6
+SAGITAL_UPPER = 7
+SAGITAL_BOTTOM = 8
+
+CORONAL_RIGHT = 9
+CORONAL_LEFT = 10
+CORONAL_UPPER = 11
+CORONAL_BOTTOM = 12
 
+CROP_PAN = 13
 
 #Color Table from Slice
 #NumberOfColors, SaturationRange, HueRange, ValueRange
@@ -190,8 +207,10 @@ VOLUME_POSITION = {AXIAL: [AXIAL_VOLUME_CAM_VIEW_UP, AXIAL_VOLUME_CAM_POSITION],
 
 
 # Mask threshold options
-proj = Project()
-THRESHOLD_RANGE = proj.threshold_modes[_("Bone")]
+
+#proj = Project()
+#THRESHOLD_RANGE = proj.threshold_modes[_("Bone")]
+THRESHOLD_RANGE = [0,3033]
 THRESHOLD_PRESETS_INDEX = _("Bone")
 THRESHOLD_HUE_RANGE = (0, 0.6667)
 THRESHOLD_INVALUE = 5000
@@ -219,11 +238,11 @@ MASK_COLOUR =  [[0.33, 1, 0.33],
                 #(0.66666666666666663, 0.792156862745098, 1.0)]
 
 
-MEASURE_COLOUR =  [[1, 0, 0],
-                [1, 0.4, 0],
-                [0, 0, 1],
-                [1, 0, 1],
-                [0, 0.6, 0]]
+MEASURE_COLOUR =  itertools.cycle([[1, 0, 0],
+                                   [1, 0.4, 0],
+                                   [0, 0, 1],
+                                   [1, 0, 1],
+                                   [0, 0.6, 0]])
 
 SURFACE_COLOUR =  [(0.33, 1, 0.33),
                 (1, 1, 0.33),
@@ -301,27 +320,68 @@ WINDOW_LEVEL = {_("Abdomen"):(350,50),
 
 REDUCE_IMAGEDATA_QUALITY = 0
 
-ICON_DIR = os.path.abspath(os.path.join('..', 'icons'))
-SAMPLE_DIR = os.path.abspath(os.path.join('..', 'samples'))
-DOC_DIR = os.path.abspath(os.path.join('..', 'docs'))
-
 
-ID_TO_BMP = {VOL_FRONT: [_("Front"), os.path.join(ICON_DIR, "view_front.png")],
-             VOL_BACK: [_("Back"), os.path.join(ICON_DIR, "view_back.png")],
-             VOL_TOP: [_("Top"), os.path.join(ICON_DIR, "view_top.png")],
-             VOL_BOTTOM: [_("Bottom"), os.path.join(ICON_DIR, "view_bottom.png")],
-             VOL_RIGHT: [_("Right"), os.path.join(ICON_DIR, "view_right.png")],
-             VOL_LEFT: [_("Left"), os.path.join(ICON_DIR, "view_left.png")],
-             VOL_ISO:[_("Isometric"), os.path.join(ICON_DIR,"view_isometric.png")]
+# PATHS
+FS_ENCODE = sys.getfilesystemencoding()
+
+if sys.platform == 'win32':
+    from invesalius.expanduser import expand_user
+    try:
+        USER_DIR = expand_user()
+    except:
+        USER_DIR = os.path.expanduser('~').decode(FS_ENCODE)
+else:
+    USER_DIR = os.path.expanduser('~').decode(FS_ENCODE)
+
+USER_INV_DIR = os.path.join(USER_DIR, u'.invesalius')
+USER_PRESET_DIR = os.path.join(USER_INV_DIR, u'presets')
+USER_LOG_DIR = os.path.join(USER_INV_DIR, u'logs')
+
+FILE_PATH = os.path.split(__file__)[0].decode(FS_ENCODE)
+
+if hasattr(sys,"frozen") and (sys.frozen == "windows_exe"\
+                            or sys.frozen == "console_exe"):
+    abs_path = os.path.abspath(FILE_PATH, u'..', u'..', u'..')
+    ICON_DIR = os.path.join(abs_path, u"icons")
+    SAMPLE_DIR = os.path.join(FILE_PATH, u'samples')
+    DOC_DIR = os.path.join(FILE_PATH, u'docs')
+    folder=RAYCASTING_PRESETS_DIRECTORY= os.path.join(abs_path, u"presets", u"raycasting")
+    RAYCASTING_PRESETS_COLOR_DIRECTORY = os.path.join(abs_path, u"presets", u"raycasting", u"color_list")
+
+else:
+    ICON_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'icons'))
+    SAMPLE_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'samples'))
+    DOC_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'docs'))
+
+    folder=RAYCASTING_PRESETS_DIRECTORY= os.path.abspath(os.path.join(u".",
+                                                                  u"presets",
+                                                                  u"raycasting"))
+
+    RAYCASTING_PRESETS_COLOR_DIRECTORY = os.path.abspath(os.path.join(u".",
+                                                                  u"presets",
+                                                                  u"raycasting",
+                                                                  u"color_list"))
+
+
+# MAC App
+if not os.path.exists(ICON_DIR):
+    ICON_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'..', u'..', u'..', u'icons'))
+    SAMPLE_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..',  u'..', u'..', u'..', u'samples'))
+    DOC_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'..', u'..', u'..', u'docs'))
+
+
+ID_TO_BMP = {VOL_FRONT: [_("Front"), os.path.join(ICON_DIR, u"view_front.png")],
+             VOL_BACK: [_("Back"), os.path.join(ICON_DIR, u"view_back.png")],
+             VOL_TOP: [_("Top"), os.path.join(ICON_DIR, u"view_top.png")],
+             VOL_BOTTOM: [_("Bottom"), os.path.join(ICON_DIR, u"view_bottom.png")],
+             VOL_RIGHT: [_("Right"), os.path.join(ICON_DIR, u"view_right.png")],
+             VOL_LEFT: [_("Left"), os.path.join(ICON_DIR, u"view_left.png")],
+             VOL_ISO:[_("Isometric"), os.path.join(ICON_DIR, u"view_isometric.png")]
              }
 
 # if 1, use vtkVolumeRaycastMapper, if 0, use vtkFixedPointVolumeRayCastMapper
 TYPE_RAYCASTING_MAPPER = 0
 
-folder=RAYCASTING_PRESETS_DIRECTORY= os.path.abspath(os.path.join("..",
-                                                                  "presets",
-                                                                  "raycasting"))
-
 
 RAYCASTING_FILES = {_("Airways"): "Airways.plist",
                    _("Airways II"): "Airways II.plist",
@@ -362,19 +422,10 @@ RAYCASTING_FILES = {_("Airways"): "Airways.plist",
 #                    os.path.isfile(os.path.join(folder,filename))]
 
 
-LOG_FOLDER = os.path.join(os.path.expanduser('~'), '.invesalius', 'logs')
-if not os.path.isdir(LOG_FOLDER):
-    os.makedirs(LOG_FOLDER)
-
-folder = os.path.join(os.path.expanduser('~'), '.invesalius', 'presets')
-if not os.path.isdir(folder):
-    os.makedirs(folder)
-
-
-USER_RAYCASTING_PRESETS_DIRECTORY = folder
+USER_RAYCASTING_PRESETS_DIRECTORY = os.path.join(USER_PRESET_DIR, u'raycasting')
 RAYCASTING_TYPES = [_(filename.split(".")[0]) for filename in
-                     os.listdir(folder) if
-                     os.path.isfile(os.path.join(folder,filename))]
+                     os.listdir(USER_RAYCASTING_PRESETS_DIRECTORY) if
+                     os.path.isfile(os.path.join(USER_RAYCASTING_PRESETS_DIRECTORY, filename))]
 RAYCASTING_TYPES += RAYCASTING_FILES.keys()
 RAYCASTING_TYPES.append(_(' Off'))
 RAYCASTING_TYPES.sort()
@@ -451,8 +502,9 @@ VTK_WARNING = 0
 
 [ID_DICOM_IMPORT, ID_PROJECT_OPEN, ID_PROJECT_SAVE_AS, ID_PROJECT_SAVE,
 ID_PROJECT_CLOSE, ID_PROJECT_INFO, ID_SAVE_SCREENSHOT, ID_DICOM_LOAD_NET,
-ID_PRINT_SCREENSHOT, ID_IMPORT_OTHERS_FILES, ID_ANALYZE_IMPORT, ID_PREFERENCES,
-ID_DICOM_NETWORK] = [wx.NewId() for number in range(13)]
+ID_PRINT_SCREENSHOT, ID_IMPORT_OTHERS_FILES, ID_PREFERENCES, ID_DICOM_NETWORK,
+ID_TIFF_JPG_PNG, ID_VIEW_INTERPOLATED, ID_MODE_NAVIGATION, ID_ANALYZE_IMPORT,
+ID_NIFTI_IMPORT, ID_PARREC_IMPORT] = [wx.NewId() for number in range(18)]
 ID_EXIT = wx.ID_EXIT
 ID_ABOUT = wx.ID_ABOUT
 
@@ -479,6 +531,17 @@ ID_SWAP_YZ = wx.NewId()
 ID_BOOLEAN_MASK = wx.NewId()
 ID_CLEAN_MASK = wx.NewId()
 
+ID_REORIENT_IMG = wx.NewId()
+ID_FLOODFILL_MASK = wx.NewId()
+ID_FILL_HOLE_AUTO = wx.NewId()
+ID_REMOVE_MASK_PART = wx.NewId()
+ID_SELECT_MASK_PART = wx.NewId()
+ID_MANUAL_SEGMENTATION = wx.NewId()
+ID_WATERSHED_SEGMENTATION = wx.NewId()
+ID_THRESHOLD_SEGMENTATION = wx.NewId()
+ID_FLOODFILL_SEGMENTATION = wx.NewId()
+ID_CROP_MASK = wx.NewId()
+
 #---------------------------------------------------------
 STATE_DEFAULT = 1000
 STATE_WL = 1001
@@ -494,22 +557,34 @@ SLICE_STATE_CROSS = 3006
 SLICE_STATE_SCROLL = 3007
 SLICE_STATE_EDITOR = 3008
 SLICE_STATE_WATERSHED = 3009
+SLICE_STATE_REORIENT = 3010
+SLICE_STATE_MASK_FFILL = 3011
+SLICE_STATE_REMOVE_MASK_PARTS = 3012
+SLICE_STATE_SELECT_MASK_PARTS = 3013
+SLICE_STATE_FFILL_SEGMENTATION = 3014
+SLICE_STATE_CROP_MASK = 3015
 
 VOLUME_STATE_SEED = 2001
-#STATE_LINEAR_MEASURE = 3001
-#STATE_ANGULAR_MEASURE = 3002
+#  STATE_LINEAR_MEASURE = 3001
+#  STATE_ANGULAR_MEASURE = 3002
 
 TOOL_STATES = [STATE_WL, STATE_SPIN, STATE_ZOOM,
                STATE_ZOOM_SL, STATE_PAN, STATE_MEASURE_DISTANCE,
-               STATE_MEASURE_ANGLE]#, STATE_ANNOTATE]
+               STATE_MEASURE_ANGLE]  #, STATE_ANNOTATE]
 
-TOOL_SLICE_STATES = [SLICE_STATE_CROSS, SLICE_STATE_SCROLL]
+TOOL_SLICE_STATES = [SLICE_STATE_CROSS, SLICE_STATE_SCROLL,
+                     SLICE_STATE_REORIENT]
 
 
 SLICE_STYLES = TOOL_STATES + TOOL_SLICE_STATES
 SLICE_STYLES.append(STATE_DEFAULT)
 SLICE_STYLES.append(SLICE_STATE_EDITOR)
 SLICE_STYLES.append(SLICE_STATE_WATERSHED)
+SLICE_STYLES.append(SLICE_STATE_MASK_FFILL)
+SLICE_STYLES.append(SLICE_STATE_REMOVE_MASK_PARTS)
+SLICE_STYLES.append(SLICE_STATE_SELECT_MASK_PARTS)
+SLICE_STYLES.append(SLICE_STATE_FFILL_SEGMENTATION)
+SLICE_STYLES.append(SLICE_STATE_CROP_MASK)
 
 VOLUME_STYLES = TOOL_STATES + [VOLUME_STATE_SEED, STATE_MEASURE_DISTANCE,
         STATE_MEASURE_ANGLE]
@@ -518,8 +593,14 @@ VOLUME_STYLES.append(STATE_DEFAULT)
 
 STYLE_LEVEL = {SLICE_STATE_EDITOR: 1,
                SLICE_STATE_WATERSHED: 1,
+               SLICE_STATE_MASK_FFILL: 2,
+               SLICE_STATE_REMOVE_MASK_PARTS: 2,
+               SLICE_STATE_SELECT_MASK_PARTS: 2,
+               SLICE_STATE_FFILL_SEGMENTATION: 2,
                SLICE_STATE_CROSS: 2,
                SLICE_STATE_SCROLL: 2,
+               SLICE_STATE_REORIENT: 2,
+               SLICE_STATE_CROP_MASK: 1,
                STATE_ANNOTATE: 2,
                STATE_DEFAULT: 0,
                STATE_MEASURE_ANGLE: 2,
@@ -535,7 +616,7 @@ STYLE_LEVEL = {SLICE_STATE_EDITOR: 1,
 RENDERING = 0
 SURFACE_INTERPOLATION = 1
 LANGUAGE = 2
-
+SLICE_INTERPOLATION = 3
 
 #Correlaction extracted from pyDicom
 DICOM_ENCODING_TO_PYTHON = {
@@ -575,3 +656,57 @@ BOOLEAN_UNION = 1
 BOOLEAN_DIFF = 2
 BOOLEAN_AND = 3
 BOOLEAN_XOR = 4
+
+#------------ Navigation defaults -------------------
+
+SELECT = 0
+MTC = 1
+FASTRAK = 2
+ISOTRAKII = 3
+PATRIOT = 4
+DEBUGTRACK = 5
+DISCTRACK = 6
+DEFAULT_TRACKER = SELECT
+
+TRACKER = [_("Select tracker:"), _("Claron MicronTracker"),
+           _("Polhemus FASTRAK"), _("Polhemus ISOTRAK II"),
+           _("Polhemus PATRIOT"), _("Debug tracker"),
+           _("Disconnect tracker")]
+
+STATIC_REF = 0
+DYNAMIC_REF = 1
+DEFAULT_REF_MODE = DYNAMIC_REF
+REF_MODE = [_("Static ref."), _("Dynamic ref.")]
+
+IR1 = wx.NewId()
+IR2 = wx.NewId()
+IR3 = wx.NewId()
+TR1 = wx.NewId()
+TR2 = wx.NewId()
+TR3 = wx.NewId()
+SET = wx.NewId()
+
+BTNS_IMG = {IR1: {0: _('LEI')},
+            IR2: {1: _('REI')},
+            IR3: {2: _('NAI')}}
+
+BTNS_IMG_MKS = {IR1: {0: 'LEI'},
+            IR2: {1: 'REI'},
+            IR3: {2: 'NAI'}}
+
+TIPS_IMG = [wx.ToolTip(_("Select left ear in image")),
+            wx.ToolTip(_("Select right ear in image")),
+            wx.ToolTip(_("Select nasion in image"))]
+
+BTNS_TRK = {TR1: {3: _('LET')},
+            TR2: {4: _('RET')},
+            TR3: {5: _('NAT')},
+            SET: {6: _('SET')}}
+
+TIPS_TRK = [wx.ToolTip(_("Select left ear with spatial tracker")),
+            wx.ToolTip(_("Select right ear with spatial tracker")),
+            wx.ToolTip(_("Select nasion with spatial tracker")),
+            wx.ToolTip(_("Show set coordinates in image"))]
+
+CAL_DIR = os.path.abspath(os.path.join(FILE_PATH, '..', 'navigation', 'mtc_files', 'CalibrationFiles'))
+MAR_DIR = os.path.abspath(os.path.join(FILE_PATH, '..', 'navigation', 'mtc_files', 'Markers'))
diff --git a/invesalius/control.py b/invesalius/control.py
index c94d0dc..b58193f 100644
--- a/invesalius/control.py
+++ b/invesalius/control.py
@@ -16,29 +16,29 @@
 #    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
 #    detalhes.
 #--------------------------------------------------------------------------
-import math
 import os
 import plistlib
 import wx
-import numpy
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import data.imagedata_utils as image_utils
-import data.mask as msk
-import data.measures
-import data.slice_ as sl
-import data.surface as srf
-import data.volume as volume
-import gui.dialogs as dialog
-import project as prj
-import reader.analyze_reader as analyze
-import reader.dicom_grouper as dg
-import reader.dicom_reader as dcm
-import session as ses
-
-import utils 
-import gui.dialogs as dialogs
+import invesalius.constants as const
+import invesalius.data.imagedata_utils as image_utils
+import invesalius.data.mask as msk
+import invesalius.data.measures as measures
+import invesalius.data.slice_ as sl
+import invesalius.data.surface as srf
+import invesalius.data.volume as volume
+import invesalius.gui.dialogs as dialog
+import invesalius.project as prj
+import invesalius.reader.dicom_grouper as dg
+import invesalius.reader.dicom_reader as dcm
+import invesalius.reader.bitmap_reader as bmp
+import invesalius.reader.others_reader as oth
+import invesalius.session as ses
+
+
+import invesalius.utils  as utils
+import invesalius.gui.dialogs as dialogs
 import subprocess
 import sys
 
@@ -53,9 +53,16 @@ class Controller():
         self.frame = frame
         self.progress_dialog = None
         self.cancel_import = False
+
+        #type of imported image
+        #None, others and opened Project = 0
+        #DICOM = 1
+        #TIFF uCT = 2
+        self.img_type = 0 
+
         #Init session
         session = ses.Session()
-        self.measure_manager = data.measures.MeasurementManager()
+        self.measure_manager = measures.MeasurementManager()
 
         Publisher.sendMessage('Load Preferences')
 
@@ -63,6 +70,8 @@ class Controller():
         Publisher.subscribe(self.OnImportMedicalImages, 'Import directory')
         Publisher.subscribe(self.OnShowDialogImportDirectory,
                                  'Show import directory dialog')
+        Publisher.subscribe(self.OnShowDialogImportOtherFiles,
+                                 'Show import other files dialog')
         Publisher.subscribe(self.OnShowDialogOpenProject,
                                  'Show open project dialog')
 
@@ -74,23 +83,40 @@ class Controller():
                                  'Save raycasting preset')
         Publisher.subscribe(self.OnOpenDicomGroup,
                                  'Open DICOM group')
+        Publisher.subscribe(self.OnOpenBitmapFiles,
+                                 'Open bitmap files')
+        Publisher.subscribe(self.OnOpenOtherFiles,
+                                 'Open other files')
         Publisher.subscribe(self.Progress, "Update dicom load")
+        Publisher.subscribe(self.Progress, "Update bitmap load")
         Publisher.subscribe(self.OnLoadImportPanel, "End dicom load")
+        Publisher.subscribe(self.OnLoadImportBitmapPanel, "End bitmap load")
         Publisher.subscribe(self.OnCancelImport, 'Cancel DICOM load')
+        Publisher.subscribe(self.OnCancelImportBitmap, 'Cancel bitmap load')
+
         Publisher.subscribe(self.OnShowDialogCloseProject, 'Close Project')
         Publisher.subscribe(self.OnOpenProject, 'Open project')
         Publisher.subscribe(self.OnOpenRecentProject, 'Open recent project')
-        Publisher.subscribe(self.OnShowAnalyzeFile, 'Show analyze dialog')
+        Publisher.subscribe(self.OnShowBitmapFile, 'Show bitmap dialog')
 
         Publisher.subscribe(self.ShowBooleanOpDialog, 'Show boolean dialog')
 
+        Publisher.subscribe(self.ApplyReorientation, 'Apply reorientation')
+
+        Publisher.subscribe(self.SetBitmapSpacing, 'Set bitmap spacing')
+
+    def SetBitmapSpacing(self, pubsub_evt):
+        proj = prj.Project()
+        proj.spacing = pubsub_evt.data
 
     def OnCancelImport(self, pubsub_evt):
         #self.cancel_import = True
         Publisher.sendMessage('Hide import panel')
 
 
-
+    def OnCancelImportBitmap(self, pubsub_evt):
+        #self.cancel_import = True
+        Publisher.sendMessage('Hide import bitmap panel')
 
 ###########################
 ###########################
@@ -98,6 +124,10 @@ class Controller():
     def OnShowDialogImportDirectory(self, pubsub_evt):
         self.ShowDialogImportDirectory()
 
+    def OnShowDialogImportOtherFiles(self, pubsub_evt):
+        id_type = pubsub_evt.data
+        self.ShowDialogImportOtherFiles(id_type)
+
     def OnShowDialogOpenProject(self, pubsub_evt):
         self.ShowDialogOpenProject()
 
@@ -108,17 +138,33 @@ class Controller():
     def OnShowDialogCloseProject(self, pubsub_evt):
         self.ShowDialogCloseProject()
 
-    def OnShowAnalyzeFile(self, pubsub_evt):
-        dirpath = dialog.ShowOpenAnalyzeDialog()
-        imagedata = analyze.ReadAnalyze(dirpath)
-        if imagedata:
-            self.CreateAnalyzeProject(imagedata)
-            
-        self.LoadProject()
-        Publisher.sendMessage("Enable state project", True)
+    def OnShowBitmapFile(self, pubsub_evt):
+        self.ShowDialogImportBitmapFile()
+###########################
 
+    def ShowDialogImportBitmapFile(self):
+        # Offer to save current project if necessary
+        session = ses.Session()
+        st = session.project_status
+        if (st == const.PROJ_NEW) or (st == const.PROJ_CHANGE):
+            filename = session.project_path[1]
+            answer = dialog.SaveChangesDialog2(filename)
+            if answer:
+                self.ShowDialogSaveProject()
+            self.CloseProject()
+            #Publisher.sendMessage("Enable state project", False)
+            Publisher.sendMessage('Set project name')
+            Publisher.sendMessage("Stop Config Recording")
+            Publisher.sendMessage("Set slice interaction style", const.STATE_DEFAULT)
 
-###########################
+        # Import TIFF, BMP, JPEG or PNG
+        dirpath = dialog.ShowImportBitmapDirDialog(self.frame)
+
+        if dirpath and not os.listdir(dirpath):
+            dialog.ImportEmptyDirectory(dirpath)
+        elif dirpath:
+            self.StartImportBitmapPanel(dirpath)
+        #    Publisher.sendMessage("Load data to import panel", dirpath)
 
     def ShowDialogImportDirectory(self):
         # Offer to save current project if necessary
@@ -135,13 +181,35 @@ class Controller():
             Publisher.sendMessage("Stop Config Recording")
             Publisher.sendMessage("Set slice interaction style", const.STATE_DEFAULT)
         # Import project
-        dirpath = dialog.ShowImportDirDialog()
+        dirpath = dialog.ShowImportDirDialog(self.frame)
         if dirpath and not os.listdir(dirpath):
             dialog.ImportEmptyDirectory(dirpath)
         elif dirpath:
             self.StartImportPanel(dirpath)
             Publisher.sendMessage("Load data to import panel", dirpath)
 
+    def ShowDialogImportOtherFiles(self, id_type):
+        # Offer to save current project if necessary
+        session = ses.Session()
+        st = session.project_status
+        if (st == const.PROJ_NEW) or (st == const.PROJ_CHANGE):
+            filename = session.project_path[1]
+            answer = dialog.SaveChangesDialog2(filename)
+            if answer:
+                self.ShowDialogSaveProject()
+            self.CloseProject()
+            # Publisher.sendMessage("Enable state project", False)
+            Publisher.sendMessage('Set project name')
+            Publisher.sendMessage("Stop Config Recording")
+            Publisher.sendMessage("Set slice interaction style", const.STATE_DEFAULT)
+
+        # Warning for limited support to Analyze format
+        if id_type == const.ID_ANALYZE_IMPORT:
+            dialog.ImportAnalyzeWarning()
+
+        filepath = dialog.ShowImportOtherFilesDialog(id_type)
+        Publisher.sendMessage("Open other files", filepath)
+
     def ShowDialogOpenProject(self):
         # Offer to save current project if necessary
         session = ses.Session()
@@ -237,8 +305,6 @@ class Controller():
         else:
             dialog.InexistentPath(filepath)
 
-
-
     def OpenProject(self, filepath):
         Publisher.sendMessage('Begin busy cursor')
         path = os.path.abspath(filepath)
@@ -272,6 +338,9 @@ class Controller():
         else:
             dirpath, filename = session.project_path
 
+        if isinstance(filename, str):
+            filename = filename.decode(const.FS_ENCODE)
+
         proj = prj.Project()
         prj.Project().SavePlistProject(dirpath, filename)
 
@@ -279,20 +348,35 @@ class Controller():
         Publisher.sendMessage('End busy cursor')
 
     def CloseProject(self):
+        Publisher.sendMessage('Set slice interaction style', const.STATE_DEFAULT)
+        Publisher.sendMessage('Hide content panel')
+        Publisher.sendMessage('Close project data')
+
+        if self.img_type == 1:
+            Publisher.sendMessage('Show import panel in frame')
+
+        if self.img_type == 2:
+            Publisher.sendMessage('Show import bitmap panel in frame')
+
+
         proj = prj.Project()
         proj.Close()
 
-        Publisher.sendMessage('Hide content panel')
-        Publisher.sendMessage('Close project data')
         session = ses.Session()
         session.CloseProject()
 
 ###########################
 
+    def StartImportBitmapPanel(self, path):
+        # retrieve DICOM files splited into groups
+        reader = bmp.ProgressBitmapReader()
+        reader.SetWindowEvent(self.frame)
+        reader.SetDirectoryPath(path)
+        Publisher.sendMessage('End busy cursor')
 
     def StartImportPanel(self, path):
 
-        # retrieve DICOM files splited into groups
+        # retrieve DICOM files split into groups
         reader = dcm.ProgressDicomReader()
         reader.SetWindowEvent(self.frame)
         reader.SetDirectoryPath(path)
@@ -321,6 +405,27 @@ class Controller():
         if ok:
             Publisher.sendMessage('Show import panel')
             Publisher.sendMessage("Show import panel in frame")
+            self.img_type = 1
+
+    def OnLoadImportBitmapPanel(self, evt):
+        data = evt.data
+        ok = self.LoadImportBitmapPanel(data)
+        if ok:
+            Publisher.sendMessage('Show import bitmap panel in frame')            
+            self.img_type = 2
+            #Publisher.sendMessage("Show import panel in invesalius.gui.frame") as frame
+
+    def LoadImportBitmapPanel(self, data):
+        #if patient_series and isinstance(patient_series, list):
+            #Publisher.sendMessage("Load import panel", patient_series)
+            #first_patient = patient_series[0]
+            #Publisher.sendMessage("Load bitmap preview", first_patient)
+        if  data:
+            Publisher.sendMessage("Load import bitmap panel", data)
+            return True
+        else:
+            dialog.ImportInvalidFiles("Bitmap")
+        return False
 
 
     def LoadImportPanel(self, patient_series):
@@ -330,37 +435,55 @@ class Controller():
             Publisher.sendMessage("Load dicom preview", first_patient)
             return True
         else:
-            dialog.ImportInvalidFiles()
+            dialog.ImportInvalidFiles("DICOM")
         return False
 
+
+    #----------- to import by command line ---------------------------------------------------
+
     def OnImportMedicalImages(self, pubsub_evt):
         directory = pubsub_evt.data
         self.ImportMedicalImages(directory)
 
     def ImportMedicalImages(self, directory):
-        # OPTION 1: DICOM?
         patients_groups = dcm.GetDicomGroups(directory)
+        name = directory.rpartition('\\')[-1].split('.')
+        print "patients: ", patients_groups
+
         if len(patients_groups):
+            # OPTION 1: DICOM
             group = dcm.SelectLargerDicomGroup(patients_groups)
-            matrix, matrix_filename, dicom = self.OpenDicomGroup(group, 0, [0,0],gui=True)
+            matrix, matrix_filename, dicom = self.OpenDicomGroup(group, 0, [0, 0], gui=True)
             self.CreateDicomProject(dicom, matrix, matrix_filename)
-        # OPTION 2: ANALYZE?
         else:
-            imagedata = analyze.ReadDirectory(directory)
-            if imagedata:
-                self.CreateAnalyzeProject(imagedata)
-            # OPTION 3: Nothing...
+            # OPTION 2: NIfTI, Analyze or PAR/REC
+            if name[-1] == 'gz':
+                name[1] = 'nii.gz'
+
+            suptype = ('hdr', 'nii', 'nii.gz', 'par')
+            filetype = name[1].lower()
+
+            if filetype in suptype:
+                group = oth.ReadOthers(directory)
             else:
                 utils.debug("No medical images found on given directory")
                 return
+
+            matrix, matrix_filename = self.OpenOtherFiles(group)
+            self.CreateOtherProject(str(name[0]), matrix, matrix_filename)
+            # OPTION 4: Nothing...
+
         self.LoadProject()
         Publisher.sendMessage("Enable state project", True)
 
+    #-------------------------------------------------------------------------------------
+
     def LoadProject(self):
         proj = prj.Project()
         
         const.THRESHOLD_OUTVALUE = proj.threshold_range[0]
         const.THRESHOLD_INVALUE = proj.threshold_range[1]
+        const.THRESHOLD_RANGE = proj.threshold_modes[_("Bone")]
 
         const.WINDOW_LEVEL[_('Default')] = (proj.window, proj.level)
         const.WINDOW_LEVEL[_('Manual')] = (proj.window, proj.level)
@@ -395,13 +518,19 @@ class Controller():
                 Publisher.sendMessage('Add mask',
                                            (m.index, m.name,
                                             m.threshold_range, m.colour))
-            self.Slice.current_mask = proj.mask_dict[mask_index]
-            Publisher.sendMessage('Show mask', (mask_index, True))
+                if m.is_shown:
+                    self.Slice.current_mask = proj.mask_dict[mask_index]
+                    Publisher.sendMessage('Show mask', (m.index, True))
+                    Publisher.sendMessage('Change mask selected', m.index)
         else:
             mask_name = const.MASK_NAME_PATTERN % (1,)
-            thresh = const.THRESHOLD_RANGE
-            colour = const.MASK_COLOUR[0]
 
+            if proj.modality != "UNKNOWN":
+                thresh = const.THRESHOLD_RANGE
+            else:
+                thresh = proj.threshold_range
+
+            colour = const.MASK_COLOUR[0]
             Publisher.sendMessage('Create new mask',
                                        (mask_name, thresh, colour))
 
@@ -414,43 +543,6 @@ class Controller():
         
         Publisher.sendMessage('End busy cursor')
 
-    def CreateAnalyzeProject(self, imagedata):
-        header = imagedata.get_header()
-        proj = prj.Project()
-        proj.imagedata = None
-        proj.name = _("Untitled")
-        proj.SetAcquisitionModality("MRI")
-        #TODO: Verify if all Analyse are in AXIAL orientation
-
-        # To get  Z, X, Y (used by InVesaliu), not X, Y, Z
-        matrix, matrix_filename = image_utils.analyze2mmap(imagedata)
-        if header['orient'] == 0:
-            proj.original_orientation =  const.AXIAL
-        elif header['orient'] == 1:
-            proj.original_orientation = const.CORONAL
-        elif header['orient'] == 2:
-            proj.original_orientation = const.SAGITAL
-        else:
-            proj.original_orientation =  const.SAGITAL
-
-        proj.threshold_range = (int(header['glmin']),
-                                int(header['glmax']))
-        proj.window = proj.threshold_range[1] - proj.threshold_range[0]
-        proj.level =  (0.5 * (proj.threshold_range[1] + proj.threshold_range[0]))
-        proj.spacing = header['pixdim'][1:4]
-        proj.matrix_shape = matrix.shape 
-
-        self.Slice = sl.Slice()
-        self.Slice.matrix = matrix
-        self.Slice.matrix_filename = matrix_filename
-
-        self.Slice.window_level = proj.level
-        self.Slice.window_width = proj.window
-        self.Slice.spacing = header.get_zooms()[:3]
-
-        Publisher.sendMessage('Update threshold limits list',
-                                   proj.threshold_range)
-
     def CreateDicomProject(self, dicom, matrix, matrix_filename):
         name_to_const = {"AXIAL":const.AXIAL,
                          "CORONAL":const.CORONAL,
@@ -467,6 +559,8 @@ class Controller():
         proj.dicom_sample = dicom
         proj.original_orientation =\
                     name_to_const[dicom.image.orientation_label]
+        # Forcing to Axial
+        #  proj.original_orientation = const.AXIAL
         proj.window = float(dicom.image.window)
         proj.level = float(dicom.image.level)
         proj.threshold_range = int(matrix.min()), int(matrix.max())
@@ -481,6 +575,161 @@ class Controller():
         dirpath = session.CreateProject(filename)
         #proj.SavePlistProject(dirpath, filename)
 
+
+    def CreateBitmapProject(self, bmp_data, rec_data, matrix, matrix_filename):
+        name_to_const = {"AXIAL":const.AXIAL,
+                         "CORONAL":const.CORONAL,
+                         "SAGITTAL":const.SAGITAL}
+
+        name = rec_data[0]
+        orientation = rec_data[1]
+        sp_x = float(rec_data[2])
+        sp_y = float(rec_data[3])
+        sp_z = float(rec_data[4])
+        interval = int(rec_data[5])
+        
+        bits = bmp_data.GetFirstPixelSize()
+        sx, sy = size =  bmp_data.GetFirstBitmapSize()
+        
+        proj = prj.Project()
+        proj.name = name
+        proj.modality = 'UNKNOWN'
+        proj.SetAcquisitionModality(proj.modality)
+        proj.matrix_shape = matrix.shape
+        proj.matrix_dtype = matrix.dtype.name
+        proj.matrix_filename = matrix_filename
+        #proj.imagedata = imagedata
+        #proj.dicom_sample = dicom
+
+        proj.original_orientation =\
+                    name_to_const[orientation.upper()]
+        proj.window = float(matrix.max())
+        proj.level = float(matrix.max()/4)
+        
+        proj.threshold_range = int(matrix.min()), int(matrix.max())
+        #const.THRESHOLD_RANGE = proj.threshold_range
+
+        proj.spacing = self.Slice.spacing
+
+        ######
+        session = ses.Session()
+        filename = proj.name+".inv3"
+
+        filename = filename.replace("/", "") #Fix problem case other/Skull_DICOM
+
+        dirpath = session.CreateProject(filename)
+
+    def CreateOtherProject(self, name, matrix, matrix_filename):
+        name_to_const = {"AXIAL": const.AXIAL,
+                         "CORONAL": const.CORONAL,
+                         "SAGITTAL": const.SAGITAL}
+
+        proj = prj.Project()
+        proj.name = name
+        proj.modality = 'MRI'
+        proj.SetAcquisitionModality('MRI')
+        proj.matrix_shape = matrix.shape
+        proj.matrix_dtype = matrix.dtype.name
+        proj.matrix_filename = matrix_filename
+
+        # Orientation must be CORONAL in order to as_closes_canonical and
+        # swap axis in img2memmap to work in a standardized way.
+        # TODO: Create standard import image for all acquisition orientations
+        orientation = 'CORONAL'
+
+        proj.original_orientation =\
+            name_to_const[orientation]
+
+        proj.window = self.Slice.window_width
+        proj.level = self.Slice.window_level
+        proj.threshold_range = int(matrix.min()), int(matrix.max())
+        proj.spacing = self.Slice.spacing
+
+        ######
+        session = ses.Session()
+        filename = proj.name + ".inv3"
+
+        filename = filename.replace("/", "")  # Fix problem case other/Skull_DICOM
+
+        dirpath = session.CreateProject(filename)
+
+    def OnOpenBitmapFiles(self, pubsub_evt):
+        rec_data = pubsub_evt.data
+        bmp_data = bmp.BitmapData()
+
+        if bmp_data.IsAllBitmapSameSize():
+
+            matrix, matrix_filename = self.OpenBitmapFiles(bmp_data, rec_data)
+            
+            self.CreateBitmapProject(bmp_data, rec_data, matrix, matrix_filename)
+
+            self.LoadProject()
+            Publisher.sendMessage("Enable state project", True)
+        else:
+            dialogs.BitmapNotSameSize()
+
+    def OpenBitmapFiles(self, bmp_data, rec_data):
+
+       name = rec_data[0]
+       orientation = rec_data[1]
+       sp_x = float(rec_data[2])
+       sp_y = float(rec_data[3])
+       sp_z = float(rec_data[4])
+       interval = int(rec_data[5])
+       
+       interval += 1
+       
+       filelist = bmp_data.GetOnlyBitmapPath()[::interval]
+       bits = bmp_data.GetFirstPixelSize()
+
+       sx, sy = size =  bmp_data.GetFirstBitmapSize()
+       n_slices = len(filelist)
+       resolution_percentage = utils.calculate_resizing_tofitmemory(int(sx), int(sy), n_slices, bits/8)
+       
+       zspacing = sp_z * interval
+       xyspacing = (sp_y, sp_x)
+
+       if resolution_percentage < 1.0:
+
+           re_dialog = dialog.ResizeImageDialog()
+           re_dialog.SetValue(int(resolution_percentage*100))
+           re_dialog_value = re_dialog.ShowModal()
+           re_dialog.Close() 
+           
+           if re_dialog_value == wx.ID_OK:
+               percentage = re_dialog.GetValue()
+               resolution_percentage = percentage / 100.0
+           else:
+               return
+
+           xyspacing = xyspacing[0] / resolution_percentage, xyspacing[1] / resolution_percentage
+ 
+
+       
+       self.matrix, scalar_range, self.filename = image_utils.bitmap2memmap(filelist, size,
+                                                               orientation, (sp_z, sp_y, sp_x),resolution_percentage)
+
+
+       self.Slice = sl.Slice()
+       self.Slice.matrix = self.matrix
+       self.Slice.matrix_filename = self.filename
+
+       if orientation == 'AXIAL':
+           self.Slice.spacing = xyspacing[0], xyspacing[1], zspacing
+       elif orientation == 'CORONAL':
+           self.Slice.spacing = xyspacing[0], zspacing, xyspacing[1]
+       elif orientation == 'SAGITTAL':
+           self.Slice.spacing = zspacing, xyspacing[1], xyspacing[0]
+       
+       self.Slice.window_level = float(self.matrix.max()/4)
+       self.Slice.window_width = float(self.matrix.max())
+
+       scalar_range = int(self.matrix.min()), int(self.matrix.max())
+       Publisher.sendMessage('Update threshold limits list', scalar_range)
+
+       return self.matrix, self.filename#, dicom
+
+
     def OnOpenDicomGroup(self, pubsub_evt):
         group, interval, file_range = pubsub_evt.data
         matrix, matrix_filename, dicom = self.OpenDicomGroup(group, interval, file_range, gui=True)
@@ -488,6 +737,21 @@ class Controller():
         self.LoadProject()
         Publisher.sendMessage("Enable state project", True)
 
+    def OnOpenOtherFiles(self, pubsub_evt):
+        filepath = pubsub_evt.data
+        if not(filepath) == None:
+            name = filepath.rpartition('\\')[-1].split('.')
+
+            group = oth.ReadOthers(filepath)
+            
+            if group:
+                matrix, matrix_filename = self.OpenOtherFiles(group)
+                self.CreateOtherProject(str(name[0]), matrix, matrix_filename)
+                self.LoadProject()
+                Publisher.sendMessage("Enable state project", True)
+            else:
+                dialog.ImportInvalidFiles(ftype="Others")
+
     def OpenDicomGroup(self, dicom_group, interval, file_range, gui=True):
         # Retrieve general DICOM headers
         dicom = dicom_group.GetDicomSample()
@@ -573,6 +837,30 @@ class Controller():
 
         return self.matrix, self.filename, dicom
 
+    def OpenOtherFiles(self, group):
+        # Retreaving matrix from image data
+        self.matrix, scalar_range, self.filename = image_utils.img2memmap(group)
+
+        hdr = group.header
+        hdr.set_data_dtype('int16')
+        dims = hdr.get_zooms()
+        dimsf = tuple([float(s) for s in dims])
+
+        wl = float((scalar_range[0] + scalar_range[1]) * 0.5)
+        ww = float((scalar_range[1] - scalar_range[0]))
+
+        self.Slice = sl.Slice()
+        self.Slice.matrix = self.matrix
+        self.Slice.matrix_filename = self.filename
+
+        self.Slice.spacing = dimsf
+        self.Slice.window_level = wl
+        self.Slice.window_width = ww
+
+        scalar_range = int(scalar_range[0]), int(scalar_range[1])
+        Publisher.sendMessage('Update threshold limits list', scalar_range)
+        return self.matrix, self.filename
+
     def LoadImagedataInfo(self):
         proj = prj.Project()
 
@@ -631,3 +919,6 @@ class Controller():
     def ShowBooleanOpDialog(self, pubsub_evt):
         dlg = dialogs.MaskBooleanDialog(prj.Project().mask_dict)
         dlg.Show()
+
+    def ApplyReorientation(self, pubsub_evt):
+        self.Slice.apply_reorientation()
diff --git a/invesalius/data/bases.py b/invesalius/data/bases.py
index 9e2c3fd..f31a3e6 100644
--- a/invesalius/data/bases.py
+++ b/invesalius/data/bases.py
@@ -1,85 +1,135 @@
-from numpy import *
 from math import sqrt
+import numpy as np
 
-class Bases:
-    
-    def __init__(self, p1, p2, p3):
-                
-        self.p1 = array([p1[0], p1[1], p1[2]])
-        self.p2 = array([p2[0], p2[1], p2[2]])
-        self.p3 = array([p3[0], p3[1], p3[2]])
-        
-        print "p1: ", self.p1
-        print "p2: ", self.p2
-        print "p3: ", self.p3
 
-        self.sub1 = self.p2 - self.p1
-        self.sub2 = self.p3 - self.p1
-        
-    def Basecreation(self):
-        #g1
-        g1 = self.sub1
-        
-        #g2
-        lamb1 = g1[0]*self.sub2[0] + g1[1]*self.sub2[1] + g1[2]*self.sub2[2]
-        lamb2 = dot(g1, g1)
-        lamb = lamb1/lamb2
-        
-        #Ponto q    
-        q = self.p1 + lamb*self.sub1
-         
-        #g1 e g2 com origem em q   
-        g1 = self.p1 - q
-        g2 = self.p3 - q
-        
-        #testa se o g1 nao eh um vetor nulo
-        if g1.any() == False:
-            g1 = self.p2 - q
-            
-        #g3 - Produto vetorial NumPy
-        g3 = cross(g2, g1)
-        
-        #normalizacao dos vetores
-        g1 = g1/sqrt(lamb2)
-        g2 = g2/sqrt(dot(g2, g2))
-        g3 = g3/sqrt(dot(g3, g3))
-            
-        M = matrix([[g1[0],g1[1],g1[2]], [g2[0],g2[1],g2[2]], [g3[0],g3[1],g3[2]]])
-        q.shape = (3, 1)
-        q = matrix(q.copy())
-        print"M: ", M
-        print
-        print"q: ", q
-        print
-        Minv = M.I
-        
-        return M, q, Minv
-    
-def FlipX(point):
-        
-        point = matrix(point + (0,))
-               
-        #inverter o eixo z
-        ## possivel explicacaoo -- origem do eixo do imagedata esta no canto
-        ## superior esquerdo e origem da superfice eh no canto inferior esquerdo
-        ## ou a ordem de empilhamento das fatias
-        
-        point[0, 2] = -point[0, 2]
-        
-        #Flip em y
-        Mrot = matrix([[1.0, 0.0, 0.0, 0.0],
-                             [0.0, -1.0, 0.0, 0.0],
-                             [0.0, 0.0, -1.0, 0.0],
-                             [0.0, 0.0, 0.0, 1.0]])
-        Mtrans = matrix([[1.0, 0, 0, -point[0, 0]],
-                               [0.0, 1.0, 0, -point[0, 1]],
-                               [0.0, 0.0, 1.0, -point[0, 2]],
-                               [0.0, 0.0, 0.0, 1.0]])
-        Mtrans_return = matrix([[1.0, 0, 0, point[0, 0]],
+def angle_calculation(ap_axis, coil_axis):
+    """
+    Calculate angle between two given axis (in degrees)
+
+    :param ap_axis: anterior posterior axis represented
+    :param coil_axis: tms coil axis
+    :return: angle between the two given axes
+    """
+
+    ap_axis = np.array([ap_axis[0], ap_axis[1]])
+    coil_axis = np.array([float(coil_axis[0]), float(coil_axis[1])])
+    angle = np.rad2deg(np.arccos((np.dot(ap_axis, coil_axis))/(
+        np.linalg.norm(ap_axis)*np.linalg.norm(coil_axis))))
+
+    return float(angle)
+
+
+def base_creation(fiducials):
+    """
+    Calculate the origin and matrix for coordinate system
+    transformation.
+    q: origin of coordinate system
+    g1, g2, g3: orthogonal vectors of coordinate system
+
+    :param fiducials: array of 3 rows (p1, p2, p3) and 3 columns (x, y, z) with fiducials coordinates
+    :return: matrix and origin for base transformation
+    """
+
+    p1 = fiducials[0, :]
+    p2 = fiducials[1, :]
+    p3 = fiducials[2, :]
+
+    sub1 = p2 - p1
+    sub2 = p3 - p1
+    lamb = (sub1[0]*sub2[0]+sub1[1]*sub2[1]+sub1[2]*sub2[2])/np.dot(sub1, sub1)
+
+    q = p1 + lamb*sub1
+    g1 = p1 - q
+    g2 = p3 - q
+
+    if not g1.any():
+        g1 = p2 - q
+
+    g3 = np.cross(g2, g1)
+
+    g1 = g1/sqrt(np.dot(g1, g1))
+    g2 = g2/sqrt(np.dot(g2, g2))
+    g3 = g3/sqrt(np.dot(g3, g3))
+
+    m = np.matrix([[g1[0], g1[1], g1[2]],
+                   [g2[0], g2[1], g2[2]],
+                   [g3[0], g3[1], g3[2]]])
+
+    q.shape = (3, 1)
+    q = np.matrix(q.copy())
+    m_inv = m.I
+
+    # print"M: ", m
+    # print"q: ", q
+
+    return m, q, m_inv
+
+
+def calculate_fre(fiducials, minv, n, q1, q2):
+    """
+    Calculate the Fiducial Registration Error for neuronavigation.
+
+    :param fiducials: array of 6 rows (image and tracker fiducials) and 3 columns (x, y, z) with coordinates
+    :param minv: inverse matrix given by base creation
+    :param n: base change matrix given by base creation
+    :param q1: origin of first base
+    :param q2: origin of second base
+    :return: float number of fiducial registration error
+    """
+
+    img = np.zeros([3, 3])
+    dist = np.zeros([3, 1])
+
+    p1 = np.mat(fiducials[3, :]).reshape(3, 1)
+    p2 = np.mat(fiducials[4, :]).reshape(3, 1)
+    p3 = np.mat(fiducials[5, :]).reshape(3, 1)
+
+    img[0, :] = np.asarray((q1 + (minv * n) * (p1 - q2)).reshape(1, 3))
+    img[1, :] = np.asarray((q1 + (minv * n) * (p2 - q2)).reshape(1, 3))
+    img[2, :] = np.asarray((q1 + (minv * n) * (p3 - q2)).reshape(1, 3))
+
+    dist[0] = np.sqrt(np.sum(np.power((img[0, :] - fiducials[0, :]), 2)))
+    dist[1] = np.sqrt(np.sum(np.power((img[1, :] - fiducials[1, :]), 2)))
+    dist[2] = np.sqrt(np.sum(np.power((img[2, :] - fiducials[2, :]), 2)))
+
+    return float(np.sqrt(np.sum(dist ** 2) / 3))
+
+
+def flip_x(point):
+    """
+    Flip coordinates of a vector according to X axis
+    Coronal Images do not require this transformation - 1 tested
+    and for this case, at navigation, the z axis is inverted
+
+    It's necessary to multiply the z coordinate by (-1). Possibly
+    because the origin of coordinate system of imagedata is
+    located in superior left corner and the origin of VTK scene coordinate
+    system (polygonal surface) is in the interior left corner. Second
+    possibility is the order of slice stacking
+
+    :param point: list of coordinates x, y and z
+    :return: flipped coordinates
+    """
+
+    # TODO: check if the Flip function is related to the X or Y axis
+
+    point = np.matrix(point + (0,))
+    point[0, 2] = -point[0, 2]
+
+    m_rot = np.matrix([[1.0, 0.0, 0.0, 0.0],
+                      [0.0, -1.0, 0.0, 0.0],
+                      [0.0, 0.0, -1.0, 0.0],
+                      [0.0, 0.0, 0.0, 1.0]])
+    m_trans = np.matrix([[1.0, 0, 0, -point[0, 0]],
+                        [0.0, 1.0, 0, -point[0, 1]],
+                        [0.0, 0.0, 1.0, -point[0, 2]],
+                        [0.0, 0.0, 0.0, 1.0]])
+    m_trans_return = np.matrix([[1.0, 0, 0, point[0, 0]],
                                [0.0, 1.0, 0, point[0, 1]],
                                [0.0, 0.0, 1.0, point[0, 2]],
                                [0.0, 0.0, 0.0, 1.0]])
         
-        point_rot = point*Mtrans*Mrot*Mtrans_return
-        x, y, z  = point_rot.tolist()[0][:3]
-        return x, y, z
+    point_rot = point*m_trans*m_rot*m_trans_return
+    x, y, z = point_rot.tolist()[0][:3]
+
+    return x, y, z
diff --git a/invesalius/data/co_registration.py b/invesalius/data/co_registration.py
deleted file mode 100644
index 0468748..0000000
--- a/invesalius/data/co_registration.py
+++ /dev/null
@@ -1,65 +0,0 @@
-import threading
-
-import serial
-import wx
-from wx.lib.pubsub import pub as Publisher
-
-from numpy import *
-from math import sqrt
-from time import sleep
-
-class Corregister(threading.Thread):
-    
-    def __init__(self, bases, flag):
-        threading.Thread.__init__(self)
-        self.Minv = bases[0]
-        self.N = bases[1]
-        self.q1 = bases[2]
-        self.q2 = bases[3]
-        self.flag = flag
-        self._pause_ = 0
-        self.start()
-        
-    def stop(self):
-        # Stop neuronavigation
-        self._pause_ = 1
-        
-    def Coordinates(self):        
-        #Get Polhemus points for neuronavigation       
-        ser = serial.Serial(0)
-        ser.write("Y")       
-        ser.write("P")
-        str = ser.readline()
-        ser.write("Y")
-        str = str.replace("\r\n","")
-        str = str.replace("-"," -")
-        aostr = [s for s in str.split()]
-        #aoflt -> 0:letter 1:x 2:y 3:z
-        aoflt = [float(aostr[1]), float(aostr[2]), float(aostr[3]),
-                  float(aostr[4]), float(aostr[5]), float(aostr[6])]      
-        ser.close()
-        
-        #Unit change: inches to millimeters
-        x = 25.4
-        y = 25.4
-        z = -25.4
-
-        coord = (aoflt[0]*x, aoflt[1]*y, aoflt[2]*z)
-        return coord
-       
-    def run(self):
-        while self.flag == True:
-            #Neuronavigation with Polhemus
-            trck = self.Coordinates()
-            tracker = matrix([[trck[0]], [trck[1]], [trck[2]]])            
-            img = self.q1 + (self.Minv*self.N)*(tracker - self.q2)
-            coord = [float(img[0]), float(img[1]), float(img[2])]
-            coord_cam = float(img[0]), float(img[1]), float(img[2])
-            Publisher.sendMessage('Set ball reference position based on bound', coord_cam)
-            Publisher.sendMessage('Set camera in volume', coord_cam)
-            wx.CallAfter(Publisher.sendMessage, 'Render volume viewer')
-            wx.CallAfter(Publisher.sendMessage, 'Co-registered Points', coord)
-            sleep(0.005)
-
-            if self._pause_:
-                return
diff --git a/invesalius/data/converters.py b/invesalius/data/converters.py
index 93df985..1598e27 100644
--- a/invesalius/data/converters.py
+++ b/invesalius/data/converters.py
@@ -22,6 +22,10 @@ import vtk
 from vtk.util import numpy_support
 
 def to_vtk(n_array, spacing, slice_number, orientation):
+
+    if orientation == "SAGITTAL":
+        orientation = "SAGITAL"
+
     try:
         dz, dy, dx = n_array.shape
     except ValueError:
@@ -56,3 +60,25 @@ def to_vtk(n_array, spacing, slice_number, orientation):
     image_copy.DeepCopy(image)
 
     return image_copy
+
+
+def np_rgba_to_vtk(n_array, spacing=(1.0, 1.0, 1.0)):
+    dy, dx, dc = n_array.shape
+    v_image = numpy_support.numpy_to_vtk(n_array.reshape(dy*dx, dc))
+
+    extent = (0, dx -1, 0, dy -1, 0, 0)
+
+    # Generating the vtkImageData
+    image = vtk.vtkImageData()
+    image.SetOrigin(0, 0, 0)
+    image.SetSpacing(spacing)
+    image.SetDimensions(dx, dy, 1)
+    # SetNumberOfScalarComponents and SetScalrType were replaced by
+    # AllocateScalars
+    #  image.SetNumberOfScalarComponents(1)
+    #  image.SetScalarType(numpy_support.get_vtk_array_type(n_array.dtype))
+    image.AllocateScalars(numpy_support.get_vtk_array_type(n_array.dtype), dc)
+    image.SetExtent(extent)
+    image.GetPointData().SetScalars(v_image)
+
+    return image
diff --git a/invesalius/data/coordinates.py b/invesalius/data/coordinates.py
new file mode 100644
index 0000000..5d7f32e
--- /dev/null
+++ b/invesalius/data/coordinates.py
@@ -0,0 +1,280 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+
+from math import sin, cos
+import numpy as np
+
+from time import sleep
+from random import uniform
+from wx.lib.pubsub import pub as Publisher
+
+def GetCoordinates(trck_init, trck_id, ref_mode):
+
+    """
+    Read coordinates from spatial tracking devices using
+
+    :param trck_init: Initialization variable of tracking device and connection type. See tracker.py.
+    :param trck_id: ID of tracking device.
+    :param ref_mode: Single or dynamic reference mode of tracking.
+    :return: array of six coordinates (x, y, z, alpha, beta, gamma)
+    """
+
+    coord = None
+    if trck_id:
+        getcoord = {1: ClaronCoord,
+                    2: PolhemusCoord,
+                    3: PolhemusCoord,
+                    4: PolhemusCoord,
+                    5: DebugCoord}
+        coord = getcoord[trck_id](trck_init, trck_id, ref_mode)
+    else:
+        print "Select Tracker"
+
+    return coord
+
+
+def ClaronCoord(trck_init, trck_id, ref_mode):
+    trck = trck_init[0]
+    scale = np.array([1.0, 1.0, -1.0])
+    coord = None
+    k = 0
+    # TODO: try to replace while and use some Claron internal computation
+
+    if ref_mode:
+        while k < 20:
+            try:
+                trck.Run()
+                probe = np.array([trck.PositionTooltipX1 * scale[0], trck.PositionTooltipY1 * scale[1],
+                                  trck.PositionTooltipZ1 * scale[2], trck.AngleX1, trck.AngleY1, trck.AngleZ1])
+                reference = np.array([trck.PositionTooltipX2 * scale[0], trck.PositionTooltipY2 * scale[1],
+                                      trck.PositionTooltipZ2 * scale[2], trck.AngleX2, trck.AngleY2, trck.AngleZ2])
+                k = 30
+            except AttributeError:
+                k += 1
+                print "wait, collecting coordinates ..."
+        if k == 30:
+            coord = dynamic_reference(probe, reference)
+    else:
+        while k < 20:
+            try:
+                trck.Run()
+                coord = np.array([trck.PositionTooltipX1 * scale[0], trck.PositionTooltipY1 * scale[1],
+                                  trck.PositionTooltipZ1 * scale[2], trck.AngleX1, trck.AngleY1, trck.AngleZ1])
+                k = 30
+            except AttributeError:
+                k += 1
+                print "wait, collecting coordinates ..."
+
+    Publisher.sendMessage('Sensors ID', [trck.probeID, trck.refID])
+
+    return coord
+
+
+def PolhemusCoord(trck, trck_id, ref_mode):
+    coord = None
+
+    if trck[1] == 'serial':
+        coord = PolhemusSerialCoord(trck[0], trck_id, ref_mode)
+
+    elif trck[1] == 'usb':
+        coord = PolhemusUSBCoord(trck[0], trck_id, ref_mode)
+
+    elif trck[1] == 'wrapper':
+        coord = PolhemusWrapperCoord(trck[0], trck_id, ref_mode)
+
+    return coord
+
+
+def PolhemusWrapperCoord(trck, trck_id, ref_mode):
+
+    scale = 25.4 * np.array([1., 1.0, -1.0])
+    coord = None
+
+    if ref_mode:
+        trck.Run()
+        probe = np.array([float(trck.PositionTooltipX1) * scale[0], float(trck.PositionTooltipY1) * scale[1],
+                          float(trck.PositionTooltipZ1) * scale[2], float(trck.AngleX1), float(trck.AngleY1),
+                          float(trck.AngleZ1)])
+        reference = np.array([float(trck.PositionTooltipX2) * scale[0], float(trck.PositionTooltipY2) * scale[1],
+                          float(trck.PositionTooltipZ2) * scale[2], float(trck.AngleX2), float(trck.AngleY2),
+                          float(trck.AngleZ2)])
+
+        if probe.all() and reference.all():
+            coord = dynamic_reference(probe, reference)
+
+    else:
+        trck.Run()
+        coord = np.array([float(trck.PositionTooltipX1) * scale[0], float(trck.PositionTooltipY1) * scale[1],
+                          float(trck.PositionTooltipZ1) * scale[2], float(trck.AngleX1), float(trck.AngleY1),
+                          float(trck.AngleZ1)])
+
+    if trck.StylusButton:
+        Publisher.sendMessage('PLH Stylus Button On')
+
+    return coord
+
+
+def PolhemusUSBCoord(trck, trck_id, ref_mode):
+    endpoint = trck[0][(0, 0)][0]
+    # Tried to write some settings to Polhemus in trackers.py while initializing the device.
+    # TODO: Check if it's working properly.
+    trck.write(0x02, "P")
+    if trck_id == 2:
+        scale = 10. * np.array([1., 1.0, -1.0])
+    else:
+        scale = 25.4 * np.array([1., 1.0, -1.0])
+    coord = None
+
+    if ref_mode:
+
+        data = trck.read(endpoint.bEndpointAddress, 2 * endpoint.wMaxPacketSize)
+        data = str2float(data.tostring())
+
+        # six coordinates of first and second sensor: x, y, z and alfa, beta and gama
+        # jump one element for reference to avoid the sensor ID returned by Polhemus
+        probe = data[0] * scale[0], data[1] * scale[1], data[2] * scale[2], \
+                data[3], data[4], data[5], data[6]
+        reference = data[7] * scale[0], data[8] * scale[1], data[9] * scale[2], data[10], \
+                    data[11], data[12], data[13]
+
+        if probe.all() and reference.all():
+            coord = dynamic_reference(probe, reference)
+
+        return coord
+
+    else:
+        data = trck.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize)
+        coord = str2float(data.tostring())
+
+        coord = np.array((coord[0] * scale[0], coord[1] * scale[1], coord[2] * scale[2],
+                          coord[3], coord[4], coord[5]))
+
+        return coord
+
+
+def PolhemusSerialCoord(trck_init, trck_id, ref_mode):
+    # mudanca para fastrak - ref 1 tem somente x, y, z
+    # aoflt -> 0:letter 1:x 2:y 3:z
+    # this method is not optimized to work with all trackers, only with ISOTRAK
+    # serial connection is obsolete, remove in future
+    trck_init.write("P")
+    lines = trck_init.readlines()
+
+    coord = None
+
+    if lines[0][0] != '0':
+        print "The Polhemus is not connected!"
+    else:
+        for s in lines:
+            if s[1] == '1':
+                data = s
+            elif s[1] == '2':
+                data = s
+
+        # single ref mode
+        if not ref_mode:
+            data = data.replace('-', ' -')
+            data = [s for s in data.split()]
+            j = 0
+            while j == 0:
+                try:
+                    plh1 = [float(s) for s in data[1:len(data)]]
+                    j = 1
+                except:
+                    print "error!!"
+
+            coord = data[0:6]
+    return coord
+
+
+def DebugCoord(trk_init, trck_id, ref_mode):
+    """
+    Method to simulate a tracking device for debug and error check. Generate a random
+    x, y, z, alfa, beta and gama coordinates in interval [1, 200[
+    :param trk_init: tracker initialization instance
+    :param ref_mode: flag for singular of dynamic reference
+    :param trck_id: id of tracking device
+    :return: six coordinates x, y, z, alfa, beta and gama
+    """
+    sleep(0.2)
+    if ref_mode:
+        probe = np.array([uniform(1, 200), uniform(1, 200), uniform(1, 200),
+                          uniform(1, 200), uniform(1, 200), uniform(1, 200)])
+        reference = np.array([uniform(1, 200), uniform(1, 200), uniform(1, 200),
+                              uniform(1, 200), uniform(1, 200), uniform(1, 200)])
+
+        coord = dynamic_reference(probe, reference)
+
+    else:
+        coord = np.array([uniform(1, 200), uniform(1, 200), uniform(1, 200),
+                          uniform(1, 200), uniform(1, 200), uniform(1, 200)])
+
+    Publisher.sendMessage('Sensors ID', [int(uniform(0, 5)), int(uniform(0, 5))])
+
+    return coord
+
+
+def dynamic_reference(probe, reference):
+    """
+    Apply dynamic reference correction to probe coordinates. Uses the alpha, beta and gama
+    rotation angles of reference to rotate the probe coordinate and returns the x, y, z
+    difference between probe and reference. Angles sequences and equation was extracted from
+    Polhemus manual and Attitude matrix in Wikipedia.
+    General equation is:
+    coord = Mrot * (probe - reference)
+    :param probe: sensor one defined as probe
+    :param reference: sensor two defined as reference
+    :return: rotated and translated coordinates
+    """
+    a, b, g = np.radians(reference[3:6])
+
+    vet = probe[0:3] - reference[0:3]
+    vet = np.mat(vet.reshape(3, 1))
+
+    # Attitude Matrix given by Patriot Manual
+    Mrot = np.mat([[cos(a) * cos(b), sin(b) * sin(g) * cos(a) - cos(g) * sin(a),
+                       cos(a) * sin(b) * cos(g) + sin(a) * sin(g)],
+                      [cos(b) * sin(a), sin(b) * sin(g) * sin(a) + cos(g) * cos(a),
+                       cos(g) * sin(b) * sin(a) - sin(g) * cos(a)],
+                      [-sin(b), sin(g) * cos(b), cos(b) * cos(g)]])
+
+    coord_rot = Mrot.T * vet
+    coord_rot = np.squeeze(np.asarray(coord_rot))
+
+    return coord_rot[0], coord_rot[1], coord_rot[2], probe[3], probe[4], probe[5]
+
+
+def str2float(data):
+    """
+    Converts string detected wth Polhemus device to float array of coordinates. THis method applies
+    a correction for the minus sign in string that raises error while splitting the string into coordinates.
+    :param data: string of coordinates read with Polhemus
+    :return: six float coordinates x, y, z, alfa, beta and gama
+    """
+
+    count = 0
+    for i, j in enumerate(data):
+        if j == '-':
+            data = data[:i + count] + ' ' + data[i + count:]
+            count += 1
+
+    data = [s for s in data.split()]
+    data = [float(s) for s in data[1:len(data)]]
+
+    return data
diff --git a/invesalius/data/coregistration.py b/invesalius/data/coregistration.py
new file mode 100644
index 0000000..2098504
--- /dev/null
+++ b/invesalius/data/coregistration.py
@@ -0,0 +1,81 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+
+import threading
+from time import sleep
+
+from numpy import mat
+import wx
+from wx.lib.pubsub import pub as Publisher
+
+import invesalius.data.coordinates as dco
+
+# TODO: Optimize navigation thread. Remove the infinite loop and optimize sleep.
+
+
+class Coregistration(threading.Thread):
+    """
+    Thread to update the coordinates with the fiducial points
+    co-registration method while the Navigation Button is pressed.
+    Sleep function in run method is used to avoid blocking GUI and
+    for better real-time navigation
+    """
+
+    def __init__(self, bases, nav_id, trck_info):
+        threading.Thread.__init__(self)
+        self.bases = bases
+        self.nav_id = nav_id
+        self.trck_info = trck_info
+        self._pause_ = False
+        self.start()
+        
+    def stop(self):
+        self._pause_ = True
+       
+    def run(self):
+        m_inv = self.bases[0]
+        n = self.bases[1]
+        q1 = self.bases[2]
+        q2 = self.bases[3]
+        trck_init = self.trck_info[0]
+        trck_id = self.trck_info[1]
+        trck_mode = self.trck_info[2]
+
+        while self.nav_id:
+            trck_coord = dco.GetCoordinates(trck_init, trck_id, trck_mode)
+            trck_xyz = mat([[trck_coord[0]], [trck_coord[1]], [trck_coord[2]]])
+
+            img = q1 + (m_inv*n)*(trck_xyz - q2)
+
+            coord = (float(img[0]), float(img[1]), float(img[2]), trck_coord[3],
+                     trck_coord[4], trck_coord[5])
+
+            # Tried several combinations and different locations to send the messages,
+            # however only this one does not block the GUI during navigation.
+            wx.CallAfter(Publisher.sendMessage, 'Co-registered points', coord[0:3])
+            wx.CallAfter(Publisher.sendMessage, 'Set camera in volume', coord[0:3])
+
+            # TODO: Optimize the value of sleep for each tracking device.
+            # Debug tracker is not working with 0.175 so changed to 0.2
+            # However, 0.2 is too low update frequency ~5 Hz. Need optimization URGENTLY.
+            #sleep(.3)
+            sleep(0.175)
+
+            if self._pause_:
+                return
diff --git a/invesalius/data/cursor_actors.py b/invesalius/data/cursor_actors.py
index d8f765c..51abea6 100644
--- a/invesalius/data/cursor_actors.py
+++ b/invesalius/data/cursor_actors.py
@@ -21,9 +21,9 @@ import math
 
 import numpy
 import vtk
-import imagedata_utils
-from project import Project
-import constants as const
+import invesalius.data.imagedata_utils as imagedata_utils
+from invesalius.project import Project as project
+import invesalius.constants as const
 
 from vtk.util import numpy_support
 
@@ -241,7 +241,6 @@ class CursorCircle(CursorBase):
         """
         Function to plot the circle
         """
-        print "Building circle cursor", self.orientation
         r = self.radius
         sx, sy, sz = self.spacing
         if self.orientation == 'AXIAL':
@@ -284,12 +283,6 @@ class CursorCircle(CursorBase):
 
             self.mapper.SetOrientation(ORIENTATION[self.orientation])
 
-        print '===================================='
-        print self.orientation
-        print circle_ci.GetSpacing()
-        print xi, xf, yi, yf, zi, zf
-        print '===================================='
-        
     def _calculate_area_pixels(self):
         """
         Return the cursor's pixels.
diff --git a/invesalius/data/cy_mesh.pyx b/invesalius/data/cy_mesh.pyx
new file mode 100644
index 0000000..c89da9d
--- /dev/null
+++ b/invesalius/data/cy_mesh.pyx
@@ -0,0 +1,466 @@
+# distutils: language = c++
+#cython: boundscheck=False
+#cython: wraparound=False
+#cython: initializedcheck=False
+#cython: cdivision=True
+#cython: nonecheck=False
+
+import sys
+import time
+cimport numpy as np
+
+from libc.math cimport sin, cos, acos, exp, sqrt, fabs, M_PI
+from libc.stdlib cimport abs as cabs
+from cython.operator cimport dereference as deref, preincrement as inc
+from libcpp.map cimport map
+from libcpp.unordered_map cimport unordered_map
+from libcpp.set cimport set
+from libcpp.vector cimport vector
+from libcpp.pair cimport pair
+from libcpp cimport bool
+from libcpp.deque cimport deque as cdeque
+from cython.parallel import prange
+
+from cy_my_types cimport vertex_t, normal_t, vertex_id_t
+
+import numpy as np
+import vtk
+
+from vtk.util import numpy_support
+
+ctypedef float weight_t
+
+cdef struct Point:
+    vertex_t x
+    vertex_t y
+    vertex_t z
+
+ctypedef pair[vertex_id_t, vertex_id_t] key
+
+
+cdef class Mesh:
+    cdef vertex_t[:, :] vertices
+    cdef vertex_id_t[:, :] faces
+    cdef normal_t[:, :] normals
+
+    cdef unordered_map[int, vector[vertex_id_t]] map_vface
+    cdef unordered_map[vertex_id_t, int] border_vertices
+
+    cdef bool _initialized
+
+    def __cinit__(self, pd=None, other=None):
+        cdef int i
+        cdef map[key, int] edge_nfaces
+        cdef map[key, int].iterator it
+        if pd:
+            self._initialized = True
+            _vertices = numpy_support.vtk_to_numpy(pd.GetPoints().GetData())
+            _vertices.shape = -1, 3
+
+            _faces = numpy_support.vtk_to_numpy(pd.GetPolys().GetData())
+            _faces.shape = -1, 4
+
+            _normals = numpy_support.vtk_to_numpy(pd.GetCellData().GetArray("Normals"))
+            _normals.shape = -1, 3
+
+            self.vertices = _vertices
+            self.faces = _faces
+            self.normals = _normals
+
+            for i in xrange(_faces.shape[0]):
+                self.map_vface[self.faces[i, 1]].push_back(i)
+                self.map_vface[self.faces[i, 2]].push_back(i)
+                self.map_vface[self.faces[i, 3]].push_back(i)
+
+                edge_nfaces[key(min(self.faces[i, 1], self.faces[i, 2]), max(self.faces[i, 1], self.faces[i, 2]))] += 1
+                edge_nfaces[key(min(self.faces[i, 2], self.faces[i, 3]), max(self.faces[i, 2], self.faces[i, 3]))] += 1
+                edge_nfaces[key(min(self.faces[i, 1], self.faces[i, 3]), max(self.faces[i, 1], self.faces[i, 3]))] += 1
+
+            it = edge_nfaces.begin()
+
+            while it != edge_nfaces.end():
+                if deref(it).second == 1:
+                    self.border_vertices[deref(it).first.first] = 1
+                    self.border_vertices[deref(it).first.second] = 1
+
+                inc(it)
+
+        elif other:
+            _other = <Mesh>other
+            self._initialized = True
+            self.vertices = _other.vertices.copy()
+            self.faces = _other.faces.copy()
+            self.normals = _other.normals.copy()
+            self.map_vface = unordered_map[int, vector[vertex_id_t]](_other.map_vface)
+            self.border_vertices = unordered_map[vertex_id_t, int](_other.border_vertices)
+        else:
+            self._initialized = False
+
+    cdef void copy_to(self, Mesh other):
+        """
+        Copies self content to other.
+        """
+        if self._initialized:
+            other.vertices[:] = self.vertices
+            other.faces[:] = self.faces
+            other.normals[:] = self.normals
+            other.map_vface = unordered_map[int, vector[vertex_id_t]](self.map_vface)
+            other.border_vertices = unordered_map[vertex_id_t, int](self.border_vertices)
+        else:
+            other.vertices = self.vertices.copy()
+            other.faces = self.faces.copy()
+            other.normals = self.normals.copy()
+
+            other.map_vface = self.map_vface
+            other.border_vertices = self.border_vertices
+
+    def to_vtk(self):
+        """
+        Converts Mesh to vtkPolyData.
+        """
+        vertices = np.asarray(self.vertices)
+        faces = np.asarray(self.faces)
+        normals = np.asarray(self.normals)
+
+        points = vtk.vtkPoints()
+        points.SetData(numpy_support.numpy_to_vtk(vertices))
+
+        id_triangles = numpy_support.numpy_to_vtkIdTypeArray(faces)
+        triangles = vtk.vtkCellArray()
+        triangles.SetCells(faces.shape[0], id_triangles)
+
+        pd = vtk.vtkPolyData()
+        pd.SetPoints(points)
+        pd.SetPolys(triangles)
+
+        return pd
+
+    cdef vector[vertex_id_t]* get_faces_by_vertex(self, int v_id) nogil:
+        """
+        Returns the faces whose vertex `v_id' is part.
+        """
+        return &self.map_vface[v_id]
+
+    cdef set[vertex_id_t]* get_ring1(self, vertex_id_t v_id) nogil:
+        """
+        Returns the ring1 of vertex `v_id'
+        """
+        cdef vertex_id_t f_id
+        cdef set[vertex_id_t]* ring1 = new set[vertex_id_t]()
+        cdef vector[vertex_id_t].iterator it = self.map_vface[v_id].begin()
+
+        while it != self.map_vface[v_id].end():
+            f_id = deref(it)
+            inc(it)
+            if self.faces[f_id, 1] != v_id:
+                ring1.insert(self.faces[f_id, 1])
+            if self.faces[f_id, 2] != v_id:
+                ring1.insert(self.faces[f_id, 2])
+            if self.faces[f_id, 3] != v_id:
+                ring1.insert(self.faces[f_id, 3])
+
+        return ring1
+
+    cdef bool is_border(self, vertex_id_t v_id) nogil:
+        """
+        Check if vertex `v_id' is a vertex border.
+        """
+        return self.border_vertices.find(v_id) != self.border_vertices.end()
+
+    cdef vector[vertex_id_t]* get_near_vertices_to_v(self, vertex_id_t v_id, float dmax) nogil:
+        """
+        Returns all vertices with distance at most `d' to the vertex `v_id'
+
+        Params:
+            v_id: id of the vertex
+            dmax: the maximun distance.
+        """
+        cdef vector[vertex_id_t]* idfaces
+        cdef vector[vertex_id_t]* near_vertices = new vector[vertex_id_t]()
+
+        cdef cdeque[vertex_id_t] to_visit
+        cdef unordered_map[vertex_id_t, bool] status_v
+        cdef unordered_map[vertex_id_t, bool] status_f
+
+        cdef vertex_t *vip
+        cdef vertex_t *vjp
+
+        cdef float distance
+        cdef int nf, nid, j
+        cdef vertex_id_t f_id, vj
+
+        vip = &self.vertices[v_id, 0]
+        to_visit.push_back(v_id)
+        while(not to_visit.empty()):
+            v_id = to_visit.front()
+            to_visit.pop_front()
+
+            status_v[v_id] = True
+
+            idfaces = self.get_faces_by_vertex(v_id)
+            nf = idfaces.size()
+
+            for nid in xrange(nf):
+                f_id = deref(idfaces)[nid]
+                if status_f.find(f_id) == status_f.end():
+                    status_f[f_id] = True
+
+                    for j in xrange(3):
+                        vj = self.faces[f_id, j+1]
+                        if status_v.find(vj) == status_v.end():
+                            status_v[vj] = True
+                            vjp = &self.vertices[vj, 0]
+                            distance = sqrt((vip[0] - vjp[0]) * (vip[0] - vjp[0]) \
+                                          + (vip[1] - vjp[1]) * (vip[1] - vjp[1]) \
+                                          + (vip[2] - vjp[2]) * (vip[2] - vjp[2]))
+                            if distance <= dmax:
+                                near_vertices.push_back(vj)
+                                to_visit.push_back(vj)
+
+        return near_vertices
+
+
+cdef vector[weight_t]* calc_artifacts_weight(Mesh mesh, vector[vertex_id_t]& vertices_staircase, float tmax, float bmin) nogil:
+    """
+    Calculate the artifact weight based on distance of each vertex to its
+    nearest staircase artifact vertex.
+
+    Params:
+        mesh: Mesh
+        vertices_staircase: the identified staircase artifact vertices
+        tmax: max distance the vertex must be to its nearest artifact vertex
+              to considered to calculate the weight
+        bmin: The minimun weight.
+    """
+    cdef int vi_id, vj_id, nnv, n_ids, i, j
+    cdef vector[vertex_id_t]* near_vertices
+    cdef weight_t value
+    cdef float d
+    n_ids = vertices_staircase.size()
+
+    cdef vertex_t* vi
+    cdef vertex_t* vj
+    cdef size_t msize
+
+    msize = mesh.vertices.shape[0]
+    cdef vector[weight_t]* weights = new vector[weight_t](msize)
+    weights.assign(msize, bmin)
+
+    for i in prange(n_ids, nogil=True):
+        vi_id = vertices_staircase[i]
+        deref(weights)[vi_id] = 1.0
+
+        vi = &mesh.vertices[vi_id, 0]
+        near_vertices = mesh.get_near_vertices_to_v(vi_id, tmax)
+        nnv = near_vertices.size()
+
+        for j in xrange(nnv):
+            vj_id = deref(near_vertices)[j]
+            vj = &mesh.vertices[vj_id, 0]
+
+            d = sqrt((vi[0] - vj[0]) * (vi[0] - vj[0])\
+                   + (vi[1] - vj[1]) * (vi[1] - vj[1])\
+                   + (vi[2] - vj[2]) * (vi[2] - vj[2]))
+            value = (1.0 - d/tmax) * (1.0 - bmin) + bmin
+
+            if value > deref(weights)[vj_id]:
+                deref(weights)[vj_id] = value
+
+        del near_vertices
+
+    #  for i in xrange(msize):
+        #  if mesh.is_border(i):
+            #  deref(weights)[i] = 0.0
+
+    #  cdef vertex_id_t v0, v1, v2
+    #  for i in xrange(mesh.faces.shape[0]):
+        #  for j in xrange(1, 4):
+            #  v0 = mesh.faces[i, j]
+            #  vi = &mesh.vertices[v0, 0]
+            #  if mesh.is_border(v0):
+                #  deref(weights)[v0] = 0.0
+                #  v1 = mesh.faces[i, (j + 1) % 3 + 1]
+                #  if mesh.is_border(v1):
+                    #  vi = &mesh.vertices[v1, 0]
+                    #  deref(weights)[v0] = 0.0
+
+    return weights
+
+
+cdef inline Point calc_d(Mesh mesh, vertex_id_t v_id) nogil:
+    cdef Point D
+    cdef int nf, f_id, nid
+    cdef float n=0
+    cdef int i
+    cdef vertex_t* vi
+    cdef vertex_t* vj
+    cdef set[vertex_id_t]* vertices
+    cdef set[vertex_id_t].iterator it
+    cdef vertex_id_t vj_id
+
+    D.x = 0.0
+    D.y = 0.0
+    D.z = 0.0
+
+    vertices = mesh.get_ring1(v_id)
+    vi = &mesh.vertices[v_id, 0]
+
+    if mesh.is_border(v_id):
+        it = vertices.begin()
+        while it != vertices.end():
+            vj_id = deref(it)
+            if mesh.is_border(vj_id):
+                vj = &mesh.vertices[vj_id, 0]
+
+                D.x = D.x + (vi[0] - vj[0])
+                D.y = D.y + (vi[1] - vj[1])
+                D.z = D.z + (vi[2] - vj[2])
+                n += 1.0
+
+            inc(it)
+    else:
+        it = vertices.begin()
+        while it != vertices.end():
+            vj_id = deref(it)
+            vj = &mesh.vertices[vj_id, 0]
+
+            D.x = D.x + (vi[0] - vj[0])
+            D.y = D.y + (vi[1] - vj[1])
+            D.z = D.z + (vi[2] - vj[2])
+            n += 1.0
+
+            inc(it)
+
+    del vertices
+
+    D.x = D.x / n
+    D.y = D.y / n
+    D.z = D.z / n
+    return D
+
+cdef vector[vertex_id_t]* find_staircase_artifacts(Mesh mesh, double[3] stack_orientation, double T) nogil:
+    """
+    This function is used to find vertices at staircase artifacts, which are
+    those vertices whose incident faces' orientation differences are
+    greater than T.
+
+    Params:
+        mesh: Mesh
+        stack_orientation: orientation of slice stacking
+        T: Min angle (between vertex faces and stack_orientation) to consider a
+           vertex a staircase artifact.
+    """
+    cdef int nv, nf, f_id, v_id
+    cdef double of_z, of_y, of_x, min_z, max_z, min_y, max_y, min_x, max_x;
+    cdef vector[vertex_id_t]* f_ids
+    cdef normal_t* normal
+
+    cdef vector[vertex_id_t]* output = new vector[vertex_id_t]()
+    cdef int i
+
+    nv = mesh.vertices.shape[0]
+
+    for v_id in xrange(nv):
+        max_z = -10000
+        min_z = 10000
+        max_y = -10000
+        min_y = 10000
+        max_x = -10000
+        min_x = 10000
+
+        f_ids = mesh.get_faces_by_vertex(v_id)
+        nf = deref(f_ids).size()
+
+        for i in xrange(nf):
+            f_id = deref(f_ids)[i]
+            normal = &mesh.normals[f_id, 0]
+
+            of_z = 1 - fabs(normal[0]*stack_orientation[0] + normal[1]*stack_orientation[1] + normal[2]*stack_orientation[2]);
+            of_y = 1 - fabs(normal[0]*0 + normal[1]*1 + normal[2]*0);
+            of_x = 1 - fabs(normal[0]*1 + normal[1]*0 + normal[2]*0);
+
+            if (of_z > max_z):
+                max_z = of_z
+
+            if (of_z < min_z):
+                min_z = of_z
+
+            if (of_y > max_y):
+                max_y = of_y
+
+            if (of_y < min_y):
+                min_y = of_y
+
+            if (of_x > max_x):
+                max_x = of_x
+
+            if (of_x < min_x):
+                min_x = of_x
+
+
+            if ((fabs(max_z - min_z) >= T) or (fabs(max_y - min_y) >= T) or (fabs(max_x - min_x) >= T)):
+                output.push_back(v_id)
+                break
+    return output
+
+
+cdef void taubin_smooth(Mesh mesh, vector[weight_t]& weights, float l, float m, int steps):
+    """
+    Implementation of Taubin's smooth algorithm described in the paper "A
+    Signal Processing Approach To Fair Surface Design". His benefeat is it
+    avoids surface shrinking.
+    """
+    cdef int s, i, nvertices
+    nvertices = mesh.vertices.shape[0]
+    cdef vector[Point] D = vector[Point](nvertices)
+    cdef vertex_t* vi
+    for s in xrange(steps):
+        for i in prange(nvertices, nogil=True):
+            D[i] = calc_d(mesh, i)
+
+        for i in prange(nvertices, nogil=True):
+            mesh.vertices[i, 0] += weights[i]*l*D[i].x;
+            mesh.vertices[i, 1] += weights[i]*l*D[i].y;
+            mesh.vertices[i, 2] += weights[i]*l*D[i].z;
+
+        for i in prange(nvertices, nogil=True):
+            D[i] = calc_d(mesh, i)
+
+        for i in prange(nvertices, nogil=True):
+            mesh.vertices[i, 0] += weights[i]*m*D[i].x;
+            mesh.vertices[i, 1] += weights[i]*m*D[i].y;
+            mesh.vertices[i, 2] += weights[i]*m*D[i].z;
+
+
+def ca_smoothing(Mesh mesh, double T, double tmax, double bmin, int n_iters):
+    """
+    This is a implementation of the paper "Context-aware mesh smoothing for
+    biomedical applications". It can be used to smooth meshes generated by
+    binary images to remove its staircase artifacts and keep the fine features.
+
+    Params:
+        mesh: Mesh
+        T: Min angle (between vertex faces and stack_orientation) to consider a
+           vertex a staircase artifact
+        tmax: max distance the vertex must be to its nearest artifact vertex
+              to considered to calculate the weight
+        bmin: The minimun weight
+        n_iters: Number of iterations.
+    """
+    cdef double[3] stack_orientation = [0.0, 0.0, 1.0]
+
+    t0 = time.time()
+    cdef vector[vertex_id_t]* vertices_staircase =  find_staircase_artifacts(mesh, stack_orientation, T)
+    print "vertices staircase", time.time() - t0
+
+    t0 = time.time()
+    cdef vector[weight_t]* weights = calc_artifacts_weight(mesh, deref(vertices_staircase), tmax, bmin)
+    print "Weights", time.time() - t0
+
+    del vertices_staircase
+
+    t0 = time.time()
+    taubin_smooth(mesh, deref(weights), 0.5, -0.53, n_iters)
+    print "taubin", time.time() - t0
+
+    del weights
diff --git a/invesalius/data/cy_my_types.pxd b/invesalius/data/cy_my_types.pxd
new file mode 100644
index 0000000..13d6c6c
--- /dev/null
+++ b/invesalius/data/cy_my_types.pxd
@@ -0,0 +1,21 @@
+import numpy as np
+cimport numpy as np
+cimport cython
+
+#  ctypedef np.uint16_t image_t
+
+ctypedef fused image_t:
+    np.float64_t
+    np.int16_t
+    np.uint8_t
+
+ctypedef np.uint8_t mask_t
+
+ctypedef np.float32_t vertex_t
+ctypedef np.float32_t normal_t
+
+# To compile in windows 64
+IF UNAME_MACHINE == 'AMD64':
+    ctypedef np.int64_t vertex_id_t
+ELSE:
+    ctypedef np.int_t vertex_id_t
diff --git a/invesalius/data/floodfill.pyx b/invesalius/data/floodfill.pyx
new file mode 100644
index 0000000..6636cc9
--- /dev/null
+++ b/invesalius/data/floodfill.pyx
@@ -0,0 +1,274 @@
+import numpy as np
+cimport numpy as np
+cimport cython
+
+from collections import deque
+
+from cython.parallel import prange
+from libc.math cimport floor, ceil
+from libcpp cimport bool
+from libcpp.deque cimport deque as cdeque
+from libcpp.vector cimport vector
+
+from cy_my_types cimport image_t, mask_t
+
+cdef struct s_coord:
+    int x
+    int y
+    int z
+
+ctypedef s_coord coord
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.wraparound(False)
+ at cython.nonecheck(False)
+ at cython.cdivision(True)
+cdef inline void append_queue(cdeque[int]& stack, int x, int y, int z, int d, int h, int w) nogil:
+    stack.push_back(z*h*w + y*w + x)
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.wraparound(False)
+ at cython.nonecheck(False)
+ at cython.cdivision(True)
+cdef inline void pop_queue(cdeque[int]& stack, int* x, int* y, int* z, int d, int h, int w) nogil:
+    cdef int i = stack.front()
+    stack.pop_front()
+    x[0] = i % w
+    y[0] = (i / w) % h
+    z[0] = i / (h * w)
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+def floodfill(np.ndarray[image_t, ndim=3] data, int i, int j, int k, int v, int fill, np.ndarray[mask_t, ndim=3] out):
+
+    cdef int to_return = 0
+    if out is None:
+        out = np.zeros_like(data)
+        to_return = 1
+
+    cdef int x, y, z
+    cdef int w, h, d
+
+    d = data.shape[0]
+    h = data.shape[1]
+    w = data.shape[2]
+
+    stack = [(i, j, k), ]
+    out[k, j, i] = fill
+
+    while stack:
+        x, y, z = stack.pop()
+
+        if z + 1 < d and data[z + 1, y, x] == v and out[z + 1, y, x] != fill:
+            out[z + 1, y, x] =  fill
+            stack.append((x, y, z + 1))
+
+        if z - 1 >= 0 and data[z - 1, y, x] == v and out[z - 1, y, x] != fill:
+            out[z - 1, y, x] = fill
+            stack.append((x, y, z - 1))
+
+        if y + 1 < h and data[z, y + 1, x] == v and out[z, y + 1, x] != fill:
+            out[z, y + 1, x] = fill
+            stack.append((x, y + 1, z))
+
+        if y - 1 >= 0 and data[z, y - 1, x] == v and out[z, y - 1, x] != fill:
+            out[z, y - 1, x] = fill
+            stack.append((x, y - 1, z))
+
+        if x + 1 < w and data[z, y, x + 1] == v and out[z, y, x + 1] != fill:
+            out[z, y, x + 1] = fill
+            stack.append((x + 1, y, z))
+
+        if x - 1 >= 0 and data[z, y, x - 1] == v and out[z, y, x - 1] != fill:
+            out[z, y, x - 1] = fill
+            stack.append((x - 1, y, z))
+
+    if to_return:
+        return out
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.wraparound(False)
+ at cython.nonecheck(False)
+def floodfill_threshold(np.ndarray[image_t, ndim=3] data, list seeds, int t0, int t1, int fill, np.ndarray[mask_t, ndim=3] strct, np.ndarray[mask_t, ndim=3] out):
+
+    cdef int to_return = 0
+    if out is None:
+        out = np.zeros_like(data)
+        to_return = 1
+
+    cdef int x, y, z
+    cdef int dx, dy, dz
+    cdef int odx, ody, odz
+    cdef int xo, yo, zo
+    cdef int i, j, k
+    cdef int offset_x, offset_y, offset_z
+
+    dz = data.shape[0]
+    dy = data.shape[1]
+    dx = data.shape[2]
+
+    odz = strct.shape[0]
+    ody = strct.shape[1]
+    odx = strct.shape[2]
+
+    cdef cdeque[coord] stack
+    cdef coord c
+
+    offset_z = odz / 2
+    offset_y = ody / 2
+    offset_x = odx / 2
+
+    for i, j, k in seeds:
+        if data[k, j, i] >= t0 and data[k, j, i] <= t1:
+            c.x = i
+            c.y = j
+            c.z = k
+            stack.push_back(c)
+            out[k, j, i] = fill
+
+    with nogil:
+        while stack.size():
+            c = stack.back()
+            stack.pop_back()
+
+            x = c.x
+            y = c.y
+            z = c.z
+
+            out[z, y, x] = fill
+
+            for k in xrange(odz):
+                zo = z + k - offset_z
+                for j in xrange(ody):
+                    yo = y + j - offset_y
+                    for i in xrange(odx):
+                        if strct[k, j, i]:
+                            xo = x + i - offset_x
+                            if 0 <= xo < dx and 0 <= yo < dy and 0 <= zo < dz and out[zo, yo, xo] != fill and t0 <= data[zo, yo, xo] <= t1:
+                                out[zo, yo, xo] = fill
+                                c.x = xo
+                                c.y = yo
+                                c.z = zo
+                                stack.push_back(c)
+
+    if to_return:
+        return out
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.wraparound(False)
+ at cython.nonecheck(False)
+def floodfill_auto_threshold(np.ndarray[image_t, ndim=3] data, list seeds, float p, int fill, np.ndarray[mask_t, ndim=3] out):
+
+    cdef int to_return = 0
+    if out is None:
+        out = np.zeros_like(data)
+        to_return = 1
+
+    cdef cdeque[int] stack
+    cdef int x, y, z
+    cdef int w, h, d
+    cdef int xo, yo, zo
+    cdef int t0, t1
+
+    cdef int i, j, k
+
+    d = data.shape[0]
+    h = data.shape[1]
+    w = data.shape[2]
+
+
+    #  stack = deque()
+
+    x = 0
+    y = 0
+    z = 0
+
+
+    for i, j, k in seeds:
+        append_queue(stack, i, j, k, d, h, w)
+        out[k, j, i] = fill
+        print i, j, k, d, h, w
+
+    with nogil:
+        while stack.size():
+            pop_queue(stack, &x, &y, &z, d, h, w)
+
+            #  print x, y, z, d, h, w
+
+            xo = x
+            yo = y
+            zo = z
+
+            t0 = <int>ceil(data[z, y, x] * (1 - p))
+            t1 = <int>floor(data[z, y, x] * (1 + p))
+
+            if z + 1 < d and data[z + 1, y, x] >= t0 and data[z + 1, y, x] <= t1 and out[zo + 1, yo, xo] != fill:
+                out[zo + 1, yo, xo] =  fill
+                append_queue(stack, x, y, z+1, d, h, w)
+
+            if z - 1 >= 0 and data[z - 1, y, x] >= t0 and data[z - 1, y, x] <= t1 and out[zo - 1, yo, xo] != fill:
+                out[zo - 1, yo, xo] = fill
+                append_queue(stack, x, y, z-1, d, h, w)
+
+            if y + 1 < h and data[z, y + 1, x] >= t0 and data[z, y + 1, x] <= t1 and out[zo, yo + 1, xo] != fill:
+                out[zo, yo + 1, xo] = fill
+                append_queue(stack, x, y+1, z, d, h, w)
+
+            if y - 1 >= 0 and data[z, y - 1, x] >= t0 and data[z, y - 1, x] <= t1 and out[zo, yo - 1, xo] != fill:
+                out[zo, yo - 1, xo] = fill
+                append_queue(stack, x, y-1, z, d, h, w)
+
+            if x + 1 < w and data[z, y, x + 1] >= t0 and data[z, y, x + 1] <= t1 and out[zo, yo, xo + 1] != fill:
+                out[zo, yo, xo + 1] = fill
+                append_queue(stack, x+1, y, z, d, h, w)
+
+            if x - 1 >= 0 and data[z, y, x - 1] >= t0 and data[z, y, x - 1] <= t1 and out[zo, yo, xo - 1] != fill:
+                out[zo, yo, xo - 1] = fill
+                append_queue(stack, x-1, y, z, d, h, w)
+
+    if to_return:
+        return out
+
+
+ at cython.boundscheck(False)
+ at cython.wraparound(False)
+ at cython.nonecheck(False)
+def fill_holes_automatically(np.ndarray[mask_t, ndim=3] mask, np.ndarray[np.uint16_t, ndim=3] labels, unsigned int nlabels, unsigned int max_size):
+    """
+    Fill mask holes automatically. The hole must <= max_size. Return True if any hole were filled.
+    """
+    cdef np.ndarray[np.uint32_t, ndim=1] sizes = np.zeros(shape=(nlabels + 1), dtype=np.uint32)
+    cdef int x, y, z
+    cdef int dx, dy, dz
+    cdef int i
+
+    cdef bool modified = False
+
+    dz = mask.shape[0]
+    dy = mask.shape[1]
+    dx = mask.shape[2]
+
+    for z in xrange(dz):
+        for y in xrange(dy):
+            for x in xrange(dx):
+                sizes[labels[z, y, x]] += 1
+
+    #Checking if any hole will be filled
+    for i in xrange(nlabels + 1):
+        if sizes[i] <= max_size:
+            modified = True
+
+    if not modified:
+        return 0
+
+    for z in prange(dz, nogil=True):
+        for y in xrange(dy):
+            for x in xrange(dx):
+                if sizes[labels[z, y, x]] <= max_size:
+                    mask[z, y, x] = 254
+
+    return modified
diff --git a/invesalius/data/geometry.py b/invesalius/data/geometry.py
new file mode 100644
index 0000000..ca5006a
--- /dev/null
+++ b/invesalius/data/geometry.py
@@ -0,0 +1,606 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br / 
+#               http://www.cti.gov.br/invesalius
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+
+import numpy as np
+import math
+import vtk
+from wx.lib.pubsub import pub as Publisher
+
+import invesalius.utils as utils
+import invesalius.constants as const
+
+
+class Box(object):
+    """
+    This class is a data structure for storing the 
+    coordinates (min and max) of box used in crop-mask.
+    """
+
+    __metaclass__= utils.Singleton
+
+    def __init__(self):
+        self.xi = None
+        self.xf = None
+
+        self.yi = None
+        self.yf = None
+
+        self.zi = None
+        self.zf = None
+
+        self.size_x = None
+        self.size_y = None
+        self.size_z = None
+
+        self.sagital = {}
+        self.coronal = {}
+        self.axial = {}
+
+        self.xs = None
+        self.ys = None
+        self.zs = None
+
+        self.first_run = True
+
+    def SetX(self, i, f):
+        self.xi = i
+        self.xf = f
+        self.size_x = f 
+
+    def SetY(self, i, f):
+        self.yi = i
+        self.yf = f
+        self.size_y = f
+
+    def SetZ(self, i, f):
+        self.zi = i
+        self.zf = f
+        self.size_z = f
+
+    def SetSpacing(self, x, y, z):
+        self.xs = x 
+        self.ys = y
+        self.zs = z
+
+        self.xi = self.xi * self.xs
+        self.xf = self.xf * self.xs
+
+        self.yi = self.yi * self.ys
+        self.yf = self.yf * self.ys
+
+        self.zi = self.zi * self.zs
+        self.zf = self.zf * self.zs
+
+        self.size_x = self.size_x * self.xs
+        self.size_y = self.size_y * self.ys
+        self.size_z = self.size_z * self.zs
+
+        if self.first_run:
+            self.first_run = False
+
+    def MakeMatrix(self):
+        """
+        Update values in a matrix to each orientation.
+        """
+
+        self.sagital[const.SAGITAL_LEFT] = [[self.xi, self.yi - (self.ys/2), self.zi],\
+                                            [self.xi, self.yi - (self.ys/2), self.zf]]
+
+        self.sagital[const.SAGITAL_RIGHT] = [[self.xi, self.yf + (self.ys/2), self.zi],\
+                                             [self.xi, self.yf + (self.ys/2), self.zf]]
+
+        self.sagital[const.SAGITAL_BOTTOM] = [[self.xi, self.yi, self.zi - (self.zs/2)],\
+                                              [self.xi, self.yf, self.zi - (self.zs/2)]]
+
+        self.sagital[const.SAGITAL_UPPER] =  [[self.xi, self.yi, self.zf + (self.zs/2) ],\
+                                              [self.xi, self.yf, self.zf + (self.zs/2) ]]
+
+        self.coronal[const.CORONAL_BOTTOM] = [[self.xi, self.yi, self.zi - (self.zs/2)],\
+                                              [self.xf, self.yf, self.zi - (self.zs/2)]]
+
+        self.coronal[const.CORONAL_UPPER] = [[self.xi, self.yi, self.zf + (self.zs/2)],\
+                                             [self.xf, self.yf, self.zf + (self.zs/2)]]
+
+        self.coronal[const.CORONAL_LEFT] = [[self.xi  - (self.xs/2), self.yi, self.zi],\
+                                            [self.xi  - (self.xs/2), self.yf, self.zf]]
+        
+        self.coronal[const.CORONAL_RIGHT] = [[self.xf  + (self.xs/2), self.yi, self.zi],\
+                                             [self.xf  + (self.xs/2), self.yf, self.zf]]
+
+        self.axial[const.AXIAL_BOTTOM] = [[self.xi, self.yi - (self.ys/2), self.zi],\
+                                          [self.xf, self.yi - (self.ys/2), self.zf]]
+
+        self.axial[const.AXIAL_UPPER] = [[self.xi, self.yf + (self.ys/2), self.zi],\
+                                         [self.xf, self.yf + (self.ys/2), self.zf]]
+
+        self.axial[const.AXIAL_LEFT] = [[self.xi - (self.xs/2), self.yi, self.zi],\
+                                        [self.xi - (self.xs/2), self.yf, self.zf]]
+
+        self.axial[const.AXIAL_RIGHT] = [[self.xf + (self.xs/2), self.yi, self.zi],\
+                                         [self.xf + (self.xs/2), self.yf, self.zf]]
+
+        Publisher.sendMessage('Update crop limits into gui', self.GetLimits())
+
+
+    def GetLimits(self):
+        """
+        Return the bounding box limits (initial and final) in x, y and z.
+        """
+
+        limits = [ int(self.xi / self.xs), int(self.xf / self. xs),\
+                   int(self.yi / self.ys), int(self.yf / self.ys),\
+                   int(self.zi / self.zs), int(self.zf / self.zs)]
+
+        return limits
+    
+    
+    def UpdatePositionBySideBox(self, pc, axis, position):
+        """
+        Checks the coordinates are in any side of box and update it. 
+        Is necessary to move limits of box.
+        """        
+        
+        if axis == "AXIAL":
+            if position == const.AXIAL_UPPER:
+                if pc[1] > self.yi and pc[1] > 0 and pc[1] <= self.size_y:
+                    self.yf = pc[1]
+
+            if position == const.AXIAL_BOTTOM:
+                if pc[1] < self.yf and pc[1] >= 0:
+                    self.yi = pc[1]
+
+            if position == const.AXIAL_LEFT:
+                if pc[0] < self.xf and pc[0] >= 0: 
+                    self.xi = pc[0]
+
+                
+            if position == const.AXIAL_RIGHT:
+                if pc[0] > self.xi and pc[0] <= self.size_x:
+                    self.xf = pc[0]
+
+
+        if axis == "SAGITAL":
+            if position == const.SAGITAL_UPPER:
+                if pc[2] > self.zi and pc[2] > 0 and pc[2] <= self.size_z:
+                    self.zf = pc[2]
+
+            if position == const.SAGITAL_BOTTOM:
+                if pc[2] < self.zf and pc[2] >= 0:
+                    self.zi = pc[2]
+
+            if position == const.SAGITAL_LEFT:
+                if pc[1] < self.yf and pc[1] >= 0: 
+                    self.yi = pc[1]
+
+            if position == const.SAGITAL_RIGHT:
+                if pc[1] > self.yi and pc[1] <= self.size_y:
+                    self.yf = pc[1]
+
+
+        if axis == "CORONAL":
+            if position == const.CORONAL_UPPER:
+                if pc[2] > self.zi and pc[2] > 0 and pc[2] <= self.size_z:
+                    self.zf = pc[2]
+
+            if position == const.CORONAL_BOTTOM:
+                if pc[2] < self.zf and pc[2] >= 0:
+                    self.zi = pc[2]
+
+            if position == const.CORONAL_LEFT:
+                if pc[0] < self.xf and pc[0] >= 0: 
+                    self.xi = pc[0]
+                
+            if position == const.CORONAL_RIGHT:
+                if pc[0] > self.yi and pc[0] <= self.size_y:
+                    self.xf = pc[0]             
+
+        self.MakeMatrix()
+
+
+    def UpdatePositionByInsideBox(self, pc, axis):
+        """
+        Checks the coordinates are inside the box and update it. 
+        Is necessary to move box in pan event.
+        """
+
+        if axis == "AXIAL":
+
+            if self.yf + pc[1] <= self.size_y and self.yi + pc[1] >= 0:
+                self.yf = self.yf + pc[1]
+                self.yi = self.yi + pc[1]
+
+            if self.xf + pc[0] <= self.size_x and self.xi + pc[0] >= 0:
+                self.xf = self.xf + pc[0]
+                self.xi = self.xi + pc[0]
+
+        if axis == "SAGITAL":
+
+            if self.yf + pc[1] <= self.size_y and self.yi + pc[1] >= 0:
+                self.yf = self.yf + pc[1]
+                self.yi = self.yi + pc[1]
+
+            if self.zf + pc[2] <= self.size_z and self.zi + pc[2] >= 0:
+                self.zf = self.zf + pc[2]
+                self.zi = self.zi + pc[2]
+
+        if axis == "CORONAL":
+
+            if self.xf + pc[0] <= self.size_x and self.xi + pc[0] >= 0:
+                self.xf = self.xf + pc[0]
+                self.xi = self.xi + pc[0]
+
+            if self.zf + pc[2] <= self.size_z and self.zi + pc[2] >= 0:
+                self.zf = self.zf + pc[2]
+                self.zi = self.zi + pc[2]
+
+        self.MakeMatrix()
+
+
+
+class DrawCrop2DRetangle():
+    """
+    This class is responsible for draw and control user 
+    interactions with the box. Each side of box is displayed in an 
+    anatomical orientation (axial, sagital or coronal).
+    """
+    def __init__(self):
+        self.viewer = None
+        self.points_in_display = {}
+        self.box = None
+        self.mouse_pressed = False
+        self.canvas = None
+        self.status_move = None
+        self.crop_pan = None
+        self.last_x = 0
+        self.last_y = 0
+        self.last_z = 0
+
+    def MouseMove(self, x, y):
+
+        self.MouseInLine(x, y)
+
+        x_pos_sl_, y_pos_sl_ = self.viewer.get_slice_pixel_coord_by_screen_pos(x, y)
+        slice_spacing = self.viewer.slice_.spacing
+        xs, ys, zs = slice_spacing
+        
+        x_pos_sl = x_pos_sl_ * xs
+        y_pos_sl = y_pos_sl_ * ys
+
+        x, y, z = self.viewer.get_voxel_coord_by_screen_pos(x, y)
+
+        if self.viewer.orientation == "AXIAL":
+            
+            if self.status_move == const.AXIAL_UPPER or\
+                    self.status_move == const.AXIAL_BOTTOM:
+                Publisher.sendMessage('Set interactor resize NS cursor')
+            elif self.status_move == const.AXIAL_LEFT or\
+                    self.status_move == const.AXIAL_RIGHT:
+                Publisher.sendMessage('Set interactor resize WE cursor')
+            elif self.crop_pan == const.CROP_PAN:
+                Publisher.sendMessage('Set interactor resize NSWE cursor')
+            else:
+                Publisher.sendMessage('Set interactor default cursor')
+
+        if self.viewer.orientation == "SAGITAL":
+            if self.status_move == const.SAGITAL_UPPER or\
+                    self.status_move == const.SAGITAL_BOTTOM:
+                Publisher.sendMessage('Set interactor resize NS cursor')
+            elif self.status_move == const.SAGITAL_LEFT or\
+                    self.status_move == const.SAGITAL_RIGHT:
+                Publisher.sendMessage('Set interactor resize WE cursor')
+            elif self.crop_pan == const.CROP_PAN:
+                Publisher.sendMessage('Set interactor resize NSWE cursor')
+            else:
+                Publisher.sendMessage('Set interactor default cursor')
+
+        if self.viewer.orientation == "CORONAL":
+            if self.status_move == const.CORONAL_UPPER or\
+                    self.status_move == const.CORONAL_BOTTOM:
+                Publisher.sendMessage('Set interactor resize NS cursor')
+            elif self.status_move == const.CORONAL_LEFT or\
+                    self.status_move == const.CORONAL_RIGHT:
+                Publisher.sendMessage('Set interactor resize WE cursor')
+            elif self.crop_pan == const.CROP_PAN:
+                Publisher.sendMessage('Set interactor resize NSWE cursor')
+            else:
+                Publisher.sendMessage('Set interactor default cursor')
+        
+        if self.mouse_pressed and self.status_move:
+            self.box.UpdatePositionBySideBox((x * xs, y * ys, z * zs),\
+                                    self.viewer.orientation, self.status_move)
+
+        nv_x = x - self.last_x
+        nv_y = y - self.last_y
+        nv_z = z - self.last_z
+
+        if self.mouse_pressed and self.crop_pan:
+            self.box.UpdatePositionByInsideBox((nv_x * xs, nv_y * ys, nv_z * zs),\
+                                    self.viewer.orientation)
+
+        self.last_x = x
+        self.last_y = y
+        self.last_z = z
+
+        Publisher.sendMessage('Redraw canvas')
+
+    def ReleaseLeft(self):
+        self.status_move = None
+
+    def LeftPressed(self, x, y):
+        self.mouse_pressed = True
+
+    def MouseInLine(self, x, y):
+        x_pos_sl_, y_pos_sl_ = self.viewer.get_slice_pixel_coord_by_screen_pos(x, y)
+
+        slice_spacing = self.viewer.slice_.spacing
+        xs, ys, zs = slice_spacing
+        
+        if self.viewer.orientation == "AXIAL":
+            x_pos_sl = x_pos_sl_ * xs
+            y_pos_sl = y_pos_sl_ * ys
+
+            for k, p in self.box.axial.iteritems():
+                p0 = p[0]
+                p1 = p[1]
+
+                dist = self.distance_from_point_line((p0[0], p0[1]),\
+                                                     (p1[0], p1[1]),\
+                                                     (x_pos_sl, y_pos_sl))
+
+                if dist <= 2:
+                    if self.point_between_line(p0, p1, (x_pos_sl, y_pos_sl), "AXIAL"):
+                        self.status_move = k
+                        break
+
+                if self.point_into_box(p0, p1, (x_pos_sl, y_pos_sl), "AXIAL")\
+                        and self.status_move == None:
+                    self.crop_pan = const.CROP_PAN
+                    #break
+                else:
+                    if self.crop_pan:
+                        self.crop_pan = None
+                        break
+
+                if not (self.mouse_pressed) and k != self.status_move:
+                    self.status_move = None
+
+
+        if self.viewer.orientation == "CORONAL":
+            x_pos_sl = x_pos_sl_ * xs
+            y_pos_sl = y_pos_sl_ * zs
+            
+            for k, p in self.box.coronal.iteritems():
+                p0 = p[0]
+                p1 = p[1]
+
+                dist = self.distance_from_point_line((p0[0], p0[2]),\
+                                                     (p1[0], p1[2]),\
+                                                     (x_pos_sl, y_pos_sl))
+                if dist <= 2:
+                    if self.point_between_line(p0, p1, (x_pos_sl, y_pos_sl), "CORONAL"):
+                        self.status_move = k
+                        break
+
+                if self.point_into_box(p0, p1, (x_pos_sl, y_pos_sl), "CORONAL")\
+                        and self.status_move == None:
+                    self.crop_pan = const.CROP_PAN
+                    #break
+                else:
+                    if self.crop_pan:
+                        self.crop_pan = None
+                        break
+
+                if not (self.mouse_pressed) and k != self.status_move:
+                    self.status_move = None
+
+
+        if self.viewer.orientation == "SAGITAL":
+            x_pos_sl = x_pos_sl_ * ys
+            y_pos_sl = y_pos_sl_ * zs
+
+            for k, p in self.box.sagital.iteritems():
+                p0 = p[0]
+                p1 = p[1]
+
+                dist = self.distance_from_point_line((p0[1], p0[2]),\
+                                                     (p1[1], p1[2]),\
+                                                     (x_pos_sl, y_pos_sl))
+
+                if dist <= 2:
+                    if self.point_between_line(p0, p1, (x_pos_sl, y_pos_sl), "SAGITAL"):
+                        self.status_move = k
+                        break
+
+                if self.point_into_box(p0, p1, (x_pos_sl, y_pos_sl), "SAGITAL")\
+                        and self.status_move == None:
+                    self.crop_pan = const.CROP_PAN
+                    #break
+                else:
+                    if self.crop_pan:
+                        self.crop_pan = None
+                        break
+
+                if not (self.mouse_pressed) and k != self.status_move:
+                    self.status_move = None
+
+
+
+    def draw_to_canvas(self, gc, canvas):
+        """
+        Draws to an wx.GraphicsContext.
+
+        Parameters:
+            gc: is a wx.GraphicsContext
+            canvas: the canvas it's being drawn.
+        """
+        self.canvas = canvas
+        self.UpdateValues(canvas)
+
+    def point_into_box(self, p1, p2, pc, axis):
+
+        if axis == "AXIAL":
+            if pc[0] > self.box.xi + 10 and pc[0] < self.box.xf - 10\
+                    and pc[1] - 10 > self.box.yi and pc[1] < self.box.yf - 10:   
+                return True
+            else:
+                return False
+
+        if axis == "SAGITAL":
+            if pc[0] > self.box.yi + 10 and pc[0] < self.box.yf - 10\
+                    and pc[1] - 10 > self.box.zi and pc[1] < self.box.zf - 10:   
+                return True
+            else:
+                return False
+
+        if axis == "CORONAL":
+            if pc[0] > self.box.xi + 10 and pc[0] < self.box.xf - 10\
+                    and pc[1] - 10 > self.box.zi and pc[1] < self.box.zf - 10:   
+                return True
+            else:
+                return False
+
+
+    def point_between_line(self, p1, p2, pc, axis):
+        """
+        Checks whether a point is in the line limits 
+        """
+
+        if axis == "AXIAL":
+            if p1[0] < pc[0] and p2[0] > pc[0]: #x axis
+                return True
+            elif p1[1] < pc[1] and p2[1] > pc[1]: #y axis
+                return True
+            else:
+                return False
+        elif axis == "SAGITAL":
+            if p1[1] < pc[0] and p2[1] > pc[0]: #y axis
+                return True
+            elif p1[2] < pc[1] and p2[2] > pc[1]: #z axis
+                return True
+            else:
+                return False
+        elif axis == "CORONAL":
+            if p1[0] < pc[0] and p2[0] > pc[0]: #x axis
+                return True
+            elif p1[2] < pc[1] and p2[2] > pc[1]: #z axis
+                return True
+            else:
+                return False
+
+
+    def distance_from_point_line(self, p1, p2, pc):
+        """
+        Calculate the distance from point pc to a line formed by p1 and p2.
+        """
+
+        #TODO: Same function into clut_raycasting
+        # Create a function to organize it.
+
+        # Create a vector pc-p1 and p2-p1
+        A = np.array(pc) - np.array(p1)
+        B = np.array(p2) - np.array(p1)
+        # Calculate the size from those vectors
+        len_A = np.linalg.norm(A)
+        len_B = np.linalg.norm(B)
+        # calculate the angle theta (in radians) between those vector
+        theta = math.acos(np.dot(A, B) / (len_A * len_B))
+        # Using the sin from theta, calculate the adjacent leg, which is the
+        # distance from the point to the line
+        distance = math.sin(theta) * len_A
+        return distance
+
+
+    def Coord3DtoDisplay(self, x, y, z, canvas):
+
+        coord = vtk.vtkCoordinate()
+        coord.SetValue(x, y, z)
+        cx, cy = coord.GetComputedDisplayValue(canvas.evt_renderer)
+ 
+        return (cx, cy)
+
+    def MakeBox(self):
+
+        slice_size = self.viewer.slice_.matrix.shape
+        zf, yf, xf = slice_size[0] - 1, slice_size[1] - 1, slice_size[2] - 1
+        
+        slice_spacing = self.viewer.slice_.spacing
+        xs, ys, zs = slice_spacing
+
+        self.box = box = Box()
+
+        if self.box.first_run:
+            box.SetX(0, xf)
+            box.SetY(0, yf)
+            box.SetZ(0, zf)
+            box.SetSpacing(xs, ys, zs)
+            box.MakeMatrix()
+
+
+    def UpdateValues(self, canvas):
+
+        box = self.box
+        slice_number = self.viewer.slice_data.number 
+
+        slice_spacing = self.viewer.slice_.spacing
+        xs, ys, zs = slice_spacing
+        
+        if canvas.orientation == "AXIAL":
+            for points in box.axial.values():
+                pi_x, pi_y, pi_z = points[0]
+                pf_x, pf_y, pf_z = points[1]
+
+                s_cxi, s_cyi = self.Coord3DtoDisplay(pi_x, pi_y, pi_z, canvas)
+                s_cxf, s_cyf = self.Coord3DtoDisplay(pf_x, pf_y, pf_z ,canvas)
+
+                sn = slice_number * zs
+                if sn >= box.zi and sn <= box.zf:
+                    canvas.draw_line((s_cxi, s_cyi),(s_cxf, s_cyf), colour=(255,255,255,255))
+ 
+        elif canvas.orientation == "CORONAL":
+            for points in box.coronal.values():
+                pi_x, pi_y, pi_z = points[0]
+                pf_x, pf_y, pf_z = points[1]
+
+                s_cxi, s_cyi = self.Coord3DtoDisplay(pi_x, pi_y, pi_z, canvas)
+                s_cxf, s_cyf = self.Coord3DtoDisplay(pf_x, pf_y, pf_z ,canvas)
+
+                sn = slice_number * ys
+
+                if sn >= box.yi and sn <= box.yf:
+                    canvas.draw_line((s_cxi, s_cyi),(s_cxf, s_cyf), colour=(255,255,255,255))
+
+        elif canvas.orientation == "SAGITAL":
+            for points in box.sagital.values():
+                
+                pi_x, pi_y, pi_z = points[0]
+                pf_x, pf_y, pf_z = points[1]
+
+                s_cxi, s_cyi = self.Coord3DtoDisplay(pi_x, pi_y, pi_z, canvas)
+                s_cxf, s_cyf = self.Coord3DtoDisplay(pf_x, pf_y, pf_z ,canvas)
+
+                sn = slice_number * xs
+                if sn >= box.xi and sn <= box.xf:
+                    canvas.draw_line((s_cxi, s_cyi),(s_cxf, s_cyf), colour=(255,255,255,255))
+
+
+    def SetViewer(self, viewer):
+        self.viewer = viewer
+        self.MakeBox()
+
diff --git a/invesalius/data/imagedata_utils.py b/invesalius/data/imagedata_utils.py
index 0ba01a1..55e3a90 100644
--- a/invesalius/data/imagedata_utils.py
+++ b/invesalius/data/imagedata_utils.py
@@ -30,10 +30,11 @@ from wx.lib.pubsub import pub as Publisher
 from scipy.ndimage import shift
 from vtk.util import numpy_support
 
-import constants as const
-from data import vtk_utils
-import utils
-
+import invesalius.constants as const
+from invesalius.data import vtk_utils as vtk_utils
+import invesalius.reader.bitmap_reader as bitmap_reader
+import invesalius.utils as utils
+import invesalius.data.converters as converters
 # TODO: Test cases which are originally in sagittal/coronal orientation
 # and have gantry
 
@@ -226,7 +227,7 @@ def CreateImageData(filelist, zspacing, xyspacing,size,
     message = _("Generating multiplanar visualization...")
 
     if not const.VTK_WARNING:
-        log_path = os.path.join(const.LOG_FOLDER, 'vtkoutput.txt')
+        log_path = os.path.join(const.USER_LOG_DIR, 'vtkoutput.txt')
         fow = vtk.vtkFileOutputWindow()
         fow.SetFileName(log_path)
         ow = vtk.vtkOutputWindow()
@@ -331,7 +332,7 @@ class ImageCreator:
         message = _("Generating multiplanar visualization...")
 
         if not const.VTK_WARNING:
-            log_path = os.path.join(const.LOG_FOLDER, 'vtkoutput.txt')
+            log_path = os.path.join(const.USER_LOG_DIR, 'vtkoutput.txt')
             fow = vtk.vtkFileOutputWindow()
             fow.SetFileName(log_path)
             ow = vtk.vtkOutputWindow()
@@ -416,7 +417,7 @@ class ImageCreator:
 
         return imagedata
 
-def dcm2memmap(files, slice_size, orientation, resolution_percentage):
+def bitmap2memmap(files, slice_size, orientation, spacing, resolution_percentage):
     """
     From a list of dicom files it creates memmap file in the temp folder and
     returns it and its related filename.
@@ -428,10 +429,10 @@ def dcm2memmap(files, slice_size, orientation, resolution_percentage):
 
     if orientation == 'SAGITTAL':
         if resolution_percentage == 1.0:
-            shape = slice_size[0], slice_size[1], len(files)
+            shape = slice_size[1], slice_size[0], len(files)
         else:
-            shape = math.ceil(slice_size[0]*resolution_percentage),\
-                    math.ceil(slice_size[1]*resolution_percentage), len(files)
+            shape = math.ceil(slice_size[1]*resolution_percentage),\
+                    math.ceil(slice_size[0]*resolution_percentage), len(files)
 
     elif orientation == 'CORONAL':
         if resolution_percentage == 1.0:
@@ -446,6 +447,106 @@ def dcm2memmap(files, slice_size, orientation, resolution_percentage):
             shape = len(files), math.ceil(slice_size[1]*resolution_percentage),\
                                         math.ceil(slice_size[0]*resolution_percentage)
 
+
+    if resolution_percentage == 1.0:
+        matrix = numpy.memmap(temp_file, mode='w+', dtype='int16', shape=shape)
+    
+    cont = 0
+    max_scalar = None
+    min_scalar = None
+
+    xy_shape = None
+    first_resample_entry = False
+
+    for n, f in enumerate(files):
+        image_as_array = bitmap_reader.ReadBitmap(f)
+
+        image = converters.to_vtk(image_as_array, spacing=spacing,\
+                                    slice_number=1, orientation=orientation.upper())
+
+        if resolution_percentage != 1.0:
+            
+            
+            image_resized = ResampleImage2D(image, px=None, py=None,\
+                                resolution_percentage = resolution_percentage, update_progress = None)
+
+            yx_shape = image_resized.GetDimensions()[1], image_resized.GetDimensions()[0]
+
+
+            if not(first_resample_entry):
+                shape = shape[0], yx_shape[0], yx_shape[1] 
+                matrix = numpy.memmap(temp_file, mode='w+', dtype='int16', shape=shape)
+                first_resample_entry = True
+
+            image = image_resized
+
+        min_aux, max_aux = image.GetScalarRange()
+        if min_scalar is None or min_aux < min_scalar:
+            min_scalar = min_aux
+
+        if max_scalar is None or max_aux > max_scalar:
+            max_scalar = max_aux
+
+        array = numpy_support.vtk_to_numpy(image.GetPointData().GetScalars())
+
+        if array.dtype == 'uint16':
+            array = array - 32768/2
+       
+        array = array.astype("int16")
+
+        if orientation == 'CORONAL':
+            array.shape = matrix.shape[0], matrix.shape[2]
+            matrix[:, n, :] = array[:,::-1]
+        elif orientation == 'SAGITTAL':
+            array.shape = matrix.shape[0], matrix.shape[1]
+            # TODO: Verify if it's necessary to add the slices swapped only in
+            # sagittal rmi or only in # Rasiane's case or is necessary in all
+            # sagittal cases.
+            matrix[:, :, n] = array[:,::-1]
+        else:
+            array.shape = matrix.shape[1], matrix.shape[2]
+            matrix[n] = array
+        
+        update_progress(cont,message)
+        cont += 1
+
+    matrix.flush()
+    scalar_range = min_scalar, max_scalar
+
+    return matrix, scalar_range, temp_file
+
+
+
+def dcm2memmap(files, slice_size, orientation, resolution_percentage):
+    """
+    From a list of dicom files it creates memmap file in the temp folder and
+    returns it and its related filename.
+    """
+    message = _("Generating multiplanar visualization...")
+    update_progress= vtk_utils.ShowProgress(len(files) - 1, dialog_type = "ProgressDialog")
+
+    temp_file = tempfile.mktemp()
+
+    if orientation == 'SAGITTAL':
+        if resolution_percentage == 1.0:
+            shape = slice_size[0], slice_size[1], len(files)
+        else:
+            shape = int(math.ceil(slice_size[0]*resolution_percentage)),\
+                    int(math.ceil(slice_size[1]*resolution_percentage)), len(files)
+
+    elif orientation == 'CORONAL':
+        if resolution_percentage == 1.0:
+            shape = slice_size[1], len(files), slice_size[0]
+        else:
+            shape = int(math.ceil(slice_size[1]*resolution_percentage)), len(files),\
+                                        int(math.ceil(slice_size[0]*resolution_percentage))
+    else:
+        if resolution_percentage == 1.0:
+            shape = len(files), slice_size[1], slice_size[0]
+        else:
+            shape = len(files), int(math.ceil(slice_size[1]*resolution_percentage)),\
+                                int(math.ceil(slice_size[0]*resolution_percentage))
+
     matrix = numpy.memmap(temp_file, mode='w+', dtype='int16', shape=shape)
     dcm_reader = vtkgdcm.vtkGDCMImageReader()
     cont = 0
@@ -462,7 +563,6 @@ def dcm2memmap(files, slice_size, orientation, resolution_percentage):
                                 resolution_percentage = resolution_percentage, update_progress = None)
 
             image = image_resized
-            print ">>>>>>>>>", image.GetDimensions()
 
         min_aux, max_aux = image.GetScalarRange()
         if min_scalar is None or min_aux < min_scalar:
@@ -474,7 +574,7 @@ def dcm2memmap(files, slice_size, orientation, resolution_percentage):
         array = numpy_support.vtk_to_numpy(image.GetPointData().GetScalars())
         if orientation == 'CORONAL':
             array.shape = matrix.shape[0], matrix.shape[2]
-            matrix[:, n, :] = array
+            matrix[:, shape[1] - n - 1, :] = array
         elif orientation == 'SAGITTAL':
             array.shape = matrix.shape[0], matrix.shape[1]
             # TODO: Verify if it's necessary to add the slices swapped only in
@@ -482,7 +582,6 @@ def dcm2memmap(files, slice_size, orientation, resolution_percentage):
             # sagittal cases.
             matrix[:, :, n] = array
         else:
-            print array.shape, matrix.shape
             array.shape = matrix.shape[1], matrix.shape[2]
             matrix[n] = array
         update_progress(cont,message)
@@ -493,41 +592,55 @@ def dcm2memmap(files, slice_size, orientation, resolution_percentage):
 
     return matrix, scalar_range, temp_file
 
-def analyze2mmap(analyze):
-    data = analyze.get_data()
-    header = analyze.get_header()
+
+def img2memmap(group):
+    """
+    From a nibabel image data creates a memmap file in the temp folder and
+    returns it and its related filename.
+    """
+
     temp_file = tempfile.mktemp()
 
-    # Sagital
-    if header['orient'] == 2:
-        print "Orientation Sagital"
-        shape = tuple([data.shape[i] for i in (1, 2, 0)])
-        matrix = numpy.memmap(temp_file, mode='w+', dtype=data.dtype, shape=shape)
-        for n, slice in enumerate(data):
-            matrix[:,:, n] = slice
-
-    # Coronal
-    elif header['orient'] == 1:
-        print "Orientation coronal"
-        shape = tuple([data.shape[i] for i in (1, 0, 2)])
-        matrix = numpy.memmap(temp_file, mode='w+', dtype=data.dtype, shape=shape)
-        for n, slice in enumerate(data):
-            matrix[:,n,:] = slice
-
-    # AXIAL
-    elif header['orient'] == 0:
-        print "no orientation"
-        shape = tuple([data.shape[i] for i in (0, 1, 2)])
-        matrix = numpy.memmap(temp_file, mode='w+', dtype=data.dtype, shape=shape)
-        for n, slice in enumerate(data):
-            matrix[n] = slice
+    data = group.get_data()
+    # Normalize image pixel values and convert to int16
+    data = imgnormalize(data)
 
-    else:
-        print "Orientation Sagital"
-        shape = tuple([data.shape[i] for i in (1, 2, 0)])
-        matrix = numpy.memmap(temp_file, mode='w+', dtype=data.dtype, shape=shape)
-        for n, slice in enumerate(data):
-            matrix[:,:, n] = slice
+    # Convert RAS+ to default InVesalius orientation ZYX
+    data = numpy.swapaxes(data, 0, 2)
+    data = numpy.fliplr(data)
 
+    matrix = numpy.memmap(temp_file, mode='w+', dtype=data.dtype, shape=data.shape)
+    matrix[:] = data[:]
     matrix.flush()
-    return matrix, temp_file
+
+    scalar_range = numpy.amin(matrix), numpy.amax(matrix)
+
+    return matrix, scalar_range, temp_file
+
+
+def imgnormalize(data, srange=(0, 255)):
+    """
+    Normalize image pixel intensity for int16 gray scale values.
+
+    :param data: image matrix
+    :param srange: range for normalization, default is 0 to 255
+    :return: normalized pixel intensity matrix
+    """
+
+    dataf = numpy.asarray(data)
+    rangef = numpy.asarray(srange)
+    faux = numpy.ravel(dataf).astype(float)
+    minimum = numpy.min(faux)
+    maximum = numpy.max(faux)
+    lower = rangef[0]
+    upper = rangef[1]
+
+    if minimum == maximum:
+        datan = numpy.ones(dataf.shape)*(upper + lower) / 2.
+    else:
+        datan = (faux-minimum)*(upper-lower) / (maximum-minimum) + lower
+
+    datan = numpy.reshape(datan, dataf.shape)
+    datan = datan.astype(numpy.int16)
+
+    return datan
diff --git a/invesalius/data/interpolation.pxd b/invesalius/data/interpolation.pxd
new file mode 100644
index 0000000..b63cc41
--- /dev/null
+++ b/invesalius/data/interpolation.pxd
@@ -0,0 +1,8 @@
+from .cy_my_types cimport image_t
+
+cdef double interpolate(image_t[:, :, :], double, double, double) nogil
+cdef double tricub_interpolate(image_t[:, :, :], double, double, double) nogil
+cdef double tricubicInterpolate (image_t[:, :, :], double, double, double) nogil
+cdef double lanczos3 (image_t[:, :, :], double, double, double) nogil
+
+cdef double nearest_neighbour_interp(image_t[:, :, :], double, double, double) nogil
diff --git a/invesalius/data/interpolation.pyx b/invesalius/data/interpolation.pyx
new file mode 100644
index 0000000..8aaea8d
--- /dev/null
+++ b/invesalius/data/interpolation.pyx
@@ -0,0 +1,392 @@
+# from interpolation cimport interpolate
+
+import numpy as np
+cimport numpy as np
+cimport cython
+
+from libc.math cimport floor, ceil, sqrt, fabs, round, sin, M_PI
+from cython.parallel import prange
+
+DEF LANCZOS_A = 4
+DEF SIZE_LANCZOS_TMP = LANCZOS_A * 2 - 1
+
+cdef double[64][64] temp = [
+    [ 1,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [-3,  3, 0, 0, 0, 0, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 2,  -2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [-3,  0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0,-3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 9,  -9,-9, 9, 0, 0, 0, 0, 6, 3,-6,-3, 0, 0, 0, 0, 6,-6, 3,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [-6,  6, 6,-6, 0, 0, 0, 0,-3,-3, 3, 3, 0, 0, 0, 0,-4, 4,-2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2,-2,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 2,  0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [-6,  6, 6,-6, 0, 0, 0, 0,-4,-2, 4, 2, 0, 0, 0, 0,-3, 3,-3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2,-1,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 4,  -4,-4, 4, 0, 0, 0, 0, 2, 2,-2,-2, 0, 0, 0, 0, 2,-2, 2,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0, 0, 0, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-1, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,-9,-9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3,-6,-3, 0, 0, 0, 0, 6,-6, 3,-3, 0, 0, 0, 0, 4, 2, 2, 1, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-6, 6, 6,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3,-3, 3, 3, 0, 0, 0, 0,-4, 4,-2, 2, 0, 0, 0, 0,-2,-2,-1,-1, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-6, 6, 6,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-4,-2, 4, 2, 0, 0, 0, 0,-3, 3,-3, 3, 0, 0, 0, 0,-2,-1,-2,-1, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,-4,-4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,-2,-2, 0, 0, 0, 0, 2,-2, 2,-2, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0],
+    [-3,  0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0,-3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 9,  -9, 0, 0,-9, 9, 0, 0, 6, 3, 0, 0,-6,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,-6, 0, 0, 3,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [-6,  6, 0, 0, 6,-6, 0, 0,-3,-3, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-4, 4, 0, 0,-2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2,-2, 0, 0,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0, 0, 0,-1, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,-9, 0, 0,-9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 0, 0,-6,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,-6, 0, 0, 3,-3, 0, 0, 4, 2, 0, 0, 2, 1, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-6, 6, 0, 0, 6,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3,-3, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-4, 4, 0, 0,-2, 2, 0, 0,-2,-2, 0, 0,-1,-1, 0, 0],
+    [ 9,  0,-9, 0,-9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 3, 0,-6, 0,-3, 0, 6, 0,-6, 0, 3, 0,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 9, 0,-9, 0,-9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 3, 0,-6, 0,-3, 0, 6, 0,-6, 0, 3, 0,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 2, 0, 1, 0],
+    [-27, 27,27,-27,27,-27,-27,27,-18,-9,18, 9,18, 9,-18,-9,-18,18,-9, 9,18,-18, 9,-9,-18,18,18,-18,-9, 9, 9,-9,-12,-6,-6,-3,12, 6, 6, 3,-12,-6,12, 6,-6,-3, 6, 3,-12,12,-6, 6,-6, 6,-3, 3,-8,-4,-4,-2,-4,-2,-2,-1],
+    [18,  -18,-18,18,-18,18,18,-18, 9, 9,-9,-9,-9,-9, 9, 9,12,-12, 6,-6,-12,12,-6, 6,12,-12,-12,12, 6,-6,-6, 6, 6, 6, 3, 3,-6,-6,-3,-3, 6, 6,-6,-6, 3, 3,-3,-3, 8,-8, 4,-4, 4,-4, 2,-2, 4, 4, 2, 2, 2, 2, 1, 1],
+    [-6,  0, 6, 0, 6, 0,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 0,-3, 0, 3, 0, 3, 0,-4, 0, 4, 0,-2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-2, 0,-1, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0,-6, 0, 6, 0, 6, 0,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 0,-3, 0, 3, 0, 3, 0,-4, 0, 4, 0,-2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-2, 0,-1, 0,-1, 0],
+    [18,  -18,-18,18,-18,18,18,-18,12, 6,-12,-6,-12,-6,12, 6, 9,-9, 9,-9,-9, 9,-9, 9,12,-12,-12,12, 6,-6,-6, 6, 6, 3, 6, 3,-6,-3,-6,-3, 8, 4,-8,-4, 4, 2,-4,-2, 6,-6, 6,-6, 3,-3, 3,-3, 4, 2, 4, 2, 2, 1, 2, 1],
+    [-12, 12,12,-12,12,-12,-12,12,-6,-6, 6, 6, 6, 6,-6,-6,-6, 6,-6, 6, 6,-6, 6,-6,-8, 8, 8,-8,-4, 4, 4,-4,-3,-3,-3,-3, 3, 3, 3, 3,-4,-4, 4, 4,-2,-2, 2, 2,-4, 4,-4, 4,-2, 2,-2, 2,-2,-2,-2,-2,-1,-1,-1,-1],
+    [ 2,  0, 0, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [-6,  6, 0, 0, 6,-6, 0, 0,-4,-2, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0,-3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2,-1, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 4,  -4, 0, 0,-4, 4, 0, 0, 2, 2, 0, 0,-2,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 2,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-6, 6, 0, 0, 6,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-4,-2, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0,-3, 3, 0, 0,-2,-1, 0, 0,-2,-1, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,-4, 0, 0,-4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,-2,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 2,-2, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0],
+    [-6,  0, 6, 0, 6, 0,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0,-4, 0,-2, 0, 4, 0, 2, 0,-3, 0, 3, 0,-3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-1, 0,-2, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0,-6, 0, 6, 0, 6, 0,-6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-4, 0,-2, 0, 4, 0, 2, 0,-3, 0, 3, 0,-3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,-2, 0,-1, 0,-2, 0,-1, 0],
+    [18,  -18,-18,18,-18,18,18,-18,12, 6,-12,-6,-12,-6,12, 6,12,-12, 6,-6,-12,12,-6, 6, 9,-9,-9, 9, 9,-9,-9, 9, 8, 4, 4, 2,-8,-4,-4,-2, 6, 3,-6,-3, 6, 3,-6,-3, 6,-6, 3,-3, 6,-6, 3,-3, 4, 2, 2, 1, 4, 2, 2, 1],
+    [-12, 12,12,-12,12,-12,-12,12,-6,-6, 6, 6, 6, 6,-6,-6,-8, 8,-4, 4, 8,-8, 4,-4,-6, 6, 6,-6,-6, 6, 6,-6,-4,-4,-2,-2, 4, 4, 2, 2,-3,-3, 3, 3,-3,-3, 3, 3,-4, 4,-2, 2,-4, 4,-2, 2,-2,-2,-1,-1,-2,-2,-1,-1],
+    [ 4,  0,-4, 0,-4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,-2, 0,-2, 0, 2, 0,-2, 0, 2, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+    [ 0,  0, 0, 0, 0, 0, 0, 0, 4, 0,-4, 0,-4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,-2, 0,-2, 0, 2, 0,-2, 0, 2, 0,-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0],
+    [-12, 12,12,-12,12,-12,-12,12,-8,-4, 8, 4, 8, 4,-8,-4,-6, 6,-6, 6, 6,-6, 6,-6,-6, 6, 6,-6,-6, 6, 6,-6,-4,-2,-4,-2, 4, 2, 4, 2,-4,-2, 4, 2,-4,-2, 4, 2,-3, 3,-3, 3,-3, 3,-3, 3,-2,-1,-2,-1,-2,-1,-2,-1],
+    [ 8,  -8,-8, 8,-8, 8, 8,-8, 4, 4,-4,-4,-4,-4, 4, 4, 4,-4, 4,-4,-4, 4,-4, 4, 4,-4,-4, 4, 4,-4,-4, 4, 2, 2, 2, 2,-2,-2,-2,-2, 2, 2,-2,-2, 2, 2,-2,-2, 2,-2, 2,-2, 2,-2, 2,-2, 1, 1, 1, 1, 1, 1, 1, 1]
+]
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef double nearest_neighbour_interp(image_t[:, :, :] V, double x, double y, double z) nogil:
+    return V[<int>round(z), <int>round(y), <int>round(x)]
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef double interpolate(image_t[:, :, :] V, double x, double y, double z) nogil:
+    cdef double xd, yd, zd
+    cdef double c00, c10, c01, c11
+    cdef double c0, c1
+    cdef double c
+
+    cdef int x0 = <int>floor(x)
+    cdef int x1 = x0 + 1
+
+    cdef int y0 = <int>floor(y)
+    cdef int y1 = y0 + 1
+
+    cdef int z0 = <int>floor(z)
+    cdef int z1 = z0 + 1
+
+    if x0 == x1:
+        xd = 1.0
+    else:
+        xd = (x - x0) / (x1 - x0)
+
+    if y0 == y1:
+        yd = 1.0
+    else:
+        yd = (y - y0) / (y1 - y0)
+
+    if z0 == z1:
+        zd = 1.0
+    else:
+        zd = (z - z0) / (z1 - z0)
+
+    c00 = _G(V, x0, y0, z0)*(1 - xd) + _G(V, x1, y0, z0)*xd
+    c10 = _G(V, x0, y1, z0)*(1 - xd) + _G(V, x1, y1, z0)*xd
+    c01 = _G(V, x0, y0, z1)*(1 - xd) + _G(V, x1, y0, z1)*xd
+    c11 = _G(V, x0, y1, z1)*(1 - xd) + _G(V, x1, y1, z1)*xd
+
+    c0 = c00*(1 - yd) + c10*yd
+    c1 = c01*(1 - yd) + c11*yd
+
+    c = c0*(1 - zd) + c1*zd
+
+    return c
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef inline double lanczos3_L(double x, int a) nogil:
+    if x == 0:
+        return 1.0
+    elif -a <= x < a:
+        return (a * sin(M_PI * x) * sin(M_PI * (x / a)))/(M_PI**2 * x**2)
+    else:
+        return 0.0
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef double lanczos3(image_t[:, :, :] V, double x, double y, double z) nogil:
+    cdef int a = LANCZOS_A
+
+    cdef int xd = <int>floor(x)
+    cdef int yd = <int>floor(y)
+    cdef int zd = <int>floor(z)
+
+    cdef int xi = xd - a + 1
+    cdef int xf = xd + a
+
+    cdef int yi = yd - a + 1
+    cdef int yf = yd + a
+
+    cdef int zi = zd - a + 1
+    cdef int zf = zd + a
+
+    cdef double lx = 0.0
+    cdef double ly = 0.0
+    cdef double lz = 0.0
+
+    cdef double[SIZE_LANCZOS_TMP][SIZE_LANCZOS_TMP] temp_x
+    cdef double[SIZE_LANCZOS_TMP] temp_y
+
+    cdef int i, j, k
+    cdef int m, n, o
+
+    m = 0
+    for k in xrange(zi, zf):
+        n = 0
+        for j in xrange(yi, yf):
+            lx = 0
+            for i in xrange(xi, xf):
+                lx += _G(V, i, j, k) * lanczos3_L(x - i, a)
+            temp_x[m][n] = lx
+            n += 1
+        m += 1
+
+    m = 0
+    for k in xrange(zi, zf):
+        n = 0
+        ly = 0
+        for j in xrange(yi, yf):
+            ly += temp_x[m][n] * lanczos3_L(y - j, a)
+            n += 1
+        temp_y[m] = ly
+        m += 1
+
+    m = 0
+    for k in xrange(zi, zf):
+        lz += temp_y[m] * lanczos3_L(z - k, a)
+        m += 1
+
+    return lz
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef image_t _G(image_t[:, :, :] V, int x, int y, int z) nogil:
+    cdef int dz, dy, dx
+    dz = V.shape[0] - 1
+    dy = V.shape[1] - 1
+    dx = V.shape[2] - 1
+
+    if x <  0:
+        x = dx + x + 1
+    elif x > dx:
+        x = x - dx - 1
+
+    if y <  0:
+        y = dy + y + 1
+    elif y > dy:
+        y = y - dy - 1
+
+    if z <  0:
+        z = dz + z + 1
+    elif z > dz:
+        z = z - dz - 1
+
+    return V[z, y, x]
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef void calc_coef_tricub(image_t[:, :, :] V, double x, double y, double z, double [64] coef) nogil:
+    cdef int xi = <int>floor(x)
+    cdef int yi = <int>floor(y)
+    cdef int zi = <int>floor(z)
+
+    cdef double[64] _x
+
+    cdef int i, j
+
+    _x[0] = _G(V, xi, yi, zi)
+    _x[1] = _G(V, xi + 1, yi, zi)
+    _x[2] = _G(V, xi, yi + 1, zi)
+    _x[3] = _G(V, xi + 1, yi + 1, zi)
+    _x[4] = _G(V, xi, yi, zi + 1)
+    _x[5] = _G(V, xi + 1, yi, zi + 1)
+    _x[6] = _G(V, xi, yi + 1, zi + 1)
+    _x[7] = _G(V, xi + 1, yi + 1, zi + 1)
+
+    _x[8]  = 0.5*(_G(V,  xi+1,yi,zi)      -  _G(V, xi-1, yi,   zi))
+    _x[9]  = 0.5*(_G(V,  xi+2,yi,zi)      -  _G(V, xi,   yi,   zi))
+    _x[10] = 0.5*(_G(V, xi+1, yi+1,zi)    -  _G(V,  xi-1, yi+1, zi))
+    _x[11] = 0.5*(_G(V, xi+2, yi+1,zi)    -  _G(V,  xi,   yi+1, zi))
+    _x[12] = 0.5*(_G(V, xi+1, yi,zi+1)    -  _G(V,  xi-1, yi,   zi+1))
+    _x[13] = 0.5*(_G(V, xi+2, yi,zi+1)    -  _G(V,  xi,   yi,   zi+1))
+    _x[14] = 0.5*(_G(V, xi+1, yi+1,zi+1)  -  _G(V,  xi-1, yi+1, zi+1))
+    _x[15] = 0.5*(_G(V, xi+2, yi+1,zi+1)  -  _G(V,  xi,   yi+1, zi+1))
+    _x[16] = 0.5*(_G(V, xi,   yi+1,zi)    -  _G(V,  xi,   yi-1, zi))
+    _x[17] = 0.5*(_G(V, xi+1, yi+1,zi)    -  _G(V,  xi+1, yi-1, zi))
+    _x[18] = 0.5*(_G(V, xi,   yi+2,zi)    -  _G(V,  xi,   yi,   zi))
+    _x[19] = 0.5*(_G(V, xi+1, yi+2,zi)    -  _G(V,  xi+1, yi,   zi))
+    _x[20] = 0.5*(_G(V, xi,   yi+1,zi+1)  -  _G(V,  xi,   yi-1, zi+1))
+    _x[21] = 0.5*(_G(V, xi+1, yi+1,zi+1)  -  _G(V,  xi+1, yi-1, zi+1))
+    _x[22] = 0.5*(_G(V, xi,   yi+2,zi+1)  -  _G(V,  xi,   yi,   zi+1))
+    _x[23] = 0.5*(_G(V, xi+1, yi+2,zi+1)  -  _G(V,  xi+1, yi,   zi+1))
+    _x[24] = 0.5*(_G(V, xi,   yi,zi+1)    -  _G(V,  xi,   yi,   zi-1))
+    _x[25] = 0.5*(_G(V, xi+1, yi,zi+1)    -  _G(V,  xi+1, yi,   zi-1))
+    _x[26] = 0.5*(_G(V, xi,   yi+1,zi+1)  -  _G(V,  xi,   yi+1, zi-1))
+    _x[27] = 0.5*(_G(V, xi+1, yi+1,zi+1)  -  _G(V,  xi+1, yi+1, zi-1))
+    _x[28] = 0.5*(_G(V, xi,   yi,zi+2)    -  _G(V,  xi,   yi,   zi))
+    _x[29] = 0.5*(_G(V, xi+1, yi,zi+2)    -  _G(V,  xi+1, yi,   zi))
+    _x[30] = 0.5*(_G(V, xi,   yi+1,zi+2)  -  _G(V,  xi,   yi+1, zi))
+    _x[31] = 0.5*(_G(V, xi+1, yi+1,zi+2)  -  _G(V,  xi+1, yi+1, zi))
+
+    _x [32] = 0.25*(_G(V, xi+1, yi+1, zi)   - _G(V, xi-1, yi+1, zi)   - _G(V, xi+1, yi-1, zi)   + _G(V, xi-1, yi-1, zi))
+    _x [33] = 0.25*(_G(V, xi+2, yi+1, zi)   - _G(V, xi,   yi+1, zi)   - _G(V, xi+2, yi-1, zi)   + _G(V, xi,   yi-1, zi))
+    _x [34] = 0.25*(_G(V, xi+1, yi+2, zi)   - _G(V, xi-1, yi+2, zi)   - _G(V, xi+1, yi,   zi)   + _G(V, xi-1, yi,   zi))
+    _x [35] = 0.25*(_G(V, xi+2, yi+2, zi)   - _G(V, xi,   yi+2, zi)   - _G(V, xi+2, yi,   zi)   + _G(V, xi,   yi,   zi))
+    _x [36] = 0.25*(_G(V, xi+1, yi+1, zi+1) - _G(V, xi-1, yi+1, zi+1) - _G(V, xi+1, yi-1, zi+1) + _G(V, xi-1, yi-1, zi+1))
+    _x [37] = 0.25*(_G(V, xi+2, yi+1, zi+1) - _G(V, xi,   yi+1, zi+1) - _G(V, xi+2, yi-1, zi+1) + _G(V, xi,   yi-1, zi+1))
+    _x [38] = 0.25*(_G(V, xi+1, yi+2, zi+1) - _G(V, xi-1, yi+2, zi+1) - _G(V, xi+1, yi,   zi+1) + _G(V, xi-1, yi,   zi+1))
+    _x [39] = 0.25*(_G(V, xi+2, yi+2, zi+1) - _G(V, xi,   yi+2, zi+1) - _G(V, xi+2, yi,   zi+1) + _G(V, xi,   yi,   zi+1))
+    _x [40] = 0.25*(_G(V, xi+1, yi,   zi+1) - _G(V, xi-1, yi,   zi+1) - _G(V, xi+1, yi,   zi-1) + _G(V, xi-1, yi,   zi-1))
+    _x [41] = 0.25*(_G(V, xi+2, yi,   zi+1) - _G(V, xi,   yi,   zi+1) - _G(V, xi+2, yi,   zi-1) + _G(V, xi,   yi,   zi-1))
+    _x [42] = 0.25*(_G(V, xi+1, yi+1, zi+1) - _G(V, xi-1, yi+1, zi+1) - _G(V, xi+1, yi+1, zi-1) + _G(V, xi-1, yi+1, zi-1))
+    _x [43] = 0.25*(_G(V, xi+2, yi+1, zi+1) - _G(V, xi,   yi+1, zi+1) - _G(V, xi+2, yi+1, zi-1) + _G(V, xi,   yi+1, zi-1))
+    _x [44] = 0.25*(_G(V, xi+1, yi,   zi+2) - _G(V, xi-1, yi,   zi+2) - _G(V, xi+1, yi,   zi)   + _G(V, xi-1, yi,   zi))
+    _x [45] = 0.25*(_G(V, xi+2, yi,   zi+2) - _G(V, xi,   yi,   zi+2) - _G(V, xi+2, yi,   zi)   + _G(V, xi,   yi,   zi))
+    _x [46] = 0.25*(_G(V, xi+1, yi+1, zi+2) - _G(V, xi-1, yi+1, zi+2) - _G(V, xi+1, yi+1, zi)   + _G(V, xi-1, yi+1, zi))
+    _x [47] = 0.25*(_G(V, xi+2, yi+1, zi+2) - _G(V, xi,   yi+1, zi+2) - _G(V, xi+2, yi+1, zi)   + _G(V, xi,   yi+1, zi))
+    _x [48] = 0.25*(_G(V, xi,   yi+1, zi+1) - _G(V, xi,   yi-1, zi+1) - _G(V, xi,   yi+1, zi-1) + _G(V, xi,   yi-1, zi-1))
+    _x [49] = 0.25*(_G(V, xi+1, yi+1, zi+1) - _G(V, xi+1, yi-1, zi+1) - _G(V, xi+1, yi+1, zi-1) + _G(V, xi+1, yi-1, zi-1))
+    _x [50] = 0.25*(_G(V, xi,   yi+2, zi+1) - _G(V, xi,   yi,   zi+1) - _G(V, xi,   yi+2, zi-1) + _G(V, xi,   yi,   zi-1))
+    _x [51] = 0.25*(_G(V, xi+1, yi+2, zi+1) - _G(V, xi+1, yi,   zi+1) - _G(V, xi+1, yi+2, zi-1) + _G(V, xi+1, yi,   zi-1))
+    _x [52] = 0.25*(_G(V, xi,   yi+1, zi+2) - _G(V, xi,   yi-1, zi+2) - _G(V, xi,   yi+1, zi)   + _G(V, xi,   yi-1, zi))
+    _x [53] = 0.25*(_G(V, xi+1, yi+1, zi+2) - _G(V, xi+1, yi-1, zi+2) - _G(V, xi+1, yi+1, zi)   + _G(V, xi+1, yi-1, zi))
+    _x [54] = 0.25*(_G(V, xi,   yi+2, zi+2) - _G(V, xi,   yi,   zi+2) - _G(V, xi,   yi+2, zi)   + _G(V, xi,   yi,   zi))
+    _x [55] = 0.25*(_G(V, xi+1, yi+2, zi+2) - _G(V, xi+1, yi,   zi+2) - _G(V, xi+1, yi+2, zi)   + _G(V, xi+1, yi,   zi))
+
+    _x[56] = 0.125*(_G(V, xi+1, yi+1, zi+1) - _G(V, xi-1, yi+1, zi+1) - _G(V, xi+1, yi-1, zi+1) + _G(V, xi-1, yi-1, zi+1) - _G(V, xi+1, yi+1, zi-1) + _G(V, xi-1,yi+1,zi-1)+_G(V, xi+1,yi-1,zi-1)-_G(V, xi-1,yi-1,zi-1))
+    _x[57] = 0.125*(_G(V, xi+2, yi+1, zi+1) - _G(V, xi,   yi+1, zi+1) - _G(V, xi+2, yi-1, zi+1) + _G(V, xi,   yi-1, zi+1) - _G(V, xi+2, yi+1, zi-1) + _G(V, xi,yi+1,zi-1)+_G(V, xi+2,yi-1,zi-1)-_G(V, xi,yi-1,zi-1))
+    _x[58] = 0.125*(_G(V, xi+1, yi+2, zi+1) - _G(V, xi-1, yi+2, zi+1) - _G(V, xi+1, yi,   zi+1) + _G(V, xi-1, yi,   zi+1) - _G(V, xi+1, yi+2, zi-1) + _G(V, xi-1,yi+2,zi-1)+_G(V, xi+1,yi,zi-1)-_G(V, xi-1,yi,zi-1))
+    _x[59] = 0.125*(_G(V, xi+2, yi+2, zi+1) - _G(V, xi,   yi+2, zi+1) - _G(V, xi+2, yi,   zi+1) + _G(V, xi,   yi,   zi+1) - _G(V, xi+2, yi+2, zi-1) + _G(V, xi,yi+2,zi-1)+_G(V, xi+2,yi,zi-1)-_G(V, xi,yi,zi-1))
+    _x[60] = 0.125*(_G(V, xi+1, yi+1, zi+2) - _G(V, xi-1, yi+1, zi+2) - _G(V, xi+1, yi-1, zi+2) + _G(V, xi-1, yi-1, zi+2) - _G(V, xi+1, yi+1, zi)   + _G(V, xi-1,yi+1,zi)+_G(V, xi+1,yi-1,zi)-_G(V, xi-1,yi-1,zi))
+    _x[61] = 0.125*(_G(V, xi+2, yi+1, zi+2) - _G(V, xi,   yi+1, zi+2) - _G(V, xi+2, yi-1, zi+2) + _G(V, xi,   yi-1, zi+2) - _G(V, xi+2, yi+1, zi)   + _G(V, xi,yi+1,zi)+_G(V, xi+2,yi-1,zi)-_G(V, xi,yi-1,zi))
+    _x[62] = 0.125*(_G(V, xi+1, yi+2, zi+2) - _G(V, xi-1, yi+2, zi+2) - _G(V, xi+1, yi,   zi+2) + _G(V, xi-1, yi,   zi+2) - _G(V, xi+1, yi+2, zi)   + _G(V, xi-1,yi+2,zi)+_G(V, xi+1,yi,zi)-_G(V, xi-1,yi,zi))
+    _x[63] = 0.125*(_G(V, xi+2, yi+2, zi+2) - _G(V, xi,   yi+2, zi+2) - _G(V, xi+2, yi,   zi+2) + _G(V, xi,   yi,   zi+2) - _G(V, xi+2, yi+2, zi)   + _G(V, xi,yi+2,zi)+_G(V, xi+2,yi,zi)-_G(V, xi,yi,zi))
+
+    for j in prange(64):
+        coef[j] = 0.0
+        for i in xrange(64):
+                coef[j] += (temp[j][i] * _x[i])
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef double tricub_interpolate(image_t[:, :, :] V, double x, double y, double z) nogil:
+    # From: Tricubic interpolation in three dimensions. Lekien and Marsden
+    cdef double[64] coef
+    cdef double result = 0.0
+    calc_coef_tricub(V, x, y, z, coef)
+
+    cdef int i, j, k
+
+    cdef int xi = <int>floor(x)
+    cdef int yi = <int>floor(y)
+    cdef int zi = <int>floor(z)
+
+    for i in xrange(4):
+        for j in xrange(4):
+            for k in xrange(4):
+                result += (coef[i+4*j+16*k] * ((x-xi)**i) * ((y-yi)**j) * ((z-zi)**k))
+    # return V[<int>z, <int>y, <int>x]
+    # with gil:
+        # print result
+    return result
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef double cubicInterpolate(double p[4], double x) nogil: 
+    return p[1] + 0.5 * x*(p[2] - p[0] + x*(2.0*p[0] - 5.0*p[1] + 4.0*p[2] - p[3] + x*(3.0*(p[1] - p[2]) + p[3] - p[0])))
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef double bicubicInterpolate (double p[4][4], double x, double y) nogil:
+    cdef double arr[4]
+    arr[0] = cubicInterpolate(p[0], y)
+    arr[1] = cubicInterpolate(p[1], y)
+    arr[2] = cubicInterpolate(p[2], y)
+    arr[3] = cubicInterpolate(p[3], y)
+    return cubicInterpolate(arr, x)
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef double tricubicInterpolate(image_t[:, :, :] V, double x, double y, double z) nogil:
+    # From http://www.paulinternet.nl/?page=bicubic
+    cdef double p[4][4][4]
+
+    cdef int xi = <int>floor(x)
+    cdef int yi = <int>floor(y)
+    cdef int zi = <int>floor(z)
+
+    cdef int i, j, k
+
+    for i in xrange(4):
+        for j in xrange(4):
+            for k in xrange(4):
+                p[i][j][k] = _G(V, xi + i -1, yi + j -1, zi + k - 1)
+
+    cdef double arr[4]
+    arr[0] = bicubicInterpolate(p[0], y-yi, z-zi)
+    arr[1] = bicubicInterpolate(p[1], y-yi, z-zi)
+    arr[2] = bicubicInterpolate(p[2], y-yi, z-zi)
+    arr[3] = bicubicInterpolate(p[3], y-yi, z-zi)
+    return cubicInterpolate(arr, x-xi)
+
+
+def tricub_interpolate_py(image_t[:, :, :] V, double x, double y, double z):
+    return tricub_interpolate(V, x, y, z)
+
+def tricub_interpolate2_py(image_t[:, :, :] V, double x, double y, double z):
+    return tricubicInterpolate(V, x, y, z)
+
+def trilin_interpolate_py(image_t[:, :, :] V, double x, double y, double z):
+    return interpolate(V, x, y, z)
diff --git a/invesalius/data/mask.py b/invesalius/data/mask.py
index 63c04c4..b636061 100644
--- a/invesalius/data/mask.py
+++ b/invesalius/data/mask.py
@@ -23,15 +23,17 @@ import random
 import shutil
 import tempfile
 
-import numpy
+import numpy as np
 import vtk
 
-import constants as const
-import imagedata_utils as iu
-import session as ses
+import invesalius.constants as const
+import invesalius.data.imagedata_utils as iu
+import invesalius.session as ses
 
-from wx.lib.pubsub import pub as Publisher
+from . import floodfill
 
+from wx.lib.pubsub import pub as Publisher
+from scipy import ndimage
 
 class EditionHistoryNode(object):
     def __init__(self, index, orientation, array, clean=False):
@@ -43,11 +45,11 @@ class EditionHistoryNode(object):
         self._save_array(array)
 
     def _save_array(self, array):
-        numpy.save(self.filename, array)
+        np.save(self.filename, array)
         print "Saving history", self.index, self.orientation, self.filename, self.clean
 
     def commit_history(self, mvolume):
-        array = numpy.load(self.filename)
+        array = np.load(self.filename)
         if self.orientation == 'AXIAL':
             mvolume[self.index+1,1:,1:] = array
             if self.clean:
@@ -60,6 +62,8 @@ class EditionHistoryNode(object):
             mvolume[1:, 1:, self.index+1] = array
             if self.clean:
                 mvolume[0, 0, self.index+1] = 1
+        elif self.orientation == 'VOLUME':
+            mvolume[:] = array
 
         print "applying to", self.orientation, "at slice", self.index
 
@@ -106,7 +110,12 @@ class EditionHistory(object):
                 ##self.index -= 1
                 ##h[self.index].commit_history(mvolume)
                 #self._reload_slice(self.index - 1)
-            if actual_slices and actual_slices[h[self.index - 1].orientation] != h[self.index - 1].index:
+            if h[self.index - 1].orientation == 'VOLUME':
+                self.index -= 1
+                h[self.index].commit_history(mvolume)
+                self._reload_slice(self.index)
+                Publisher.sendMessage("Enable redo", True)
+            elif actual_slices and actual_slices[h[self.index - 1].orientation] != h[self.index - 1].index:
                 self._reload_slice(self.index - 1)
             else:
                 self.index -= 1
@@ -116,7 +125,7 @@ class EditionHistory(object):
                     h[self.index].commit_history(mvolume)
                 self._reload_slice(self.index)
                 Publisher.sendMessage("Enable redo", True)
-        
+
         if self.index == 0:
             Publisher.sendMessage("Enable undo", False)
         print "AT", self.index, len(self.history), self.history[self.index].filename
@@ -129,7 +138,12 @@ class EditionHistory(object):
                 ##h[self.index].commit_history(mvolume)
                 #self._reload_slice(self.index + 1)
 
-            if actual_slices and actual_slices[h[self.index + 1].orientation] != h[self.index + 1].index:
+            if h[self.index + 1].orientation == 'VOLUME':
+                self.index += 1
+                h[self.index].commit_history(mvolume)
+                self._reload_slice(self.index)
+                Publisher.sendMessage("Enable undo", True)
+            elif actual_slices and actual_slices[h[self.index + 1].orientation] != h[self.index + 1].index:
                 self._reload_slice(self.index + 1)
             else:
                 self.index += 1
@@ -139,7 +153,7 @@ class EditionHistory(object):
                     h[self.index].commit_history(mvolume)
                 self._reload_slice(self.index)
                 Publisher.sendMessage("Enable undo", True)
-        
+
         if self.index == len(h) - 1:
             Publisher.sendMessage("Enable redo", False)
         print "AT", self.index, len(h), h[self.index].filename
@@ -159,7 +173,7 @@ class EditionHistory(object):
                 v_undo = False
             elif self.index == len(self.history) - 1:
                 v_redo = False
-            
+
         Publisher.sendMessage("Enable undo", v_undo)
         Publisher.sendMessage("Enable redo", v_redo)
 
@@ -214,7 +228,7 @@ class Mask():
 
     def SavePlist(self, dir_temp, filelist):
         mask = {}
-        filename = u'mask_%d' % self.index 
+        filename = u'mask_%d' % self.index
         mask_filename = u'%s.dat' % filename
         mask_filepath = os.path.join(dir_temp, mask_filename)
         filelist[self.temp_file] = mask_filename
@@ -231,7 +245,7 @@ class Mask():
         mask['mask_shape'] = self.matrix.shape
         mask['edited'] = self.was_edited
 
-        plist_filename = filename + '.plist'
+        plist_filename = filename + u'.plist'
         #plist_filepath = os.path.join(dir_temp, plist_filename)
 
         temp_plist = tempfile.mktemp()
@@ -283,16 +297,21 @@ class Mask():
     def _open_mask(self, filename, shape, dtype='uint8'):
         print ">>", filename, shape
         self.temp_file = filename
-        self.matrix = numpy.memmap(filename, shape=shape, dtype=dtype, mode="r+")
+        self.matrix = np.memmap(filename, shape=shape, dtype=dtype, mode="r+")
 
     def _set_class_index(self, index):
         Mask.general_index = index
 
     def create_mask(self, shape):
-        print "Creating a mask"
+        """
+        Creates a new mask object. This method do not append this new mask into the project.
+
+        Parameters:
+            shape(int, int, int): The shape of the new mask.
+        """
         self.temp_file = tempfile.mktemp()
         shape = shape[0] + 1, shape[1] + 1, shape[2] + 1
-        self.matrix = numpy.memmap(self.temp_file, mode='w+', dtype='uint8', shape=shape)
+        self.matrix = np.memmap(self.temp_file, mode='w+', dtype='uint8', shape=shape)
 
     def clean(self):
         self.matrix[1:, 1:, 1:] = 0
@@ -314,7 +333,7 @@ class Mask():
         new_mask.threshold_range = self.threshold_range
         new_mask.edition_threshold_range = self.edition_threshold_range
         new_mask.is_shown = self.is_shown
-        
+
         new_mask.create_mask(shape=[i-1 for i in self.matrix.shape])
         new_mask.matrix[:] = self.matrix[:]
 
@@ -323,6 +342,49 @@ class Mask():
     def clear_history(self):
         self.history.clear_history()
 
+    def fill_holes_auto(self, target, conn, orientation, index, size):
+        CON2D = {4: 1, 8: 2}
+        CON3D = {6: 1, 18: 2, 26: 3}
+
+        if target == '3D':
+            cp_mask = self.matrix.copy()
+            matrix = self.matrix[1:, 1:, 1:]
+            bstruct = ndimage.generate_binary_structure(3, CON3D[conn])
+
+            imask = (~(matrix > 127))
+            labels, nlabels = ndimage.label(imask, bstruct, output=np.uint16)
+
+            if nlabels == 0:
+                return
+
+            ret = floodfill.fill_holes_automatically(matrix, labels, nlabels, size)
+            if ret:
+                self.save_history(index, orientation, self.matrix.copy(), cp_mask)
+        else:
+            bstruct = ndimage.generate_binary_structure(2, CON2D[conn])
+
+            if orientation == 'AXIAL':
+                matrix = self.matrix[index+1, 1:, 1:]
+            elif orientation == 'CORONAL':
+                matrix = self.matrix[1:, index+1, 1:]
+            elif orientation == 'SAGITAL':
+                matrix = self.matrix[1:, 1:, index+1]
+
+            cp_mask = matrix.copy()
+
+            imask = (~(matrix > 127))
+            labels, nlabels = ndimage.label(imask, bstruct, output=np.uint16)
+
+            if nlabels == 0:
+                return
+
+            labels = labels.reshape(1, labels.shape[0], labels.shape[1])
+            matrix = matrix.reshape(1, matrix.shape[0], matrix.shape[1])
+
+            ret = floodfill.fill_holes_automatically(matrix, labels, nlabels, size)
+            if ret:
+                self.save_history(index, orientation, matrix.copy(), cp_mask)
+
     def __del__(self):
         if self.is_shown:
             self.history._config_undo_redo(False)
diff --git a/invesalius/data/measures.py b/invesalius/data/measures.py
index c0d0692..b36a52b 100644
--- a/invesalius/data/measures.py
+++ b/invesalius/data/measures.py
@@ -3,14 +3,17 @@
 
 import math
 import random
+import sys
 
 from wx.lib.pubsub import pub as Publisher
-import vtk
 
-import constants as const
-import project as prj
-import session as ses
+import numpy as np
+import vtk
 
+import invesalius.constants as const
+import invesalius.project as prj
+import invesalius.session as ses
+import invesalius.utils as utils
 TYPE = {const.LINEAR: _(u"Linear"),
         const.ANGULAR: _(u"Angular"),
         }
@@ -21,6 +24,79 @@ LOCATION = {const.SURFACE: _(u"3D"),
             const.SAGITAL: _(u"Sagittal")
         }
 
+map_locations_id = {
+    "3D":       const.SURFACE,
+    "AXIAL":    const.AXIAL,
+    "CORONAL":  const.CORONAL,
+    "SAGITAL": const.SAGITAL,
+}
+
+map_id_locations = {const.SURFACE: "3D",
+                    const.AXIAL: "AXIAL",
+                    const.CORONAL: "CORONAL",
+                    const.SAGITAL: "SAGITAL",
+                    }
+
+if sys.platform == 'win32':
+    MEASURE_LINE_COLOUR = (255, 0, 0, 255)
+    MEASURE_TEXT_COLOUR = (0, 0, 0)
+    MEASURE_TEXTBOX_COLOUR = (255, 255, 165, 255)
+else:
+    MEASURE_LINE_COLOUR = (255, 0, 0, 128)
+    MEASURE_TEXT_COLOUR = (0, 0, 0)
+    MEASURE_TEXTBOX_COLOUR = (255, 255, 165, 255)
+
+class MeasureData:
+    """
+    Responsible to keep measures data.
+    """
+    __metaclass__= utils.Singleton
+    def __init__(self):
+        self.measures = {const.SURFACE: {},
+                         const.AXIAL:   {},
+                         const.CORONAL: {},
+                         const.SAGITAL: {}}
+        self._list_measures = []
+
+    def append(self, m):
+        try:
+            self.measures[m[0].location][m[0].slice_number].append(m)
+        except KeyError:
+            self.measures[m[0].location][m[0].slice_number] = [m, ]
+
+        self._list_measures.append(m)
+
+    def clean(self):
+        self.measures = {const.SURFACE: {},
+                         const.AXIAL:   {},
+                         const.CORONAL: {},
+                         const.SAGITAL: {}}
+        self._list_measures = []
+
+    def get(self, location, slice_number):
+        return self.measures[map_locations_id[location]].get(slice_number, [])
+
+    def pop(self, idx=None):
+        if idx is None:
+            m = self._list_measures.pop()
+        else:
+            m = self._list_measures.pop(idx)
+        self.measures[m[0].location][m[0].slice_number].remove(m)
+        return m
+
+    def remove(self, m):
+        self._list_measures.remove(m)
+        self.measures[m[0].location][m[0].slice_number].remove(m)
+
+    def __contains__(self, m):
+        return m in self._list_measures
+
+    def __getitem__(self, idx):
+        return self._list_measures[idx]
+
+    def __len__(self):
+        return len(self._list_measures)
+
 
 class MeasurementManager(object):
     """
@@ -29,7 +105,7 @@ class MeasurementManager(object):
     """
     def __init__(self):
         self.current = None
-        self.measures = []
+        self.measures = MeasureData()
         self._bind_events()
 
     def _bind_events(self):
@@ -40,6 +116,8 @@ class MeasurementManager(object):
         Publisher.subscribe(self._load_measurements, "Load measurement dict")
         Publisher.subscribe(self._rm_incomplete_measurements,
                             "Remove incomplete measurements")
+        Publisher.subscribe(self._change_measure_point_pos, 'Change measurement point position')
+        Publisher.subscribe(self.OnCloseProject, 'Close project data')
 
     def _load_measurements(self, pubsub_evt):
         try:
@@ -49,7 +127,7 @@ class MeasurementManager(object):
             spacing = 1.0, 1.0, 1.0
         for i in dict:
             m = dict[i]
-            
+
             if m.location == const.AXIAL:
                 radius = min(spacing[1], spacing[2]) * const.PROP_MEASURE
 
@@ -72,16 +150,18 @@ class MeasurementManager(object):
             for point in m.points:
                 x, y, z = point
                 actors = mr.AddPoint(x, y, z)
-                Publisher.sendMessage(("Add actors " + str(m.location)),
-                    (actors, m.slice_number))
+
+                if m.location == const.SURFACE:
+                    Publisher.sendMessage(("Add actors " + str(m.location)),
+                        (actors, m.slice_number))
             self.current = None
 
-            if not m.is_shown:
+            if not m.visible:
                 mr.SetVisibility(False)
                 if m.location == const.SURFACE:
                     Publisher.sendMessage('Render volume viewer')
                 else:
-                    Publisher.sendMessage('Update slice viewer')
+                    Publisher.sendMessage('Redraw canvas')
 
     def _add_point(self, pubsub_evt):
         position = pubsub_evt.data[0]
@@ -107,20 +187,14 @@ class MeasurementManager(object):
 
         to_remove = False
         if self.current is None:
-            print "To Create"
             to_create = True
         elif self.current[0].location != location:
-            print "To Create"
-            print "To Remove"
             to_create = True
             to_remove = True
         elif self.current[0].slice_number != slice_number:
-            print "To Create"
-            print "To Remove"
             to_create = True
             to_remove = True
         else:
-            print "To not Create"
             to_create = False
 
         if to_create:
@@ -135,15 +209,15 @@ class MeasurementManager(object):
             else:
                 mr = AngularMeasure(m.colour, representation)
             if to_remove:
-                print "---To REMOVE"
-                actors = self.current[1].GetActors()
-                slice_number = self.current[0].slice_number
-                Publisher.sendMessage(('Remove actors ' + str(self.current[0].location)),
-                                      (actors, slice_number))
+                #  actors = self.current[1].GetActors()
+                #  slice_number = self.current[0].slice_number
+                #  Publisher.sendMessage(('Remove actors ' + str(self.current[0].location)),
+                                      #  (actors, slice_number))
+                self.measures.pop()[1].Remove()
                 if self.current[0].location == const.SURFACE:
                     Publisher.sendMessage('Render volume viewer')
                 else:
-                    Publisher.sendMessage('Update slice viewer')
+                    Publisher.sendMessage('Redraw canvas')
 
             session = ses.Session()
             session.ChangeProject()
@@ -156,22 +230,26 @@ class MeasurementManager(object):
         x, y, z = position
         actors = mr.AddPoint(x, y, z)
         m.points.append(position)
-        Publisher.sendMessage("Add actors " + str(location),
-                (actors, m.slice_number))
+
+        if m.location == const.SURFACE:
+            Publisher.sendMessage("Add actors " + str(location),
+                    (actors, m.slice_number))
+
+        if self.current not in self.measures:
+            self.measures.append(self.current)
 
         if mr.IsComplete():
             index = prj.Project().AddMeasurement(m)
             #m.index = index # already done in proj
-            self.measures.append(self.current)
             name = m.name
             colour = m.colour
             m.value = mr.GetValue()
             type_ = TYPE[type]
             location = LOCATION[location]
             if type == const.LINEAR:
-                value = u"%.2f mm"% m.value
+                value = u"%.3f mm"% m.value
             else:
-                value = u"%.2f°"% m.value
+                value = u"%.3f°"% m.value
 
             msg =  'Update measurement info in GUI',
             Publisher.sendMessage(msg,
@@ -181,20 +259,57 @@ class MeasurementManager(object):
                                    value))
             self.current = None
 
+    def _change_measure_point_pos(self, pubsub_evt):
+        index, npoint, pos = pubsub_evt.data
+        m, mr = self.measures[index]
+        x, y, z = pos
+        if npoint == 0:
+            mr.SetPoint1(x, y, z)
+            m.points[0] = x, y, z
+        elif npoint == 1:
+            mr.SetPoint2(x, y, z)
+            m.points[1] = x, y, z
+        elif npoint == 2:
+            mr.SetPoint3(x, y, z)
+            m.points[2] = x, y, z
+
+        m.value = mr.GetValue()
+
+        name = m.name
+        colour = m.colour
+        m.value = mr.GetValue()
+        type_ = TYPE[m.type]
+        location = LOCATION[m.location]
+
+        if m.type == const.LINEAR:
+            value = u"%.3f mm"% m.value
+        else:
+            value = u"%.3f°"% m.value
+
+        Publisher.sendMessage('Update measurement info in GUI',
+                              (index, name, colour,
+                               location,
+                               type_,
+                               value))
+
     def _change_name(self, pubsub_evt):
         index, new_name = pubsub_evt.data
-        self.measures[index][0].name = new_name
+        self.measures[index].name = new_name
 
     def _remove_measurements(self, pubsub_evt):
         indexes = pubsub_evt.data
-        print indexes
         for index in indexes:
             m, mr = self.measures.pop(index)
-            actors = mr.GetActors()
+            try:
+                mr.Remove()
+            except AttributeError:
+                # The is not being displayed
+                pass
             prj.Project().RemoveMeasurement(index)
-            Publisher.sendMessage(('Remove actors ' + str(m.location)), 
-                    (actors, m.slice_number))
-        Publisher.sendMessage('Update slice viewer')
+            if m.location == const.SURFACE:
+                Publisher.sendMessage(('Remove actors ' + str(m.location)),
+                        (mr.GetActors(), m.slice_number))
+        Publisher.sendMessage('Redraw canvas')
         Publisher.sendMessage('Render volume viewer')
 
         session = ses.Session()
@@ -203,34 +318,39 @@ class MeasurementManager(object):
     def _set_visibility(self, pubsub_evt):
         index, visibility = pubsub_evt.data
         m, mr = self.measures[index]
-        m.is_shown = visibility
+        m.visible = visibility
         mr.SetVisibility(visibility)
         if m.location == const.SURFACE:
             Publisher.sendMessage('Render volume viewer')
         else:
-            Publisher.sendMessage('Update slice viewer')
+            Publisher.sendMessage('Redraw canvas')
 
     def _rm_incomplete_measurements(self, pubsub_evt):
         if self.current is None:
-            return 
+            return
 
-        mr = self.current[1]
-        print "RM INC M", self.current, mr.IsComplete()
+        m, mr = self.current
         if not mr.IsComplete():
-            print "---To REMOVE"
+            idx = self.measures._list_measures.index((m, mr))
+            self.measures.remove((m, mr))
+            Publisher.sendMessage("Remove GUI measurement", idx)
             actors = mr.GetActors()
             slice_number = self.current[0].slice_number
-            Publisher.sendMessage(('Remove actors ' + str(self.current[0].location)),
-                                  (actors, slice_number))
+            if m.location == const.SURFACE:
+                Publisher.sendMessage(('Remove actors ' + str(self.current[0].location)),
+                                      (actors, slice_number))
             if self.current[0].location == const.SURFACE:
                 Publisher.sendMessage('Render volume viewer')
             else:
-                Publisher.sendMessage('Update slice viewer')
+                Publisher.sendMessage('Redraw canvas')
 
-            if self.measures:
-                self.measures.pop()
+            #  if self.measures:
+                #  self.measures.pop()
             self.current = None
 
+    def OnCloseProject(self, pubsub_evt):
+        self.measures.clean()
+
 
 class Measurement():
     general_index = -1
@@ -238,13 +358,13 @@ class Measurement():
         Measurement.general_index += 1
         self.index = Measurement.general_index
         self.name = const.MEASURE_NAME_PATTERN %(self.index+1)
-        self.colour = random.choice(const.MEASURE_COLOUR)
+        self.colour = const.MEASURE_COLOUR.next()
         self.value = 0
         self.location = const.SURFACE # AXIAL, CORONAL, SAGITTAL
         self.type = const.LINEAR # ANGULAR
         self.slice_number = 0
         self.points = []
-        self.is_shown = True
+        self.visible = True
 
     def Load(self, info):
         self.index = info["index"]
@@ -255,7 +375,7 @@ class Measurement():
         self.type = info["type"]
         self.slice_number = info["slice_number"]
         self.points = info["points"]
-        self.is_shown = info["visible"]
+        self.visible = info["visible"]
 
 class CirclePointRepresentation(object):
     """
@@ -364,10 +484,10 @@ class LinearMeasure(object):
         self.point_actor2 = None
         self.line_actor = None
         self.text_actor = None
+        self.renderer = None
         if not representation:
             representation = CirclePointRepresentation(colour)
         self.representation = representation
-        print colour
 
     def IsComplete(self):
         """
@@ -384,13 +504,31 @@ class LinearMeasure(object):
             return (self.point_actor2, self.line_actor, self.text_actor)
 
     def SetPoint1(self, x, y, z):
-        self.points.append((x, y, z))
-        self.point_actor1 = self.representation.GetRepresentation(x, y, z)
+        if len(self.points) == 0:
+            self.points.append((x, y, z))
+            self.point_actor1 = self.representation.GetRepresentation(x, y, z)
+        else:
+            self.points[0] = (x, y, z)
+            if len(self.points) == 2:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+                self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
+                self.CreateMeasure()
+            else:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
 
     def SetPoint2(self, x, y, z):
-        self.points.append((x, y, z))
-        self.point_actor2 = self.representation.GetRepresentation(x, y, z)
-        self.CreateMeasure()
+        if len(self.points) == 1:
+            self.points.append((x, y, z))
+            self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
+            self.CreateMeasure()
+        else:
+            self.points[1] = (x, y, z)
+            self.Remove()
+            self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+            self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
+            self.CreateMeasure()
 
     def CreateMeasure(self):
         self._draw_line()
@@ -415,7 +553,7 @@ class LinearMeasure(object):
 
     def _draw_text(self):
         p1, p2 = self.points
-        text = ' %.2f mm ' % \
+        text = ' %.3f mm ' % \
                 math.sqrt(vtk.vtkMath.Distance2BetweenPoints(p1, p2))
         x,y,z=[(i+j)/2 for i,j in zip(p1, p2)]
         textsource = vtk.vtkTextSource()
@@ -432,33 +570,61 @@ class LinearMeasure(object):
         a.GetPositionCoordinate().SetCoordinateSystemToWorld()
         a.GetPositionCoordinate().SetValue(x,y,z)
         a.GetProperty().SetColor((0, 1, 0))
+        a.GetProperty().SetOpacity(0.75)
         self.text_actor = a
 
+    def draw_to_canvas(self, gc, canvas):
+        """
+        Draws to an wx.GraphicsContext.
+
+        Parameters:
+            gc: is a wx.GraphicsContext
+            canvas: the canvas it's being drawn.
+        """
+        coord = vtk.vtkCoordinate()
+        points = []
+        for p in self.points:
+            coord.SetValue(p)
+            cx, cy = coord.GetComputedDisplayValue(canvas.evt_renderer)
+            #  canvas.draw_circle((cx, cy), 2.5)
+            points.append((cx, cy))
+
+        if len(points) > 1:
+            for (p0, p1) in zip(points[:-1:], points[1::]):
+                r, g, b = self.colour
+                canvas.draw_line(p0, p1, colour=(r*255, g*255, b*255, 255))
+
+            txt = u"%.3f mm" % self.GetValue()
+            canvas.draw_text_box(txt, ((points[0][0]+points[1][0])/2.0, (points[0][1]+points[1][1])/2.0), txt_colour=MEASURE_TEXT_COLOUR, bg_colour=MEASURE_TEXTBOX_COLOUR)
+
     def GetNumberOfPoints(self):
         return len(self.points)
 
     def GetValue(self):
-        p1, p2 = self.points
-        return math.sqrt(vtk.vtkMath.Distance2BetweenPoints(p1, p2))
+        if self.IsComplete():
+            p1, p2 = self.points
+            return math.sqrt(vtk.vtkMath.Distance2BetweenPoints(p1, p2))
+        else:
+            return 0.0
 
     def SetRenderer(self, renderer):
         if self.point_actor1:
-            self.render.RemoveActor(self.point_actor1)
+            self.renderer.RemoveActor(self.point_actor1)
             renderer.AddActor(self.point_actor1)
 
         if self.point_actor2:
-            self.render.RemoveActor(self.point_actor2)
+            self.renderer.RemoveActor(self.point_actor2)
             renderer.AddActor(self.point_actor2)
 
         if self.line_actor:
-            self.render.RemoveActor(self.line_actor)
+            self.renderer.RemoveActor(self.line_actor)
             renderer.AddActor(self.line_actor)
 
         if self.text_actor:
-            self.render.RemoveActor(self.text_actor)
+            self.renderer.RemoveActor(self.text_actor)
             renderer.AddActor(self.text_actor)
 
-        self.render = renderer
+        self.renderer = renderer
 
     def SetVisibility(self, v):
         self.point_actor1.SetVisibility(v)
@@ -482,30 +648,17 @@ class LinearMeasure(object):
         return actors
 
     def Remove(self):
-        if self.point_actor1:
-            self.render.RemoveActor(self.point_actor1)
-            del self.point_actor1
-
-        if self.point_actor2:
-            self.render.RemoveActor(self.point_actor2)
-            del self.point_actor2
-
-        if self.line_actor:
-            self.render.RemoveActor(self.line_actor)
-            del self.line_actor
-
-        if self.text_actor:
-            self.render.RemoveActor(self.text_actor)
-            del self.text_actor
+        actors = self.GetActors()
+        Publisher.sendMessage("Remove actors " + str(const.SURFACE), (actors,))
 
-    # def __del__(self):
-        # self.Remove()
+    def __del__(self):
+        self.Remove()
 
 
 class AngularMeasure(object):
     def __init__(self, colour=(1, 0, 0), representation=None):
         self.colour = colour
-        self.points = [0, 0, 0]
+        self.points = []
         self.number_of_points = 0
         self.point_actor1 = None
         self.point_actor2 = None
@@ -515,7 +668,6 @@ class AngularMeasure(object):
         if not representation:
             representation = CirclePointRepresentation(colour)
         self.representation = representation
-        print colour
 
     def IsComplete(self):
         return not self.point_actor3 is None
@@ -532,20 +684,59 @@ class AngularMeasure(object):
             return (self.point_actor3, self.line_actor, self.text_actor)
 
     def SetPoint1(self, x, y, z):
-        self.points[0] = (x, y, z)
-        self.number_of_points = 1
-        self.point_actor1 = self.representation.GetRepresentation(x, y, z)
+        if self.number_of_points == 0:
+            self.points.append((x, y, z))
+            self.number_of_points = 1
+            self.point_actor1 = self.representation.GetRepresentation(x, y, z)
+        else:
+            self.points[0] = (x, y, z)
+            if len(self.points) == 3:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+                self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
+                self.point_actor3 = self.representation.GetRepresentation(*self.points[2])
+                self.CreateMeasure()
+            else:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+                self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
 
     def SetPoint2(self, x, y, z):
-        self.number_of_points = 2
-        self.points[1] = (x, y, z)
-        self.point_actor2 = self.representation.GetRepresentation(x, y, z)
+        if self.number_of_points == 1:
+            self.number_of_points = 2
+            self.points.append((x, y, z))
+            self.point_actor2 = self.representation.GetRepresentation(x, y, z)
+        else:
+            self.points[1] = (x, y, z)
+            if len(self.points) == 3:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+                self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
+                self.point_actor3 = self.representation.GetRepresentation(*self.points[2])
+                self.CreateMeasure()
+            else:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+                self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
 
     def SetPoint3(self, x, y, z):
-        self.number_of_points = 3
-        self.points[2] = (x, y, z)
-        self.point_actor3 = self.representation.GetRepresentation(x, y, z)
-        self.CreateMeasure()
+        if self.number_of_points == 2:
+            self.number_of_points = 3
+            self.points.append((x, y, z))
+            self.point_actor3 = self.representation.GetRepresentation(x, y, z)
+            self.CreateMeasure()
+        else:
+            self.points[2] = (x, y, z)
+            if len(self.points) == 3:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+                self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
+                self.point_actor3 = self.representation.GetRepresentation(*self.points[2])
+                self.CreateMeasure()
+            else:
+                self.Remove()
+                self.point_actor1 = self.representation.GetRepresentation(*self.points[0])
+                self.point_actor2 = self.representation.GetRepresentation(*self.points[1])
 
     def CreateMeasure(self):
         self._draw_line()
@@ -567,8 +758,6 @@ class AngularMeasure(object):
         line.AddInputConnection(line2.GetOutputPort())
         line.AddInputConnection(arc.GetOutputPort())
 
-        print line
-
         c = vtk.vtkCoordinate()
         c.SetCoordinateSystemToWorld()
 
@@ -611,7 +800,7 @@ class AngularMeasure(object):
         return arc
 
     def _draw_text(self):
-        text = u' %.2f ' % \
+        text = u' %.3f ' % \
                 self.CalculateAngle()
         x,y,z= self.points[1]
         textsource = vtk.vtkTextSource()
@@ -629,11 +818,43 @@ class AngularMeasure(object):
         a.GetPositionCoordinate().SetValue(x,y,z)
         self.text_actor = a
 
+    def draw_to_canvas(self, gc, canvas):
+        """
+        Draws to an wx.GraphicsContext.
+
+        Parameters:
+            gc: is a wx.GraphicsContext
+            canvas: the canvas it's being drawn.
+        """
+
+        coord = vtk.vtkCoordinate()
+        points = []
+        for p in self.points:
+            coord.SetValue(p)
+            cx, cy = coord.GetComputedDoubleDisplayValue(canvas.evt_renderer)
+            print cx, cy
+            #  canvas.draw_circle((cx, cy), 2.5)
+            points.append((cx, cy))
+
+        if len(points) > 1:
+            for (p0, p1) in zip(points[:-1:], points[1::]):
+                r, g, b = self.colour
+                canvas.draw_line(p0, p1, colour=(r*255, g*255, b*255, 255))
+
+            if len(points) == 3:
+                txt = u"%.3f° / %.3f°" % (self.GetValue(), 360.0 - self.GetValue())
+                r, g, b = self.colour
+                canvas.draw_arc(points[1], points[0], points[2], line_colour=(r*255, g*255, b*255, 255))
+                canvas.draw_text_box(txt, (points[1][0], points[1][1]), txt_colour=MEASURE_TEXT_COLOUR, bg_colour=MEASURE_TEXTBOX_COLOUR)
+
     def GetNumberOfPoints(self):
         return self.number_of_points
 
     def GetValue(self):
-        return self.CalculateAngle()
+        if self.IsComplete():
+            return self.CalculateAngle()
+        else:
+            return 0.0
 
     def SetVisibility(self, v):
         self.point_actor1.SetVisibility(v)
@@ -669,55 +890,40 @@ class AngularMeasure(object):
         """
         v1 = [j-i for i,j in zip(self.points[0], self.points[1])]
         v2 = [j-i for i,j in zip(self.points[2], self.points[1])]
-        #print vtk.vtkMath.Normalize(v1)
-        #print vtk.vtkMath.Normalize(v2)
-        cos = vtk.vtkMath.Dot(v1, v2)/(vtk.vtkMath.Norm(v1)*vtk.vtkMath.Norm(v2))
+        try:
+            cos = vtk.vtkMath.Dot(v1, v2)/(vtk.vtkMath.Norm(v1)*vtk.vtkMath.Norm(v2))
+        except ZeroDivisionError:
+            return 0.0
+
         angle = math.degrees(math.acos(cos))
         return angle
 
     def Remove(self):
-        if self.point_actor1:
-            self.render.RemoveActor(self.point_actor1)
-            del self.point_actor1
-
-        if self.point_actor2:
-            self.render.RemoveActor(self.point_actor2)
-            del self.point_actor2
-
-        if self.point_actor3:
-            self.render.RemoveActor(self.point_actor3)
-            del self.point_actor3
-
-        if self.line_actor:
-            self.render.RemoveActor(self.line_actor)
-            del self.line_actor
-
-        if self.text_actor:
-            self.render.RemoveActor(self.text_actor)
-            del self.text_actor
+        actors = self.GetActors()
+        Publisher.sendMessage("Remove actors " + str(const.SURFACE), (actors,))
 
     def SetRenderer(self, renderer):
         if self.point_actor1:
-            self.render.RemoveActor(self.point_actor1)
+            self.renderer.RemoveActor(self.point_actor1)
             renderer.AddActor(self.point_actor1)
 
         if self.point_actor2:
-            self.render.RemoveActor(self.point_actor2)
+            self.renderer.RemoveActor(self.point_actor2)
             renderer.AddActor(self.point_actor2)
 
         if self.point_actor3:
-            self.render.RemoveActor(self.point_actor3)
+            self.renderer.RemoveActor(self.point_actor3)
             renderer.AddActor(self.point_actor3)
 
         if self.line_actor:
-            self.render.RemoveActor(self.line_actor)
+            self.renderer.RemoveActor(self.line_actor)
             renderer.AddActor(self.line_actor)
 
         if self.text_actor:
-            self.render.RemoveActor(self.text_actor)
+            self.renderer.RemoveActor(self.text_actor)
             renderer.AddActor(self.text_actor)
 
-        self.render = renderer
+        self.renderer = renderer
 
-    # def __del__(self):
-        # self.Remove()
+    def __del__(self):
+        self.Remove()
diff --git a/invesalius/data/polydata_utils.py b/invesalius/data/polydata_utils.py
index 0295c97..45ce644 100644
--- a/invesalius/data/polydata_utils.py
+++ b/invesalius/data/polydata_utils.py
@@ -1,197 +1,213 @@
-#--------------------------------------------------------------------------
-# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
-# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
-# Homepage:     http://www.softwarepublico.gov.br
-# Contact:      invesalius at cti.gov.br
-# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
-#--------------------------------------------------------------------------
-#    Este programa e software livre; voce pode redistribui-lo e/ou
-#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
-#    publicada pela Free Software Foundation; de acordo com a versao 2
-#    da Licenca.
-#
-#    Este programa eh distribuido na expectativa de ser util, mas SEM
-#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
-#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
-#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
-#    detalhes.
-#--------------------------------------------------------------------------
-
-import sys
-
-import vtk
-import wx
-from wx.lib.pubsub import pub as Publisher
-
-import vtk_utils as vu
-
-# Update progress value in GUI
-UpdateProgress = vu.ShowProgress()
-
-def ApplyDecimationFilter(polydata, reduction_factor):
-    """
-    Reduce number of triangles of the given vtkPolyData, based on
-    reduction_factor.
-    """
-    # Important: vtkQuadricDecimation presented better results than
-    # vtkDecimatePro
-    decimation = vtk.vtkQuadricDecimation()
-    decimation.SetInputData(polydata)
-    decimation.SetTargetReduction(reduction_factor)
-    decimation.GetOutput().ReleaseDataFlagOn()
-    decimation.AddObserver("ProgressEvent", lambda obj, evt:
-                  UpdateProgress(decimation, "Reducing number of triangles..."))
-    return decimation.GetOutput()
-
-def ApplySmoothFilter(polydata, iterations, relaxation_factor):
-    """
-    Smooth given vtkPolyData surface, based on iteration and relaxation_factor.
-    """
-    smoother = vtk.vtkSmoothPolyDataFilter()
-    smoother.SetInputData(polydata)
-    smoother.SetNumberOfIterations(iterations)
-    smoother.SetFeatureAngle(80)
-    smoother.SetRelaxationFactor(relaxation_factor)
-    smoother.FeatureEdgeSmoothingOn()
-    smoother.BoundarySmoothingOn()
-    smoother.GetOutput().ReleaseDataFlagOn()
-    smoother.AddObserver("ProgressEvent", lambda obj, evt:
-                         UpdateProgress(smoother, "Smoothing surface..."))
-
-    return smoother.GetOutput()
-
-
-
-def FillSurfaceHole(polydata):
-    """
-    Fill holes in the given polydata.
-    """
-    # Filter used to detect and fill holes. Only fill
-    print "Filling polydata"
-    filled_polydata = vtk.vtkFillHolesFilter()
-    filled_polydata.SetInputData(polydata)
-    filled_polydata.SetHoleSize(500)
-    return filled_polydata.GetOutput()
-
-def CalculateSurfaceVolume(polydata):
-    """
-    Calculate the volume from the given polydata
-    """
-    # Filter used to calculate volume and area from a polydata
-    measured_polydata = vtk.vtkMassProperties()
-    measured_polydata.SetInputData(polydata)
-    return measured_polydata.GetVolume()
-
-def CalculateSurfaceArea(polydata):
-    """
-    Calculate the volume from the given polydata
-    """
-    # Filter used to calculate volume and area from a polydata
-    measured_polydata = vtk.vtkMassProperties()
-    measured_polydata.SetInputData(polydata)
-    return measured_polydata.GetSurfaceArea()
-
-def Merge(polydata_list):
-    append = vtk.vtkAppendPolyData()
-
-    for polydata in polydata_list:
-        triangle = vtk.vtkTriangleFilter()
-        triangle.SetInputData(polydata)
-        append.AddInputData(triangle.GetOutput())
-
-    clean = vtk.vtkCleanPolyData()
-    clean.SetInputData(append.GetOutput())
-
-    return append.GetOutput()
-
-def Export(polydata, filename, bin=False):
-    writer = vtk.vtkXMLPolyDataWriter()
-    print filename, type(filename)
-    writer.SetFileName(filename.encode('utf-8'))
-    if bin:
-        writer.SetDataModeToBinary()
-    else:
-        writer.SetDataModeToAscii()
-    writer.SetInputData(polydata)
-    writer.Write()
-
-def Import(filename):
-    reader = vtk.vtkXMLPolyDataReader()
-    if isinstance(filename, unicode):
-        reader.SetFileName(filename.encode(wx.GetDefaultPyEncoding()))
-    else:
-        reader.SetFileName(filename)
-    reader.Update()
-    return reader.GetOutput()
-
-def JoinSeedsParts(polydata, point_id_list):
-    """
-    The function require vtkPolyData and point id
-    from vtkPolyData.
-    """
-    conn = vtk.vtkPolyDataConnectivityFilter()
-    conn.SetInputData(polydata)
-    conn.SetExtractionModeToPointSeededRegions()
-    UpdateProgress = vu.ShowProgress(1 + len(point_id_list))
-    pos = 1
-    for seed in point_id_list:
-        conn.AddSeed(seed)
-        UpdateProgress(pos, _("Analysing selected regions..."))
-        pos += 1
-
-    conn.AddObserver("ProgressEvent", lambda obj, evt:
-                  UpdateProgress(conn, "Getting selected parts"))
-    conn.Update()
-
-    result = vtk.vtkPolyData()
-    result.DeepCopy(conn.GetOutput())
-    return result
-
-def SelectLargestPart(polydata):
-    """
-    """
-    UpdateProgress = vu.ShowProgress(1)
-    conn = vtk.vtkPolyDataConnectivityFilter()
-    conn.SetInputData(polydata)
-    conn.SetExtractionModeToLargestRegion()
-    conn.AddObserver("ProgressEvent", lambda obj, evt:
-                  UpdateProgress(conn, "Getting largest part..."))
-    conn.Update()
-
-    result = vtk.vtkPolyData()
-    result.DeepCopy(conn.GetOutput())
-    return result
-
-def SplitDisconectedParts(polydata):
-    """
-    """
-    conn = vtk.vtkPolyDataConnectivityFilter()
-    conn.SetInputData(polydata)
-    conn.SetExtractionModeToAllRegions()
-    conn.Update()
-
-    nregions = conn.GetNumberOfExtractedRegions()
-
-    conn.SetExtractionModeToSpecifiedRegions()
-    conn.Update()
-
-    polydata_collection = []
-
-    # Update progress value in GUI
-    progress = nregions -1
-    if progress:
-        UpdateProgress = vu.ShowProgress(progress)
-
-    for region in xrange(nregions):
-        conn.InitializeSpecifiedRegionList()
-        conn.AddSpecifiedRegion(region)
-        conn.Update()
-
-        p = vtk.vtkPolyData()
-        p.DeepCopy(conn.GetOutput())
-
-        polydata_collection.append(p)
-        if progress:
-            UpdateProgress(region, _("Splitting disconnected regions..."))
-
-    return polydata_collection
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+
+import sys
+
+import vtk
+import wx
+from wx.lib.pubsub import pub as Publisher
+
+import invesalius.constants as const
+import invesalius.data.vtk_utils as vu
+from invesalius.utils import touch
+
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
+
+# Update progress value in GUI
+UpdateProgress = vu.ShowProgress()
+
+def ApplyDecimationFilter(polydata, reduction_factor):
+    """
+    Reduce number of triangles of the given vtkPolyData, based on
+    reduction_factor.
+    """
+    # Important: vtkQuadricDecimation presented better results than
+    # vtkDecimatePro
+    decimation = vtk.vtkQuadricDecimation()
+    decimation.SetInputData(polydata)
+    decimation.SetTargetReduction(reduction_factor)
+    decimation.GetOutput().ReleaseDataFlagOn()
+    decimation.AddObserver("ProgressEvent", lambda obj, evt:
+                  UpdateProgress(decimation, "Reducing number of triangles..."))
+    return decimation.GetOutput()
+
+def ApplySmoothFilter(polydata, iterations, relaxation_factor):
+    """
+    Smooth given vtkPolyData surface, based on iteration and relaxation_factor.
+    """
+    smoother = vtk.vtkSmoothPolyDataFilter()
+    smoother.SetInputData(polydata)
+    smoother.SetNumberOfIterations(iterations)
+    smoother.SetFeatureAngle(80)
+    smoother.SetRelaxationFactor(relaxation_factor)
+    smoother.FeatureEdgeSmoothingOn()
+    smoother.BoundarySmoothingOn()
+    smoother.GetOutput().ReleaseDataFlagOn()
+    smoother.AddObserver("ProgressEvent", lambda obj, evt:
+                         UpdateProgress(smoother, "Smoothing surface..."))
+
+    return smoother.GetOutput()
+
+
+
+def FillSurfaceHole(polydata):
+    """
+    Fill holes in the given polydata.
+    """
+    # Filter used to detect and fill holes. Only fill
+    print "Filling polydata"
+    filled_polydata = vtk.vtkFillHolesFilter()
+    filled_polydata.SetInputData(polydata)
+    filled_polydata.SetHoleSize(500)
+    return filled_polydata.GetOutput()
+
+def CalculateSurfaceVolume(polydata):
+    """
+    Calculate the volume from the given polydata
+    """
+    # Filter used to calculate volume and area from a polydata
+    measured_polydata = vtk.vtkMassProperties()
+    measured_polydata.SetInputData(polydata)
+    return measured_polydata.GetVolume()
+
+def CalculateSurfaceArea(polydata):
+    """
+    Calculate the volume from the given polydata
+    """
+    # Filter used to calculate volume and area from a polydata
+    measured_polydata = vtk.vtkMassProperties()
+    measured_polydata.SetInputData(polydata)
+    return measured_polydata.GetSurfaceArea()
+
+def Merge(polydata_list):
+    append = vtk.vtkAppendPolyData()
+
+    for polydata in polydata_list:
+        triangle = vtk.vtkTriangleFilter()
+        triangle.SetInputData(polydata)
+        triangle.Update()
+        append.AddInputData(triangle.GetOutput())
+
+    append.Update()
+    clean = vtk.vtkCleanPolyData()
+    clean.SetInputData(append.GetOutput())
+    clean.Update()
+
+    return append.GetOutput()
+
+def Export(polydata, filename, bin=False):
+    writer = vtk.vtkXMLPolyDataWriter()
+    if _has_win32api:
+        touch(filename)
+        filename = win32api.GetShortPathName(filename)
+    writer.SetFileName(filename.encode(const.FS_ENCODE))
+    if bin:
+        writer.SetDataModeToBinary()
+    else:
+        writer.SetDataModeToAscii()
+    writer.SetInputData(polydata)
+    writer.Write()
+
+def Import(filename):
+    reader = vtk.vtkXMLPolyDataReader()
+    if isinstance(filename, unicode):
+        reader.SetFileName(filename.encode(wx.GetDefaultPyEncoding()))
+    else:
+        reader.SetFileName(filename)
+    reader.Update()
+    return reader.GetOutput()
+
+def JoinSeedsParts(polydata, point_id_list):
+    """
+    The function require vtkPolyData and point id
+    from vtkPolyData.
+    """
+    conn = vtk.vtkPolyDataConnectivityFilter()
+    conn.SetInputData(polydata)
+    conn.SetExtractionModeToPointSeededRegions()
+    UpdateProgress = vu.ShowProgress(1 + len(point_id_list))
+    pos = 1
+    for seed in point_id_list:
+        conn.AddSeed(seed)
+        UpdateProgress(pos, _("Analysing selected regions..."))
+        pos += 1
+
+    conn.AddObserver("ProgressEvent", lambda obj, evt:
+                  UpdateProgress(conn, "Getting selected parts"))
+    conn.Update()
+
+    result = vtk.vtkPolyData()
+    result.DeepCopy(conn.GetOutput())
+    return result
+
+def SelectLargestPart(polydata):
+    """
+    """
+    UpdateProgress = vu.ShowProgress(1)
+    conn = vtk.vtkPolyDataConnectivityFilter()
+    conn.SetInputData(polydata)
+    conn.SetExtractionModeToLargestRegion()
+    conn.AddObserver("ProgressEvent", lambda obj, evt:
+                  UpdateProgress(conn, "Getting largest part..."))
+    conn.Update()
+
+    result = vtk.vtkPolyData()
+    result.DeepCopy(conn.GetOutput())
+    return result
+
+def SplitDisconectedParts(polydata):
+    """
+    """
+    conn = vtk.vtkPolyDataConnectivityFilter()
+    conn.SetInputData(polydata)
+    conn.SetExtractionModeToAllRegions()
+    conn.Update()
+
+    nregions = conn.GetNumberOfExtractedRegions()
+
+    conn.SetExtractionModeToSpecifiedRegions()
+    conn.Update()
+
+    polydata_collection = []
+
+    # Update progress value in GUI
+    progress = nregions -1
+    if progress:
+        UpdateProgress = vu.ShowProgress(progress)
+
+    for region in xrange(nregions):
+        conn.InitializeSpecifiedRegionList()
+        conn.AddSpecifiedRegion(region)
+        conn.Update()
+
+        p = vtk.vtkPolyData()
+        p.DeepCopy(conn.GetOutput())
+
+        polydata_collection.append(p)
+        if progress:
+            UpdateProgress(region, _("Splitting disconnected regions..."))
+
+    return polydata_collection
diff --git a/invesalius/data/slice_.py b/invesalius/data/slice_.py
index 0014d5f..ce84b1f 100644
--- a/invesalius/data/slice_.py
+++ b/invesalius/data/slice_.py
@@ -19,21 +19,22 @@
 import os
 import tempfile
 
-import numpy
+import numpy as np
 import vtk
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import converters
-import imagedata_utils as iu
-import style as st
-import session as ses
-import utils
-
-from mask import Mask
-from project import Project
-from data import mips
-
+import invesalius.constants as const
+import invesalius.data.converters as converters
+import invesalius.data.imagedata_utils as iu
+import invesalius.style as st
+import invesalius.session as ses
+import invesalius.utils as utils
+from invesalius.data.mask import Mask
+from invesalius.project import Project
+from invesalius.data import mips
+
+from invesalius.data import transforms
+import invesalius.data.transformations as transformations
 OTHER=0
 PLIST=1
 WIDGET=2
@@ -90,7 +91,12 @@ class Slice(object):
         self._type_projection = const.PROJECTION_NORMAL
         self.n_border = const.PROJECTION_BORDER_SIZE
 
-        self.spacing = (1.0, 1.0, 1.0)
+        self.interp_method = 2
+
+        self._spacing = (1.0, 1.0, 1.0)
+        self.center = [0, 0, 0]
+
+        self.q_orientation = np.array((1, 0, 0, 0))
 
         self.number_of_colours = 256
         self.saturation_range = (0, 0)
@@ -120,7 +126,17 @@ class Slice(object):
         self._matrix = value
         i, e = value.min(), value.max()
         r = int(e) - int(i)
-        self.histogram = numpy.histogram(self._matrix, r, (i, e))[0]
+        self.histogram = np.histogram(self._matrix, r, (i, e))[0]
+        self.center = [(s * d/2.0) for (d, s) in zip(self.matrix.shape[::-1], self.spacing)]
+
+    @property
+    def spacing(self):
+        return self._spacing
+
+    @spacing.setter
+    def spacing(self, value):
+        self._spacing = value
+        self.center = [(s * d/2.0) for (d, s) in zip(self.matrix.shape[::-1], self.spacing)]
 
     def __bind_events(self):
         # General slice control
@@ -142,6 +158,7 @@ class Slice(object):
         Publisher.subscribe(self.__set_mask_name, 'Change mask name')
         Publisher.subscribe(self.__show_mask, 'Show mask')
         Publisher.subscribe(self.__hide_current_mask, 'Hide current mask')
+        Publisher.subscribe(self.__show_current_mask, 'Show current mask')
         Publisher.subscribe(self.__clean_current_mask, 'Clean current mask')
 
         Publisher.subscribe(self.__set_current_mask_threshold_limits,
@@ -169,6 +186,7 @@ class Slice(object):
 
         Publisher.subscribe(self.OnEnableStyle, 'Enable style')
         Publisher.subscribe(self.OnDisableStyle, 'Disable style')
+        Publisher.subscribe(self.OnDisableActualStyle, 'Disable actual style')
 
         Publisher.subscribe(self.OnRemoveMasks, 'Remove masks')
         Publisher.subscribe(self.OnDuplicateMasks, 'Duplicate masks')
@@ -179,10 +197,14 @@ class Slice(object):
 
         Publisher.subscribe(self.__undo_edition, 'Undo edition')
         Publisher.subscribe(self.__redo_edition, 'Redo edition')
- 
+
+        Publisher.subscribe(self._fill_holes_auto, 'Fill holes automatically')
+
+        Publisher.subscribe(self._set_interpolation_method, 'Set interpolation method')
+
     def GetMaxSliceNumber(self, orientation):
         shape = self.matrix.shape
-        
+
         # Because matrix indexing starts with 0 so the last slice is the shape
         # minu 1.
         if orientation == 'AXIAL':
@@ -246,6 +268,16 @@ class Slice(object):
                 Publisher.sendMessage('Set interactor default cursor')
             self.state = new_state
 
+    def OnDisableActualStyle(self, pubsub_evt):
+        actual_state = self.interaction_style.GetActualState()
+        if actual_state != const.STATE_DEFAULT:
+            new_state = self.interaction_style.RemoveState(actual_state)
+            Publisher.sendMessage('Set slice interaction style', new_state)
+
+            #  if (actual_state == const.SLICE_STATE_EDITOR):
+                #  Publisher.sendMessage('Set interactor default cursor')
+            self.state = new_state
+
     def OnCloseProject(self, pubsub_evt):
         self.CloseProject()
 
@@ -274,6 +306,8 @@ class Slice(object):
         self.hue_range = (0, 0)
         self.value_range = (0, 1)
 
+        self.interaction_style.Reset()
+
         Publisher.sendMessage('Select first item from slice menu')
 
     def __set_current_mask_threshold_limits(self, pubsub_evt):
@@ -285,14 +319,14 @@ class Slice(object):
 
     def __add_mask(self, pubsub_evt):
         mask_name = pubsub_evt.data
-        self.CreateMask(name=mask_name)
+        self.create_new_mask(name=mask_name)
         self.SetMaskColour(self.current_mask.index, self.current_mask.colour)
 
     def __add_mask_thresh(self, pubsub_evt):
         mask_name = pubsub_evt.data[0]
         thresh = pubsub_evt.data[1]
         colour = pubsub_evt.data[2]
-        self.CreateMask(name=mask_name, threshold_range=thresh, colour =colour)
+        self.create_new_mask(name=mask_name, threshold_range=thresh, colour=colour)
         self.SetMaskColour(self.current_mask.index, self.current_mask.colour)
         self.SelectCurrentMask(self.current_mask.index)
         Publisher.sendMessage('Reload actual slice')
@@ -369,7 +403,6 @@ class Slice(object):
     def __show_mask(self, pubsub_evt):
         # "if" is necessary because wx events are calling this before any mask
         # has been created
-        print "__show_mask"
         if self.current_mask:
             index, value = pubsub_evt.data
             self.ShowMask(index, value)
@@ -386,6 +419,12 @@ class Slice(object):
             value = False
             Publisher.sendMessage('Show mask', (index, value))
 
+    def __show_current_mask(self, pubsub_evt):
+        if self.current_mask:
+            index = self.current_mask.index
+            value = True
+            Publisher.sendMessage('Show mask', (index, value))
+
     def __clean_current_mask(self, pubsub_evt):
         if self.current_mask:
             self.current_mask.clean()
@@ -402,7 +441,7 @@ class Slice(object):
     def create_temp_mask(self):
         temp_file = tempfile.mktemp()
         shape = self.matrix.shape
-        matrix = numpy.memmap(temp_file, mode='w+', dtype='uint8', shape=shape)
+        matrix = np.memmap(temp_file, mode='w+', dtype='uint8', shape=shape)
         return temp_file, matrix
 
     def edit_mask_pixel(self, operation, index, position, radius, orientation):
@@ -411,7 +450,7 @@ class Slice(object):
         thresh_min, thresh_max = self.current_mask.edition_threshold_range
 
         if hasattr(position, '__iter__'):
-            py, px = position
+            px, py = position
             if orientation == 'AXIAL':
                 sx = self.spacing[0]
                 sy = self.spacing[1]
@@ -441,10 +480,10 @@ class Slice(object):
 
         cx = index.shape[1] / 2 + 1
         cy = index.shape[0] / 2 + 1
-        xi = px - index.shape[1] + cx
-        xf = xi + index.shape[1]
-        yi = py - index.shape[0] + cy
-        yf = yi + index.shape[0]
+        xi = int(px - index.shape[1] + cx)
+        xf = int(xi + index.shape[1])
+        yi = int(py - index.shape[0] + cy)
+        yf = int(yi + index.shape[0])
 
         if yi < 0:
             index = index[abs(yi):,:]
@@ -509,10 +548,12 @@ class Slice(object):
                 image = self.do_colour_image(ww_wl_image)
             if self.current_mask and self.current_mask.is_shown:
                 if self.buffer_slices[orientation].vtk_mask:
-                    print "Getting from buffer"
+                    # Prints that during navigation causes delay in update
+                    # print "Getting from buffer"
                     mask = self.buffer_slices[orientation].vtk_mask
                 else:
-                    print "Do not getting from buffer"
+                    # Prints that during navigation causes delay in update
+                    # print "Do not getting from buffer"
                     n_mask = self.get_mask_slice(orientation, slice_number)
                     mask = converters.to_vtk(n_mask, self.spacing, slice_number, orientation)
                     mask = self.do_colour_mask(mask, self.opacity)
@@ -551,6 +592,14 @@ class Slice(object):
                                                         1: (0.0, 1.0, 0.0, 1.0),
                                                         2: (1.0, 0.0, 0.0, 1.0)})
             final_image = self.do_blend(final_image, cimage)
+        elif self.to_show_aux and self.current_mask:
+            m = self.get_aux_slice(self.to_show_aux, orientation, slice_number)
+            tmp_vimage = converters.to_vtk(m, self.spacing, slice_number, orientation)
+            aux_image = self.do_custom_colour(tmp_vimage, {0: (0.0, 0.0, 0.0, 0.0),
+                                                           1: (0.0, 0.0, 0.0, 0.0),
+                                                           254: (1.0, 0.0, 0.0, 1.0),
+                                                           255: (1.0, 0.0, 0.0, 1.0)})
+            final_image = self.do_blend(final_image, aux_image)
         return final_image
 
     def get_image_slice(self, orientation, slice_number, number_slices=1,
@@ -560,145 +609,166 @@ class Slice(object):
             n_image = self.buffer_slices[orientation].image
             #  print "BUFFER IMAGE"
         else:
+            if self._type_projection == const.PROJECTION_NORMAL:
+                number_slices = 1
+
+            if np.any(self.q_orientation[1::]):
+                cx, cy, cz = self.center
+                T0 = transformations.translation_matrix((-cz, -cy, -cx))
+                #  Rx = transformations.rotation_matrix(rx, (0, 0, 1))
+                #  Ry = transformations.rotation_matrix(ry, (0, 1, 0))
+                #  Rz = transformations.rotation_matrix(rz, (1, 0, 0))
+                #  #  R = transformations.euler_matrix(rz, ry, rx, 'rzyx')
+                #  R = transformations.concatenate_matrices(Rx, Ry, Rz)
+                R = transformations.quaternion_matrix(self.q_orientation)
+                T1 = transformations.translation_matrix((cz, cy, cx))
+                M = transformations.concatenate_matrices(T1, R.T, T0)
+
 
             if orientation == 'AXIAL':
+                tmp_array = np.array(self.matrix[slice_number:slice_number + number_slices])
+                if np.any(self.q_orientation[1::]):
+                    transforms.apply_view_matrix_transform(self.matrix, self.spacing, M, slice_number, orientation, self.interp_method, self.matrix.min(), tmp_array)
                 if self._type_projection == const.PROJECTION_NORMAL:
-                    n_image = numpy.array(self.matrix[slice_number])
+                    n_image = tmp_array.squeeze()
                 else:
-                    tmp_array = numpy.array(self.matrix[slice_number:
-                                                        slice_number + number_slices])
                     if inverted:
                         tmp_array = tmp_array[::-1]
 
                     if self._type_projection == const.PROJECTION_MaxIP:
-                        n_image = numpy.array(tmp_array).max(0)
+                        n_image = np.array(tmp_array).max(0)
                     elif self._type_projection == const.PROJECTION_MinIP:
-                        n_image = numpy.array(tmp_array).min(0)
+                        n_image = np.array(tmp_array).min(0)
                     elif self._type_projection == const.PROJECTION_MeanIP:
-                        n_image = numpy.array(tmp_array).mean(0)
+                        n_image = np.array(tmp_array).mean(0)
                     elif self._type_projection == const.PROJECTION_LMIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[1],
+                        n_image = np.empty(shape=(tmp_array.shape[1],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.lmip(tmp_array, 0, self.window_level, self.window_level, n_image)
                     elif self._type_projection == const.PROJECTION_MIDA:
-                        n_image = numpy.empty(shape=(tmp_array.shape[1],
+                        n_image = np.empty(shape=(tmp_array.shape[1],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.mida(tmp_array, 0, self.window_level, self.window_level, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_MIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[1],
+                        n_image = np.empty(shape=(tmp_array.shape[1],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 0, self.window_level,
                                                self.window_level, 0, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_LMIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[1],
+                        n_image = np.empty(shape=(tmp_array.shape[1],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 0, self.window_level,
                                                self.window_level, 1, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_MIDA:
-                        n_image = numpy.empty(shape=(tmp_array.shape[1],
+                        n_image = np.empty(shape=(tmp_array.shape[1],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 0, self.window_level,
                                                self.window_level, 2, n_image)
                     else:
-                        n_image = numpy.array(self.matrix[slice_number])
+                        n_image = np.array(self.matrix[slice_number])
 
             elif orientation == 'CORONAL':
+                tmp_array = np.array(self.matrix[:, slice_number: slice_number + number_slices, :])
+                if np.any(self.q_orientation[1::]):
+                    transforms.apply_view_matrix_transform(self.matrix, self.spacing, M, slice_number, orientation, self.interp_method, self.matrix.min(), tmp_array)
+
                 if self._type_projection == const.PROJECTION_NORMAL:
-                    n_image = numpy.array(self.matrix[..., slice_number, ...])
+                    n_image = tmp_array.squeeze()
                 else:
                     #if slice_number == 0:
                         #slice_number = 1
                     #if slice_number - number_slices < 0:
                         #number_slices = slice_number
-                    tmp_array = numpy.array(self.matrix[..., slice_number: slice_number + number_slices, ...])
                     if inverted:
-                        tmp_array = tmp_array[..., ::-1, ...]
+                        tmp_array = tmp_array[:, ::-1, :]
                     if self._type_projection == const.PROJECTION_MaxIP:
-                        n_image = numpy.array(tmp_array).max(1)
+                        n_image = np.array(tmp_array).max(1)
                     elif self._type_projection == const.PROJECTION_MinIP:
-                        n_image = numpy.array(tmp_array).min(1)
+                        n_image = np.array(tmp_array).min(1)
                     elif self._type_projection == const.PROJECTION_MeanIP:
-                        n_image = numpy.array(tmp_array).mean(1)
+                        n_image = np.array(tmp_array).mean(1)
                     elif self._type_projection == const.PROJECTION_LMIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.lmip(tmp_array, 1, self.window_level, self.window_level, n_image)
                     elif self._type_projection == const.PROJECTION_MIDA:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.mida(tmp_array, 1, self.window_level, self.window_level, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_MIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 1, self.window_level,
                                                self.window_level, 0, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_LMIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 1, self.window_level,
                                                self.window_level, 1, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_MIDA:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[2]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 1, self.window_level,
                                                self.window_level, 2, n_image)
                     else:
-                        n_image = numpy.array(self.matrix[..., slice_number, ...])
+                        n_image = np.array(self.matrix[:, slice_number, :])
             elif orientation == 'SAGITAL':
+                tmp_array = np.array(self.matrix[:, :, slice_number: slice_number + number_slices])
+                if np.any(self.q_orientation[1::]):
+                    transforms.apply_view_matrix_transform(self.matrix, self.spacing, M, slice_number, orientation, self.interp_method, self.matrix.min(), tmp_array)
+
                 if self._type_projection == const.PROJECTION_NORMAL:
-                    n_image = numpy.array(self.matrix[..., ..., slice_number])
+                    n_image = tmp_array.squeeze()
                 else:
-                    tmp_array = numpy.array(self.matrix[..., ..., 
-                                                        slice_number: slice_number + number_slices])
                     if inverted:
-                        tmp_array = tmp_array[..., ..., ::-1]
+                        tmp_array = tmp_array[:, :, ::-1]
                     if self._type_projection == const.PROJECTION_MaxIP:
-                        n_image = numpy.array(tmp_array).max(2)
+                        n_image = np.array(tmp_array).max(2)
                     elif self._type_projection == const.PROJECTION_MinIP:
-                        n_image = numpy.array(tmp_array).min(2)
+                        n_image = np.array(tmp_array).min(2)
                     elif self._type_projection == const.PROJECTION_MeanIP:
-                        n_image = numpy.array(tmp_array).mean(2)
+                        n_image = np.array(tmp_array).mean(2)
                     elif self._type_projection == const.PROJECTION_LMIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[1]),
                                               dtype=tmp_array.dtype)
                         mips.lmip(tmp_array, 2, self.window_level, self.window_level, n_image)
                     elif self._type_projection == const.PROJECTION_MIDA:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[1]),
                                               dtype=tmp_array.dtype)
                         mips.mida(tmp_array, 2, self.window_level, self.window_level, n_image)
 
                     elif self._type_projection == const.PROJECTION_CONTOUR_MIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[1]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 2, self.window_level,
                                                self.window_level, 0, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_LMIP:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[1]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 2, self.window_level,
                                                self.window_level, 1, n_image)
                     elif self._type_projection == const.PROJECTION_CONTOUR_MIDA:
-                        n_image = numpy.empty(shape=(tmp_array.shape[0],
+                        n_image = np.empty(shape=(tmp_array.shape[0],
                                                      tmp_array.shape[1]),
                                               dtype=tmp_array.dtype)
                         mips.fast_countour_mip(tmp_array, border_size, 2, self.window_level,
                                                self.window_level, 2, n_image)
                     else:
-                        n_image = numpy.array(self.matrix[..., ..., slice_number])
+                        n_image = np.array(self.matrix[:, :, slice_number])
 
             self.buffer_slices[orientation].image = n_image
         return n_image
@@ -721,7 +791,7 @@ class Slice(object):
                                                                          slice_number),
                                                                             mask)
                 self.current_mask.matrix[n, 0, 0] = 1
-            n_mask = numpy.array(self.current_mask.matrix[n, 1:, 1:],
+            n_mask = np.array(self.current_mask.matrix[n, 1:, 1:],
                                 dtype=self.current_mask.matrix.dtype)
 
         elif orientation == 'CORONAL':
@@ -731,7 +801,7 @@ class Slice(object):
                                                                          slice_number),
                                                                             mask)
                 self.current_mask.matrix[0, n, 0] = 1
-            n_mask = numpy.array(self.current_mask.matrix[1:, n, 1:],
+            n_mask = np.array(self.current_mask.matrix[1:, n, 1:],
                                 dtype=self.current_mask.matrix.dtype)
 
         elif orientation == 'SAGITAL':
@@ -741,7 +811,7 @@ class Slice(object):
                                                                          slice_number),
                                                                             mask)
                 self.current_mask.matrix[0, 0, n] = 1
-            n_mask = numpy.array(self.current_mask.matrix[1:, 1:, n],
+            n_mask = np.array(self.current_mask.matrix[1:, 1:, n],
                                 dtype=self.current_mask.matrix.dtype)
 
         return n_mask
@@ -749,11 +819,11 @@ class Slice(object):
     def get_aux_slice(self, name, orientation, n):
         m = self.aux_matrices[name]
         if orientation == 'AXIAL':
-            return numpy.array(m[n])
+            return np.array(m[n])
         elif orientation == 'CORONAL':
-            return numpy.array(m[:, n, :])
+            return np.array(m[:, n, :])
         elif orientation == 'SAGITAL':
-            return numpy.array(m[:, :, n])
+            return np.array(m[:, :, n])
 
     def GetNumberOfSlices(self, orientation):
         if orientation == 'AXIAL':
@@ -811,14 +881,13 @@ class Slice(object):
             # TODO: find out a better way to do threshold
             if slice_number is None:
                 for n, slice_ in enumerate(self.matrix):
-                    m = numpy.ones(slice_.shape, self.current_mask.matrix.dtype)
+                    m = np.ones(slice_.shape, self.current_mask.matrix.dtype)
                     m[slice_ < thresh_min] = 0
                     m[slice_ > thresh_max] = 0
                     m[m == 1] = 255
                     self.current_mask.matrix[n+1, 1:, 1:] = m
             else:
                 slice_ = self.buffer_slices[orientation].image
-                print ">>>", slice_, index
                 self.buffer_slices[orientation].mask = (255 * ((slice_ >= thresh_min) & (slice_ <= thresh_max))).astype('uint8')
 
             # Update viewer
@@ -837,7 +906,6 @@ class Slice(object):
 
     def ShowMask(self, index, value):
         "Show a mask given its index and 'show' value (0: hide, other: show)"
-        print "Showing Mask"
         proj = Project()
         proj.mask_dict[index].is_shown = value
         proj.mask_dict[index].on_show()
@@ -888,6 +956,10 @@ class Slice(object):
         tprojection = pubsub_evt.data
         self.SetTypeProjection(tprojection)
 
+    def _set_interpolation_method(self, pubsub_evt):
+        interp_method = pubsub_evt.data
+        self.SetInterpolationMethod(interp_method)
+
     def SetTypeProjection(self, tprojection):
         if self._type_projection != tprojection:
             if self._type_projection == const.PROJECTION_NORMAL:
@@ -904,6 +976,13 @@ class Slice(object):
 
             Publisher.sendMessage('Check projection menu', tprojection)
 
+    def SetInterpolationMethod(self, interp_method):
+        if self.interp_method != interp_method:
+            self.interp_method = interp_method
+            for buffer_ in self.buffer_slices.values():
+                buffer_.discard_buffer()
+            Publisher.sendMessage('Reload actual slice')
+
     def UpdateWindowLevelBackground(self, pubsub_evt):
         window, level = pubsub_evt.data
         self.window_width = window
@@ -982,14 +1061,32 @@ class Slice(object):
         #else:
             #widget.SetInput(cast.GetOutput())
 
-
-
-    def CreateMask(self, imagedata=None, name=None, colour=None,
-                    opacity=None, threshold_range=None,
-                    edition_threshold_range = None,
-                    edited_points=None):
-        
-        # TODO: mask system to new system.
+    def create_new_mask(self, name=None,
+                        colour=None,
+                        opacity=None,
+                        threshold_range=None,
+                        edition_threshold_range=None,
+                        add_to_project=True,
+                        show=True):
+        """
+        Creates a new mask and add it to project.
+
+        Parameters:
+            name (string): name of the new mask. If name is None a automatic
+                name will be used.
+            colour (R, G, B): a RGB tuple of float number.
+            opacity (float): a float number, from 0 to 1. If opacity is None
+                the default one will be used.
+            threshold_range (int, int): a 2-tuple indicating threshold range.
+                If None the default one will be used.
+            edition_threshold_range (int, int): a 2-tuple indicating threshold
+                range. If None the default one will be used.
+            show (bool): if this new mask will be showed and set as current
+                mask.
+
+        Returns:
+            new_mask: The new mask object.
+        """
         future_mask = Mask()
         future_mask.create_mask(self.matrix.shape)
 
@@ -1001,12 +1098,13 @@ class Slice(object):
             future_mask.opacity = opacity
         if edition_threshold_range:
             future_mask.edition_threshold_range = edition_threshold_range
-        if edited_points:
-            future_mask.edited_points = edited_points
         if threshold_range:
             future_mask.threshold_range = threshold_range
 
-        self._add_mask_into_proj(future_mask)
+        if add_to_project:
+            self._add_mask_into_proj(future_mask, show=show)
+
+        return future_mask
 
 
     def _add_mask_into_proj(self, mask, show=True):
@@ -1238,6 +1336,7 @@ class Slice(object):
         op, m1, m2 = pubsub_evt.data
         self.do_boolean_op(op, m1, m2)
 
+
     def do_boolean_op(self, op, m1, m2):
         name_ops = {const.BOOLEAN_UNION: _(u"Union"), 
                     const.BOOLEAN_DIFF: _(u"Diff"),
@@ -1274,7 +1373,7 @@ class Slice(object):
             m[:] = ((m1 > 2) & (m2 > 2)) * 255
 
         elif op == const.BOOLEAN_XOR:
-            m[:] = numpy.logical_xor((m1 > 2), (m2 > 2)) * 255
+            m[:] = np.logical_xor((m1 > 2), (m2 > 2)) * 255
 
         for o in self.buffer_slices:
             self.buffer_slices[o].discard_mask()
@@ -1327,11 +1426,39 @@ class Slice(object):
                 self.buffer_slices[o].discard_vtk_mask()
         Publisher.sendMessage('Reload actual slice')
 
+    def apply_reorientation(self):
+        temp_file = tempfile.mktemp()
+        mcopy = np.memmap(temp_file, shape=self.matrix.shape, dtype=self.matrix.dtype, mode='w+')
+        mcopy[:] = self.matrix
+
+        cx, cy, cz = self.center
+        T0 = transformations.translation_matrix((-cz, -cy, -cx))
+        R = transformations.quaternion_matrix(self.q_orientation)
+        T1 = transformations.translation_matrix((cz, cy, cx))
+        M = transformations.concatenate_matrices(T1, R.T, T0)
+
+        transforms.apply_view_matrix_transform(mcopy, self.spacing, M, 0, 'AXIAL', self.interp_method, mcopy.min(), self.matrix)
+
+        del mcopy
+        os.remove(temp_file)
+
+        self.q_orientation = np.array((1, 0, 0, 0))
+        self.center = [(s * d/2.0) for (d, s) in zip(self.matrix.shape[::-1], self.spacing)]
+
+        self.__clean_current_mask(None)
+        self.current_mask.matrix[:] = 0
+
+        for o in self.buffer_slices:
+            self.buffer_slices[o].discard_buffer()
+
+        Publisher.sendMessage('Reload actual slice')
+
     def __undo_edition(self, pub_evt):
         buffer_slices = self.buffer_slices
         actual_slices = {"AXIAL": buffer_slices["AXIAL"].index,
                          "CORONAL": buffer_slices["CORONAL"].index,
-                         "SAGITAL": buffer_slices["SAGITAL"].index,}
+                         "SAGITAL": buffer_slices["SAGITAL"].index,
+                         "VOLUME": 0}
         self.current_mask.undo_history(actual_slices)
         for o in self.buffer_slices:
             self.buffer_slices[o].discard_mask()
@@ -1342,7 +1469,8 @@ class Slice(object):
         buffer_slices = self.buffer_slices
         actual_slices = {"AXIAL": buffer_slices["AXIAL"].index,
                          "CORONAL": buffer_slices["CORONAL"].index,
-                         "SAGITAL": buffer_slices["SAGITAL"].index,}
+                         "SAGITAL": buffer_slices["SAGITAL"].index,
+                         "VOLUME": 0}
         self.current_mask.redo_history(actual_slices)
         for o in self.buffer_slices:
             self.buffer_slices[o].discard_mask()
@@ -1351,7 +1479,7 @@ class Slice(object):
 
     def _open_image_matrix(self, filename, shape, dtype):
         self.matrix_filename = filename
-        self.matrix = numpy.memmap(filename, shape=shape, dtype=dtype, mode='r+')
+        self.matrix = np.memmap(filename, shape=shape, dtype=dtype, mode='r+')
 
     def OnFlipVolume(self, pubsub_evt):
         axis = pubsub_evt.data
@@ -1385,3 +1513,28 @@ class Slice(object):
         #filename, filetype = pubsub_evt.data
         #if (filetype == const.FILETYPE_IMAGEDATA):
             #iu.Export(imagedata, filename)
+
+    def _fill_holes_auto(self, pubsub_evt):
+        data = pubsub_evt.data
+        target = data['target']
+        conn = data['conn']
+        orientation = data['orientation']
+        size = data['size']
+
+        if target == '2D':
+            index = self.buffer_slices[orientation].index
+        else:
+            index = 0
+            self.do_threshold_to_all_slices()
+
+        self.current_mask.fill_holes_auto(target, conn, orientation, index, size)
+
+        self.buffer_slices['AXIAL'].discard_mask()
+        self.buffer_slices['CORONAL'].discard_mask()
+        self.buffer_slices['SAGITAL'].discard_mask()
+
+        self.buffer_slices['AXIAL'].discard_vtk_mask()
+        self.buffer_slices['CORONAL'].discard_vtk_mask()
+        self.buffer_slices['SAGITAL'].discard_vtk_mask()
+
+        Publisher.sendMessage('Reload actual slice')
diff --git a/invesalius/data/slice_data.py b/invesalius/data/slice_data.py
index 92d2929..e0fc9d6 100644
--- a/invesalius/data/slice_data.py
+++ b/invesalius/data/slice_data.py
@@ -17,9 +17,10 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 import vtk
+import wx
 
-import constants as const
-import vtk_utils as vu
+import invesalius.constants as const
+import invesalius.data.vtk_utils as vu
 
 BORDER_UP = 1
 BORDER_DOWN = 2
@@ -38,6 +39,7 @@ class SliceData(object):
         self.number = 0
         self.orientation = 'AXIAL'
         self.renderer = None
+        self.canvas_renderer = None
         self.overlay_renderer = None
         self.__create_text()
         self.__create_box()
@@ -49,6 +51,7 @@ class SliceData(object):
         text.SetColour(colour)
         text.SetSize(const.TEXT_SIZE_LARGE)
         text.SetPosition(const.TEXT_POS_LEFT_DOWN_ZERO)
+        text.SetSymbolicSize(wx.FONTSIZE_LARGE)
         #text.SetVerticalJustificationToBottom()
         text.SetValue(self.number)
         self.text = text
diff --git a/invesalius/data/styles.py b/invesalius/data/styles.py
index c62f039..2d7a89a 100644
--- a/invesalius/data/styles.py
+++ b/invesalius/data/styles.py
@@ -21,16 +21,19 @@ import os
 import multiprocessing
 import tempfile
 import time
+import math
+
+from concurrent import futures
 
 import vtk
 import wx
 
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import converters
-import cursor_actors as ca
-import session as ses
+import invesalius.constants as const
+import invesalius.data.converters as converters
+import invesalius.data.cursor_actors as ca
+import invesalius.session as ses
 
 import numpy as np
 
@@ -38,11 +41,16 @@ from scipy import ndimage
 from scipy.misc import imsave
 from scipy.ndimage import watershed_ift, generate_binary_structure
 from skimage.morphology import watershed
-from skimage import filter
 
-import watershed_process
+import invesalius.gui.dialogs as dialogs
+from invesalius.data.measures import MeasureData
+
+from . import floodfill
 
-import utils
+import invesalius.data.watershed_process as watershed_process
+import invesalius.utils as utils
+import invesalius.data.transformations as transformations
+import invesalius.data.geometry as geom
 
 ORIENTATIONS = {
         "AXIAL": const.AXIAL,
@@ -68,6 +76,17 @@ def get_LUT_value(data, window, level):
     data.shape = shape
     return data
 
+def get_LUT_value_255(data, window, level):
+    shape = data.shape
+    data_ = data.ravel()
+    data = np.piecewise(data_,
+                        [data_ <= (level - 0.5 - (window-1)/2),
+                         data_ > (level - 0.5 + (window-1)/2)],
+                        [0, 255, lambda data_: ((data_ - (level - 0.5))/(window-1) + 0.5)*(255)])
+    data.shape = shape
+    return data
+
+
 class BaseImageInteractorStyle(vtk.vtkInteractorStyleImage):
     def __init__(self, viewer):
         self.right_pressed = False
@@ -113,6 +132,8 @@ class DefaultInteractorStyle(BaseImageInteractorStyle):
     def __init__(self, viewer):
         BaseImageInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.STATE_DEFAULT
+
         self.viewer = viewer
 
         # Zoom using right button
@@ -175,6 +196,8 @@ class CrossInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.SLICE_STATE_CROSS
+
         self.viewer = viewer
         self.orientation = viewer.orientation
         self.slice_actor = viewer.slice_data.actor
@@ -188,9 +211,13 @@ class CrossInteractorStyle(DefaultInteractorStyle):
 
     def SetUp(self):
         self.viewer._set_cross_visibility(1)
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
 
     def CleanUp(self):
         self.viewer._set_cross_visibility(0)
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
 
     def OnCrossMouseClick(self, obj, evt):
         iren = obj.GetInteractor()
@@ -205,52 +232,16 @@ class CrossInteractorStyle(DefaultInteractorStyle):
 
     def ChangeCrossPosition(self, iren):
         mouse_x, mouse_y = iren.GetEventPosition()
-        ren = iren.GetRenderWindow().GetRenderers().GetFirstRenderer()
-        self.picker.Pick(mouse_x, mouse_y, 0, ren)
-
-        # Get in what slice data the click occurred
-        # pick to get click position in the 3d world
-        coord_cross = self.get_coordinate_cursor()
-        position = self.slice_actor.GetInput().FindPoint(coord_cross)
-        # Forcing focal point to be setted in the center of the pixel.
-        coord_cross = self.slice_actor.GetInput().GetPoint(position)
-
-        coord = self.calcultate_scroll_position(position)
-        Publisher.sendMessage('Update cross position', coord_cross)
+        wx, wy, wz = self.viewer.get_coordinate_cursor(mouse_x, mouse_y, self.picker)
+        px, py = self.viewer.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
+        coord = self.viewer.calcultate_scroll_position(px, py)
+        Publisher.sendMessage('Update cross position', (wx, wy, wz))
         self.ScrollSlice(coord)
-        Publisher.sendMessage('Set ball reference position based on bound',
-                                   coord_cross)
-        Publisher.sendMessage('Set camera in volume', coord_cross)
-        Publisher.sendMessage('Render volume viewer')
+        Publisher.sendMessage('Set ball reference position', (wx, wy, wz))
+        Publisher.sendMessage('Set camera in volume', (wx, wy, wz))
 
         iren.Render()
 
-
-    def calcultate_scroll_position(self, position):
-        # Based in the given coord (x, y, z), returns a list with the scroll positions for each
-        # orientation, being the first position the sagital, second the coronal
-        # and the last, axial.
-
-        if self.orientation == 'AXIAL':
-            image_width = self.slice_actor.GetInput().GetDimensions()[0]
-            axial = self.slice_data.number
-            coronal = position / image_width
-            sagital = position % image_width
-
-        elif self.orientation == 'CORONAL':
-            image_width = self.slice_actor.GetInput().GetDimensions()[0]
-            axial = position / image_width
-            coronal = self.slice_data.number
-            sagital = position % image_width
-
-        elif self.orientation == 'SAGITAL':
-            image_width = self.slice_actor.GetInput().GetDimensions()[1]
-            axial = position / image_width
-            coronal = position % image_width
-            sagital = self.slice_data.number
-
-        return sagital, coronal, axial
-
     def ScrollSlice(self, coord):
         if self.orientation == "AXIAL":
             Publisher.sendMessage(('Set scroll position', 'SAGITAL'),
@@ -268,18 +259,6 @@ class CrossInteractorStyle(DefaultInteractorStyle):
             Publisher.sendMessage(('Set scroll position', 'SAGITAL'),
                                        coord[0])
 
-    def get_coordinate_cursor(self):
-        # Find position
-        x, y, z = self.picker.GetPickPosition()
-        bounds = self.viewer.slice_data.actor.GetBounds()
-        if bounds[0] == bounds[1]:
-            x = bounds[0]
-        elif bounds[2] == bounds[3]:
-            y = bounds[2]
-        elif bounds[4] == bounds[5]:
-            z = bounds[4]
-        return x, y, z
-
 
 class WWWLInteractorStyle(DefaultInteractorStyle):
     """
@@ -288,6 +267,8 @@ class WWWLInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.STATE_WL
+
         self.viewer =  viewer
 
         self.last_x = 0
@@ -301,11 +282,18 @@ class WWWLInteractorStyle(DefaultInteractorStyle):
 
     def SetUp(self):
         self.viewer.on_wl = True
-        self.viewer.wl_text.Show()
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
+        self.viewer.canvas.draw_list.append(self.viewer.wl_text)
+        self.viewer.UpdateCanvas()
 
     def CleanUp(self):
         self.viewer.on_wl = False
-        self.viewer.wl_text.Hide()
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
+        if self.viewer.wl_text is not None:
+            self.viewer.canvas.draw_list.remove(self.viewer.wl_text)
+            self.viewer.UpdateCanvas()
 
     def OnWindowLevelMove(self, obj, evt):
         if (self.left_pressed):
@@ -334,8 +322,8 @@ class WWWLInteractorStyle(DefaultInteractorStyle):
         iren = obj.GetInteractor()
         self.last_x, self.last_y = iren.GetLastEventPosition()
 
-        self.acum_achange_window = viewer.slice_.window_width
-        self.acum_achange_level = viewer.slice_.window_level
+        self.acum_achange_window = self.viewer.slice_.window_width
+        self.acum_achange_level = self.viewer.slice_.window_level
 
 
 class LinearMeasureInteractorStyle(DefaultInteractorStyle):
@@ -345,82 +333,192 @@ class LinearMeasureInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.STATE_MEASURE_DISTANCE
+
         self.viewer = viewer
         self.orientation = viewer.orientation
         self.slice_data = viewer.slice_data
 
+        self.measures = MeasureData()
+        self.selected = None
+        self.creating = None
+
+        self._type = const.LINEAR
+
         spacing = self.slice_data.actor.GetInput().GetSpacing()
 
         if self.orientation == "AXIAL":
             self.radius = min(spacing[1], spacing[2]) * 0.8
+            self._ori = const.AXIAL
 
         elif self.orientation == 'CORONAL':
             self.radius = min(spacing[0], spacing[1]) * 0.8
+            self._ori = const.CORONAL
 
         elif self.orientation == 'SAGITAL':
             self.radius = min(spacing[1], spacing[2]) * 0.8
+            self._ori = const.SAGITAL
 
         self.picker = vtk.vtkCellPicker()
+        self.picker.PickFromListOn()
 
-        self.AddObserver("LeftButtonPressEvent", self.OnInsertLinearMeasurePoint)
+        self._bind_events()
 
-    def OnInsertLinearMeasurePoint(self, obj, evt):
-        iren = obj.GetInteractor()
-        x,y = iren.GetEventPosition()
-        render = iren.FindPokedRenderer(x, y)
-        slice_number = self.slice_data.number
-        self.picker.Pick(x, y, 0, render)
-        x, y, z = self.picker.GetPickPosition()
-        if self.picker.GetViewProp():
-            Publisher.sendMessage("Add measurement point",
-                                  ((x, y,z), const.LINEAR,
-                                   ORIENTATIONS[self.orientation],
-                                   slice_number, self.radius))
-            self.viewer.interactor.Render()
+    def _bind_events(self):
+        self.AddObserver("LeftButtonPressEvent", self.OnInsertMeasurePoint)
+        self.AddObserver("LeftButtonReleaseEvent", self.OnReleaseMeasurePoint)
+        self.AddObserver("MouseMoveEvent", self.OnMoveMeasurePoint)
+        self.AddObserver("LeaveEvent", self.OnLeaveMeasureInteractor)
+
+    def SetUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
 
     def CleanUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
+        self.picker.PickFromListOff()
         Publisher.sendMessage("Remove incomplete measurements")
 
+    def OnInsertMeasurePoint(self, obj, evt):
+        slice_number = self.slice_data.number
+        x, y, z = self._get_pos_clicked()
+        mx, my = self.viewer.interactor.GetEventPosition()
 
-class AngularMeasureInteractorStyle(DefaultInteractorStyle):
-    """
-    Interactor style responsible for insert angular measurements.
-    """
-    def __init__(self, viewer):
-        DefaultInteractorStyle.__init__(self, viewer)
-
-        self.viewer = viewer
-        self.orientation = viewer.orientation
-        self.slice_data = viewer.slice_data
-
-        spacing = self.slice_data.actor.GetInput().GetSpacing()
-
-        if self.orientation == "AXIAL":
-            self.radius = min(spacing[1], spacing[2]) * 0.8
-
-        elif self.orientation == 'CORONAL':
-            self.radius = min(spacing[0], spacing[1]) * 0.8
+        if self.selected:
+            self.selected = None
+            self.viewer.scroll_enabled = True
+            return
 
-        elif self.orientation == 'SAGITAL':
-            self.radius = min(spacing[1], spacing[2]) * 0.8
+        if self.creating:
+            n, m, mr = self.creating
+            if mr.IsComplete():
+                self.creating = None
+                self.viewer.scroll_enabled = True
+            else:
+                Publisher.sendMessage("Add measurement point",
+                                      ((x, y, z), self._type,
+                                       ORIENTATIONS[self.orientation],
+                                       slice_number, self.radius))
+                n = len(m.points)-1
+                self.creating = n, m, mr
+                self.viewer.UpdateCanvas()
+                self.viewer.scroll_enabled = False
+            return
 
-        self.picker = vtk.vtkCellPicker()
+        selected =  self._verify_clicked_display(mx, my)
+        if selected:
+            self.selected = selected
+            self.viewer.scroll_enabled = False
+        else:
+            if self.picker.GetViewProp():
+                renderer = self.viewer.slice_data.renderer
+                Publisher.sendMessage("Add measurement point",
+                                      ((x, y, z), self._type,
+                                       ORIENTATIONS[self.orientation],
+                                       slice_number, self.radius))
+                Publisher.sendMessage("Add measurement point",
+                                      ((x, y, z), self._type,
+                                       ORIENTATIONS[self.orientation],
+                                       slice_number, self.radius))
+
+                n, (m, mr) =  1, self.measures.measures[self._ori][slice_number][-1]
+                self.creating = n, m, mr
+                self.viewer.UpdateCanvas()
+                self.viewer.scroll_enabled = False
+
+    def OnReleaseMeasurePoint(self, obj, evt):
+        if self.selected:
+            n, m, mr = self.selected
+            x, y, z = self._get_pos_clicked()
+            idx = self.measures._list_measures.index((m, mr))
+            Publisher.sendMessage('Change measurement point position', (idx, n, (x, y, z)))
+            self.viewer.UpdateCanvas()
+            self.selected = None
+            self.viewer.scroll_enabled = True
+
+    def OnMoveMeasurePoint(self, obj, evt):
+        x, y, z = self._get_pos_clicked()
+        if self.selected:
+            n, m, mr = self.selected
+            idx = self.measures._list_measures.index((m, mr))
+            Publisher.sendMessage('Change measurement point position', (idx, n, (x, y, z)))
+            self.viewer.UpdateCanvas()
+
+        elif self.creating:
+            n, m, mr = self.creating
+            idx = self.measures._list_measures.index((m, mr))
+            Publisher.sendMessage('Change measurement point position', (idx, n, (x, y, z)))
+            self.viewer.UpdateCanvas()
 
-        self.AddObserver("LeftButtonPressEvent", self.OnInsertAngularMeasurePoint)
+        else:
+            mx, my = self.viewer.interactor.GetEventPosition()
+            if self._verify_clicked_display(mx, my):
+                self.viewer.interactor.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
+            else:
+                self.viewer.interactor.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
+
+    def OnLeaveMeasureInteractor(self, obj, evt):
+        if self.creating or self.selected:
+            n, m, mr = self.creating
+            if not mr.IsComplete():
+                Publisher.sendMessage("Remove incomplete measurements")
+            self.creating = None
+            self.selected = None
+            self.viewer.UpdateCanvas()
+            self.viewer.scroll_enabled = True
+
+    def _get_pos_clicked(self):
+        iren = self.viewer.interactor
+        mx,my = iren.GetEventPosition()
+        render = iren.FindPokedRenderer(mx, my)
+        self.picker.AddPickList(self.slice_data.actor)
+        self.picker.Pick(mx, my, 0, render)
+        x, y, z = self.picker.GetPickPosition()
+        self.picker.DeletePickList(self.slice_data.actor)
+        return (x, y, z)
 
-    def OnInsertAngularMeasurePoint(self, obj, evt):
-        iren = obj.GetInteractor()
-        x,y = iren.GetEventPosition()
-        render = iren.FindPokedRenderer(x, y)
+    def _verify_clicked(self, x, y, z):
         slice_number = self.slice_data.number
-        self.picker.Pick(x, y, 0, render)
-        x, y, z = self.picker.GetPickPosition()
-        if self.picker.GetViewProp():
-            Publisher.sendMessage("Add measurement point",
-                                  ((x, y,z), const.ANGULAR,
-                                   ORIENTATIONS[self.orientation],
-                                   slice_number, self.radius))
-            self.viewer.interactor.Render()
+        sx, sy, sz = self.viewer.slice_.spacing
+        if self.orientation == "AXIAL":
+            max_dist = 2 * max(sx, sy)
+        elif self.orientation == "CORONAL":
+            max_dist = 2 * max(sx, sz)
+        elif self.orientation == "SAGITAL":
+            max_dist = 2 * max(sy, sz)
+
+        if slice_number in self.measures.measures[self._ori]:
+            for m, mr in self.measures.measures[self._ori][slice_number]:
+                if mr.IsComplete():
+                    for n, p in enumerate(m.points):
+                        px, py, pz = p
+                        dist = ((px-x)**2 + (py-y)**2 + (pz-z)**2)**0.5
+                        if dist < max_dist:
+                            return (n, m, mr)
+        return None
+
+    def _verify_clicked_display(self, x, y, max_dist=5.0):
+        slice_number = self.slice_data.number
+        max_dist = max_dist**2
+        coord = vtk.vtkCoordinate()
+        if slice_number in self.measures.measures[self._ori]:
+            for m, mr in self.measures.measures[self._ori][slice_number]:
+                if mr.IsComplete():
+                    for n, p in enumerate(m.points):
+                        coord.SetValue(p)
+                        cx, cy = coord.GetComputedDisplayValue(self.viewer.slice_data.renderer)
+                        dist = ((cx-x)**2 + (cy-y)**2)
+                        if dist <= max_dist:
+                            return (n, m, mr)
+        return None
+
+class AngularMeasureInteractorStyle(LinearMeasureInteractorStyle):
+    def __init__(self, viewer):
+        LinearMeasureInteractorStyle.__init__(self, viewer)
+        self._type = const.ANGULAR
+
+        self.state_code = const.STATE_MEASURE_ANGLE
 
 
 class PanMoveInteractorStyle(DefaultInteractorStyle):
@@ -430,11 +528,21 @@ class PanMoveInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.STATE_PAN
+
         self.viewer = viewer
 
         self.AddObserver("MouseMoveEvent", self.OnPanMove)
         self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnspan)
 
+    def SetUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
+
+    def CleanUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
+
     def OnPanMove(self, obj, evt):
         if self.left_pressed:
             obj.Pan()
@@ -455,11 +563,21 @@ class SpinInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.STATE_SPIN
+
         self.viewer = viewer
 
         self.AddObserver("MouseMoveEvent", self.OnSpinMove)
         self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnspin)
 
+    def SetUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
+
+    def CleanUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
+
     def OnSpinMove(self, obj, evt):
         iren = obj.GetInteractor()
         mouse_x, mouse_y = iren.GetLastEventPosition()
@@ -489,11 +607,21 @@ class ZoomInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.STATE_ZOOM
+
         self.viewer = viewer
 
         self.AddObserver("MouseMoveEvent", self.OnZoomMoveLeft)
         self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnZoom)
 
+    def SetUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
+
+    def CleanUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
+
     def OnZoomMoveLeft(self, obj, evt):
         if self.left_pressed:
             obj.Dolly()
@@ -517,6 +645,16 @@ class ZoomSLInteractorStyle(vtk.vtkInteractorStyleRubberBandZoom):
         self.viewer = viewer
         self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnZoom)
 
+        self.state_code = const.STATE_ZOOM_SL
+
+    def SetUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
+
+    def CleanUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
+
     def OnUnZoom(self, evt):
         mouse_x, mouse_y = self.viewer.interactor.GetLastEventPosition()
         ren = self.viewer.interactor.FindPokedRenderer(mouse_x, mouse_y)
@@ -534,11 +672,21 @@ class ChangeSliceInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.SLICE_STATE_SCROLL
+
         self.viewer = viewer
 
         self.AddObserver("MouseMoveEvent", self.OnChangeSliceMove)
         self.AddObserver("LeftButtonPressEvent", self.OnChangeSliceClick)
 
+    def SetUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, True))
+
+    def CleanUp(self):
+        Publisher.sendMessage('Toggle toolbar item',
+                             (self.state_code, False))
+
     def OnChangeSliceMove(self, evt, obj):
         if self.left_pressed:
             min = 0
@@ -576,6 +724,8 @@ class EditorInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.SLICE_STATE_EDITOR
+
         self.viewer = viewer
         self.orientation = self.viewer.orientation
 
@@ -683,21 +833,13 @@ class EditorInteractorStyle(DefaultInteractorStyle):
             #i.cursor.Show(0)
         slice_data.cursor.Show()
 
-        self.picker.Pick(mouse_x, mouse_y, 0, render)
+        wx, wy, wz = viewer.get_coordinate_cursor(mouse_x, mouse_y, self.picker)
+        position = viewer.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
 
-        coord = self.get_coordinate_cursor()
-        position = slice_data.actor.GetInput().FindPoint(coord)
-
-        if position != -1:
-            coord = slice_data.actor.GetInput().GetPoint(position)
-
-        slice_data.cursor.SetPosition(coord)
         cursor = slice_data.cursor
         radius = cursor.radius
 
-        if position < 0:
-            position = viewer.calculate_matrix_position(coord)
-
+        slice_data.cursor.SetPosition((wx, wy, wz))
         viewer.slice_.edit_mask_pixel(operation, cursor.GetPixels(),
                                     position, radius, viewer.orientation)
         #viewer._flush_buffer = True
@@ -734,39 +876,19 @@ class EditorInteractorStyle(DefaultInteractorStyle):
         elif operation == const.BRUSH_DRAW and iren.GetControlKey():
             operation = const.BRUSH_ERASE
 
-        # TODO: Improve!
-        #for i in self.slice_data_list:
-            #i.cursor.Show(0)
-
-        self.picker.Pick(mouse_x, mouse_y, 0, render)
-
-        #if (self.pick.GetViewProp()):
-            #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK))
-        #else:
-            #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
-
-        coord = self.get_coordinate_cursor()
-        position = viewer.slice_data.actor.GetInput().FindPoint(coord)
-
-        # when position == -1 the cursos is not over the image, so is not
-        # necessary to set the cursor position to world coordinate center of
-        # pixel from slice image.
-        if position != -1:
-            coord = slice_data.actor.GetInput().GetPoint(position)
-        slice_data.cursor.SetPosition(coord)
-        #self.__update_cursor_position(slice_data, coord)
+        wx, wy, wz = viewer.get_coordinate_cursor(mouse_x, mouse_y, self.picker)
+        slice_data.cursor.SetPosition((wx, wy, wz))
 
         if (self.left_pressed):
             cursor = slice_data.cursor
-            position = slice_data.actor.GetInput().FindPoint(coord)
             radius = cursor.radius
 
-            if position < 0:
-                position = viewer.calculate_matrix_position(coord)
+            position = viewer.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
 
+            slice_data.cursor.SetPosition((wx, wy, wz))
             viewer.slice_.edit_mask_pixel(operation, cursor.GetPixels(),
-                                        position, radius, self.orientation)
-            # TODO: To create a new function to reload images to viewer.
+                                          position, radius, viewer.orientation)
+
             viewer.OnScrollBar(update3D=False)
 
         else:
@@ -816,18 +938,6 @@ class EditorInteractorStyle(DefaultInteractorStyle):
         else:
             self.OnScrollBackward(obj, evt)
 
-    def get_coordinate_cursor(self):
-        # Find position
-        x, y, z = self.picker.GetPickPosition()
-        bounds = self.viewer.slice_data.actor.GetBounds()
-        if bounds[0] == bounds[1]:
-            x = bounds[0]
-        elif bounds[2] == bounds[3]:
-            y = bounds[2]
-        elif bounds[4] == bounds[5]:
-            z = bounds[4]
-        return x, y, z
-
 
 class WatershedProgressWindow(object):
     def __init__(self, process):
@@ -901,6 +1011,8 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
     def __init__(self, viewer):
         DefaultInteractorStyle.__init__(self, viewer)
 
+        self.state_code = const.SLICE_STATE_WATERSHED
+
         self.viewer = viewer
         self.orientation = self.viewer.orientation
         self.matrix = None
@@ -1045,28 +1157,15 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
         render = iren.FindPokedRenderer(mouse_x, mouse_y)
         slice_data = viewer.get_slice_data(render)
 
-        # TODO: Improve!
-        #for i in self.slice_data_list:
-            #i.cursor.Show(0)
-        slice_data.cursor.Show()
-
-        self.picker.Pick(mouse_x, mouse_y, 0, render)
-
-        coord = self.get_coordinate_cursor()
-        position = slice_data.actor.GetInput().FindPoint(coord)
-
-        if position != -1:
-            coord = slice_data.actor.GetInput().GetPoint(position)
+        coord = self.viewer.get_coordinate_cursor(mouse_x, mouse_y, picker=None)
+        position = self.viewer.get_slice_pixel_coord_by_screen_pos(mouse_x, mouse_y, self.picker)
 
+        slice_data.cursor.Show()
         slice_data.cursor.SetPosition(coord)
 
         cursor = slice_data.cursor
-        position = slice_data.actor.GetInput().FindPoint(coord)
         radius = cursor.radius
 
-        if position < 0:
-            position = viewer.calculate_matrix_position(coord)
-
         operation = self.config.operation
 
         if operation == BRUSH_FOREGROUND:
@@ -1105,31 +1204,12 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
         render = iren.FindPokedRenderer(mouse_x, mouse_y)
         slice_data = viewer.get_slice_data(render)
 
-        # TODO: Improve!
-        #for i in self.slice_data_list:
-            #i.cursor.Show(0)
-
-        self.picker.Pick(mouse_x, mouse_y, 0, render)
-
-        #if (self.pick.GetViewProp()):
-            #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK))
-        #else:
-            #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
-
-        coord = self.get_coordinate_cursor()
-        position = viewer.slice_data.actor.GetInput().FindPoint(coord)
-
-        # when position == -1 the cursos is not over the image, so is not
-        # necessary to set the cursor position to world coordinate center of
-        # pixel from slice image.
-        if position != -1:
-            coord = slice_data.actor.GetInput().GetPoint(position)
+        coord = self.viewer.get_coordinate_cursor(mouse_x, mouse_y, self.picker)
         slice_data.cursor.SetPosition(coord)
-        #self.__update_cursor_position(slice_data, coord)
 
         if (self.left_pressed):
             cursor = slice_data.cursor
-            position = slice_data.actor.GetInput().FindPoint(coord)
+            position = self.viewer.get_slice_pixel_coord_by_world_pos(*coord)
             radius = cursor.radius
 
             if position < 0:
@@ -1236,18 +1316,6 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
 
         Publisher.sendMessage('Reload actual slice')
 
-    def get_coordinate_cursor(self):
-        # Find position
-        x, y, z = self.picker.GetPickPosition()
-        bounds = self.viewer.slice_data.actor.GetBounds()
-        if bounds[0] == bounds[1]:
-            x = bounds[0]
-        elif bounds[2] == bounds[3]:
-            y = bounds[2]
-        elif bounds[4] == bounds[5]:
-            z = bounds[4]
-        return x, y, z
-
     def edit_mask_pixel(self, operation, n, index, position, radius, orientation):
         if orientation == 'AXIAL':
             mask = self.matrix[n, :, :]
@@ -1258,7 +1326,7 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
 
         spacing = self.viewer.slice_.spacing
         if hasattr(position, '__iter__'):
-            py, px = position
+            px, py = position
             if orientation == 'AXIAL':
                 sx = spacing[0]
                 sy = spacing[1]
@@ -1288,10 +1356,10 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
 
         cx = index.shape[1] / 2 + 1
         cy = index.shape[0] / 2 + 1
-        xi = px - index.shape[1] + cx
-        xf = xi + index.shape[1]
-        yi = py - index.shape[0] + cy
-        yf = yi + index.shape[0]
+        xi = int(px - index.shape[1] + cx)
+        xf = int(xi + index.shape[1])
+        yi = int(py - index.shape[0] + cy)
+        yf = int(yi + index.shape[0])
 
         if yi < 0:
             index = index[abs(yi):,:]
@@ -1405,19 +1473,871 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
             session.ChangeProject()
 
 
+class ReorientImageInteractorStyle(DefaultInteractorStyle):
+    """
+    Interactor style responsible for image reorientation
+    """
+    def __init__(self, viewer):
+        DefaultInteractorStyle.__init__(self, viewer)
+
+        self.state_code = const.SLICE_STATE_REORIENT
+
+        self.viewer = viewer
+
+        self.line1 = None
+        self.line2 = None
+
+        self.actors = []
+
+        self._over_center = False
+        self.dragging = False
+        self.to_rot = False
+
+        self.picker = vtk.vtkWorldPointPicker()
+
+        self.AddObserver("LeftButtonPressEvent",self.OnLeftClick)
+        self.AddObserver("LeftButtonReleaseEvent", self.OnLeftRelease)
+        self.AddObserver("MouseMoveEvent", self.OnMouseMove)
+        self.viewer.slice_data.renderer.AddObserver("StartEvent", self.OnUpdate)
+
+        if self.viewer.orientation == 'AXIAL':
+            Publisher.subscribe(self._set_reorientation_angles, 'Set reorientation angles')
+
+        self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnDblClick)
+
+    def SetUp(self):
+        self.draw_lines()
+        Publisher.sendMessage('Hide current mask')
+        Publisher.sendMessage('Reload actual slice')
+
+    def CleanUp(self):
+        for actor in self.actors:
+            self.viewer.slice_data.renderer.RemoveActor(actor)
+
+        self.viewer.slice_.rotations = [0, 0, 0]
+        self.viewer.slice_.q_orientation = np.array((1, 0, 0, 0))
+        self._discard_buffers()
+        Publisher.sendMessage('Close reorient dialog')
+        Publisher.sendMessage('Show current mask')
+
+    def OnLeftClick(self, obj, evt):
+        if self._over_center:
+            self.dragging = True
+        else:
+            x, y = self.viewer.interactor.GetEventPosition()
+            w, h = self.viewer.interactor.GetSize()
+
+            self.picker.Pick(h/2.0, w/2.0, 0, self.viewer.slice_data.renderer)
+            cx, cy, cz = self.viewer.slice_.center
+
+            self.picker.Pick(x, y, 0, self.viewer.slice_data.renderer)
+            x, y, z = self.picker.GetPickPosition()
+
+            self.p0 = self.get_image_point_coord(x, y, z)
+            self.to_rot = True
+
+    def OnLeftRelease(self, obj, evt):
+        self.dragging = False
+
+        if self.to_rot:
+            Publisher.sendMessage('Reload actual slice')
+            self.to_rot = False
+
+    def OnMouseMove(self, obj, evt):
+        """
+        This event is responsible to reorient image, set mouse cursors
+        """
+        if self.dragging:
+            self._move_center_rot()
+        elif self.to_rot:
+            self._rotate()
+        else:
+            # Getting mouse position
+            iren = self.viewer.interactor
+            mx, my = iren.GetEventPosition()
+
+            # Getting center value
+            center = self.viewer.slice_.center
+            coord = vtk.vtkCoordinate()
+            coord.SetValue(center)
+            cx, cy = coord.GetComputedDisplayValue(self.viewer.slice_data.renderer)
+
+            dist_center = ((mx - cx)**2 + (my - cy)**2)**0.5
+            if dist_center <= 15:
+                self._over_center = True
+                cursor = wx.StockCursor(wx.CURSOR_SIZENESW)
+            else:
+                self._over_center = False
+                cursor = wx.StockCursor(wx.CURSOR_DEFAULT)
+
+            self.viewer.interactor.SetCursor(cursor)
+
+    def OnUpdate(self, obj, evt):
+        w, h = self.viewer.slice_data.renderer.GetSize()
+
+        center = self.viewer.slice_.center
+        coord = vtk.vtkCoordinate()
+        coord.SetValue(center)
+        x, y = coord.GetComputedDisplayValue(self.viewer.slice_data.renderer)
+
+        self.line1.SetPoint1(0, y, 0)
+        self.line1.SetPoint2(w, y, 0)
+        self.line1.Update()
+
+        self.line2.SetPoint1(x, 0, 0)
+        self.line2.SetPoint2(x, h, 0)
+        self.line2.Update()
+
+    def OnDblClick(self, evt):
+        self.viewer.slice_.rotations = [0, 0, 0]
+        self.viewer.slice_.q_orientation = np.array((1, 0, 0, 0))
+
+        Publisher.sendMessage('Update reorient angles', (0, 0, 0))
+
+        self._discard_buffers()
+        self.viewer.slice_.current_mask.clear_history()
+        Publisher.sendMessage('Reload actual slice')
+
+    def _move_center_rot(self):
+        iren = self.viewer.interactor
+        mx, my = iren.GetEventPosition()
+
+        icx, icy, icz = self.viewer.slice_.center
+
+        self.picker.Pick(mx, my, 0, self.viewer.slice_data.renderer)
+        x, y, z = self.picker.GetPickPosition()
+
+        if self.viewer.orientation == 'AXIAL':
+            self.viewer.slice_.center = (x, y, icz)
+        elif self.viewer.orientation == 'CORONAL':
+            self.viewer.slice_.center = (x, icy, z)
+        elif self.viewer.orientation == 'SAGITAL':
+            self.viewer.slice_.center = (icx, y, z)
+
+
+        self._discard_buffers()
+        self.viewer.slice_.current_mask.clear_history()
+        Publisher.sendMessage('Reload actual slice')
+
+    def _rotate(self):
+        # Getting mouse position
+        iren = self.viewer.interactor
+        mx, my = iren.GetEventPosition()
+
+        cx, cy, cz = self.viewer.slice_.center
+
+        self.picker.Pick(mx, my, 0, self.viewer.slice_data.renderer)
+        x, y, z = self.picker.GetPickPosition()
+
+        if self.viewer.orientation == 'AXIAL':
+            p1 = np.array((y-cy, x-cx))
+        elif self.viewer.orientation == 'CORONAL':
+            p1 = np.array((z-cz, x-cx))
+        elif self.viewer.orientation == 'SAGITAL':
+            p1 = np.array((z-cz, y-cy))
+        p0 = self.p0
+        p1 = self.get_image_point_coord(x, y, z)
+
+        axis = np.cross(p0, p1)
+        norm = np.linalg.norm(axis)
+        if norm == 0:
+            return
+        axis = axis / norm
+        angle = np.arccos(np.dot(p0, p1)/(np.linalg.norm(p0)*np.linalg.norm(p1)))
+
+        self.viewer.slice_.q_orientation = transformations.quaternion_multiply(self.viewer.slice_.q_orientation, transformations.quaternion_about_axis(angle, axis))
+
+        az, ay, ax = transformations.euler_from_quaternion(self.viewer.slice_.q_orientation)
+        Publisher.sendMessage('Update reorient angles', (ax, ay, az))
+
+        self._discard_buffers()
+        self.viewer.slice_.current_mask.clear_history()
+        Publisher.sendMessage('Reload actual slice %s' % self.viewer.orientation)
+        self.p0 = self.get_image_point_coord(x, y, z)
+
+    def get_image_point_coord(self, x, y, z):
+        cx, cy, cz = self.viewer.slice_.center
+        if self.viewer.orientation == 'AXIAL':
+            z = cz
+        elif self.viewer.orientation == 'CORONAL':
+            y = cy
+        elif self.viewer.orientation == 'SAGITAL':
+            x = cx
+
+        x, y, z = x-cx, y-cy, z-cz
+
+        M = transformations.quaternion_matrix(self.viewer.slice_.q_orientation)
+        tcoord = np.array((z, y, x, 1)).dot(M)
+        tcoord = tcoord[:3]/tcoord[3]
+
+        #  print (z, y, x), tcoord
+        return tcoord
+
+    def _set_reorientation_angles(self, pubsub_evt):
+        ax, ay, az = pubsub_evt.data
+        q = transformations.quaternion_from_euler(az, ay, ax)
+        self.viewer.slice_.q_orientation = q
+
+        self._discard_buffers()
+        self.viewer.slice_.current_mask.clear_history()
+        Publisher.sendMessage('Reload actual slice')
+
+    def _create_line(self, x0, y0, x1, y1, color):
+        line = vtk.vtkLineSource()
+        line.SetPoint1(x0, y0, 0)
+        line.SetPoint2(x1, y1, 0)
+
+        coord = vtk.vtkCoordinate()
+        coord.SetCoordinateSystemToDisplay()
+
+        mapper = vtk.vtkPolyDataMapper2D()
+        mapper.SetTransformCoordinate(coord)
+        mapper.SetInputConnection(line.GetOutputPort())
+        mapper.Update()
+
+        actor = vtk.vtkActor2D()
+        actor.SetMapper(mapper)
+        actor.GetProperty().SetLineWidth(2.0)
+        actor.GetProperty().SetColor(color)
+        actor.GetProperty().SetOpacity(0.5)
+
+        self.viewer.slice_data.renderer.AddActor(actor)
+
+        self.actors.append(actor)
+
+        return line
+
+    def draw_lines(self):
+        if self.viewer.orientation == 'AXIAL':
+            color1 = (0, 1, 0)
+            color2 = (0, 0, 1)
+        elif self.viewer.orientation == 'CORONAL':
+            color1 = (1, 0, 0)
+            color2 = (0, 0, 1)
+        elif self.viewer.orientation == 'SAGITAL':
+            color1 = (1, 0, 0)
+            color2 = (0, 1, 0)
+
+        self.line1 = self._create_line(0, 0.5, 1, 0.5, color1)
+        self.line2 = self._create_line(0.5, 0, 0.5, 1, color2)
+
+    def _discard_buffers(self):
+        for buffer_ in self.viewer.slice_.buffer_slices.values():
+            buffer_.discard_vtk_image()
+            buffer_.discard_image()
+
+
+class FFillConfig(object):
+    __metaclass__= utils.Singleton
+    def __init__(self):
+        self.dlg_visible = False
+        self.target = "2D"
+        self.con_2d = 4
+        self.con_3d = 6
+
+
+class FloodFillMaskInteractorStyle(DefaultInteractorStyle):
+    def __init__(self, viewer):
+        DefaultInteractorStyle.__init__(self, viewer)
+
+        self.state_code = const.SLICE_STATE_MASK_FFILL
+
+        self.viewer = viewer
+        self.orientation = self.viewer.orientation
+
+        self.picker = vtk.vtkWorldPointPicker()
+        self.slice_actor = viewer.slice_data.actor
+        self.slice_data = viewer.slice_data
+
+        self.config = FFillConfig()
+        self.dlg_ffill = None
+
+        # InVesalius uses the following values to mark non selected parts in a
+        # mask:
+        # 0 - Threshold
+        # 1 - Manual edition and  floodfill
+        # 2 - Watershed
+        self.t0 = 0
+        self.t1 = 2
+        self.fill_value = 254
+
+        self._dlg_title = _(u"Fill holes")
+        self._progr_title = _(u"Fill hole")
+        self._progr_msg = _(u"Filling hole ...")
+
+        self.AddObserver("LeftButtonPressEvent", self.OnFFClick)
+
+    def SetUp(self):
+        if not self.config.dlg_visible:
+            self.config.dlg_visible = True
+            self.dlg_ffill = dialogs.FFillOptionsDialog(self._dlg_title, self.config)
+            self.dlg_ffill.Show()
+
+    def CleanUp(self):
+        if (self.dlg_ffill is not None) and (self.config.dlg_visible):
+            self.config.dlg_visible = False
+            self.dlg_ffill.Destroy()
+            self.dlg_ffill = None
+
+    def OnFFClick(self, obj, evt):
+        if (self.viewer.slice_.buffer_slices[self.orientation].mask is None):
+            return
+
+        viewer = self.viewer
+        iren = viewer.interactor
+        mouse_x, mouse_y = iren.GetEventPosition()
+        x, y, z = self.viewer.get_voxel_coord_by_screen_pos(mouse_x, mouse_y, self.picker)
+
+        mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:]
+        if mask[z, y, x] < self.t0 or mask[z, y, x] > self.t1:
+            return
+
+        if self.config.target == "3D":
+            bstruct = np.array(generate_binary_structure(3, CON3D[self.config.con_3d]), dtype='uint8')
+            self.viewer.slice_.do_threshold_to_all_slices()
+            cp_mask = self.viewer.slice_.current_mask.matrix.copy()
+        else:
+            _bstruct = generate_binary_structure(2, CON2D[self.config.con_2d])
+            if self.orientation == 'AXIAL':
+                bstruct = np.zeros((1, 3, 3), dtype='uint8')
+                bstruct[0] = _bstruct
+            elif self.orientation == 'CORONAL':
+                bstruct = np.zeros((3, 1, 3), dtype='uint8')
+                bstruct[:, 0, :] = _bstruct
+            elif self.orientation == 'SAGITAL':
+                bstruct = np.zeros((3, 3, 1), dtype='uint8')
+                bstruct[:, :, 0] = _bstruct
+
+        if self.config.target == '2D':
+            floodfill.floodfill_threshold(mask, [[x, y, z]], self.t0, self.t1, self.fill_value, bstruct, mask)
+            b_mask = self.viewer.slice_.buffer_slices[self.orientation].mask
+            index = self.viewer.slice_.buffer_slices[self.orientation].index
+
+            if self.orientation == 'AXIAL':
+                p_mask = mask[index,:,:].copy()
+            elif self.orientation == 'CORONAL':
+                p_mask = mask[:, index, :].copy()
+            elif self.orientation == 'SAGITAL':
+                p_mask = mask[:, :, index].copy()
+
+            self.viewer.slice_.current_mask.save_history(index, self.orientation, p_mask, b_mask)
+        else:
+            with futures.ThreadPoolExecutor(max_workers=1) as executor:
+                future = executor.submit(floodfill.floodfill_threshold, mask, [[x, y, z]], self.t0, self.t1, self.fill_value, bstruct, mask)
+
+                dlg = wx.ProgressDialog(self._progr_title, self._progr_msg, parent=None, style=wx.PD_APP_MODAL)
+                while not future.done():
+                    dlg.Pulse()
+                    time.sleep(0.1)
+
+                dlg.Destroy()
+
+            self.viewer.slice_.current_mask.save_history(0, 'VOLUME', self.viewer.slice_.current_mask.matrix.copy(), cp_mask)
+
+        self.viewer.slice_.buffer_slices['AXIAL'].discard_mask()
+        self.viewer.slice_.buffer_slices['CORONAL'].discard_mask()
+        self.viewer.slice_.buffer_slices['SAGITAL'].discard_mask()
+
+        self.viewer.slice_.buffer_slices['AXIAL'].discard_vtk_mask()
+        self.viewer.slice_.buffer_slices['CORONAL'].discard_vtk_mask()
+        self.viewer.slice_.buffer_slices['SAGITAL'].discard_vtk_mask()
+
+        self.viewer.slice_.current_mask.was_edited = True
+        Publisher.sendMessage('Reload actual slice')
+
+
+class RemoveMaskPartsInteractorStyle(FloodFillMaskInteractorStyle):
+    def __init__(self, viewer):
+        FloodFillMaskInteractorStyle.__init__(self, viewer)
+
+        self.state_code = const.SLICE_STATE_REMOVE_MASK_PARTS
+        # InVesalius uses the following values to mark selected parts in a
+        # mask:
+        # 255 - Threshold
+        # 254 - Manual edition and  floodfill
+        # 253 - Watershed
+        self.t0 = 253
+        self.t1 = 255
+        self.fill_value = 1
+
+        self._dlg_title = _(u"Remove parts")
+        self._progr_title = _(u"Remove part")
+        self._progr_msg = _(u"Removing part ...")
+
+class CropMaskConfig(object):
+    __metaclass__= utils.Singleton
+    def __init__(self):
+        self.dlg_visible = False
+
+class CropMaskInteractorStyle(DefaultInteractorStyle):
+    def __init__(self, viewer):
+        DefaultInteractorStyle.__init__(self, viewer)
+
+        self.state_code = const.SLICE_STATE_CROP_MASK
+
+        self.viewer = viewer
+        self.orientation = self.viewer.orientation
+        self.picker = vtk.vtkWorldPointPicker()
+        self.slice_actor = viewer.slice_data.actor
+        self.slice_data = viewer.slice_data
+        self.draw_retangle = None
+
+        self.config = CropMaskConfig()
+
+    def __evts__(self):
+        self.AddObserver("MouseMoveEvent", self.OnMove)
+        self.AddObserver("LeftButtonPressEvent", self.OnLeftPressed)
+        self.AddObserver("LeftButtonReleaseEvent", self.OnReleaseLeftButton)
+
+        Publisher.subscribe(self.CropMask, "Crop mask")
+
+    def OnMove(self, obj, evt):
+        iren = self.viewer.interactor
+        x, y = iren.GetEventPosition()
+        self.draw_retangle.MouseMove(x,y)
+
+    def OnLeftPressed(self, obj, evt):
+        self.draw_retangle.mouse_pressed = True
+        iren = self.viewer.interactor
+        x, y = iren.GetEventPosition()
+        self.draw_retangle.LeftPressed(x,y)
+
+    def OnReleaseLeftButton(self, obj, evt):
+        self.draw_retangle.mouse_pressed = False
+        self.draw_retangle.ReleaseLeft()
+
+    def SetUp(self):
+        
+        self.draw_retangle = geom.DrawCrop2DRetangle()
+        self.draw_retangle.SetViewer(self.viewer)
+
+        self.viewer.canvas.draw_list.append(self.draw_retangle)
+        self.viewer.UpdateCanvas()
+        
+        if not(self.config.dlg_visible):
+            self.config.dlg_visible = True
+
+            dlg = dialogs.CropOptionsDialog(self.config)
+            dlg.UpdateValues(self.draw_retangle.box.GetLimits())
+            dlg.Show()
+
+        self.__evts__()
+        #self.draw_lines()
+        #Publisher.sendMessage('Hide current mask')
+        #Publisher.sendMessage('Reload actual slice')
+
+    def CleanUp(self):
+        self.viewer.canvas.draw_list.remove(self.draw_retangle)
+        Publisher.sendMessage('Redraw canvas')
+
+    def CropMask(self, pubsub_evt):
+        if self.viewer.orientation == "AXIAL":
+            
+            xi, xf, yi, yf, zi, zf = self.draw_retangle.box.GetLimits()
+
+            xi += 1
+            xf += 1
+
+            yi += 1
+            yf += 1
+            
+            zi += 1
+            zf += 1
+
+            self.viewer.slice_.do_threshold_to_all_slices()
+            cp_mask = self.viewer.slice_.current_mask.matrix.copy()
+
+            tmp_mask = self.viewer.slice_.current_mask.matrix[zi-1:zf+1, yi-1:yf+1, xi-1:xf+1].copy()
+            
+            self.viewer.slice_.current_mask.matrix[:] = 1
+
+            self.viewer.slice_.current_mask.matrix[zi-1:zf+1, yi-1:yf+1, xi-1:xf+1] = tmp_mask
+
+            self.viewer.slice_.current_mask.save_history(0, 'VOLUME', self.viewer.slice_.current_mask.matrix.copy(), cp_mask)
+            
+            self.viewer.slice_.buffer_slices['AXIAL'].discard_mask()
+            self.viewer.slice_.buffer_slices['CORONAL'].discard_mask()
+            self.viewer.slice_.buffer_slices['SAGITAL'].discard_mask()
+
+            self.viewer.slice_.buffer_slices['AXIAL'].discard_vtk_mask()
+            self.viewer.slice_.buffer_slices['CORONAL'].discard_vtk_mask()
+            self.viewer.slice_.buffer_slices['SAGITAL'].discard_vtk_mask()
+
+            self.viewer.slice_.current_mask.was_edited = True
+            Publisher.sendMessage('Reload actual slice')           
+
+     
+class SelectPartConfig(object):
+    __metaclass__= utils.Singleton
+    def __init__(self):
+        self.mask = None
+        self.con_3d = 6
+        self.dlg_visible = False
+        self.mask_name = ''
+
+
+class SelectMaskPartsInteractorStyle(DefaultInteractorStyle):
+    def __init__(self, viewer):
+        DefaultInteractorStyle.__init__(self, viewer)
+
+        self.state_code = const.SLICE_STATE_SELECT_MASK_PARTS
+
+        self.viewer = viewer
+        self.orientation = self.viewer.orientation
+
+        self.picker = vtk.vtkWorldPointPicker()
+        self.slice_actor = viewer.slice_data.actor
+        self.slice_data = viewer.slice_data
+
+        self.config = SelectPartConfig()
+        self.dlg = None
+
+        # InVesalius uses the following values to mark selected parts in a
+        # mask:
+        # 255 - Threshold
+        # 254 - Manual edition and  floodfill
+        # 253 - Watershed
+        self.t0 = 253
+        self.t1 = 255
+        self.fill_value = 254
+
+        self.AddObserver("LeftButtonPressEvent", self.OnSelect)
+
+    def SetUp(self):
+        if not self.config.dlg_visible:
+            import invesalius.data.mask as mask
+            default_name =  const.MASK_NAME_PATTERN %(mask.Mask.general_index+2)
+
+            self.config.mask_name = default_name
+            self.config.dlg_visible = True
+            self.dlg= dialogs.SelectPartsOptionsDialog(self.config)
+            self.dlg.Show()
+
+    def CleanUp(self):
+        if self.dlg is None:
+            return
+
+        dialog_return = self.dlg.GetReturnCode()
+
+        if self.config.dlg_visible:
+            self.config.dlg_visible = False
+            self.dlg.Destroy()
+            self.dlg = None
+
+        if self.config.mask:
+            if dialog_return == wx.OK:
+                self.config.mask.name = self.config.mask_name
+                self.viewer.slice_._add_mask_into_proj(self.config.mask)
+                self.viewer.slice_.SelectCurrentMask(self.config.mask.index)
+                Publisher.sendMessage('Change mask selected', self.config.mask.index)
+
+            del self.viewer.slice_.aux_matrices['SELECT']
+            self.viewer.slice_.to_show_aux = ''
+            Publisher.sendMessage('Reload actual slice')
+            self.config.mask = None
+
+
+    def OnSelect(self, obj, evt):
+        if (self.viewer.slice_.buffer_slices[self.orientation].mask is None):
+            return
+
+        iren = self.viewer.interactor
+        mouse_x, mouse_y = iren.GetEventPosition()
+        x, y, z = self.viewer.get_voxel_coord_by_screen_pos(mouse_x, mouse_y, self.picker)
+
+        mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:]
+
+        bstruct = np.array(generate_binary_structure(3, CON3D[self.config.con_3d]), dtype='uint8')
+        self.viewer.slice_.do_threshold_to_all_slices()
+
+        if self.config.mask is None:
+            self._create_new_mask()
+
+        if iren.GetControlKey():
+            floodfill.floodfill_threshold(self.config.mask.matrix[1:, 1:, 1:], [[x, y, z]], 254, 255, 0, bstruct, self.config.mask.matrix[1:, 1:, 1:])
+        else:
+            floodfill.floodfill_threshold(mask, [[x, y, z]], self.t0, self.t1, self.fill_value, bstruct, self.config.mask.matrix[1:, 1:, 1:])
+
+        self.viewer.slice_.aux_matrices['SELECT'] = self.config.mask.matrix[1:, 1:, 1:]
+        self.viewer.slice_.to_show_aux = 'SELECT'
+
+        self.config.mask.was_edited = True
+        Publisher.sendMessage('Reload actual slice')
+
+    def _create_new_mask(self):
+        mask = self.viewer.slice_.create_new_mask(show=False, add_to_project=False)
+        mask.was_edited = True
+        mask.matrix[0, :, :] = 1
+        mask.matrix[:, 0, :] = 1
+        mask.matrix[:, :, 0] = 1
+
+        self.config.mask = mask
+
+
+class FFillSegmentationConfig(object):
+    __metaclass__= utils.Singleton
+    def __init__(self):
+        self.dlg_visible = False
+        self.target = "2D"
+        self.con_2d = 4
+        self.con_3d = 6
+
+        self.t0 = None
+        self.t1 = None
+
+        self.fill_value = 254
+
+        self.method = 'dynamic'
+
+        self.dev_min = 25
+        self.dev_max = 25
+
+        self.use_ww_wl = True
+
+        self.confid_mult = 2.5
+        self.confid_iters = 3
+
+
+class FloodFillSegmentInteractorStyle(DefaultInteractorStyle):
+    def __init__(self, viewer):
+        DefaultInteractorStyle.__init__(self, viewer)
+
+        self.state_code = const.SLICE_STATE_FFILL_SEGMENTATION
+
+        self.viewer = viewer
+        self.orientation = self.viewer.orientation
+
+        self.picker = vtk.vtkWorldPointPicker()
+        self.slice_actor = viewer.slice_data.actor
+        self.slice_data = viewer.slice_data
+
+        self.config = FFillSegmentationConfig()
+        self.dlg_ffill = None
+
+        self._progr_title = _(u"Region growing")
+        self._progr_msg = _(u"Segmenting ...")
+
+        self.AddObserver("LeftButtonPressEvent", self.OnFFClick)
+
+    def SetUp(self):
+        if not self.config.dlg_visible:
+
+            if self.config.t0 is None:
+                image = self.viewer.slice_.matrix
+                _min, _max = image.min(), image.max()
+
+                self.config.t0 = int(_min + (3.0/4.0) * (_max - _min))
+                self.config.t1 = int(_max)
+
+            self.config.dlg_visible = True
+            self.dlg_ffill = dialogs.FFillSegmentationOptionsDialog(self.config)
+            self.dlg_ffill.Show()
+
+    def CleanUp(self):
+        if (self.dlg_ffill is not None) and (self.config.dlg_visible):
+            self.config.dlg_visible = False
+            self.dlg_ffill.Destroy()
+            self.dlg_ffill = None
+
+    def OnFFClick(self, obj, evt):
+        if (self.viewer.slice_.buffer_slices[self.orientation].mask is None):
+            return
+
+        if self.config.target == "3D":
+            self.do_3d_seg()
+        else:
+            self.do_2d_seg()
+
+        self.viewer.slice_.buffer_slices['AXIAL'].discard_mask()
+        self.viewer.slice_.buffer_slices['CORONAL'].discard_mask()
+        self.viewer.slice_.buffer_slices['SAGITAL'].discard_mask()
+
+        self.viewer.slice_.buffer_slices['AXIAL'].discard_vtk_mask()
+        self.viewer.slice_.buffer_slices['CORONAL'].discard_vtk_mask()
+        self.viewer.slice_.buffer_slices['SAGITAL'].discard_vtk_mask()
+
+        self.viewer.slice_.current_mask.was_edited = True
+        Publisher.sendMessage('Reload actual slice')
+
+    def do_2d_seg(self):
+        viewer = self.viewer
+        iren = viewer.interactor
+        mouse_x, mouse_y = iren.GetEventPosition()
+        x, y = self.viewer.get_slice_pixel_coord_by_screen_pos(mouse_x, mouse_y, self.picker)
+
+        mask = self.viewer.slice_.buffer_slices[self.orientation].mask.copy()
+        image = self.viewer.slice_.buffer_slices[self.orientation].image
+
+        if self.config.method == 'confidence':
+            dy, dx = image.shape
+            image = image.reshape((1, dy, dx))
+            mask = mask.reshape((1, dy, dx))
+
+            bstruct = np.array(generate_binary_structure(2, CON2D[self.config.con_2d]), dtype='uint8')
+            bstruct = bstruct.reshape((1, 3, 3))
+
+            out_mask = self.do_rg_confidence(image, mask, (x, y, 0), bstruct)
+        else:
+            if self.config.method == 'threshold':
+                v = image[y, x]
+                t0 = self.config.t0
+                t1 = self.config.t1
+
+            elif self.config.method == 'dynamic':
+                if self.config.use_ww_wl:
+                    print "Using WW&WL"
+                    ww = self.viewer.slice_.window_width
+                    wl = self.viewer.slice_.window_level
+                    image = get_LUT_value_255(image, ww, wl)
+
+                v = image[y, x]
+
+                t0 = v - self.config.dev_min
+                t1 = v + self.config.dev_max
+
+
+            if image[y, x] < t0 or image[y, x] > t1:
+                return
+
+            dy, dx = image.shape
+            image = image.reshape((1, dy, dx))
+            mask = mask.reshape((1, dy, dx))
+
+            out_mask = np.zeros_like(mask)
+
+            bstruct = np.array(generate_binary_structure(2, CON2D[self.config.con_2d]), dtype='uint8')
+            bstruct = bstruct.reshape((1, 3, 3))
+
+            floodfill.floodfill_threshold(image, [[x, y, 0]], t0, t1, 1, bstruct, out_mask)
+
+        mask[out_mask.astype('bool')] = self.config.fill_value
+
+        index = self.viewer.slice_.buffer_slices[self.orientation].index
+        b_mask = self.viewer.slice_.buffer_slices[self.orientation].mask
+        vol_mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:]
+
+        if self.orientation == 'AXIAL':
+            vol_mask[index, :, :] = mask
+        elif self.orientation == 'CORONAL':
+            vol_mask[:, index, :] = mask
+        elif self.orientation == 'SAGITAL':
+            vol_mask[:, :, index] = mask
+
+        self.viewer.slice_.current_mask.save_history(index, self.orientation, mask, b_mask)
+
+    def do_3d_seg(self):
+        viewer = self.viewer
+        iren = viewer.interactor
+        mouse_x, mouse_y = iren.GetEventPosition()
+        x, y, z = self.viewer.get_voxel_coord_by_screen_pos(mouse_x, mouse_y, self.picker)
+
+        mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:]
+        image = self.viewer.slice_.matrix
+
+        if self.config.method != 'confidence':
+            if self.config.method == 'threshold':
+                v = image[z, y, x]
+                t0 = self.config.t0
+                t1 = self.config.t1
+
+            elif self.config.method == 'dynamic':
+                if self.config.use_ww_wl:
+                    print "Using WW&WL"
+                    ww = self.viewer.slice_.window_width
+                    wl = self.viewer.slice_.window_level
+                    image = get_LUT_value_255(image, ww, wl)
+
+                v = image[z, y, x]
+
+                t0 = v - self.config.dev_min
+                t1 = v + self.config.dev_max
+
+            if image[z, y, x] < t0 or image[z, y, x] > t1:
+                return
+
+
+        bstruct = np.array(generate_binary_structure(3, CON3D[self.config.con_3d]), dtype='uint8')
+        self.viewer.slice_.do_threshold_to_all_slices()
+        cp_mask = self.viewer.slice_.current_mask.matrix.copy()
+
+        if self.config.method == 'confidence':
+            with futures.ThreadPoolExecutor(max_workers=1) as executor:
+                future = executor.submit(self.do_rg_confidence, image, mask, (x, y, z), bstruct)
+
+                dlg = wx.ProgressDialog(self._progr_title, self._progr_msg, parent=None, style=wx.PD_APP_MODAL)
+                while not future.done():
+                    dlg.Pulse()
+                    time.sleep(0.1)
+                dlg.Destroy()
+                out_mask = future.result()
+        else:
+            out_mask = np.zeros_like(mask)
+            with futures.ThreadPoolExecutor(max_workers=1) as executor:
+                future = executor.submit(floodfill.floodfill_threshold, image, [[x, y, z]], t0, t1, 1, bstruct, out_mask)
+
+                dlg = wx.ProgressDialog(self._progr_title, self._progr_msg, parent=None, style=wx.PD_APP_MODAL)
+                while not future.done():
+                    dlg.Pulse()
+                    time.sleep(0.1)
+
+                dlg.Destroy()
+
+        mask[out_mask.astype('bool')] = self.config.fill_value
+
+        self.viewer.slice_.current_mask.save_history(0, 'VOLUME', self.viewer.slice_.current_mask.matrix.copy(), cp_mask)
+
+    def do_rg_confidence(self, image, mask, p, bstruct):
+        x, y, z = p
+        if self.config.use_ww_wl:
+            ww = self.viewer.slice_.window_width
+            wl = self.viewer.slice_.window_level
+            image = get_LUT_value_255(image, ww, wl)
+        bool_mask = np.zeros_like(mask, dtype='bool')
+        out_mask = np.zeros_like(mask)
+
+        for k in xrange(int(z-1), int(z+2)):
+            if k < 0 or k >= bool_mask.shape[0]:
+                continue
+            for j in xrange(int(y-1), int(y+2)):
+                if j < 0 or j >= bool_mask.shape[1]:
+                    continue
+                for i in xrange(int(x-1), int(x+2)):
+                    if i < 0 or i >= bool_mask.shape[2]:
+                        continue
+                    bool_mask[k, j, i] = True
+
+        for i in xrange(self.config.confid_iters):
+            var = np.std(image[bool_mask])
+            mean = np.mean(image[bool_mask])
+
+            t0 = mean - var * self.config.confid_mult
+            t1 = mean + var * self.config.confid_mult
+
+            floodfill.floodfill_threshold(image, [[x, y, z]], t0, t1, 1, bstruct, out_mask)
+
+            bool_mask[out_mask == 1] = True
+
+        return out_mask
+
 def get_style(style):
     STYLES = {
-              const.STATE_DEFAULT: DefaultInteractorStyle,
-              const.SLICE_STATE_CROSS: CrossInteractorStyle,
-              const.STATE_WL: WWWLInteractorStyle,
-              const.STATE_MEASURE_DISTANCE: LinearMeasureInteractorStyle,
-              const.STATE_MEASURE_ANGLE: AngularMeasureInteractorStyle,
-              const.STATE_PAN: PanMoveInteractorStyle,
-              const.STATE_SPIN: SpinInteractorStyle,
-              const.STATE_ZOOM: ZoomInteractorStyle,
-              const.STATE_ZOOM_SL: ZoomSLInteractorStyle,
-              const.SLICE_STATE_SCROLL: ChangeSliceInteractorStyle,
-              const.SLICE_STATE_EDITOR: EditorInteractorStyle,
-              const.SLICE_STATE_WATERSHED: WaterShedInteractorStyle,
-             }
+        const.STATE_DEFAULT: DefaultInteractorStyle,
+        const.SLICE_STATE_CROSS: CrossInteractorStyle,
+        const.STATE_WL: WWWLInteractorStyle,
+        const.STATE_MEASURE_DISTANCE: LinearMeasureInteractorStyle,
+        const.STATE_MEASURE_ANGLE: AngularMeasureInteractorStyle,
+        const.STATE_PAN: PanMoveInteractorStyle,
+        const.STATE_SPIN: SpinInteractorStyle,
+        const.STATE_ZOOM: ZoomInteractorStyle,
+        const.STATE_ZOOM_SL: ZoomSLInteractorStyle,
+        const.SLICE_STATE_SCROLL: ChangeSliceInteractorStyle,
+        const.SLICE_STATE_EDITOR: EditorInteractorStyle,
+        const.SLICE_STATE_WATERSHED: WaterShedInteractorStyle,
+        const.SLICE_STATE_REORIENT: ReorientImageInteractorStyle,
+        const.SLICE_STATE_MASK_FFILL: FloodFillMaskInteractorStyle,
+        const.SLICE_STATE_REMOVE_MASK_PARTS: RemoveMaskPartsInteractorStyle,
+        const.SLICE_STATE_SELECT_MASK_PARTS: SelectMaskPartsInteractorStyle,
+        const.SLICE_STATE_FFILL_SEGMENTATION: FloodFillSegmentInteractorStyle,
+        const.SLICE_STATE_CROP_MASK: CropMaskInteractorStyle,
+    }
     return STYLES[style]
diff --git a/invesalius/data/surface.py b/invesalius/data/surface.py
index 68ac6ca..5cd3e4f 100644
--- a/invesalius/data/surface.py
+++ b/invesalius/data/surface.py
@@ -21,6 +21,8 @@ import multiprocessing
 import os
 import plistlib
 import random
+import shutil
+import sys
 import tempfile
 import weakref
 
@@ -28,20 +30,25 @@ import vtk
 import wx
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import imagedata_utils as iu
-import polydata_utils as pu
-import project as prj
-import session as ses
-import surface_process
-import utils as utl
-import vtk_utils as vu
-
-try:
-    import ca_smoothing
-except ImportError:
-    import data.ca_smoothing as ca_smoothing
-
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
+
+import invesalius.constants as const
+import invesalius.data.imagedata_utils as iu
+import invesalius.data.polydata_utils as pu
+import invesalius.project as prj
+import invesalius.session as ses
+import invesalius.data.surface_process as surface_process
+import invesalius.utils as utl
+import invesalius.data.vtk_utils as vu
+
+from invesalius.data import cy_mesh
 # TODO: Verificar ReleaseDataFlagOn and SetSource 
 
 class Surface():
@@ -68,8 +75,8 @@ class Surface():
             self.name = name
 
     def SavePlist(self, dir_temp, filelist):
-        filename = 'surface_%d' % self.index
-        vtp_filename = filename + '.vtp'
+        filename = u'surface_%d' % self.index
+        vtp_filename = filename + u'.vtp'
         vtp_filepath = os.path.join(dir_temp, vtp_filename)
         pu.Export(self.polydata, vtp_filepath, bin=True)
 
@@ -84,7 +91,7 @@ class Surface():
                    'volume': self.volume,
                    'area': self.area,
                   }
-        plist_filename = filename + '.plist'
+        plist_filename = filename + u'.plist'
         #plist_filepath = os.path.join(dir_temp, filename + '.plist')
         temp_plist = tempfile.mktemp()
         plistlib.writePlist(surface, temp_plist)
@@ -154,6 +161,8 @@ class SurfaceManager():
         Publisher.subscribe(self.OnRemove,"Remove surfaces")
         Publisher.subscribe(self.UpdateSurfaceInterpolation, 'Update Surface Interpolation')
 
+        Publisher.subscribe(self.OnImportSurfaceFile, 'Import surface file')
+
     def OnDuplicate(self, pubsub_evt):
         selected_items = pubsub_evt.data
         proj = prj.Project()
@@ -245,6 +254,40 @@ class SurfaceManager():
         new_index = self.CreateSurfaceFromPolydata(new_polydata)
         Publisher.sendMessage('Show single surface', (new_index, True))
 
+    def OnImportSurfaceFile(self, pubsub_evt):
+        """
+        Creates a new surface from a surface file (STL, PLY, OBJ or VTP)
+        """
+        filename = pubsub_evt.data
+        self.CreateSurfaceFromFile(filename)
+
+    def CreateSurfaceFromFile(self, filename):
+        if filename.lower().endswith('.stl'):
+            reader = vtk.vtkSTLReader()
+        elif filename.lower().endswith('.ply'):
+            reader = vtk.vtkPLYReader()
+        elif filename.lower().endswith('.obj'):
+            reader = vtk.vtkOBJReader()
+        elif filename.lower().endswith('.vtp'):
+            reader = vtk.vtkXMLPolyDataReader()
+        else:
+            wx.MessageBox(_("File format not reconized by InVesalius"), _("Import surface error"))
+            return
+
+        if _has_win32api:
+            reader.SetFileName(win32api.GetShortPathName(filename).encode(const.FS_ENCODE))
+        else:
+            reader.SetFileName(filename.encode(const.FS_ENCODE))
+
+        reader.Update()
+        polydata = reader.GetOutput()
+
+        if polydata.GetNumberOfPoints() == 0:
+            wx.MessageBox(_("InVesalius was not able to import this surface"), _("Import surface error"))
+        else:
+            name = os.path.splitext(os.path.split(filename)[-1])[0]
+            self.CreateSurfaceFromPolydata(polydata, name=name)
+
     def CreateSurfaceFromPolydata(self, polydata, overwrite=False,
                                   name=None, colour=None,
                                   transparency=None, volume=None, area=None):
@@ -333,6 +376,9 @@ class SurfaceManager():
         del self.actors_dict
         self.actors_dict = {}
 
+        # restarting the surface index
+        Surface.general_index = -1
+
     def OnSelectSurface(self, pubsub_evt):
         index = pubsub_evt.data
         #self.last_surface_index = index
@@ -344,8 +390,8 @@ class SurfaceManager():
                                surface.colour, surface.volume,
                                surface.area, surface.transparency))
         self.last_surface_index = index
-        if surface.is_shown:
-            self.ShowActor(index, True)
+        #  if surface.is_shown:
+        self.ShowActor(index, True)
 
     def OnLoadSurfaceDict(self, pubsub_evt):
         surface_dict = pubsub_evt.data
@@ -564,17 +610,24 @@ class SurfaceManager():
             #  polydata.SetSource(None)
             del clean
 
-            try:
-                polydata.BuildLinks()
-            except TypeError:
-                polydata.BuildLinks(0)
-            polydata = ca_smoothing.ca_smoothing(polydata, options['angle'],
-                                                 options['max distance'],
-                                                 options['min weight'],
-                                                 options['steps'])
+            #  try:
+                #  polydata.BuildLinks()
+            #  except TypeError:
+                #  polydata.BuildLinks(0)
+            #  polydata = ca_smoothing.ca_smoothing(polydata, options['angle'],
+                                                 #  options['max distance'],
+                                                 #  options['min weight'],
+                                                 #  options['steps'])
+
+            mesh = cy_mesh.Mesh(polydata)
+            cy_mesh.ca_smoothing(mesh, options['angle'],
+                                 options['max distance'],
+                                 options['min weight'],
+                                 options['steps'])
+            #  polydata = mesh.to_vtk()
+
             #  polydata.SetSource(None)
             #  polydata.DebugOn()
-
         else:
             #smoother = vtk.vtkWindowedSincPolyDataFilter()
             smoother = vtk.vtkSmoothPolyDataFilter()
@@ -831,11 +884,31 @@ class SurfaceManager():
 
     def OnExportSurface(self, pubsub_evt):
         filename, filetype = pubsub_evt.data
-        if (filetype == const.FILETYPE_STL) or\
-           (filetype == const.FILETYPE_VTP) or\
-           (filetype == const.FILETYPE_PLY) or\
-           (filetype == const.FILETYPE_STL_ASCII):
-
+        ftype_prefix = {
+            const.FILETYPE_STL: '.stl',
+            const.FILETYPE_VTP: '.vtp',
+            const.FILETYPE_PLY: '.ply',
+            const.FILETYPE_STL_ASCII: '.stl',
+        }
+        if filetype in ftype_prefix:
+            temp_file = tempfile.mktemp(suffix=ftype_prefix[filetype])
+
+            if _has_win32api:
+                utl.touch(temp_file)
+                _temp_file = temp_file
+                temp_file = win32api.GetShortPathName(temp_file)
+                os.remove(_temp_file)
+
+            temp_file = temp_file.decode(const.FS_ENCODE)
+            self._export_surface(temp_file, filetype)
+
+            shutil.move(temp_file, filename)
+
+    def _export_surface(self, filename, filetype):
+        if filetype in (const.FILETYPE_STL,
+                        const.FILETYPE_VTP,
+                        const.FILETYPE_PLY,
+                        const.FILETYPE_STL_ASCII):
             # First we identify all surfaces that are selected
             # (if any)
             proj = prj.Project()
@@ -874,7 +947,9 @@ class SurfaceManager():
                 #writer.SetColorModeToUniformCellColor()
                 #writer.SetColor(255, 0, 0)
 
-            if filetype in (const.FILETYPE_STL, const.FILETYPE_PLY):
+            if filetype in (const.FILETYPE_STL,
+                            const.FILETYPE_STL_ASCII,
+                            const.FILETYPE_PLY):
                 # Invert normals
                 normals = vtk.vtkPolyDataNormals()
                 normals.SetInputData(polydata)
@@ -885,7 +960,7 @@ class SurfaceManager():
                 normals.Update()
                 polydata = normals.GetOutput()
 
-            filename = filename.encode(wx.GetDefaultPyEncoding())
+            filename = filename.encode(const.FS_ENCODE)
             writer.SetFileName(filename)
             writer.SetInputData(polydata)
             writer.Write()
diff --git a/invesalius/data/surface_process.py b/invesalius/data/surface_process.py
index 63a1378..aa4e5cb 100644
--- a/invesalius/data/surface_process.py
+++ b/invesalius/data/surface_process.py
@@ -5,9 +5,9 @@ import time
 import numpy
 import vtk
 
-import i18n
-import converters
-# import imagedata_utils as iu
+import invesalius.i18n as i18n
+import invesalius.data.converters as converters
+# import invesalius.data.imagedata_utils as iu
 
 from scipy import ndimage
 
diff --git a/invesalius/data/trackers.py b/invesalius/data/trackers.py
new file mode 100644
index 0000000..f866fe2
--- /dev/null
+++ b/invesalius/data/trackers.py
@@ -0,0 +1,260 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+
+# TODO: Disconnect tracker when a new one is connected
+# TODO: Test if there are too many prints when connection fails
+
+
+def TrackerConnection(tracker_id, action):
+    """
+    Initialize spatial trackers for coordinate detection during navigation.
+
+    :param tracker_id: ID of tracking device.
+    :param action: string with to decide whether connect or disconnect the selected device.
+    :return spatial tracker initialization instance or None if could not open device.
+    """
+
+    if action == 'connect':
+        trck_fcn = {1: ClaronTracker,
+                    2: PolhemusTrackerFT,    # FASTRAK
+                    3: PolhemusTracker,    # ISOTRAK
+                    4: PolhemusTracker,    # PATRIOT
+                    5: DebugTracker}
+
+        trck_init = trck_fcn[tracker_id](tracker_id)
+
+    elif action == 'disconnect':
+        trck_init = DisconnectTracker(tracker_id)
+
+    return trck_init
+
+
+def DefaultTracker(tracker_id):
+    trck_init = None
+    try:
+        # import spatial tracker library
+        print 'Connect to default tracking device.'
+
+    except:
+        print 'Could not connect to default tracker.'
+
+    # return tracker initialization variable and type of connection
+    return trck_init, 'wrapper'
+
+
+def ClaronTracker(tracker_id):
+    import invesalius.constants as const
+
+    trck_init = None
+    try:
+        import pyclaron
+
+        lib_mode = 'wrapper'
+        trck_init = pyclaron.pyclaron()
+        trck_init.CalibrationDir = const.CAL_DIR
+        trck_init.MarkerDir = const.MAR_DIR
+        trck_init.NumberFramesProcessed = 10
+        trck_init.FramesExtrapolated = 0
+        trck_init.PROBE_NAME = "1Probe"
+        trck_init.REF_NAME = "5Ref"
+        trck_init.Initialize()
+
+        if trck_init.GetIdentifyingCamera():
+            trck_init.Run()
+            print "MicronTracker camera identified."
+        else:
+            trck_init = None
+
+    except ImportError:
+        lib_mode = 'error'
+        print 'The ClaronTracker library is not installed.'
+
+    return trck_init, lib_mode
+
+def PolhemusTrackerFT(tracker_id):
+    trck_init = None
+    lib_mode = 'wrapper'
+    try:
+        import polhemusFT
+
+        trck_init = polhemusFT.polhemusFT()
+        trck_check = trck_init.Initialize()
+
+        if trck_check:
+            # First run is necessary to discard the first coord collection
+            trck_init.Run()
+        else:
+            trck_init = trck_check
+    except:
+        print 'Could not connect to Polhemus via wrapper.'
+
+    return trck_init, lib_mode
+
+def PolhemusTracker(tracker_id):
+    trck_init = None
+    try:
+        trck_init = PlhWrapperConnection()
+        lib_mode = 'wrapper'
+        if not trck_init:
+            print 'Could not connect with Polhemus wrapper, trying USB connection...'
+            trck_init = PlhUSBConnection(tracker_id)
+            lib_mode = 'usb'
+            if not trck_init:
+                print 'Could not connect with Polhemus USB, trying serial connection...'
+                trck_init = PlhSerialConnection(tracker_id)
+                lib_mode = 'serial'
+    except:
+        lib_mode = 'error'
+        print 'Could not connect to Polhemus.'
+
+    return trck_init, lib_mode
+
+
+def DebugTracker(tracker_id):
+    trck_init = True
+    print 'Debug device started.'
+    return trck_init, 'debug'
+
+
+def PlhWrapperConnection():
+    trck_init = None
+    try:
+        import polhemus
+
+        trck_init = polhemus.polhemus()
+        trck_check = trck_init.Initialize()
+
+        if trck_check:
+            # First run is necessary to discard the first coord collection
+            trck_init.Run()
+        else:
+            trck_init = trck_check
+    except:
+        print 'Could not connect to Polhemus via wrapper.'
+
+    return trck_init
+
+
+def PlhSerialConnection(tracker_id):
+    try:
+        import serial
+
+        trck_init = serial.Serial('COM1', baudrate=115200, timeout=0.2)
+
+        if tracker_id == 2:
+            # Polhemus FASTRAK needs configurations first
+            trck_init.write(0x02, "u")
+            trck_init.write(0x02, "F")
+        elif tracker_id == 3:
+            # Polhemus ISOTRAK needs to set tracking point from
+            # center to tip.
+            trck_init.write("F")
+            trck_init.write("Y")
+
+        trck_init.write('P')
+        data = trck_init.readlines()
+
+        if not data:
+            trck_init = None
+
+    except:
+        trck_init = None
+        print 'Could not connect to Polhemus serial.'
+
+    return trck_init
+
+
+def PlhUSBConnection(tracker_id):
+    trck_init = None
+    try:
+        import usb.core as uc
+        trck_init = uc.find(idVendor=0x0F44, idProduct=0x0003)
+        cfg = trck_init.get_active_configuration()
+        for i in cfg:
+            for x in i:
+                # TODO: try better code
+                x = x
+        trck_init.set_configuration()
+        endpoint = trck_init[0][(0, 0)][0]
+        if tracker_id == 2:
+            # Polhemus FASTRAK needs configurations first
+            # TODO: Check configurations to standardize initialization for all Polhemus devices
+            trck_init.write(0x02, "u")
+            trck_init.write(0x02, "F")
+        # First run to confirm that everything is working
+        trck_init.write(0x02, "P")
+        data = trck_init.read(endpoint.bEndpointAddress,
+                              endpoint.wMaxPacketSize)
+        if not data:
+            trck_init = None
+
+    except:
+        print 'Could not connect to Polhemus USB.'
+
+    return trck_init
+
+
+def DisconnectTracker(tracker_id):
+    """
+    Disconnect current spatial tracker
+
+    :param tracker_id: ID of tracking device.
+    """
+    from wx.lib.pubsub import pub as Publisher
+    Publisher.sendMessage('Update status text in GUI', _("Disconnecting tracker ..."))
+    Publisher.sendMessage('Remove sensors ID')
+    trck_init = None
+    # TODO: create individual functions to disconnect each other device, e.g. Polhemus.
+    if tracker_id == 1:
+        try:
+            import pyclaron
+            pyclaron.pyclaron().Close()
+            lib_mode = 'wrapper'
+            print 'Claron tracker disconnected.'
+        except ImportError:
+            lib_mode = 'error'
+            print 'The ClaronTracker library is not installed.'
+
+    elif tracker_id == 2:
+        try:
+            import polhemusFT
+            polhemusFT.polhemusFT().Close()
+            lib_mode = 'wrapper'
+            print 'Polhemus tracker disconnected.'
+        except ImportError:
+            lib_mode = 'error'
+            print 'The polhemus library is not installed.'
+
+    elif tracker_id == 4:
+        try:
+            import polhemus
+            polhemus.polhemus().Close()
+            lib_mode = 'wrapper'
+            print 'Polhemus tracker disconnected.'
+        except ImportError:
+            lib_mode = 'error'
+            print 'The polhemus library is not installed.'
+
+    elif tracker_id == 5:
+        print 'Debug tracker disconnected.'
+        lib_mode = 'debug'
+
+    Publisher.sendMessage('Update status text in GUI', _("Ready"))
+
+    return trck_init, lib_mode
\ No newline at end of file
diff --git a/invesalius/data/transformations.py b/invesalius/data/transformations.py
new file mode 100644
index 0000000..0a613b4
--- /dev/null
+++ b/invesalius/data/transformations.py
@@ -0,0 +1,1920 @@
+# -*- coding: utf-8 -*-
+# transformations.py
+
+# Copyright (c) 2006-2015, Christoph Gohlke
+# Copyright (c) 2006-2015, The Regents of the University of California
+# Produced at the Laboratory for Fluorescence Dynamics
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# * Neither the name of the copyright holders nor the names of any
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+"""Homogeneous Transformation Matrices and Quaternions.
+
+A library for calculating 4x4 matrices for translating, rotating, reflecting,
+scaling, shearing, projecting, orthogonalizing, and superimposing arrays of
+3D homogeneous coordinates as well as for converting between rotation matrices,
+Euler angles, and quaternions. Also includes an Arcball control object and
+functions to decompose transformation matrices.
+
+:Author:
+  `Christoph Gohlke <http://www.lfd.uci.edu/~gohlke/>`_
+
+:Organization:
+  Laboratory for Fluorescence Dynamics, University of California, Irvine
+
+:Version: 2015.07.18
+
+Requirements
+------------
+* `CPython 2.7 or 3.4 <http://www.python.org>`_
+* `Numpy 1.9 <http://www.numpy.org>`_
+* `Transformations.c 2015.07.18 <http://www.lfd.uci.edu/~gohlke/>`_
+  (recommended for speedup of some functions)
+
+Notes
+-----
+The API is not stable yet and is expected to change between revisions.
+
+This Python code is not optimized for speed. Refer to the transformations.c
+module for a faster implementation of some functions.
+
+Documentation in HTML format can be generated with epydoc.
+
+Matrices (M) can be inverted using numpy.linalg.inv(M), be concatenated using
+numpy.dot(M0, M1), or transform homogeneous coordinate arrays (v) using
+numpy.dot(M, v) for shape (4, \*) column vectors, respectively
+numpy.dot(v, M.T) for shape (\*, 4) row vectors ("array of points").
+
+This module follows the "column vectors on the right" and "row major storage"
+(C contiguous) conventions. The translation components are in the right column
+of the transformation matrix, i.e. M[:3, 3].
+The transpose of the transformation matrices may have to be used to interface
+with other graphics systems, e.g. with OpenGL's glMultMatrixd(). See also [16].
+
+Calculations are carried out with numpy.float64 precision.
+
+Vector, point, quaternion, and matrix function arguments are expected to be
+"array like", i.e. tuple, list, or numpy arrays.
+
+Return types are numpy arrays unless specified otherwise.
+
+Angles are in radians unless specified otherwise.
+
+Quaternions w+ix+jy+kz are represented as [w, x, y, z].
+
+A triple of Euler angles can be applied/interpreted in 24 ways, which can
+be specified using a 4 character string or encoded 4-tuple:
+
+  *Axes 4-string*: e.g. 'sxyz' or 'ryxy'
+
+  - first character : rotations are applied to 's'tatic or 'r'otating frame
+  - remaining characters : successive rotation axis 'x', 'y', or 'z'
+
+  *Axes 4-tuple*: e.g. (0, 0, 0, 0) or (1, 1, 1, 1)
+
+  - inner axis: code of axis ('x':0, 'y':1, 'z':2) of rightmost matrix.
+  - parity : even (0) if inner axis 'x' is followed by 'y', 'y' is followed
+    by 'z', or 'z' is followed by 'x'. Otherwise odd (1).
+  - repetition : first and last axis are same (1) or different (0).
+  - frame : rotations are applied to static (0) or rotating (1) frame.
+
+Other Python packages and modules for 3D transformations and quaternions:
+
+* `Transforms3d <https://pypi.python.org/pypi/transforms3d>`_
+   includes most code of this module.
+* `Blender.mathutils <http://www.blender.org/api/blender_python_api>`_
+* `numpy-dtypes <https://github.com/numpy/numpy-dtypes>`_
+
+References
+----------
+(1)  Matrices and transformations. Ronald Goldman.
+     In "Graphics Gems I", pp 472-475. Morgan Kaufmann, 1990.
+(2)  More matrices and transformations: shear and pseudo-perspective.
+     Ronald Goldman. In "Graphics Gems II", pp 320-323. Morgan Kaufmann, 1991.
+(3)  Decomposing a matrix into simple transformations. Spencer Thomas.
+     In "Graphics Gems II", pp 320-323. Morgan Kaufmann, 1991.
+(4)  Recovering the data from the transformation matrix. Ronald Goldman.
+     In "Graphics Gems II", pp 324-331. Morgan Kaufmann, 1991.
+(5)  Euler angle conversion. Ken Shoemake.
+     In "Graphics Gems IV", pp 222-229. Morgan Kaufmann, 1994.
+(6)  Arcball rotation control. Ken Shoemake.
+     In "Graphics Gems IV", pp 175-192. Morgan Kaufmann, 1994.
+(7)  Representing attitude: Euler angles, unit quaternions, and rotation
+     vectors. James Diebel. 2006.
+(8)  A discussion of the solution for the best rotation to relate two sets
+     of vectors. W Kabsch. Acta Cryst. 1978. A34, 827-828.
+(9)  Closed-form solution of absolute orientation using unit quaternions.
+     BKP Horn. J Opt Soc Am A. 1987. 4(4):629-642.
+(10) Quaternions. Ken Shoemake.
+     http://www.sfu.ca/~jwa3/cmpt461/files/quatut.pdf
+(11) From quaternion to matrix and back. JMP van Waveren. 2005.
+     http://www.intel.com/cd/ids/developer/asmo-na/eng/293748.htm
+(12) Uniform random rotations. Ken Shoemake.
+     In "Graphics Gems III", pp 124-132. Morgan Kaufmann, 1992.
+(13) Quaternion in molecular modeling. CFF Karney.
+     J Mol Graph Mod, 25(5):595-604
+(14) New method for extracting the quaternion from a rotation matrix.
+     Itzhack Y Bar-Itzhack, J Guid Contr Dynam. 2000. 23(6): 1085-1087.
+(15) Multiple View Geometry in Computer Vision. Hartley and Zissermann.
+     Cambridge University Press; 2nd Ed. 2004. Chapter 4, Algorithm 4.7, p 130.
+(16) Column Vectors vs. Row Vectors.
+     http://steve.hollasch.net/cgindex/math/matrix/column-vec.html
+
+Examples
+--------
+>>> alpha, beta, gamma = 0.123, -1.234, 2.345
+>>> origin, xaxis, yaxis, zaxis = [0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 1]
+>>> I = identity_matrix()
+>>> Rx = rotation_matrix(alpha, xaxis)
+>>> Ry = rotation_matrix(beta, yaxis)
+>>> Rz = rotation_matrix(gamma, zaxis)
+>>> R = concatenate_matrices(Rx, Ry, Rz)
+>>> euler = euler_from_matrix(R, 'rxyz')
+>>> numpy.allclose([alpha, beta, gamma], euler)
+True
+>>> Re = euler_matrix(alpha, beta, gamma, 'rxyz')
+>>> is_same_transform(R, Re)
+True
+>>> al, be, ga = euler_from_matrix(Re, 'rxyz')
+>>> is_same_transform(Re, euler_matrix(al, be, ga, 'rxyz'))
+True
+>>> qx = quaternion_about_axis(alpha, xaxis)
+>>> qy = quaternion_about_axis(beta, yaxis)
+>>> qz = quaternion_about_axis(gamma, zaxis)
+>>> q = quaternion_multiply(qx, qy)
+>>> q = quaternion_multiply(q, qz)
+>>> Rq = quaternion_matrix(q)
+>>> is_same_transform(R, Rq)
+True
+>>> S = scale_matrix(1.23, origin)
+>>> T = translation_matrix([1, 2, 3])
+>>> Z = shear_matrix(beta, xaxis, origin, zaxis)
+>>> R = random_rotation_matrix(numpy.random.rand(3))
+>>> M = concatenate_matrices(T, R, Z, S)
+>>> scale, shear, angles, trans, persp = decompose_matrix(M)
+>>> numpy.allclose(scale, 1.23)
+True
+>>> numpy.allclose(trans, [1, 2, 3])
+True
+>>> numpy.allclose(shear, [0, math.tan(beta), 0])
+True
+>>> is_same_transform(R, euler_matrix(axes='sxyz', *angles))
+True
+>>> M1 = compose_matrix(scale, shear, angles, trans, persp)
+>>> is_same_transform(M, M1)
+True
+>>> v0, v1 = random_vector(3), random_vector(3)
+>>> M = rotation_matrix(angle_between_vectors(v0, v1), vector_product(v0, v1))
+>>> v2 = numpy.dot(v0, M[:3,:3].T)
+>>> numpy.allclose(unit_vector(v1), unit_vector(v2))
+True
+
+"""
+
+from __future__ import division, print_function
+
+import math
+
+import numpy
+
+__version__ = '2015.07.18'
+__docformat__ = 'restructuredtext en'
+__all__ = ()
+
+
+def identity_matrix():
+    """Return 4x4 identity/unit matrix.
+
+    >>> I = identity_matrix()
+    >>> numpy.allclose(I, numpy.dot(I, I))
+    True
+    >>> numpy.sum(I), numpy.trace(I)
+    (4.0, 4.0)
+    >>> numpy.allclose(I, numpy.identity(4))
+    True
+
+    """
+    return numpy.identity(4)
+
+
+def translation_matrix(direction):
+    """Return matrix to translate by direction vector.
+
+    >>> v = numpy.random.random(3) - 0.5
+    >>> numpy.allclose(v, translation_matrix(v)[:3, 3])
+    True
+
+    """
+    M = numpy.identity(4)
+    M[:3, 3] = direction[:3]
+    return M
+
+
+def translation_from_matrix(matrix):
+    """Return translation vector from translation matrix.
+
+    >>> v0 = numpy.random.random(3) - 0.5
+    >>> v1 = translation_from_matrix(translation_matrix(v0))
+    >>> numpy.allclose(v0, v1)
+    True
+
+    """
+    return numpy.array(matrix, copy=False)[:3, 3].copy()
+
+
+def reflection_matrix(point, normal):
+    """Return matrix to mirror at plane defined by point and normal vector.
+
+    >>> v0 = numpy.random.random(4) - 0.5
+    >>> v0[3] = 1.
+    >>> v1 = numpy.random.random(3) - 0.5
+    >>> R = reflection_matrix(v0, v1)
+    >>> numpy.allclose(2, numpy.trace(R))
+    True
+    >>> numpy.allclose(v0, numpy.dot(R, v0))
+    True
+    >>> v2 = v0.copy()
+    >>> v2[:3] += v1
+    >>> v3 = v0.copy()
+    >>> v2[:3] -= v1
+    >>> numpy.allclose(v2, numpy.dot(R, v3))
+    True
+
+    """
+    normal = unit_vector(normal[:3])
+    M = numpy.identity(4)
+    M[:3, :3] -= 2.0 * numpy.outer(normal, normal)
+    M[:3, 3] = (2.0 * numpy.dot(point[:3], normal)) * normal
+    return M
+
+
+def reflection_from_matrix(matrix):
+    """Return mirror plane point and normal vector from reflection matrix.
+
+    >>> v0 = numpy.random.random(3) - 0.5
+    >>> v1 = numpy.random.random(3) - 0.5
+    >>> M0 = reflection_matrix(v0, v1)
+    >>> point, normal = reflection_from_matrix(M0)
+    >>> M1 = reflection_matrix(point, normal)
+    >>> is_same_transform(M0, M1)
+    True
+
+    """
+    M = numpy.array(matrix, dtype=numpy.float64, copy=False)
+    # normal: unit eigenvector corresponding to eigenvalue -1
+    w, V = numpy.linalg.eig(M[:3, :3])
+    i = numpy.where(abs(numpy.real(w) + 1.0) < 1e-8)[0]
+    if not len(i):
+        raise ValueError("no unit eigenvector corresponding to eigenvalue -1")
+    normal = numpy.real(V[:, i[0]]).squeeze()
+    # point: any unit eigenvector corresponding to eigenvalue 1
+    w, V = numpy.linalg.eig(M)
+    i = numpy.where(abs(numpy.real(w) - 1.0) < 1e-8)[0]
+    if not len(i):
+        raise ValueError("no unit eigenvector corresponding to eigenvalue 1")
+    point = numpy.real(V[:, i[-1]]).squeeze()
+    point /= point[3]
+    return point, normal
+
+
+def rotation_matrix(angle, direction, point=None):
+    """Return matrix to rotate about axis defined by point and direction.
+
+    >>> R = rotation_matrix(math.pi/2, [0, 0, 1], [1, 0, 0])
+    >>> numpy.allclose(numpy.dot(R, [0, 0, 0, 1]), [1, -1, 0, 1])
+    True
+    >>> angle = (random.random() - 0.5) * (2*math.pi)
+    >>> direc = numpy.random.random(3) - 0.5
+    >>> point = numpy.random.random(3) - 0.5
+    >>> R0 = rotation_matrix(angle, direc, point)
+    >>> R1 = rotation_matrix(angle-2*math.pi, direc, point)
+    >>> is_same_transform(R0, R1)
+    True
+    >>> R0 = rotation_matrix(angle, direc, point)
+    >>> R1 = rotation_matrix(-angle, -direc, point)
+    >>> is_same_transform(R0, R1)
+    True
+    >>> I = numpy.identity(4, numpy.float64)
+    >>> numpy.allclose(I, rotation_matrix(math.pi*2, direc))
+    True
+    >>> numpy.allclose(2, numpy.trace(rotation_matrix(math.pi/2,
+    ...                                               direc, point)))
+    True
+
+    """
+    sina = math.sin(angle)
+    cosa = math.cos(angle)
+    direction = unit_vector(direction[:3])
+    # rotation matrix around unit vector
+    R = numpy.diag([cosa, cosa, cosa])
+    R += numpy.outer(direction, direction) * (1.0 - cosa)
+    direction *= sina
+    R += numpy.array([[ 0.0,         -direction[2],  direction[1]],
+                      [ direction[2], 0.0,          -direction[0]],
+                      [-direction[1], direction[0],  0.0]])
+    M = numpy.identity(4)
+    M[:3, :3] = R
+    if point is not None:
+        # rotation not around origin
+        point = numpy.array(point[:3], dtype=numpy.float64, copy=False)
+        M[:3, 3] = point - numpy.dot(R, point)
+    return M
+
+
+def rotation_from_matrix(matrix):
+    """Return rotation angle and axis from rotation matrix.
+
+    >>> angle = (random.random() - 0.5) * (2*math.pi)
+    >>> direc = numpy.random.random(3) - 0.5
+    >>> point = numpy.random.random(3) - 0.5
+    >>> R0 = rotation_matrix(angle, direc, point)
+    >>> angle, direc, point = rotation_from_matrix(R0)
+    >>> R1 = rotation_matrix(angle, direc, point)
+    >>> is_same_transform(R0, R1)
+    True
+
+    """
+    R = numpy.array(matrix, dtype=numpy.float64, copy=False)
+    R33 = R[:3, :3]
+    # direction: unit eigenvector of R33 corresponding to eigenvalue of 1
+    w, W = numpy.linalg.eig(R33.T)
+    i = numpy.where(abs(numpy.real(w) - 1.0) < 1e-8)[0]
+    if not len(i):
+        raise ValueError("no unit eigenvector corresponding to eigenvalue 1")
+    direction = numpy.real(W[:, i[-1]]).squeeze()
+    # point: unit eigenvector of R33 corresponding to eigenvalue of 1
+    w, Q = numpy.linalg.eig(R)
+    i = numpy.where(abs(numpy.real(w) - 1.0) < 1e-8)[0]
+    if not len(i):
+        raise ValueError("no unit eigenvector corresponding to eigenvalue 1")
+    point = numpy.real(Q[:, i[-1]]).squeeze()
+    point /= point[3]
+    # rotation angle depending on direction
+    cosa = (numpy.trace(R33) - 1.0) / 2.0
+    if abs(direction[2]) > 1e-8:
+        sina = (R[1, 0] + (cosa-1.0)*direction[0]*direction[1]) / direction[2]
+    elif abs(direction[1]) > 1e-8:
+        sina = (R[0, 2] + (cosa-1.0)*direction[0]*direction[2]) / direction[1]
+    else:
+        sina = (R[2, 1] + (cosa-1.0)*direction[1]*direction[2]) / direction[0]
+    angle = math.atan2(sina, cosa)
+    return angle, direction, point
+
+
+def scale_matrix(factor, origin=None, direction=None):
+    """Return matrix to scale by factor around origin in direction.
+
+    Use factor -1 for point symmetry.
+
+    >>> v = (numpy.random.rand(4, 5) - 0.5) * 20
+    >>> v[3] = 1
+    >>> S = scale_matrix(-1.234)
+    >>> numpy.allclose(numpy.dot(S, v)[:3], -1.234*v[:3])
+    True
+    >>> factor = random.random() * 10 - 5
+    >>> origin = numpy.random.random(3) - 0.5
+    >>> direct = numpy.random.random(3) - 0.5
+    >>> S = scale_matrix(factor, origin)
+    >>> S = scale_matrix(factor, origin, direct)
+
+    """
+    if direction is None:
+        # uniform scaling
+        M = numpy.diag([factor, factor, factor, 1.0])
+        if origin is not None:
+            M[:3, 3] = origin[:3]
+            M[:3, 3] *= 1.0 - factor
+    else:
+        # nonuniform scaling
+        direction = unit_vector(direction[:3])
+        factor = 1.0 - factor
+        M = numpy.identity(4)
+        M[:3, :3] -= factor * numpy.outer(direction, direction)
+        if origin is not None:
+            M[:3, 3] = (factor * numpy.dot(origin[:3], direction)) * direction
+    return M
+
+
+def scale_from_matrix(matrix):
+    """Return scaling factor, origin and direction from scaling matrix.
+
+    >>> factor = random.random() * 10 - 5
+    >>> origin = numpy.random.random(3) - 0.5
+    >>> direct = numpy.random.random(3) - 0.5
+    >>> S0 = scale_matrix(factor, origin)
+    >>> factor, origin, direction = scale_from_matrix(S0)
+    >>> S1 = scale_matrix(factor, origin, direction)
+    >>> is_same_transform(S0, S1)
+    True
+    >>> S0 = scale_matrix(factor, origin, direct)
+    >>> factor, origin, direction = scale_from_matrix(S0)
+    >>> S1 = scale_matrix(factor, origin, direction)
+    >>> is_same_transform(S0, S1)
+    True
+
+    """
+    M = numpy.array(matrix, dtype=numpy.float64, copy=False)
+    M33 = M[:3, :3]
+    factor = numpy.trace(M33) - 2.0
+    try:
+        # direction: unit eigenvector corresponding to eigenvalue factor
+        w, V = numpy.linalg.eig(M33)
+        i = numpy.where(abs(numpy.real(w) - factor) < 1e-8)[0][0]
+        direction = numpy.real(V[:, i]).squeeze()
+        direction /= vector_norm(direction)
+    except IndexError:
+        # uniform scaling
+        factor = (factor + 2.0) / 3.0
+        direction = None
+    # origin: any eigenvector corresponding to eigenvalue 1
+    w, V = numpy.linalg.eig(M)
+    i = numpy.where(abs(numpy.real(w) - 1.0) < 1e-8)[0]
+    if not len(i):
+        raise ValueError("no eigenvector corresponding to eigenvalue 1")
+    origin = numpy.real(V[:, i[-1]]).squeeze()
+    origin /= origin[3]
+    return factor, origin, direction
+
+
+def projection_matrix(point, normal, direction=None,
+                      perspective=None, pseudo=False):
+    """Return matrix to project onto plane defined by point and normal.
+
+    Using either perspective point, projection direction, or none of both.
+
+    If pseudo is True, perspective projections will preserve relative depth
+    such that Perspective = dot(Orthogonal, PseudoPerspective).
+
+    >>> P = projection_matrix([0, 0, 0], [1, 0, 0])
+    >>> numpy.allclose(P[1:, 1:], numpy.identity(4)[1:, 1:])
+    True
+    >>> point = numpy.random.random(3) - 0.5
+    >>> normal = numpy.random.random(3) - 0.5
+    >>> direct = numpy.random.random(3) - 0.5
+    >>> persp = numpy.random.random(3) - 0.5
+    >>> P0 = projection_matrix(point, normal)
+    >>> P1 = projection_matrix(point, normal, direction=direct)
+    >>> P2 = projection_matrix(point, normal, perspective=persp)
+    >>> P3 = projection_matrix(point, normal, perspective=persp, pseudo=True)
+    >>> is_same_transform(P2, numpy.dot(P0, P3))
+    True
+    >>> P = projection_matrix([3, 0, 0], [1, 1, 0], [1, 0, 0])
+    >>> v0 = (numpy.random.rand(4, 5) - 0.5) * 20
+    >>> v0[3] = 1
+    >>> v1 = numpy.dot(P, v0)
+    >>> numpy.allclose(v1[1], v0[1])
+    True
+    >>> numpy.allclose(v1[0], 3-v1[1])
+    True
+
+    """
+    M = numpy.identity(4)
+    point = numpy.array(point[:3], dtype=numpy.float64, copy=False)
+    normal = unit_vector(normal[:3])
+    if perspective is not None:
+        # perspective projection
+        perspective = numpy.array(perspective[:3], dtype=numpy.float64,
+                                  copy=False)
+        M[0, 0] = M[1, 1] = M[2, 2] = numpy.dot(perspective-point, normal)
+        M[:3, :3] -= numpy.outer(perspective, normal)
+        if pseudo:
+            # preserve relative depth
+            M[:3, :3] -= numpy.outer(normal, normal)
+            M[:3, 3] = numpy.dot(point, normal) * (perspective+normal)
+        else:
+            M[:3, 3] = numpy.dot(point, normal) * perspective
+        M[3, :3] = -normal
+        M[3, 3] = numpy.dot(perspective, normal)
+    elif direction is not None:
+        # parallel projection
+        direction = numpy.array(direction[:3], dtype=numpy.float64, copy=False)
+        scale = numpy.dot(direction, normal)
+        M[:3, :3] -= numpy.outer(direction, normal) / scale
+        M[:3, 3] = direction * (numpy.dot(point, normal) / scale)
+    else:
+        # orthogonal projection
+        M[:3, :3] -= numpy.outer(normal, normal)
+        M[:3, 3] = numpy.dot(point, normal) * normal
+    return M
+
+
+def projection_from_matrix(matrix, pseudo=False):
+    """Return projection plane and perspective point from projection matrix.
+
+    Return values are same as arguments for projection_matrix function:
+    point, normal, direction, perspective, and pseudo.
+
+    >>> point = numpy.random.random(3) - 0.5
+    >>> normal = numpy.random.random(3) - 0.5
+    >>> direct = numpy.random.random(3) - 0.5
+    >>> persp = numpy.random.random(3) - 0.5
+    >>> P0 = projection_matrix(point, normal)
+    >>> result = projection_from_matrix(P0)
+    >>> P1 = projection_matrix(*result)
+    >>> is_same_transform(P0, P1)
+    True
+    >>> P0 = projection_matrix(point, normal, direct)
+    >>> result = projection_from_matrix(P0)
+    >>> P1 = projection_matrix(*result)
+    >>> is_same_transform(P0, P1)
+    True
+    >>> P0 = projection_matrix(point, normal, perspective=persp, pseudo=False)
+    >>> result = projection_from_matrix(P0, pseudo=False)
+    >>> P1 = projection_matrix(*result)
+    >>> is_same_transform(P0, P1)
+    True
+    >>> P0 = projection_matrix(point, normal, perspective=persp, pseudo=True)
+    >>> result = projection_from_matrix(P0, pseudo=True)
+    >>> P1 = projection_matrix(*result)
+    >>> is_same_transform(P0, P1)
+    True
+
+    """
+    M = numpy.array(matrix, dtype=numpy.float64, copy=False)
+    M33 = M[:3, :3]
+    w, V = numpy.linalg.eig(M)
+    i = numpy.where(abs(numpy.real(w) - 1.0) < 1e-8)[0]
+    if not pseudo and len(i):
+        # point: any eigenvector corresponding to eigenvalue 1
+        point = numpy.real(V[:, i[-1]]).squeeze()
+        point /= point[3]
+        # direction: unit eigenvector corresponding to eigenvalue 0
+        w, V = numpy.linalg.eig(M33)
+        i = numpy.where(abs(numpy.real(w)) < 1e-8)[0]
+        if not len(i):
+            raise ValueError("no eigenvector corresponding to eigenvalue 0")
+        direction = numpy.real(V[:, i[0]]).squeeze()
+        direction /= vector_norm(direction)
+        # normal: unit eigenvector of M33.T corresponding to eigenvalue 0
+        w, V = numpy.linalg.eig(M33.T)
+        i = numpy.where(abs(numpy.real(w)) < 1e-8)[0]
+        if len(i):
+            # parallel projection
+            normal = numpy.real(V[:, i[0]]).squeeze()
+            normal /= vector_norm(normal)
+            return point, normal, direction, None, False
+        else:
+            # orthogonal projection, where normal equals direction vector
+            return point, direction, None, None, False
+    else:
+        # perspective projection
+        i = numpy.where(abs(numpy.real(w)) > 1e-8)[0]
+        if not len(i):
+            raise ValueError(
+                "no eigenvector not corresponding to eigenvalue 0")
+        point = numpy.real(V[:, i[-1]]).squeeze()
+        point /= point[3]
+        normal = - M[3, :3]
+        perspective = M[:3, 3] / numpy.dot(point[:3], normal)
+        if pseudo:
+            perspective -= normal
+        return point, normal, None, perspective, pseudo
+
+
+def clip_matrix(left, right, bottom, top, near, far, perspective=False):
+    """Return matrix to obtain normalized device coordinates from frustum.
+
+    The frustum bounds are axis-aligned along x (left, right),
+    y (bottom, top) and z (near, far).
+
+    Normalized device coordinates are in range [-1, 1] if coordinates are
+    inside the frustum.
+
+    If perspective is True the frustum is a truncated pyramid with the
+    perspective point at origin and direction along z axis, otherwise an
+    orthographic canonical view volume (a box).
+
+    Homogeneous coordinates transformed by the perspective clip matrix
+    need to be dehomogenized (divided by w coordinate).
+
+    >>> frustum = numpy.random.rand(6)
+    >>> frustum[1] += frustum[0]
+    >>> frustum[3] += frustum[2]
+    >>> frustum[5] += frustum[4]
+    >>> M = clip_matrix(perspective=False, *frustum)
+    >>> numpy.dot(M, [frustum[0], frustum[2], frustum[4], 1])
+    array([-1., -1., -1.,  1.])
+    >>> numpy.dot(M, [frustum[1], frustum[3], frustum[5], 1])
+    array([ 1.,  1.,  1.,  1.])
+    >>> M = clip_matrix(perspective=True, *frustum)
+    >>> v = numpy.dot(M, [frustum[0], frustum[2], frustum[4], 1])
+    >>> v / v[3]
+    array([-1., -1., -1.,  1.])
+    >>> v = numpy.dot(M, [frustum[1], frustum[3], frustum[4], 1])
+    >>> v / v[3]
+    array([ 1.,  1., -1.,  1.])
+
+    """
+    if left >= right or bottom >= top or near >= far:
+        raise ValueError("invalid frustum")
+    if perspective:
+        if near <= _EPS:
+            raise ValueError("invalid frustum: near <= 0")
+        t = 2.0 * near
+        M = [[t/(left-right), 0.0, (right+left)/(right-left), 0.0],
+             [0.0, t/(bottom-top), (top+bottom)/(top-bottom), 0.0],
+             [0.0, 0.0, (far+near)/(near-far), t*far/(far-near)],
+             [0.0, 0.0, -1.0, 0.0]]
+    else:
+        M = [[2.0/(right-left), 0.0, 0.0, (right+left)/(left-right)],
+             [0.0, 2.0/(top-bottom), 0.0, (top+bottom)/(bottom-top)],
+             [0.0, 0.0, 2.0/(far-near), (far+near)/(near-far)],
+             [0.0, 0.0, 0.0, 1.0]]
+    return numpy.array(M)
+
+
+def shear_matrix(angle, direction, point, normal):
+    """Return matrix to shear by angle along direction vector on shear plane.
+
+    The shear plane is defined by a point and normal vector. The direction
+    vector must be orthogonal to the plane's normal vector.
+
+    A point P is transformed by the shear matrix into P" such that
+    the vector P-P" is parallel to the direction vector and its extent is
+    given by the angle of P-P'-P", where P' is the orthogonal projection
+    of P onto the shear plane.
+
+    >>> angle = (random.random() - 0.5) * 4*math.pi
+    >>> direct = numpy.random.random(3) - 0.5
+    >>> point = numpy.random.random(3) - 0.5
+    >>> normal = numpy.cross(direct, numpy.random.random(3))
+    >>> S = shear_matrix(angle, direct, point, normal)
+    >>> numpy.allclose(1, numpy.linalg.det(S))
+    True
+
+    """
+    normal = unit_vector(normal[:3])
+    direction = unit_vector(direction[:3])
+    if abs(numpy.dot(normal, direction)) > 1e-6:
+        raise ValueError("direction and normal vectors are not orthogonal")
+    angle = math.tan(angle)
+    M = numpy.identity(4)
+    M[:3, :3] += angle * numpy.outer(direction, normal)
+    M[:3, 3] = -angle * numpy.dot(point[:3], normal) * direction
+    return M
+
+
+def shear_from_matrix(matrix):
+    """Return shear angle, direction and plane from shear matrix.
+
+    >>> angle = (random.random() - 0.5) * 4*math.pi
+    >>> direct = numpy.random.random(3) - 0.5
+    >>> point = numpy.random.random(3) - 0.5
+    >>> normal = numpy.cross(direct, numpy.random.random(3))
+    >>> S0 = shear_matrix(angle, direct, point, normal)
+    >>> angle, direct, point, normal = shear_from_matrix(S0)
+    >>> S1 = shear_matrix(angle, direct, point, normal)
+    >>> is_same_transform(S0, S1)
+    True
+
+    """
+    M = numpy.array(matrix, dtype=numpy.float64, copy=False)
+    M33 = M[:3, :3]
+    # normal: cross independent eigenvectors corresponding to the eigenvalue 1
+    w, V = numpy.linalg.eig(M33)
+    i = numpy.where(abs(numpy.real(w) - 1.0) < 1e-4)[0]
+    if len(i) < 2:
+        raise ValueError("no two linear independent eigenvectors found %s" % w)
+    V = numpy.real(V[:, i]).squeeze().T
+    lenorm = -1.0
+    for i0, i1 in ((0, 1), (0, 2), (1, 2)):
+        n = numpy.cross(V[i0], V[i1])
+        w = vector_norm(n)
+        if w > lenorm:
+            lenorm = w
+            normal = n
+    normal /= lenorm
+    # direction and angle
+    direction = numpy.dot(M33 - numpy.identity(3), normal)
+    angle = vector_norm(direction)
+    direction /= angle
+    angle = math.atan(angle)
+    # point: eigenvector corresponding to eigenvalue 1
+    w, V = numpy.linalg.eig(M)
+    i = numpy.where(abs(numpy.real(w) - 1.0) < 1e-8)[0]
+    if not len(i):
+        raise ValueError("no eigenvector corresponding to eigenvalue 1")
+    point = numpy.real(V[:, i[-1]]).squeeze()
+    point /= point[3]
+    return angle, direction, point, normal
+
+
+def decompose_matrix(matrix):
+    """Return sequence of transformations from transformation matrix.
+
+    matrix : array_like
+        Non-degenerative homogeneous transformation matrix
+
+    Return tuple of:
+        scale : vector of 3 scaling factors
+        shear : list of shear factors for x-y, x-z, y-z axes
+        angles : list of Euler angles about static x, y, z axes
+        translate : translation vector along x, y, z axes
+        perspective : perspective partition of matrix
+
+    Raise ValueError if matrix is of wrong type or degenerative.
+
+    >>> T0 = translation_matrix([1, 2, 3])
+    >>> scale, shear, angles, trans, persp = decompose_matrix(T0)
+    >>> T1 = translation_matrix(trans)
+    >>> numpy.allclose(T0, T1)
+    True
+    >>> S = scale_matrix(0.123)
+    >>> scale, shear, angles, trans, persp = decompose_matrix(S)
+    >>> scale[0]
+    0.123
+    >>> R0 = euler_matrix(1, 2, 3)
+    >>> scale, shear, angles, trans, persp = decompose_matrix(R0)
+    >>> R1 = euler_matrix(*angles)
+    >>> numpy.allclose(R0, R1)
+    True
+
+    """
+    M = numpy.array(matrix, dtype=numpy.float64, copy=True).T
+    if abs(M[3, 3]) < _EPS:
+        raise ValueError("M[3, 3] is zero")
+    M /= M[3, 3]
+    P = M.copy()
+    P[:, 3] = 0.0, 0.0, 0.0, 1.0
+    if not numpy.linalg.det(P):
+        raise ValueError("matrix is singular")
+
+    scale = numpy.zeros((3, ))
+    shear = [0.0, 0.0, 0.0]
+    angles = [0.0, 0.0, 0.0]
+
+    if any(abs(M[:3, 3]) > _EPS):
+        perspective = numpy.dot(M[:, 3], numpy.linalg.inv(P.T))
+        M[:, 3] = 0.0, 0.0, 0.0, 1.0
+    else:
+        perspective = numpy.array([0.0, 0.0, 0.0, 1.0])
+
+    translate = M[3, :3].copy()
+    M[3, :3] = 0.0
+
+    row = M[:3, :3].copy()
+    scale[0] = vector_norm(row[0])
+    row[0] /= scale[0]
+    shear[0] = numpy.dot(row[0], row[1])
+    row[1] -= row[0] * shear[0]
+    scale[1] = vector_norm(row[1])
+    row[1] /= scale[1]
+    shear[0] /= scale[1]
+    shear[1] = numpy.dot(row[0], row[2])
+    row[2] -= row[0] * shear[1]
+    shear[2] = numpy.dot(row[1], row[2])
+    row[2] -= row[1] * shear[2]
+    scale[2] = vector_norm(row[2])
+    row[2] /= scale[2]
+    shear[1:] /= scale[2]
+
+    if numpy.dot(row[0], numpy.cross(row[1], row[2])) < 0:
+        numpy.negative(scale, scale)
+        numpy.negative(row, row)
+
+    angles[1] = math.asin(-row[0, 2])
+    if math.cos(angles[1]):
+        angles[0] = math.atan2(row[1, 2], row[2, 2])
+        angles[2] = math.atan2(row[0, 1], row[0, 0])
+    else:
+        #angles[0] = math.atan2(row[1, 0], row[1, 1])
+        angles[0] = math.atan2(-row[2, 1], row[1, 1])
+        angles[2] = 0.0
+
+    return scale, shear, angles, translate, perspective
+
+
+def compose_matrix(scale=None, shear=None, angles=None, translate=None,
+                   perspective=None):
+    """Return transformation matrix from sequence of transformations.
+
+    This is the inverse of the decompose_matrix function.
+
+    Sequence of transformations:
+        scale : vector of 3 scaling factors
+        shear : list of shear factors for x-y, x-z, y-z axes
+        angles : list of Euler angles about static x, y, z axes
+        translate : translation vector along x, y, z axes
+        perspective : perspective partition of matrix
+
+    >>> scale = numpy.random.random(3) - 0.5
+    >>> shear = numpy.random.random(3) - 0.5
+    >>> angles = (numpy.random.random(3) - 0.5) * (2*math.pi)
+    >>> trans = numpy.random.random(3) - 0.5
+    >>> persp = numpy.random.random(4) - 0.5
+    >>> M0 = compose_matrix(scale, shear, angles, trans, persp)
+    >>> result = decompose_matrix(M0)
+    >>> M1 = compose_matrix(*result)
+    >>> is_same_transform(M0, M1)
+    True
+
+    """
+    M = numpy.identity(4)
+    if perspective is not None:
+        P = numpy.identity(4)
+        P[3, :] = perspective[:4]
+        M = numpy.dot(M, P)
+    if translate is not None:
+        T = numpy.identity(4)
+        T[:3, 3] = translate[:3]
+        M = numpy.dot(M, T)
+    if angles is not None:
+        R = euler_matrix(angles[0], angles[1], angles[2], 'sxyz')
+        M = numpy.dot(M, R)
+    if shear is not None:
+        Z = numpy.identity(4)
+        Z[1, 2] = shear[2]
+        Z[0, 2] = shear[1]
+        Z[0, 1] = shear[0]
+        M = numpy.dot(M, Z)
+    if scale is not None:
+        S = numpy.identity(4)
+        S[0, 0] = scale[0]
+        S[1, 1] = scale[1]
+        S[2, 2] = scale[2]
+        M = numpy.dot(M, S)
+    M /= M[3, 3]
+    return M
+
+
+def orthogonalization_matrix(lengths, angles):
+    """Return orthogonalization matrix for crystallographic cell coordinates.
+
+    Angles are expected in degrees.
+
+    The de-orthogonalization matrix is the inverse.
+
+    >>> O = orthogonalization_matrix([10, 10, 10], [90, 90, 90])
+    >>> numpy.allclose(O[:3, :3], numpy.identity(3, float) * 10)
+    True
+    >>> O = orthogonalization_matrix([9.8, 12.0, 15.5], [87.2, 80.7, 69.7])
+    >>> numpy.allclose(numpy.sum(O), 43.063229)
+    True
+
+    """
+    a, b, c = lengths
+    angles = numpy.radians(angles)
+    sina, sinb, _ = numpy.sin(angles)
+    cosa, cosb, cosg = numpy.cos(angles)
+    co = (cosa * cosb - cosg) / (sina * sinb)
+    return numpy.array([
+        [ a*sinb*math.sqrt(1.0-co*co),  0.0,    0.0, 0.0],
+        [-a*sinb*co,                    b*sina, 0.0, 0.0],
+        [ a*cosb,                       b*cosa, c,   0.0],
+        [ 0.0,                          0.0,    0.0, 1.0]])
+
+
+def affine_matrix_from_points(v0, v1, shear=True, scale=True, usesvd=True):
+    """Return affine transform matrix to register two point sets.
+
+    v0 and v1 are shape (ndims, \*) arrays of at least ndims non-homogeneous
+    coordinates, where ndims is the dimensionality of the coordinate space.
+
+    If shear is False, a similarity transformation matrix is returned.
+    If also scale is False, a rigid/Euclidean transformation matrix
+    is returned.
+
+    By default the algorithm by Hartley and Zissermann [15] is used.
+    If usesvd is True, similarity and Euclidean transformation matrices
+    are calculated by minimizing the weighted sum of squared deviations
+    (RMSD) according to the algorithm by Kabsch [8].
+    Otherwise, and if ndims is 3, the quaternion based algorithm by Horn [9]
+    is used, which is slower when using this Python implementation.
+
+    The returned matrix performs rotation, translation and uniform scaling
+    (if specified).
+
+    >>> v0 = [[0, 1031, 1031, 0], [0, 0, 1600, 1600]]
+    >>> v1 = [[675, 826, 826, 677], [55, 52, 281, 277]]
+    >>> affine_matrix_from_points(v0, v1)
+    array([[   0.14549,    0.00062,  675.50008],
+           [   0.00048,    0.14094,   53.24971],
+           [   0.     ,    0.     ,    1.     ]])
+    >>> T = translation_matrix(numpy.random.random(3)-0.5)
+    >>> R = random_rotation_matrix(numpy.random.random(3))
+    >>> S = scale_matrix(random.random())
+    >>> M = concatenate_matrices(T, R, S)
+    >>> v0 = (numpy.random.rand(4, 100) - 0.5) * 20
+    >>> v0[3] = 1
+    >>> v1 = numpy.dot(M, v0)
+    >>> v0[:3] += numpy.random.normal(0, 1e-8, 300).reshape(3, -1)
+    >>> M = affine_matrix_from_points(v0[:3], v1[:3])
+    >>> numpy.allclose(v1, numpy.dot(M, v0))
+    True
+
+    More examples in superimposition_matrix()
+
+    """
+    v0 = numpy.array(v0, dtype=numpy.float64, copy=True)
+    v1 = numpy.array(v1, dtype=numpy.float64, copy=True)
+
+    ndims = v0.shape[0]
+    if ndims < 2 or v0.shape[1] < ndims or v0.shape != v1.shape:
+        raise ValueError("input arrays are of wrong shape or type")
+
+    # move centroids to origin
+    t0 = -numpy.mean(v0, axis=1)
+    M0 = numpy.identity(ndims+1)
+    M0[:ndims, ndims] = t0
+    v0 += t0.reshape(ndims, 1)
+    t1 = -numpy.mean(v1, axis=1)
+    M1 = numpy.identity(ndims+1)
+    M1[:ndims, ndims] = t1
+    v1 += t1.reshape(ndims, 1)
+
+    if shear:
+        # Affine transformation
+        A = numpy.concatenate((v0, v1), axis=0)
+        u, s, vh = numpy.linalg.svd(A.T)
+        vh = vh[:ndims].T
+        B = vh[:ndims]
+        C = vh[ndims:2*ndims]
+        t = numpy.dot(C, numpy.linalg.pinv(B))
+        t = numpy.concatenate((t, numpy.zeros((ndims, 1))), axis=1)
+        M = numpy.vstack((t, ((0.0,)*ndims) + (1.0,)))
+    elif usesvd or ndims != 3:
+        # Rigid transformation via SVD of covariance matrix
+        u, s, vh = numpy.linalg.svd(numpy.dot(v1, v0.T))
+        # rotation matrix from SVD orthonormal bases
+        R = numpy.dot(u, vh)
+        if numpy.linalg.det(R) < 0.0:
+            # R does not constitute right handed system
+            R -= numpy.outer(u[:, ndims-1], vh[ndims-1, :]*2.0)
+            s[-1] *= -1.0
+        # homogeneous transformation matrix
+        M = numpy.identity(ndims+1)
+        M[:ndims, :ndims] = R
+    else:
+        # Rigid transformation matrix via quaternion
+        # compute symmetric matrix N
+        xx, yy, zz = numpy.sum(v0 * v1, axis=1)
+        xy, yz, zx = numpy.sum(v0 * numpy.roll(v1, -1, axis=0), axis=1)
+        xz, yx, zy = numpy.sum(v0 * numpy.roll(v1, -2, axis=0), axis=1)
+        N = [[xx+yy+zz, 0.0,      0.0,      0.0],
+             [yz-zy,    xx-yy-zz, 0.0,      0.0],
+             [zx-xz,    xy+yx,    yy-xx-zz, 0.0],
+             [xy-yx,    zx+xz,    yz+zy,    zz-xx-yy]]
+        # quaternion: eigenvector corresponding to most positive eigenvalue
+        w, V = numpy.linalg.eigh(N)
+        q = V[:, numpy.argmax(w)]
+        q /= vector_norm(q)  # unit quaternion
+        # homogeneous transformation matrix
+        M = quaternion_matrix(q)
+
+    if scale and not shear:
+        # Affine transformation; scale is ratio of RMS deviations from centroid
+        v0 *= v0
+        v1 *= v1
+        M[:ndims, :ndims] *= math.sqrt(numpy.sum(v1) / numpy.sum(v0))
+
+    # move centroids back
+    M = numpy.dot(numpy.linalg.inv(M1), numpy.dot(M, M0))
+    M /= M[ndims, ndims]
+    return M
+
+
+def superimposition_matrix(v0, v1, scale=False, usesvd=True):
+    """Return matrix to transform given 3D point set into second point set.
+
+    v0 and v1 are shape (3, \*) or (4, \*) arrays of at least 3 points.
+
+    The parameters scale and usesvd are explained in the more general
+    affine_matrix_from_points function.
+
+    The returned matrix is a similarity or Euclidean transformation matrix.
+    This function has a fast C implementation in transformations.c.
+
+    >>> v0 = numpy.random.rand(3, 10)
+    >>> M = superimposition_matrix(v0, v0)
+    >>> numpy.allclose(M, numpy.identity(4))
+    True
+    >>> R = random_rotation_matrix(numpy.random.random(3))
+    >>> v0 = [[1,0,0], [0,1,0], [0,0,1], [1,1,1]]
+    >>> v1 = numpy.dot(R, v0)
+    >>> M = superimposition_matrix(v0, v1)
+    >>> numpy.allclose(v1, numpy.dot(M, v0))
+    True
+    >>> v0 = (numpy.random.rand(4, 100) - 0.5) * 20
+    >>> v0[3] = 1
+    >>> v1 = numpy.dot(R, v0)
+    >>> M = superimposition_matrix(v0, v1)
+    >>> numpy.allclose(v1, numpy.dot(M, v0))
+    True
+    >>> S = scale_matrix(random.random())
+    >>> T = translation_matrix(numpy.random.random(3)-0.5)
+    >>> M = concatenate_matrices(T, R, S)
+    >>> v1 = numpy.dot(M, v0)
+    >>> v0[:3] += numpy.random.normal(0, 1e-9, 300).reshape(3, -1)
+    >>> M = superimposition_matrix(v0, v1, scale=True)
+    >>> numpy.allclose(v1, numpy.dot(M, v0))
+    True
+    >>> M = superimposition_matrix(v0, v1, scale=True, usesvd=False)
+    >>> numpy.allclose(v1, numpy.dot(M, v0))
+    True
+    >>> v = numpy.empty((4, 100, 3))
+    >>> v[:, :, 0] = v0
+    >>> M = superimposition_matrix(v0, v1, scale=True, usesvd=False)
+    >>> numpy.allclose(v1, numpy.dot(M, v[:, :, 0]))
+    True
+
+    """
+    v0 = numpy.array(v0, dtype=numpy.float64, copy=False)[:3]
+    v1 = numpy.array(v1, dtype=numpy.float64, copy=False)[:3]
+    return affine_matrix_from_points(v0, v1, shear=False,
+                                     scale=scale, usesvd=usesvd)
+
+
+def euler_matrix(ai, aj, ak, axes='sxyz'):
+    """Return homogeneous rotation matrix from Euler angles and axis sequence.
+
+    ai, aj, ak : Euler's roll, pitch and yaw angles
+    axes : One of 24 axis sequences as string or encoded tuple
+
+    >>> R = euler_matrix(1, 2, 3, 'syxz')
+    >>> numpy.allclose(numpy.sum(R[0]), -1.34786452)
+    True
+    >>> R = euler_matrix(1, 2, 3, (0, 1, 0, 1))
+    >>> numpy.allclose(numpy.sum(R[0]), -0.383436184)
+    True
+    >>> ai, aj, ak = (4*math.pi) * (numpy.random.random(3) - 0.5)
+    >>> for axes in _AXES2TUPLE.keys():
+    ...    R = euler_matrix(ai, aj, ak, axes)
+    >>> for axes in _TUPLE2AXES.keys():
+    ...    R = euler_matrix(ai, aj, ak, axes)
+
+    """
+    try:
+        firstaxis, parity, repetition, frame = _AXES2TUPLE[axes]
+    except (AttributeError, KeyError):
+        _TUPLE2AXES[axes]  # validation
+        firstaxis, parity, repetition, frame = axes
+
+    i = firstaxis
+    j = _NEXT_AXIS[i+parity]
+    k = _NEXT_AXIS[i-parity+1]
+
+    if frame:
+        ai, ak = ak, ai
+    if parity:
+        ai, aj, ak = -ai, -aj, -ak
+
+    si, sj, sk = math.sin(ai), math.sin(aj), math.sin(ak)
+    ci, cj, ck = math.cos(ai), math.cos(aj), math.cos(ak)
+    cc, cs = ci*ck, ci*sk
+    sc, ss = si*ck, si*sk
+
+    M = numpy.identity(4)
+    if repetition:
+        M[i, i] = cj
+        M[i, j] = sj*si
+        M[i, k] = sj*ci
+        M[j, i] = sj*sk
+        M[j, j] = -cj*ss+cc
+        M[j, k] = -cj*cs-sc
+        M[k, i] = -sj*ck
+        M[k, j] = cj*sc+cs
+        M[k, k] = cj*cc-ss
+    else:
+        M[i, i] = cj*ck
+        M[i, j] = sj*sc-cs
+        M[i, k] = sj*cc+ss
+        M[j, i] = cj*sk
+        M[j, j] = sj*ss+cc
+        M[j, k] = sj*cs-sc
+        M[k, i] = -sj
+        M[k, j] = cj*si
+        M[k, k] = cj*ci
+    return M
+
+
+def euler_from_matrix(matrix, axes='sxyz'):
+    """Return Euler angles from rotation matrix for specified axis sequence.
+
+    axes : One of 24 axis sequences as string or encoded tuple
+
+    Note that many Euler angle triplets can describe one matrix.
+
+    >>> R0 = euler_matrix(1, 2, 3, 'syxz')
+    >>> al, be, ga = euler_from_matrix(R0, 'syxz')
+    >>> R1 = euler_matrix(al, be, ga, 'syxz')
+    >>> numpy.allclose(R0, R1)
+    True
+    >>> angles = (4*math.pi) * (numpy.random.random(3) - 0.5)
+    >>> for axes in _AXES2TUPLE.keys():
+    ...    R0 = euler_matrix(axes=axes, *angles)
+    ...    R1 = euler_matrix(axes=axes, *euler_from_matrix(R0, axes))
+    ...    if not numpy.allclose(R0, R1): print(axes, "failed")
+
+    """
+    try:
+        firstaxis, parity, repetition, frame = _AXES2TUPLE[axes.lower()]
+    except (AttributeError, KeyError):
+        _TUPLE2AXES[axes]  # validation
+        firstaxis, parity, repetition, frame = axes
+
+    i = firstaxis
+    j = _NEXT_AXIS[i+parity]
+    k = _NEXT_AXIS[i-parity+1]
+
+    M = numpy.array(matrix, dtype=numpy.float64, copy=False)[:3, :3]
+    if repetition:
+        sy = math.sqrt(M[i, j]*M[i, j] + M[i, k]*M[i, k])
+        if sy > _EPS:
+            ax = math.atan2( M[i, j],  M[i, k])
+            ay = math.atan2( sy,       M[i, i])
+            az = math.atan2( M[j, i], -M[k, i])
+        else:
+            ax = math.atan2(-M[j, k],  M[j, j])
+            ay = math.atan2( sy,       M[i, i])
+            az = 0.0
+    else:
+        cy = math.sqrt(M[i, i]*M[i, i] + M[j, i]*M[j, i])
+        if cy > _EPS:
+            ax = math.atan2( M[k, j],  M[k, k])
+            ay = math.atan2(-M[k, i],  cy)
+            az = math.atan2( M[j, i],  M[i, i])
+        else:
+            ax = math.atan2(-M[j, k],  M[j, j])
+            ay = math.atan2(-M[k, i],  cy)
+            az = 0.0
+
+    if parity:
+        ax, ay, az = -ax, -ay, -az
+    if frame:
+        ax, az = az, ax
+    return ax, ay, az
+
+
+def euler_from_quaternion(quaternion, axes='sxyz'):
+    """Return Euler angles from quaternion for specified axis sequence.
+
+    >>> angles = euler_from_quaternion([0.99810947, 0.06146124, 0, 0])
+    >>> numpy.allclose(angles, [0.123, 0, 0])
+    True
+
+    """
+    return euler_from_matrix(quaternion_matrix(quaternion), axes)
+
+
+def quaternion_from_euler(ai, aj, ak, axes='sxyz'):
+    """Return quaternion from Euler angles and axis sequence.
+
+    ai, aj, ak : Euler's roll, pitch and yaw angles
+    axes : One of 24 axis sequences as string or encoded tuple
+
+    >>> q = quaternion_from_euler(1, 2, 3, 'ryxz')
+    >>> numpy.allclose(q, [0.435953, 0.310622, -0.718287, 0.444435])
+    True
+
+    """
+    try:
+        firstaxis, parity, repetition, frame = _AXES2TUPLE[axes.lower()]
+    except (AttributeError, KeyError):
+        _TUPLE2AXES[axes]  # validation
+        firstaxis, parity, repetition, frame = axes
+
+    i = firstaxis + 1
+    j = _NEXT_AXIS[i+parity-1] + 1
+    k = _NEXT_AXIS[i-parity] + 1
+
+    if frame:
+        ai, ak = ak, ai
+    if parity:
+        aj = -aj
+
+    ai /= 2.0
+    aj /= 2.0
+    ak /= 2.0
+    ci = math.cos(ai)
+    si = math.sin(ai)
+    cj = math.cos(aj)
+    sj = math.sin(aj)
+    ck = math.cos(ak)
+    sk = math.sin(ak)
+    cc = ci*ck
+    cs = ci*sk
+    sc = si*ck
+    ss = si*sk
+
+    q = numpy.empty((4, ))
+    if repetition:
+        q[0] = cj*(cc - ss)
+        q[i] = cj*(cs + sc)
+        q[j] = sj*(cc + ss)
+        q[k] = sj*(cs - sc)
+    else:
+        q[0] = cj*cc + sj*ss
+        q[i] = cj*sc - sj*cs
+        q[j] = cj*ss + sj*cc
+        q[k] = cj*cs - sj*sc
+    if parity:
+        q[j] *= -1.0
+
+    return q
+
+
+def quaternion_about_axis(angle, axis):
+    """Return quaternion for rotation about axis.
+
+    >>> q = quaternion_about_axis(0.123, [1, 0, 0])
+    >>> numpy.allclose(q, [0.99810947, 0.06146124, 0, 0])
+    True
+
+    """
+    q = numpy.array([0.0, axis[0], axis[1], axis[2]])
+    qlen = vector_norm(q)
+    if qlen > _EPS:
+        q *= math.sin(angle/2.0) / qlen
+    q[0] = math.cos(angle/2.0)
+    return q
+
+
+def quaternion_matrix(quaternion):
+    """Return homogeneous rotation matrix from quaternion.
+
+    >>> M = quaternion_matrix([0.99810947, 0.06146124, 0, 0])
+    >>> numpy.allclose(M, rotation_matrix(0.123, [1, 0, 0]))
+    True
+    >>> M = quaternion_matrix([1, 0, 0, 0])
+    >>> numpy.allclose(M, numpy.identity(4))
+    True
+    >>> M = quaternion_matrix([0, 1, 0, 0])
+    >>> numpy.allclose(M, numpy.diag([1, -1, -1, 1]))
+    True
+
+    """
+    q = numpy.array(quaternion, dtype=numpy.float64, copy=True)
+    n = numpy.dot(q, q)
+    if n < _EPS:
+        return numpy.identity(4)
+    q *= math.sqrt(2.0 / n)
+    q = numpy.outer(q, q)
+    return numpy.array([
+        [1.0-q[2, 2]-q[3, 3],     q[1, 2]-q[3, 0],     q[1, 3]+q[2, 0], 0.0],
+        [    q[1, 2]+q[3, 0], 1.0-q[1, 1]-q[3, 3],     q[2, 3]-q[1, 0], 0.0],
+        [    q[1, 3]-q[2, 0],     q[2, 3]+q[1, 0], 1.0-q[1, 1]-q[2, 2], 0.0],
+        [                0.0,                 0.0,                 0.0, 1.0]])
+
+
+def quaternion_from_matrix(matrix, isprecise=False):
+    """Return quaternion from rotation matrix.
+
+    If isprecise is True, the input matrix is assumed to be a precise rotation
+    matrix and a faster algorithm is used.
+
+    >>> q = quaternion_from_matrix(numpy.identity(4), True)
+    >>> numpy.allclose(q, [1, 0, 0, 0])
+    True
+    >>> q = quaternion_from_matrix(numpy.diag([1, -1, -1, 1]))
+    >>> numpy.allclose(q, [0, 1, 0, 0]) or numpy.allclose(q, [0, -1, 0, 0])
+    True
+    >>> R = rotation_matrix(0.123, (1, 2, 3))
+    >>> q = quaternion_from_matrix(R, True)
+    >>> numpy.allclose(q, [0.9981095, 0.0164262, 0.0328524, 0.0492786])
+    True
+    >>> R = [[-0.545, 0.797, 0.260, 0], [0.733, 0.603, -0.313, 0],
+    ...      [-0.407, 0.021, -0.913, 0], [0, 0, 0, 1]]
+    >>> q = quaternion_from_matrix(R)
+    >>> numpy.allclose(q, [0.19069, 0.43736, 0.87485, -0.083611])
+    True
+    >>> R = [[0.395, 0.362, 0.843, 0], [-0.626, 0.796, -0.056, 0],
+    ...      [-0.677, -0.498, 0.529, 0], [0, 0, 0, 1]]
+    >>> q = quaternion_from_matrix(R)
+    >>> numpy.allclose(q, [0.82336615, -0.13610694, 0.46344705, -0.29792603])
+    True
+    >>> R = random_rotation_matrix()
+    >>> q = quaternion_from_matrix(R)
+    >>> is_same_transform(R, quaternion_matrix(q))
+    True
+    >>> R = euler_matrix(0.0, 0.0, numpy.pi/2.0)
+    >>> numpy.allclose(quaternion_from_matrix(R, isprecise=False),
+    ...                quaternion_from_matrix(R, isprecise=True))
+    True
+
+    """
+    M = numpy.array(matrix, dtype=numpy.float64, copy=False)[:4, :4]
+    if isprecise:
+        q = numpy.empty((4, ))
+        t = numpy.trace(M)
+        if t > M[3, 3]:
+            q[0] = t
+            q[3] = M[1, 0] - M[0, 1]
+            q[2] = M[0, 2] - M[2, 0]
+            q[1] = M[2, 1] - M[1, 2]
+        else:
+            i, j, k = 1, 2, 3
+            if M[1, 1] > M[0, 0]:
+                i, j, k = 2, 3, 1
+            if M[2, 2] > M[i, i]:
+                i, j, k = 3, 1, 2
+            t = M[i, i] - (M[j, j] + M[k, k]) + M[3, 3]
+            q[i] = t
+            q[j] = M[i, j] + M[j, i]
+            q[k] = M[k, i] + M[i, k]
+            q[3] = M[k, j] - M[j, k]
+        q *= 0.5 / math.sqrt(t * M[3, 3])
+    else:
+        m00 = M[0, 0]
+        m01 = M[0, 1]
+        m02 = M[0, 2]
+        m10 = M[1, 0]
+        m11 = M[1, 1]
+        m12 = M[1, 2]
+        m20 = M[2, 0]
+        m21 = M[2, 1]
+        m22 = M[2, 2]
+        # symmetric matrix K
+        K = numpy.array([[m00-m11-m22, 0.0,         0.0,         0.0],
+                         [m01+m10,     m11-m00-m22, 0.0,         0.0],
+                         [m02+m20,     m12+m21,     m22-m00-m11, 0.0],
+                         [m21-m12,     m02-m20,     m10-m01,     m00+m11+m22]])
+        K /= 3.0
+        # quaternion is eigenvector of K that corresponds to largest eigenvalue
+        w, V = numpy.linalg.eigh(K)
+        q = V[[3, 0, 1, 2], numpy.argmax(w)]
+    if q[0] < 0.0:
+        numpy.negative(q, q)
+    return q
+
+
+def quaternion_multiply(quaternion1, quaternion0):
+    """Return multiplication of two quaternions.
+
+    >>> q = quaternion_multiply([4, 1, -2, 3], [8, -5, 6, 7])
+    >>> numpy.allclose(q, [28, -44, -14, 48])
+    True
+
+    """
+    w0, x0, y0, z0 = quaternion0
+    w1, x1, y1, z1 = quaternion1
+    return numpy.array([-x1*x0 - y1*y0 - z1*z0 + w1*w0,
+                         x1*w0 + y1*z0 - z1*y0 + w1*x0,
+                        -x1*z0 + y1*w0 + z1*x0 + w1*y0,
+                         x1*y0 - y1*x0 + z1*w0 + w1*z0], dtype=numpy.float64)
+
+
+def quaternion_conjugate(quaternion):
+    """Return conjugate of quaternion.
+
+    >>> q0 = random_quaternion()
+    >>> q1 = quaternion_conjugate(q0)
+    >>> q1[0] == q0[0] and all(q1[1:] == -q0[1:])
+    True
+
+    """
+    q = numpy.array(quaternion, dtype=numpy.float64, copy=True)
+    numpy.negative(q[1:], q[1:])
+    return q
+
+
+def quaternion_inverse(quaternion):
+    """Return inverse of quaternion.
+
+    >>> q0 = random_quaternion()
+    >>> q1 = quaternion_inverse(q0)
+    >>> numpy.allclose(quaternion_multiply(q0, q1), [1, 0, 0, 0])
+    True
+
+    """
+    q = numpy.array(quaternion, dtype=numpy.float64, copy=True)
+    numpy.negative(q[1:], q[1:])
+    return q / numpy.dot(q, q)
+
+
+def quaternion_real(quaternion):
+    """Return real part of quaternion.
+
+    >>> quaternion_real([3, 0, 1, 2])
+    3.0
+
+    """
+    return float(quaternion[0])
+
+
+def quaternion_imag(quaternion):
+    """Return imaginary part of quaternion.
+
+    >>> quaternion_imag([3, 0, 1, 2])
+    array([ 0.,  1.,  2.])
+
+    """
+    return numpy.array(quaternion[1:4], dtype=numpy.float64, copy=True)
+
+
+def quaternion_slerp(quat0, quat1, fraction, spin=0, shortestpath=True):
+    """Return spherical linear interpolation between two quaternions.
+
+    >>> q0 = random_quaternion()
+    >>> q1 = random_quaternion()
+    >>> q = quaternion_slerp(q0, q1, 0)
+    >>> numpy.allclose(q, q0)
+    True
+    >>> q = quaternion_slerp(q0, q1, 1, 1)
+    >>> numpy.allclose(q, q1)
+    True
+    >>> q = quaternion_slerp(q0, q1, 0.5)
+    >>> angle = math.acos(numpy.dot(q0, q))
+    >>> numpy.allclose(2, math.acos(numpy.dot(q0, q1)) / angle) or \
+        numpy.allclose(2, math.acos(-numpy.dot(q0, q1)) / angle)
+    True
+
+    """
+    q0 = unit_vector(quat0[:4])
+    q1 = unit_vector(quat1[:4])
+    if fraction == 0.0:
+        return q0
+    elif fraction == 1.0:
+        return q1
+    d = numpy.dot(q0, q1)
+    if abs(abs(d) - 1.0) < _EPS:
+        return q0
+    if shortestpath and d < 0.0:
+        # invert rotation
+        d = -d
+        numpy.negative(q1, q1)
+    angle = math.acos(d) + spin * math.pi
+    if abs(angle) < _EPS:
+        return q0
+    isin = 1.0 / math.sin(angle)
+    q0 *= math.sin((1.0 - fraction) * angle) * isin
+    q1 *= math.sin(fraction * angle) * isin
+    q0 += q1
+    return q0
+
+
+def random_quaternion(rand=None):
+    """Return uniform random unit quaternion.
+
+    rand: array like or None
+        Three independent random variables that are uniformly distributed
+        between 0 and 1.
+
+    >>> q = random_quaternion()
+    >>> numpy.allclose(1, vector_norm(q))
+    True
+    >>> q = random_quaternion(numpy.random.random(3))
+    >>> len(q.shape), q.shape[0]==4
+    (1, True)
+
+    """
+    if rand is None:
+        rand = numpy.random.rand(3)
+    else:
+        assert len(rand) == 3
+    r1 = numpy.sqrt(1.0 - rand[0])
+    r2 = numpy.sqrt(rand[0])
+    pi2 = math.pi * 2.0
+    t1 = pi2 * rand[1]
+    t2 = pi2 * rand[2]
+    return numpy.array([numpy.cos(t2)*r2, numpy.sin(t1)*r1,
+                        numpy.cos(t1)*r1, numpy.sin(t2)*r2])
+
+
+def random_rotation_matrix(rand=None):
+    """Return uniform random rotation matrix.
+
+    rand: array like
+        Three independent random variables that are uniformly distributed
+        between 0 and 1 for each returned quaternion.
+
+    >>> R = random_rotation_matrix()
+    >>> numpy.allclose(numpy.dot(R.T, R), numpy.identity(4))
+    True
+
+    """
+    return quaternion_matrix(random_quaternion(rand))
+
+
+class Arcball(object):
+    """Virtual Trackball Control.
+
+    >>> ball = Arcball()
+    >>> ball = Arcball(initial=numpy.identity(4))
+    >>> ball.place([320, 320], 320)
+    >>> ball.down([500, 250])
+    >>> ball.drag([475, 275])
+    >>> R = ball.matrix()
+    >>> numpy.allclose(numpy.sum(R), 3.90583455)
+    True
+    >>> ball = Arcball(initial=[1, 0, 0, 0])
+    >>> ball.place([320, 320], 320)
+    >>> ball.setaxes([1, 1, 0], [-1, 1, 0])
+    >>> ball.constrain = True
+    >>> ball.down([400, 200])
+    >>> ball.drag([200, 400])
+    >>> R = ball.matrix()
+    >>> numpy.allclose(numpy.sum(R), 0.2055924)
+    True
+    >>> ball.next()
+
+    """
+    def __init__(self, initial=None):
+        """Initialize virtual trackball control.
+
+        initial : quaternion or rotation matrix
+
+        """
+        self._axis = None
+        self._axes = None
+        self._radius = 1.0
+        self._center = [0.0, 0.0]
+        self._vdown = numpy.array([0.0, 0.0, 1.0])
+        self._constrain = False
+        if initial is None:
+            self._qdown = numpy.array([1.0, 0.0, 0.0, 0.0])
+        else:
+            initial = numpy.array(initial, dtype=numpy.float64)
+            if initial.shape == (4, 4):
+                self._qdown = quaternion_from_matrix(initial)
+            elif initial.shape == (4, ):
+                initial /= vector_norm(initial)
+                self._qdown = initial
+            else:
+                raise ValueError("initial not a quaternion or matrix")
+        self._qnow = self._qpre = self._qdown
+
+    def place(self, center, radius):
+        """Place Arcball, e.g. when window size changes.
+
+        center : sequence[2]
+            Window coordinates of trackball center.
+        radius : float
+            Radius of trackball in window coordinates.
+
+        """
+        self._radius = float(radius)
+        self._center[0] = center[0]
+        self._center[1] = center[1]
+
+    def setaxes(self, *axes):
+        """Set axes to constrain rotations."""
+        if axes is None:
+            self._axes = None
+        else:
+            self._axes = [unit_vector(axis) for axis in axes]
+
+    @property
+    def constrain(self):
+        """Return state of constrain to axis mode."""
+        return self._constrain
+
+    @constrain.setter
+    def constrain(self, value):
+        """Set state of constrain to axis mode."""
+        self._constrain = bool(value)
+
+    def down(self, point):
+        """Set initial cursor window coordinates and pick constrain-axis."""
+        self._vdown = arcball_map_to_sphere(point, self._center, self._radius)
+        self._qdown = self._qpre = self._qnow
+        if self._constrain and self._axes is not None:
+            self._axis = arcball_nearest_axis(self._vdown, self._axes)
+            self._vdown = arcball_constrain_to_axis(self._vdown, self._axis)
+        else:
+            self._axis = None
+
+    def drag(self, point):
+        """Update current cursor window coordinates."""
+        vnow = arcball_map_to_sphere(point, self._center, self._radius)
+        if self._axis is not None:
+            vnow = arcball_constrain_to_axis(vnow, self._axis)
+        self._qpre = self._qnow
+        t = numpy.cross(self._vdown, vnow)
+        if numpy.dot(t, t) < _EPS:
+            self._qnow = self._qdown
+        else:
+            q = [numpy.dot(self._vdown, vnow), t[0], t[1], t[2]]
+            self._qnow = quaternion_multiply(q, self._qdown)
+
+    def next(self, acceleration=0.0):
+        """Continue rotation in direction of last drag."""
+        q = quaternion_slerp(self._qpre, self._qnow, 2.0+acceleration, False)
+        self._qpre, self._qnow = self._qnow, q
+
+    def matrix(self):
+        """Return homogeneous rotation matrix."""
+        return quaternion_matrix(self._qnow)
+
+
+def arcball_map_to_sphere(point, center, radius):
+    """Return unit sphere coordinates from window coordinates."""
+    v0 = (point[0] - center[0]) / radius
+    v1 = (center[1] - point[1]) / radius
+    n = v0*v0 + v1*v1
+    if n > 1.0:
+        # position outside of sphere
+        n = math.sqrt(n)
+        return numpy.array([v0/n, v1/n, 0.0])
+    else:
+        return numpy.array([v0, v1, math.sqrt(1.0 - n)])
+
+
+def arcball_constrain_to_axis(point, axis):
+    """Return sphere point perpendicular to axis."""
+    v = numpy.array(point, dtype=numpy.float64, copy=True)
+    a = numpy.array(axis, dtype=numpy.float64, copy=True)
+    v -= a * numpy.dot(a, v)  # on plane
+    n = vector_norm(v)
+    if n > _EPS:
+        if v[2] < 0.0:
+            numpy.negative(v, v)
+        v /= n
+        return v
+    if a[2] == 1.0:
+        return numpy.array([1.0, 0.0, 0.0])
+    return unit_vector([-a[1], a[0], 0.0])
+
+
+def arcball_nearest_axis(point, axes):
+    """Return axis, which arc is nearest to point."""
+    point = numpy.array(point, dtype=numpy.float64, copy=False)
+    nearest = None
+    mx = -1.0
+    for axis in axes:
+        t = numpy.dot(arcball_constrain_to_axis(point, axis), point)
+        if t > mx:
+            nearest = axis
+            mx = t
+    return nearest
+
+
+# epsilon for testing whether a number is close to zero
+_EPS = numpy.finfo(float).eps * 4.0
+
+# axis sequences for Euler angles
+_NEXT_AXIS = [1, 2, 0, 1]
+
+# map axes strings to/from tuples of inner axis, parity, repetition, frame
+_AXES2TUPLE = {
+    'sxyz': (0, 0, 0, 0), 'sxyx': (0, 0, 1, 0), 'sxzy': (0, 1, 0, 0),
+    'sxzx': (0, 1, 1, 0), 'syzx': (1, 0, 0, 0), 'syzy': (1, 0, 1, 0),
+    'syxz': (1, 1, 0, 0), 'syxy': (1, 1, 1, 0), 'szxy': (2, 0, 0, 0),
+    'szxz': (2, 0, 1, 0), 'szyx': (2, 1, 0, 0), 'szyz': (2, 1, 1, 0),
+    'rzyx': (0, 0, 0, 1), 'rxyx': (0, 0, 1, 1), 'ryzx': (0, 1, 0, 1),
+    'rxzx': (0, 1, 1, 1), 'rxzy': (1, 0, 0, 1), 'ryzy': (1, 0, 1, 1),
+    'rzxy': (1, 1, 0, 1), 'ryxy': (1, 1, 1, 1), 'ryxz': (2, 0, 0, 1),
+    'rzxz': (2, 0, 1, 1), 'rxyz': (2, 1, 0, 1), 'rzyz': (2, 1, 1, 1)}
+
+_TUPLE2AXES = dict((v, k) for k, v in _AXES2TUPLE.items())
+
+
+def vector_norm(data, axis=None, out=None):
+    """Return length, i.e. Euclidean norm, of ndarray along axis.
+
+    >>> v = numpy.random.random(3)
+    >>> n = vector_norm(v)
+    >>> numpy.allclose(n, numpy.linalg.norm(v))
+    True
+    >>> v = numpy.random.rand(6, 5, 3)
+    >>> n = vector_norm(v, axis=-1)
+    >>> numpy.allclose(n, numpy.sqrt(numpy.sum(v*v, axis=2)))
+    True
+    >>> n = vector_norm(v, axis=1)
+    >>> numpy.allclose(n, numpy.sqrt(numpy.sum(v*v, axis=1)))
+    True
+    >>> v = numpy.random.rand(5, 4, 3)
+    >>> n = numpy.empty((5, 3))
+    >>> vector_norm(v, axis=1, out=n)
+    >>> numpy.allclose(n, numpy.sqrt(numpy.sum(v*v, axis=1)))
+    True
+    >>> vector_norm([])
+    0.0
+    >>> vector_norm([1])
+    1.0
+
+    """
+    data = numpy.array(data, dtype=numpy.float64, copy=True)
+    if out is None:
+        if data.ndim == 1:
+            return math.sqrt(numpy.dot(data, data))
+        data *= data
+        out = numpy.atleast_1d(numpy.sum(data, axis=axis))
+        numpy.sqrt(out, out)
+        return out
+    else:
+        data *= data
+        numpy.sum(data, axis=axis, out=out)
+        numpy.sqrt(out, out)
+
+
+def unit_vector(data, axis=None, out=None):
+    """Return ndarray normalized by length, i.e. Euclidean norm, along axis.
+
+    >>> v0 = numpy.random.random(3)
+    >>> v1 = unit_vector(v0)
+    >>> numpy.allclose(v1, v0 / numpy.linalg.norm(v0))
+    True
+    >>> v0 = numpy.random.rand(5, 4, 3)
+    >>> v1 = unit_vector(v0, axis=-1)
+    >>> v2 = v0 / numpy.expand_dims(numpy.sqrt(numpy.sum(v0*v0, axis=2)), 2)
+    >>> numpy.allclose(v1, v2)
+    True
+    >>> v1 = unit_vector(v0, axis=1)
+    >>> v2 = v0 / numpy.expand_dims(numpy.sqrt(numpy.sum(v0*v0, axis=1)), 1)
+    >>> numpy.allclose(v1, v2)
+    True
+    >>> v1 = numpy.empty((5, 4, 3))
+    >>> unit_vector(v0, axis=1, out=v1)
+    >>> numpy.allclose(v1, v2)
+    True
+    >>> list(unit_vector([]))
+    []
+    >>> list(unit_vector([1]))
+    [1.0]
+
+    """
+    if out is None:
+        data = numpy.array(data, dtype=numpy.float64, copy=True)
+        if data.ndim == 1:
+            data /= math.sqrt(numpy.dot(data, data))
+            return data
+    else:
+        if out is not data:
+            out[:] = numpy.array(data, copy=False)
+        data = out
+    length = numpy.atleast_1d(numpy.sum(data*data, axis))
+    numpy.sqrt(length, length)
+    if axis is not None:
+        length = numpy.expand_dims(length, axis)
+    data /= length
+    if out is None:
+        return data
+
+
+def random_vector(size):
+    """Return array of random doubles in the half-open interval [0.0, 1.0).
+
+    >>> v = random_vector(10000)
+    >>> numpy.all(v >= 0) and numpy.all(v < 1)
+    True
+    >>> v0 = random_vector(10)
+    >>> v1 = random_vector(10)
+    >>> numpy.any(v0 == v1)
+    False
+
+    """
+    return numpy.random.random(size)
+
+
+def vector_product(v0, v1, axis=0):
+    """Return vector perpendicular to vectors.
+
+    >>> v = vector_product([2, 0, 0], [0, 3, 0])
+    >>> numpy.allclose(v, [0, 0, 6])
+    True
+    >>> v0 = [[2, 0, 0, 2], [0, 2, 0, 2], [0, 0, 2, 2]]
+    >>> v1 = [[3], [0], [0]]
+    >>> v = vector_product(v0, v1)
+    >>> numpy.allclose(v, [[0, 0, 0, 0], [0, 0, 6, 6], [0, -6, 0, -6]])
+    True
+    >>> v0 = [[2, 0, 0], [2, 0, 0], [0, 2, 0], [2, 0, 0]]
+    >>> v1 = [[0, 3, 0], [0, 0, 3], [0, 0, 3], [3, 3, 3]]
+    >>> v = vector_product(v0, v1, axis=1)
+    >>> numpy.allclose(v, [[0, 0, 6], [0, -6, 0], [6, 0, 0], [0, -6, 6]])
+    True
+
+    """
+    return numpy.cross(v0, v1, axis=axis)
+
+
+def angle_between_vectors(v0, v1, directed=True, axis=0):
+    """Return angle between vectors.
+
+    If directed is False, the input vectors are interpreted as undirected axes,
+    i.e. the maximum angle is pi/2.
+
+    >>> a = angle_between_vectors([1, -2, 3], [-1, 2, -3])
+    >>> numpy.allclose(a, math.pi)
+    True
+    >>> a = angle_between_vectors([1, -2, 3], [-1, 2, -3], directed=False)
+    >>> numpy.allclose(a, 0)
+    True
+    >>> v0 = [[2, 0, 0, 2], [0, 2, 0, 2], [0, 0, 2, 2]]
+    >>> v1 = [[3], [0], [0]]
+    >>> a = angle_between_vectors(v0, v1)
+    >>> numpy.allclose(a, [0, 1.5708, 1.5708, 0.95532])
+    True
+    >>> v0 = [[2, 0, 0], [2, 0, 0], [0, 2, 0], [2, 0, 0]]
+    >>> v1 = [[0, 3, 0], [0, 0, 3], [0, 0, 3], [3, 3, 3]]
+    >>> a = angle_between_vectors(v0, v1, axis=1)
+    >>> numpy.allclose(a, [1.5708, 1.5708, 1.5708, 0.95532])
+    True
+
+    """
+    v0 = numpy.array(v0, dtype=numpy.float64, copy=False)
+    v1 = numpy.array(v1, dtype=numpy.float64, copy=False)
+    dot = numpy.sum(v0 * v1, axis=axis)
+    dot /= vector_norm(v0, axis=axis) * vector_norm(v1, axis=axis)
+    return numpy.arccos(dot if directed else numpy.fabs(dot))
+
+
+def inverse_matrix(matrix):
+    """Return inverse of square transformation matrix.
+
+    >>> M0 = random_rotation_matrix()
+    >>> M1 = inverse_matrix(M0.T)
+    >>> numpy.allclose(M1, numpy.linalg.inv(M0.T))
+    True
+    >>> for size in range(1, 7):
+    ...     M0 = numpy.random.rand(size, size)
+    ...     M1 = inverse_matrix(M0)
+    ...     if not numpy.allclose(M1, numpy.linalg.inv(M0)): print(size)
+
+    """
+    return numpy.linalg.inv(matrix)
+
+
+def concatenate_matrices(*matrices):
+    """Return concatenation of series of transformation matrices.
+
+    >>> M = numpy.random.rand(16).reshape((4, 4)) - 0.5
+    >>> numpy.allclose(M, concatenate_matrices(M))
+    True
+    >>> numpy.allclose(numpy.dot(M, M.T), concatenate_matrices(M, M.T))
+    True
+
+    """
+    M = numpy.identity(4)
+    for i in matrices:
+        M = numpy.dot(M, i)
+    return M
+
+
+def is_same_transform(matrix0, matrix1):
+    """Return True if two matrices perform same transformation.
+
+    >>> is_same_transform(numpy.identity(4), numpy.identity(4))
+    True
+    >>> is_same_transform(numpy.identity(4), random_rotation_matrix())
+    False
+
+    """
+    matrix0 = numpy.array(matrix0, dtype=numpy.float64, copy=True)
+    matrix0 /= matrix0[3, 3]
+    matrix1 = numpy.array(matrix1, dtype=numpy.float64, copy=True)
+    matrix1 /= matrix1[3, 3]
+    return numpy.allclose(matrix0, matrix1)
+
+
+def _import_module(name, package=None, warn=True, prefix='_py_', ignore='_'):
+    """Try import all public attributes from module into global namespace.
+
+    Existing attributes with name clashes are renamed with prefix.
+    Attributes starting with underscore are ignored by default.
+
+    Return True on successful import.
+
+    """
+    import warnings
+    from importlib import import_module
+    try:
+        if not package:
+            module = import_module(name)
+        else:
+            module = import_module('.' + name, package=package)
+    except ImportError:
+        if warn:
+            warnings.warn("failed to import module %s" % name)
+    else:
+        for attr in dir(module):
+            if ignore and attr.startswith(ignore):
+                continue
+            if prefix:
+                if attr in globals():
+                    globals()[prefix + attr] = globals()[attr]
+                elif warn:
+                    warnings.warn("no Python implementation of " + attr)
+            globals()[attr] = getattr(module, attr)
+        return True
+
+
+_import_module('_transformations')
+
+if __name__ == "__main__":
+    import doctest
+    import random  # used in doctests
+    numpy.set_printoptions(suppress=True, precision=5)
+    doctest.testmod()
+
diff --git a/invesalius/data/transforms.pyx b/invesalius/data/transforms.pyx
new file mode 100644
index 0000000..a815f23
--- /dev/null
+++ b/invesalius/data/transforms.pyx
@@ -0,0 +1,135 @@
+import numpy as np
+cimport numpy as np
+cimport cython
+
+from .cy_my_types cimport image_t
+from .interpolation cimport interpolate, tricub_interpolate, tricubicInterpolate, lanczos3, nearest_neighbour_interp
+
+from libc.math cimport floor, ceil, sqrt, fabs, round
+from cython.parallel import prange
+
+ctypedef double (*interp_function)(image_t[:, :, :], double, double, double) nogil
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef void mul_mat4_vec4(double[:, :] M,
+                            double* coord,
+                            double* out) nogil:
+
+    out[0] = coord[0] * M[0, 0] + coord[1] * M[0, 1] + coord[2] * M[0, 2] + coord[3] * M[0, 3]
+    out[1] = coord[0] * M[1, 0] + coord[1] * M[1, 1] + coord[2] * M[1, 2] + coord[3] * M[1, 3]
+    out[2] = coord[0] * M[2, 0] + coord[1] * M[2, 1] + coord[2] * M[2, 2] + coord[3] * M[2, 3]
+    out[3] = coord[0] * M[3, 0] + coord[1] * M[3, 1] + coord[2] * M[3, 2] + coord[3] * M[3, 3]
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+cdef image_t coord_transform(image_t[:, :, :] volume, double[:, :] M, int x, int y, int z, double sx, double sy, double sz, interp_function f_interp, image_t cval) nogil:
+
+    cdef double coord[4]
+    coord[0] = z*sz
+    coord[1] = y*sy
+    coord[2] = x*sx
+    coord[3] = 1.0
+
+    cdef double _ncoord[4]
+    _ncoord[3] = 1
+    # _ncoord[:] = [0.0, 0.0, 0.0, 1.0]
+
+    cdef unsigned int dz, dy, dx
+    dz = volume.shape[0]
+    dy = volume.shape[1]
+    dx = volume.shape[2]
+
+
+    mul_mat4_vec4(M, coord, _ncoord)
+
+    cdef double nz, ny, nx
+    nz = (_ncoord[0]/_ncoord[3])/sz
+    ny = (_ncoord[1]/_ncoord[3])/sy
+    nx = (_ncoord[2]/_ncoord[3])/sx
+
+    cdef double v
+
+    if 0 <= nz <= (dz-1) and 0 <= ny <= (dy-1) and 0 <= nx <= (dx-1):
+        return <image_t>f_interp(volume, nx, ny, nz)
+        #  if minterpol == 0:
+            #  return <image_t>nearest_neighbour_interp(volume, nx, ny, nz)
+        #  elif minterpol == 1:
+            #  return <image_t>interpolate(volume, nx, ny, nz)
+        #  elif minterpol == 2:
+            #  v = tricubicInterpolate(volume, nx, ny, nz)
+            #  if (v < cval):
+                #  v = cval
+            #  return <image_t>v
+        #  else:
+            #  v = lanczos3(volume, nx, ny, nz)
+            #  if (v < cval):
+                #  v = cval
+            #  return <image_t>v
+    else:
+        return cval
+
+
+ at cython.boundscheck(False) # turn of bounds-checking for entire function
+ at cython.cdivision(True)
+ at cython.wraparound(False)
+def apply_view_matrix_transform(image_t[:, :, :] volume,
+                                spacing,
+                                double[:, :] M,
+                                unsigned int n, str orientation,
+                                int minterpol,
+                                image_t cval,
+                                image_t[:, :, :] out):
+
+    cdef int dz, dy, dx
+    cdef int z, y, x
+    dz = volume.shape[0]
+    dy = volume.shape[1]
+    dx = volume.shape[2]
+
+    cdef unsigned int odz, ody, odx
+    odz = out.shape[0]
+    ody = out.shape[1]
+    odx = out.shape[2]
+
+    cdef unsigned int count = 0
+
+    cdef double sx, sy, sz
+    sx = spacing[0]
+    sy = spacing[1]
+    sz = spacing[2]
+
+    cdef interp_function f_interp
+
+    if minterpol == 0:
+        f_interp = nearest_neighbour_interp
+    elif minterpol == 1:
+        f_interp = interpolate
+    elif minterpol == 2:
+        f_interp = tricubicInterpolate
+    else:
+        f_interp = lanczos3
+
+    if orientation == 'AXIAL':
+        for z in xrange(n, n+odz):
+            for y in prange(dy, nogil=True):
+                for x in xrange(dx):
+                    out[count, y, x] = coord_transform(volume, M, x, y, z, sx, sy, sz, f_interp, cval)
+            count += 1
+
+    elif orientation == 'CORONAL':
+        for y in xrange(n, n+ody):
+            for z in prange(dz, nogil=True):
+                for x in xrange(dx):
+                    out[z, count, x] = coord_transform(volume, M, x, y, z, sx, sy, sz, f_interp, cval)
+            count += 1
+
+    elif orientation == 'SAGITAL':
+        for x in xrange(n, n+odx):
+            for z in prange(dz, nogil=True):
+                for y in xrange(dy):
+                    out[z, y, count] = coord_transform(volume, M, x, y, z, sx, sy, sz, f_interp, cval)
+            count += 1
diff --git a/invesalius/data/trigger.py b/invesalius/data/trigger.py
new file mode 100644
index 0000000..6935330
--- /dev/null
+++ b/invesalius/data/trigger.py
@@ -0,0 +1,81 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+
+import threading
+from time import sleep
+
+import wx
+from wx.lib.pubsub import pub as Publisher
+
+
+class Trigger(threading.Thread):
+    """
+    Thread created to use external trigger to interact with software during neuronavigation
+    """
+
+    def __init__(self, nav_id):
+        threading.Thread.__init__(self)
+        self.trigger_init = None
+        self.stylusplh = False
+        self.__bind_events()
+        try:
+            import serial
+
+            self.trigger_init = serial.Serial('COM1', baudrate=9600, timeout=0)
+            self.nav_id = nav_id
+            self._pause_ = False
+            self.start()
+
+        except ImportError:
+            print 'PySerial library not installed. Please install to use Trigger option.'
+
+        except serial.serialutil.SerialException:
+            print 'Connection with port COM1 failed.'
+
+    def __bind_events(self):
+        Publisher.subscribe(self.OnStylusPLH, 'PLH Stylus Button On')
+
+    def OnStylusPLH(self, pubsuv_evt):
+        self.stylusplh = True
+
+    def stop(self):
+        self._pause_ = True
+
+    def run(self):
+        while self.nav_id:
+            self.trigger_init.write('0')
+            sleep(0.3)
+            lines = self.trigger_init.readlines()
+            # Following lines can simulate a trigger in 3 sec repetitions
+            # sleep(3)
+            # lines = True
+            if lines:
+                wx.CallAfter(Publisher.sendMessage, 'Create marker')
+                sleep(0.5)
+
+            if self.stylusplh:
+                wx.CallAfter(Publisher.sendMessage, 'Create marker')
+                sleep(0.5)
+                self.stylusplh = False
+
+            sleep(0.175)
+            if self._pause_:
+                if self.trigger_init:
+                    self.trigger_init.close()
+                return
diff --git a/invesalius/data/viewer_slice.py b/invesalius/data/viewer_slice.py
index 3423ef1..0aa30d4 100755
--- a/invesalius/data/viewer_slice.py
+++ b/invesalius/data/viewer_slice.py
@@ -19,17 +19,19 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 
+import collections
 import itertools
+import os
 import tempfile
 
-import numpy
+import numpy as np
 
 import vtk
 from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor
 
-import styles
-
+import invesalius.data.styles as styles
 import wx
+import sys
 from wx.lib.pubsub import pub as Publisher
 
 try:
@@ -37,15 +39,25 @@ try:
 except ImportError: # if it's not there locally, try the wxPython lib.
     import wx.lib.agw.floatspin as FS
 
-import constants as const
-import cursor_actors as ca
-import data.slice_ as sl
-import data.vtk_utils as vtku
-import project
-import slice_data as sd
-import utils
-
-from data import measures
+import invesalius.constants as const
+import invesalius.data.cursor_actors as ca
+import invesalius.data.slice_ as sl
+import invesalius.data.vtk_utils as vtku
+import invesalius.project as project
+import invesalius.data.slice_data as sd
+import invesalius.utils as utils
+import invesalius.session as ses
+import invesalius.data.converters as converters
+import invesalius.data.measures as measures
+
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
 
 ID_TO_TOOL_ITEM = {}
 STR_WL = "WL: %d  WW: %d"
@@ -86,7 +98,7 @@ class ContourMIPConfig(wx.Panel):
                                               " order to compound the"
                                               " visualization instead of"
                                               " ascending order.")))
-        
+
         txt_mip_size = wx.StaticText(self, -1, _("Number of slices"), style=wx.ALIGN_CENTER_HORIZONTAL)
         self.txt_mip_border = wx.StaticText(self, -1, _("Sharpness"))
 
@@ -106,11 +118,12 @@ class ContourMIPConfig(wx.Panel):
         self.SetAutoLayout(1)
 
         self.orientation = orientation
+        self.canvas = None
 
         self.mip_size_spin.Bind(wx.EVT_SPINCTRL, self.OnSetMIPSize)
         self.border_spin.Bind(wx.EVT_SPINCTRL, self.OnSetMIPBorder)
         self.inverted.Bind(wx.EVT_CHECKBOX, self.OnCheckInverted)
-        
+
         Publisher.subscribe(self._set_projection_type, 'Set projection type')
 
     def OnSetMIPSize(self, evt):
@@ -133,7 +146,7 @@ class ContourMIPConfig(wx.Panel):
             self.inverted.Enable()
         else:
             self.inverted.Disable()
-        
+
         if tprojection in (const.PROJECTION_CONTOUR_MIP,
                            const.PROJECTION_CONTOUR_MIDA):
             self.border_spin.Enable()
@@ -143,6 +156,375 @@ class ContourMIPConfig(wx.Panel):
             self.txt_mip_border.Disable()
 
 
+class CanvasRendererCTX:
+    def __init__(self, evt_renderer, canvas_renderer, orientation=None):
+        """
+        A Canvas to render over a vtktRenderer.
+
+        Params:
+            evt_renderer: a vtkRenderer which this class is going to watch for
+                any render event to update the canvas content.
+            canvas_renderer: the vtkRenderer where the canvas is going to be
+                added.
+
+        This class uses wx.GraphicsContext to render to a vtkImage.
+
+        TODO: Verify why in Windows the color are strange when using transparency.
+        TODO: Add support to evento (ex. click on a square)
+        """
+        self.canvas_renderer = canvas_renderer
+        self.evt_renderer = evt_renderer
+        self._size = self.canvas_renderer.GetSize()
+        self.draw_list = []
+        self.orientation = orientation
+        self.gc = None
+        self.last_cam_modif_time = -1
+        self.modified = True
+        self._drawn = False
+        self._init_canvas()
+        evt_renderer.AddObserver("StartEvent", self.OnPaint)
+
+    def _init_canvas(self):
+        w, h = self._size
+        self._array = np.zeros((h, w, 4), dtype=np.uint8)
+
+        self._cv_image = converters.np_rgba_to_vtk(self._array)
+
+        self.mapper = vtk.vtkImageMapper()
+        self.mapper.SetInputData(self._cv_image)
+        self.mapper.SetColorWindow(255)
+        self.mapper.SetColorLevel(128)
+
+        self.actor = vtk.vtkActor2D()
+        self.actor.SetPosition(0, 0)
+        self.actor.SetMapper(self.mapper)
+        self.actor.GetProperty().SetOpacity(0.99)
+
+        self.canvas_renderer.AddActor2D(self.actor)
+
+        self.rgb = np.zeros((h, w, 3), dtype=np.uint8)
+        self.alpha = np.zeros((h, w, 1), dtype=np.uint8)
+
+        self.bitmap = wx.EmptyBitmapRGBA(w, h)
+        self.image = wx.ImageFromBuffer(w, h, self.rgb, self.alpha)
+
+    def _resize_canvas(self, w, h):
+        self._array = np.zeros((h, w, 4), dtype=np.uint8)
+        self._cv_image = converters.np_rgba_to_vtk(self._array)
+        self.mapper.SetInputData(self._cv_image)
+        self.mapper.Update()
+
+        self.rgb = np.zeros((h, w, 3), dtype=np.uint8)
+        self.alpha = np.zeros((h, w, 1), dtype=np.uint8)
+
+        self.bitmap = wx.EmptyBitmapRGBA(w, h)
+        self.image = wx.ImageFromBuffer(w, h, self.rgb, self.alpha)
+
+        self.modified = True
+
+    def remove_from_renderer(self):
+        self.canvas_renderer.RemoveActor(self.actor)
+        self.evt_renderer.RemoveObservers("StartEvent")
+
+    def OnPaint(self, evt, obj):
+        size = self.canvas_renderer.GetSize()
+        w, h = size
+        if self._size != size:
+            self._size = size
+            self._resize_canvas(w, h)
+
+        cam_modif_time = self.evt_renderer.GetActiveCamera().GetMTime()
+        if (not self.modified) and cam_modif_time == self.last_cam_modif_time:
+            return
+
+        self.last_cam_modif_time = cam_modif_time
+
+        self._array[:] = 0
+
+        coord = vtk.vtkCoordinate()
+
+        self.image.SetDataBuffer(self.rgb)
+        self.image.SetAlphaBuffer(self.alpha)
+        self.image.Clear()
+        gc = wx.GraphicsContext.Create(self.image)
+        if sys.platform != 'darwin':
+            gc.SetAntialiasMode(0)
+
+        self.gc = gc
+
+        font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
+        #  font.SetWeight(wx.BOLD)
+        font = gc.CreateFont(font, (0, 0, 255))
+        gc.SetFont(font)
+
+        pen = wx.Pen(wx.Colour(255, 0, 0, 128), 2, wx.SOLID)
+        brush = wx.Brush(wx.Colour(0, 255, 0, 128))
+        gc.SetPen(pen)
+        gc.SetBrush(brush)
+        gc.Scale(1, -1)
+
+        for d in self.draw_list:
+            d.draw_to_canvas(gc, self)
+
+        gc.Destroy()
+
+        self.gc = None
+
+        if self._drawn:
+            self.bitmap = self.image.ConvertToBitmap()
+            self.bitmap.CopyToBuffer(self._array, wx.BitmapBufferFormat_RGBA)
+
+        self._cv_image.Modified()
+        self.modified = False
+        self._drawn = False
+
+    def calc_text_size(self, text, font=None):
+        """
+        Given an unicode text and a font returns the width and height of the
+        rendered text in pixels.
+
+        Params:
+            text: An unicode text.
+            font: An wxFont.
+
+        Returns:
+            A tuple with width and height values in pixels
+        """
+        if self.gc is None:
+            return None
+        gc = self.gc
+
+        if font is None:
+            font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
+
+        _font = gc.CreateFont(font)
+        gc.SetFont(_font)
+        w, h = gc.GetTextExtent(text)
+        return w, h
+
+    def draw_line(self, pos0, pos1, arrow_start=False, arrow_end=False, colour=(255, 0, 0, 128), width=2, style=wx.SOLID):
+        """
+        Draw a line from pos0 to pos1
+
+        Params:
+            pos0: the start of the line position (x, y).
+            pos1: the end of the line position (x, y).
+            arrow_start: if to draw a arrow at the start of the line.
+            arrow_end: if to draw a arrow at the end of the line.
+            colour: RGBA line colour.
+            width: the width of line.
+            style: default wx.SOLID.
+        """
+        if self.gc is None:
+            return None
+        gc = self.gc
+
+        p0x, p0y = pos0
+        p1x, p1y = pos1
+
+        p0y = -p0y
+        p1y = -p1y
+
+        pen = wx.Pen(wx.Colour(*colour), width, wx.SOLID)
+        pen.SetCap(wx.CAP_BUTT)
+        gc.SetPen(pen)
+
+        path = gc.CreatePath()
+        path.MoveToPoint(p0x, p0y)
+        path.AddLineToPoint(p1x, p1y)
+        gc.StrokePath(path)
+
+        font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
+        font = gc.CreateFont(font)
+        gc.SetFont(font)
+        w, h = gc.GetTextExtent("M")
+
+        p0 = np.array((p0x, p0y))
+        p3 = np.array((p1x, p1y))
+        if arrow_start:
+            v = p3 - p0
+            v = v / np.linalg.norm(v)
+            iv = np.array((v[1], -v[0]))
+            p1 = p0 + w*v + iv*w/2.0
+            p2 = p0 + w*v + (-iv)*w/2.0
+
+            path = gc.CreatePath()
+            path.MoveToPoint(p0)
+            path.AddLineToPoint(p1)
+            path.MoveToPoint(p0)
+            path.AddLineToPoint(p2)
+            gc.StrokePath(path)
+
+        if arrow_end:
+            v = p3 - p0
+            v = v / np.linalg.norm(v)
+            iv = np.array((v[1], -v[0]))
+            p1 = p3 - w*v + iv*w/2.0
+            p2 = p3 - w*v + (-iv)*w/2.0
+
+            path = gc.CreatePath()
+            path.MoveToPoint(p3)
+            path.AddLineToPoint(p1)
+            path.MoveToPoint(p3)
+            path.AddLineToPoint(p2)
+            gc.StrokePath(path)
+
+        self._drawn = True
+
+    def draw_circle(self, center, radius, width=2, line_colour=(255, 0, 0, 128), fill_colour=(0, 0, 0, 0)):
+        """
+        Draw a circle centered at center with the given radius.
+
+        Params:
+            center: (x, y) position.
+            radius: float number.
+            width: line width.
+            line_colour: RGBA line colour
+            fill_colour: RGBA fill colour.
+        """
+        if self.gc is None:
+            return None
+        gc = self.gc
+
+        pen = wx.Pen(wx.Colour(*line_colour), width, wx.SOLID)
+        gc.SetPen(pen)
+
+        brush = wx.Brush(wx.Colour(*fill_colour))
+        gc.SetBrush(brush)
+
+        cx, cy = center
+        cy = -cy
+
+        path = gc.CreatePath()
+        path.AddCircle(cx, cy, 2.5)
+        gc.StrokePath(path)
+        gc.FillPath(path)
+        self._drawn = True
+
+    def draw_rectangle(self, pos, width, height, line_colour=(255, 0, 0, 128), fill_colour=(0, 0, 0, 0)):
+        """
+        Draw a rectangle with its top left at pos and with the given width and height.
+
+        Params:
+            pos: The top left pos (x, y) of the rectangle.
+            width: width of the rectangle.
+            height: heigth of the rectangle.
+            line_colour: RGBA line colour.
+            fill_colour: RGBA fill colour.
+        """
+        if self.gc is None:
+            return None
+        gc = self.gc
+
+        px, py = pos
+        gc.SetPen(wx.Pen(line_colour))
+        gc.SetBrush(wx.Brush(fill_colour))
+        gc.DrawRectangle(px, py, width, height)
+        self._drawn = True
+
+    def draw_text(self, text, pos, font=None, txt_colour=(255, 255, 255)):
+        """
+        Draw text.
+
+        Params:
+            text: an unicode text.
+            pos: (x, y) top left position.
+            font: if None it'll use the default gui font.
+            txt_colour: RGB text colour
+        """
+        if self.gc is None:
+            return None
+        gc = self.gc
+
+        if font is None:
+            font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
+
+        font = gc.CreateFont(font, txt_colour)
+        gc.SetFont(font)
+
+        px, py = pos
+        py = -py
+
+        gc.DrawText(text, px, py)
+        self._drawn = True
+
+    def draw_text_box(self, text, pos, font=None, txt_colour=(255, 255, 255), bg_colour=(128, 128, 128, 128), border=5):
+        """
+        Draw text inside a text box.
+
+        Params:
+            text: an unicode text.
+            pos: (x, y) top left position.
+            font: if None it'll use the default gui font.
+            txt_colour: RGB text colour
+            bg_colour: RGBA box colour
+            border: the border size.
+        """
+        if self.gc is None:
+            return None
+        gc = self.gc
+
+        if font is None:
+            font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
+
+        _font = gc.CreateFont(font, txt_colour)
+        gc.SetFont(_font)
+        w, h = gc.GetTextExtent(text)
+
+        px, py = pos
+
+        # Drawing the box
+        cw, ch = w + border * 2, h + border * 2
+        self.draw_rectangle((px, -py), cw, ch, bg_colour, bg_colour)
+
+        # Drawing the text
+        tpx, tpy = px + border, py - border
+        self.draw_text(text, (tpx, tpy), font, txt_colour)
+        self._drawn = True
+
+    def draw_arc(self, center, p0, p1, line_colour=(255, 0, 0, 128), width=2):
+        """
+        Draw an arc passing in p0 and p1 centered at center.
+
+        Params:
+            center: (x, y) center of the arc.
+            p0: (x, y).
+            p1: (x, y).
+            line_colour: RGBA line colour.
+            width: width of the line.
+        """
+        if self.gc is None:
+            return None
+        gc = self.gc
+        pen = wx.Pen(wx.Colour(*line_colour), width, wx.SOLID)
+        gc.SetPen(pen)
+
+        c = np.array(center)
+        v0 = np.array(p0) - c
+        v1 = np.array(p1) - c
+
+        c[1] = -c[1]
+        v0[1] = -v0[1]
+        v1[1] = -v1[1]
+
+        s0 = np.linalg.norm(v0)
+        s1 = np.linalg.norm(v1)
+
+        a0 = np.arctan2(v0[1] , v0[0])
+        a1 = np.arctan2(v1[1] , v1[0])
+
+        if (a1 - a0) % (np.pi*2) < (a0 - a1) % (np.pi*2):
+            sa = a0
+            ea = a1
+        else:
+            sa = a1
+            ea = a0
+
+        path = gc.CreatePath()
+        path.AddArc((c[0], c[1]), min(s0, s1), sa, ea)
+        gc.StrokePath(path)
+        self._drawn = True
+
 
 class Viewer(wx.Panel):
 
@@ -156,7 +538,7 @@ class Viewer(wx.Panel):
 
         self._number_slices = const.PROJECTION_MIP_SIZE
         self._mip_inverted = False
-        
+
         self.style = None
         self.last_position_mouse_move = ()
         self.state = const.STATE_DEFAULT
@@ -166,17 +548,24 @@ class Viewer(wx.Panel):
         # All renderers and image actors in this viewer
         self.slice_data_list = []
         self.slice_data = None
+
+        self.slice_actor = None
+        self.interpolation_slice_status = True
+
+        self.canvas = None
+
         # The layout from slice_data, the first is number of cols, the second
         # is the number of rows
         self.layout = (1, 1)
         self.orientation_texts = []
 
-        self.measures = []
-        self.actors_by_slice_number = {}
+        self.measures = measures.MeasureData()
+        self.actors_by_slice_number = collections.defaultdict(list)
         self.renderers_by_slice_number = {}
 
         self.orientation = orientation
         self.slice_number = 0
+        self.scroll_enabled = True
 
         self.__init_gui()
 
@@ -229,7 +618,7 @@ class Viewer(wx.Panel):
             self.menu.caller = self
             self.PopupMenu(self.menu)
         evt.Skip()
-            
+
     def SetPopupMenu(self, menu):
         self.menu = menu
 
@@ -246,19 +635,21 @@ class Viewer(wx.Panel):
         self.__configure_scroll()
 
     def HideTextActors(self, change_status=True):
-        if self.wl_text:
-            self.wl_text.Hide()
-        [t.Hide() for t in self.orientation_texts]
-        self.interactor.Render()
+        try:
+            self.canvas.draw_list.remove(self.wl_text)
+        except (ValueError, AttributeError):
+            pass
+
+        [self.canvas.draw_list.remove(t) for t in self.orientation_texts]
+        self.UpdateCanvas()
         if change_status:
             self.on_text = False
 
     def ShowTextActors(self):
         if self.on_wl and self.wl_text:
-            self.wl_text.Show()
-        [t.Show() for t in self.orientation_texts]
-        self.Update()
-        self.interactor.Render()
+            self.canvas.draw_list.append(self.wl_text)
+        [self.canvas.draw_list.append(t) for t in self.orientation_texts]
+        self.UpdateCanvas()
         self.on_text = True
 
     def __set_layout(self, pubsub_evt):
@@ -277,7 +668,7 @@ class Viewer(wx.Panel):
             self.style.CleanUp()
 
         del self.style
-
+        
         style = styles.get_style(state)(self)
 
         setup = getattr(style, 'SetUp', None)
@@ -315,19 +706,23 @@ class Viewer(wx.Panel):
                               (slc.window_width, slc.window_level))
 
     def SetWLText(self, window_width, window_level):
-        value = STR_WL%(window_level, window_width) 
+        value = STR_WL%(window_level, window_width)
         if (self.wl_text):
             self.wl_text.SetValue(value)
+            self.canvas.modified = True
             #self.interactor.Render()
 
     def EnableText(self):
         if not (self.wl_text):
-            proj = project.Project()            
+            proj = project.Project()
             colour = const.ORIENTATION_COLOUR[self.orientation]
 
             # Window & Level text
-            self.wl_text = vtku.Text()
+            self.wl_text = vtku.TextZero()
+            self.wl_text.SetPosition(const.TEXT_POS_LEFT_UP)
+            self.wl_text.SetSymbolicSize(wx.FONTSIZE_LARGE)
             self.SetWLText(proj.level, proj.window)
+
             # Orientation text
             if self.orientation == 'AXIAL':
                 values = [_('R'), _('L'), _('A'), _('P')]
@@ -335,13 +730,14 @@ class Viewer(wx.Panel):
                 values = [_('P'), _('A'), _('T'), _('B')]
             else:
                 values = [_('R'), _('L'), _('T'), _('B')]
-                
+
             left_text = self.left_text = vtku.TextZero()
             left_text.ShadowOff()
             left_text.SetColour(colour)
             left_text.SetPosition(const.TEXT_POS_VCENTRE_LEFT)
             left_text.SetVerticalJustificationToCentered()
             left_text.SetValue(values[0])
+            left_text.SetSymbolicSize(wx.FONTSIZE_LARGE)
 
             right_text = self.right_text = vtku.TextZero()
             right_text.ShadowOff()
@@ -350,6 +746,7 @@ class Viewer(wx.Panel):
             right_text.SetVerticalJustificationToCentered()
             right_text.SetJustificationToRight()
             right_text.SetValue(values[1])
+            right_text.SetSymbolicSize(wx.FONTSIZE_LARGE)
 
             up_text = self.up_text = vtku.TextZero()
             up_text.ShadowOff()
@@ -357,6 +754,7 @@ class Viewer(wx.Panel):
             up_text.SetPosition(const.TEXT_POS_HCENTRE_UP)
             up_text.SetJustificationToCentered()
             up_text.SetValue(values[2])
+            up_text.SetSymbolicSize(wx.FONTSIZE_LARGE)
 
             down_text = self.down_text = vtku.TextZero()
             down_text.ShadowOff()
@@ -365,17 +763,11 @@ class Viewer(wx.Panel):
             down_text.SetJustificationToCentered()
             down_text.SetVerticalJustificationToBottom()
             down_text.SetValue(values[3])
+            down_text.SetSymbolicSize(wx.FONTSIZE_LARGE)
 
             self.orientation_texts = [left_text, right_text, up_text,
                                       down_text]
 
-
-            self.slice_data.renderer.AddActor(self.wl_text.actor)
-            self.slice_data.renderer.AddActor(left_text.actor)
-            self.slice_data.renderer.AddActor(right_text.actor)
-            self.slice_data.renderer.AddActor(up_text.actor)
-            self.slice_data.renderer.AddActor(down_text.actor)
-
     def RenderTextDirection(self, directions):
         # Values are on ccw order, starting from the top:
         self.up_text.SetValue(directions[0])
@@ -414,30 +806,30 @@ class Viewer(wx.Panel):
 
             elif(croll > 91 and croll <= 135):
                self.RenderTextDirection([_("LP"), _("AL"), _("RA"), _("PR")])
-     
+
             elif(croll > 135 and croll <= 177):
                 self.RenderTextDirection([_("PL"), _("LA"), _("AR"), _("RP")])
-     
+
             elif(croll >= -180 and croll <= -178) or (croll < 180 and croll > 177):
                 self.RenderTextDirection([_("P"), _("L"), _("A"), _("R")])
-            
+
             elif(croll >= -177 and croll <= -133):
                 self.RenderTextDirection([_("PR"), _("LP"), _("AL"), _("RA")])
-    
+
             elif(croll >= -132 and croll <= -101):
                 self.RenderTextDirection([_("RP"), _("PL"), _("LA"), _("AR")])
 
             elif(croll >= -101 and croll <= -87):
                 self.RenderTextDirection([_("R"), _("P"), _("L"), _("A")])
-    
+
             elif(croll >= -86 and croll <= -42):
                 self.RenderTextDirection([_("RA"), _("PR"), _("LP"), _("AL")])
-     
+
             elif(croll >= -41 and croll <= -2):
                 self.RenderTextDirection([_("AR"), _("RP"), _("PL"), _("LA")])
 
         elif(self.orientation == "CORONAL"):
-           
+
             if (croll >= -2 and croll <= 1):
                 self.RenderTextDirection([_("T"), _("R"), _("B"), _("L")])
 
@@ -452,25 +844,25 @@ class Viewer(wx.Panel):
 
             elif(croll > 91 and croll <= 135):
                self.RenderTextDirection([_("LB"), _("TL"), _("RT"), _("BR")])
-     
+
             elif(croll > 135 and croll <= 177):
                 self.RenderTextDirection([_("BL"), _("LT"), _("TR"), _("RB")])
-     
+
             elif(croll >= -180 and croll <= -178) or (croll < 180 and croll > 177):
                 self.RenderTextDirection([_("B"), _("L"), _("T"), _("R")])
-            
+
             elif(croll >= -177 and croll <= -133):
                 self.RenderTextDirection([_("BR"), _("LB"), _("TL"), _("RT")])
-    
+
             elif(croll >= -132 and croll <= -101):
                 self.RenderTextDirection([_("RB"), _("BL"), _("LT"), _("TR")])
 
             elif(croll >= -101 and croll <= -87):
                 self.RenderTextDirection([_("R"), _("B"), _("L"), _("T")])
-    
+
             elif(croll >= -86 and croll <= -42):
                 self.RenderTextDirection([_("RT"), _("BR"), _("LB"), _("TL")])
-     
+
             elif(croll >= -41 and croll <= -2):
                 self.RenderTextDirection([_("TR"), _("RB"), _("BL"), _("LT")])
 
@@ -478,13 +870,13 @@ class Viewer(wx.Panel):
 
             if(croll >= -101 and croll <= -87):
                 self.RenderTextDirection([_("T"), _("P"), _("B"), _("A")])
-    
+
             elif(croll >= -86 and croll <= -42):
                 self.RenderTextDirection([_("TA"), _("PT"), _("BP"), _("AB")])
-     
+
             elif(croll >= -41 and croll <= -2):
                 self.RenderTextDirection([_("AT"), _("TP"), _("PB"), _("BA")])
-        
+
             elif (croll >= -2 and croll <= 1):
                 self.RenderTextDirection([_("A"), _("T"), _("P"), _("B")])
 
@@ -499,16 +891,16 @@ class Viewer(wx.Panel):
 
             elif(croll > 91 and croll <= 135):
                self.RenderTextDirection([_("BP"), _("AB"), _("TA"), _("PT")])
-     
+
             elif(croll > 135 and croll <= 177):
                 self.RenderTextDirection([_("PB"), _("BA"), _("AT"), _("TP")])
-     
+
             elif(croll >= -180 and croll <= -178) or (croll < 180 and croll > 177):
                 self.RenderTextDirection([_("P"), _("B"), _("A"), _("T")])
-            
+
             elif(croll >= -177 and croll <= -133):
                 self.RenderTextDirection([_("PT"), _("BP"), _("AB"), _("TA")])
-    
+
             elif(croll >= -132 and croll <= -101):
                 self.RenderTextDirection([_("TP"), _("PB"), _("BA"), _("AT")])
 
@@ -540,17 +932,15 @@ class Viewer(wx.Panel):
         if self.slice_data.cursor:
             self.slice_data.cursor.SetColour(colour_vtk)
 
-    def Navigation(self, pubsub_evt):
+    def UpdateSlicesNavigation(self, pubsub_evt):
         # Get point from base change
-        x, y, z = pubsub_evt.data
-        coord_cross = x, y, z      
-        position = self.slice_data.actor.GetInput().FindPoint(x, y, z)
-        coord_cross = self.slice_data.actor.GetInput().GetPoint(position)
-        coord = self.calcultate_scroll_position(position)   
-        Publisher.sendMessage('Update cross position', coord_cross)
-        
+        wx, wy, wz = pubsub_evt.data
+        px, py = self.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
+        coord = self.calcultate_scroll_position(px, py)
+
+        self.cross.SetFocalPoint((wx, wy, wz))
         self.ScrollSlice(coord)
-        self.interactor.Render()
+        Publisher.sendMessage('Set ball reference position', (wx, wy, wz))
 
     def ScrollSlice(self, coord):
         if self.orientation == "AXIAL":
@@ -573,28 +963,26 @@ class Viewer(wx.Panel):
         #for slice_data in self.slice_data_list:
             #if slice_data.renderer is render:
                 #return slice_data
-        # WARN: Return the only slice_data used in this slice_viewer. 
+        # WARN: Return the only slice_data used in this slice_viewer.
         return self.slice_data
 
-    def calcultate_scroll_position(self, position):
-        # Based in the given coord (x, y, z), returns a list with the scroll positions for each
+    def calcultate_scroll_position(self, x, y):
+        # Based in the given coord (x, y), returns a list with the scroll positions for each
         # orientation, being the first position the sagital, second the coronal
         # and the last, axial.
-        image_width = self.slice_.buffer_slices[self.orientation].image.shape[1]
-
         if self.orientation == 'AXIAL':
             axial = self.slice_data.number
-            coronal = position / image_width
-            sagital = position % image_width
+            coronal = y
+            sagital = x
 
         elif self.orientation == 'CORONAL':
-            axial = position / image_width
+            axial = y
             coronal = self.slice_data.number
-            sagital = position % image_width
+            sagital = x
 
         elif self.orientation == 'SAGITAL':
-            axial = position / image_width
-            coronal = position % image_width
+            axial = y
+            coronal = x
             sagital = self.slice_data.number
 
         return sagital, coronal, axial
@@ -611,11 +999,29 @@ class Viewer(wx.Panel):
         elif self.orientation == 'SAGITAL':
             mx = round((y - yi)/self.slice_.spacing[1], 0)
             my = round((z - zi)/self.slice_.spacing[2], 0)
-        return my, mx
+        return int(mx), int(my)
 
-    def get_coordinate_cursor(self):
-        # Find position
-        x, y, z = self.pick.GetPickPosition()
+    def get_coordinate_cursor(self, mx, my, picker=None):
+        """
+        Given the mx, my screen position returns the x, y, z position in world
+        coordinates.
+
+        Parameters
+            mx (int): x position.
+            my (int): y position
+            picker: the picker used to get calculate the voxel coordinate.
+
+        Returns:
+            world coordinate (x, y, z)
+        """
+        if picker is None:
+            picker = self.pick
+
+        slice_data = self.slice_data
+        renderer = slice_data.renderer
+
+        picker.Pick(mx, my, 0, renderer)
+        x, y, z = picker.GetPickPosition()
         bounds = self.slice_data.actor.GetBounds()
         if bounds[0] == bounds[1]:
             x = bounds[0]
@@ -625,11 +1031,14 @@ class Viewer(wx.Panel):
             z = bounds[4]
         return x, y, z
 
-    def get_coordinate_cursor_edition(self, slice_data):
+    def get_coordinate_cursor_edition(self, slice_data, picker=None):
         # Find position
         actor = slice_data.actor
         slice_number = slice_data.number
-        x, y, z = self.pick.GetPickPosition()
+        if picker is None:
+            picker = self.pick
+
+        x, y, z = picker.GetPickPosition()
 
         # First we fix the position origin, based on vtkActor bounds
         bounds = actor.GetBounds()
@@ -659,6 +1068,103 @@ class Viewer(wx.Panel):
 
         return x, y, z
 
+    def get_voxel_coord_by_screen_pos(self, mx, my, picker=None):
+        """
+        Given the (mx, my) screen position returns the voxel coordinate
+        of the volume at (that mx, my) position.
+
+        Parameters:
+            mx (int): x position.
+            my (int): y position
+            picker: the picker used to get calculate the voxel coordinate.
+
+        Returns:
+            voxel_coordinate (x, y, z): voxel coordinate inside the matrix. Can
+                be used to access the voxel value inside the matrix.
+        """
+        if picker is None:
+            picker = self.pick
+
+        wx, wy, wz = self.get_coordinate_cursor(mx, my, picker)
+        x, y, z = self.get_voxel_coord_by_world_pos(wx, wy, wz)
+
+        return (x, y, z)
+
+    def get_voxel_coord_by_world_pos(self, wx, wy, wz):
+        """
+        Given the (x, my) screen position returns the voxel coordinate
+        of the volume at (that mx, my) position.
+
+        Parameters:
+            wx (float): x position.
+            wy (float): y position
+            wz (float): z position
+
+        Returns:
+            voxel_coordinate (x, y, z): voxel coordinate inside the matrix. Can
+                be used to access the voxel value inside the matrix.
+        """
+        px, py = self.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
+        x, y, z = self.calcultate_scroll_position(px, py)
+
+        return (int(x), int(y), int(z))
+
+
+    def get_slice_pixel_coord_by_screen_pos(self, mx, my, picker=None):
+        """
+        Given the (mx, my) screen position returns the pixel coordinate
+        of the slice at (that mx, my) position.
+
+        Parameters:
+            mx (int): x position.
+            my (int): y position
+            picker: the picker used to get calculate the pixel coordinate.
+
+        Returns:
+            voxel_coordinate (x, y): voxel coordinate inside the matrix. Can
+                be used to access the voxel value inside the matrix.
+        """
+        if picker is None:
+            picker = self.pick
+
+        wx, wy, wz = self.get_coordinate_cursor(mx, my, picker)
+        x, y = self.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
+        return int(x), int(y)
+
+    def get_slice_pixel_coord_by_world_pos(self, wx, wy, wz):
+        """
+        Given the (wx, wy, wz) world position returns the pixel coordinate
+        of the slice at (that mx, my) position.
+
+        Parameters:
+            mx (int): x position.
+            my (int): y position
+            picker: the picker used to get calculate the pixel coordinate.
+
+        Returns:
+            voxel_coordinate (x, y): voxel coordinate inside the matrix. Can
+                be used to access the voxel value inside the matrix.
+        """
+        coord = wx, wy, wz
+        px, py = self.calculate_matrix_position(coord)
+
+        return px, py
+
+    def get_coord_inside_volume(self, mx, my, picker=None):
+        if picker is None:
+            picker = self.pick
+
+        slice_data = self.slice_data
+        renderer = slice_data.renderer
+
+        coord = self.get_coordinate_cursor(picker)
+        position = slice_data.actor.GetInput().FindPoint(coord)
+
+        if position != -1:
+            coord = slice_data.actor.GetInput().GetPoint(position)
+
+        return coord
+
     def __bind_events(self):
         Publisher.subscribe(self.LoadImagedata,
                                  'Load slice to viewer')
@@ -666,16 +1172,22 @@ class Viewer(wx.Panel):
                                  'Change mask colour')
         Publisher.subscribe(self.UpdateRender,
                                  'Update slice viewer')
+        Publisher.subscribe(self.UpdateRender,
+                                 'Update slice viewer %s' % self.orientation)
+        Publisher.subscribe(self.UpdateCanvas,
+                            'Redraw canvas')
+        Publisher.subscribe(self.UpdateCanvas,
+                            'Redraw canvas %s' % self.orientation)
         Publisher.subscribe(self.ChangeSliceNumber,
                                  ('Set scroll position',
                                   self.orientation))
         Publisher.subscribe(self.__update_cross_position,
                                 'Update cross position')
-        Publisher.subscribe(self.Navigation,
-                                 'Co-registered Points')
+        Publisher.subscribe(self.UpdateSlicesNavigation,
+                            'Co-registered points')
         ###
-        Publisher.subscribe(self.ChangeBrushColour,
-                                 'Add mask')
+        #  Publisher.subscribe(self.ChangeBrushColour,
+                                 #  'Add mask')
 
         Publisher.subscribe(self.UpdateWindowLevelValue,
                             'Update window level value')
@@ -700,12 +1212,17 @@ class Viewer(wx.Panel):
                                  'Hide text actors on viewers')
         Publisher.subscribe(self.OnExportPicture,'Export picture to file')
         Publisher.subscribe(self.SetDefaultCursor, 'Set interactor default cursor')
-    
+
+        Publisher.subscribe(self.SetSizeNSCursor, 'Set interactor resize NS cursor')
+        Publisher.subscribe(self.SetSizeWECursor, 'Set interactor resize WE cursor')
+        Publisher.subscribe(self.SetSizeNWSECursor, 'Set interactor resize NSWE cursor')
+
         Publisher.subscribe(self.AddActors, 'Add actors ' + str(ORIENTATIONS[self.orientation]))
         Publisher.subscribe(self.RemoveActors, 'Remove actors ' + str(ORIENTATIONS[self.orientation]))
         Publisher.subscribe(self.OnSwapVolumeAxes, 'Swap volume axes')
 
         Publisher.subscribe(self.ReloadActualSlice, 'Reload actual slice')
+        Publisher.subscribe(self.ReloadActualSlice, 'Reload actual slice %s' % self.orientation)
         Publisher.subscribe(self.OnUpdateScroll, 'Update scroll')
 
 
@@ -718,6 +1235,8 @@ class Viewer(wx.Panel):
         Publisher.subscribe(self.OnSetOverwriteMask, "Set overwrite mask")
 
         Publisher.subscribe(self.RefreshViewer, "Refresh viewer")
+        Publisher.subscribe(self.SetInterpolatedSlices, "Set interpolated slices")
+        Publisher.subscribe(self.UpdateInterpolatedSlice, "Update Slice Interpolation")
 
 
     def RefreshViewer(self, pubsub_evt):
@@ -725,15 +1244,41 @@ class Viewer(wx.Panel):
 
     def SetDefaultCursor(self, pusub_evt):
         self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
-    
+
+    def SetSizeNSCursor(self, pusub_evt):
+        self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZENS))
+
+    def SetSizeWECursor(self, pusub_evt):
+        self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZEWE))
+
+    def SetSizeNWSECursor(self, pubsub_evt):
+        if sys.platform == 'linux2':
+            self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZENWSE))
+        else:
+            self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZING))
+
     def OnExportPicture(self, pubsub_evt):
-        Publisher.sendMessage('Begin busy cursor')
+        id, filename, filetype = pubsub_evt.data
+
+        dict = {"AXIAL": const.AXIAL,
+                "CORONAL": const.CORONAL,
+                "SAGITAL": const.SAGITAL}
+
+        if id == dict[self.orientation]:
+            Publisher.sendMessage('Begin busy cursor')
+            if _has_win32api:
+                utils.touch(filename)
+                win_filename = win32api.GetShortPathName(filename)
+                self._export_picture(id, win_filename, filetype)
+            else:
+                self._export_picture(id, filename, filetype)
+            Publisher.sendMessage('End busy cursor')
+
+    def _export_picture(self, id, filename, filetype):
         view_prop_list = []
-        for slice_data in self.slice_data_list:
-            view_prop_list.append(slice_data.box_actor) 
-            self.ren.RemoveViewProp(slice_data.box_actor)
+        view_prop_list.append(self.slice_data.box_actor)
+        self.slice_data.renderer.RemoveViewProp(self.slice_data.box_actor)
 
-        id, filename, filetype = pubsub_evt.data
         dict = {"AXIAL": const.AXIAL,
                 "CORONAL": const.CORONAL,
                 "SAGITAL": const.SAGITAL}
@@ -772,11 +1317,14 @@ class Viewer(wx.Panel):
                     filename = "%s.tif"%filename.strip(".tif")
 
                 writer.SetInputData(image)
-                writer.SetFileName(filename)
+                writer.SetFileName(filename.encode(const.FS_ENCODE))
                 writer.Write()
 
+            if not os.path.exists(filename):
+                wx.MessageBox(_("InVesalius was not able to export this picture"), _("Export picture error"))
+
             for actor in view_prop_list:
-                self.ren.AddViewProp(actor)
+                self.slice_data.renderer.AddViewProp(actor)
 
         Publisher.sendMessage('End busy cursor')
 
@@ -792,10 +1340,20 @@ class Viewer(wx.Panel):
     def CloseProject(self):
         for slice_data in self.slice_data_list:
             del slice_data
-            
+
         self.slice_data_list = []
         self.layout = (1, 1)
+
+        del self.slice_data
+        self.slice_data = None
+
+        if self.canvas:
+            self.canvas.draw_list = []
+            self.canvas.remove_from_renderer()
+            self.canvas = None
+
         self.orientation_texts = []
+
         self.slice_number = 0
         self.cursor = None
         self.wl_text = None
@@ -804,10 +1362,10 @@ class Viewer(wx.Panel):
     def OnSetInteractorStyle(self, pubsub_evt):
         state = pubsub_evt.data
         self.SetInteractorStyle(state)
-        
+
         if (state != const.SLICE_STATE_EDITOR):
             Publisher.sendMessage('Set interactor default cursor')
-        
+
     def __bind_events_wx(self):
         self.scroll.Bind(wx.EVT_SCROLL, self.OnScrollBar)
         self.scroll.Bind(wx.EVT_SCROLL_THUMBTRACK, self.OnScrollBarRelease)
@@ -895,6 +1453,9 @@ class Viewer(wx.Panel):
         self.cam = self.slice_data.renderer.GetActiveCamera()
         self.__build_cross_lines()
 
+        self.canvas = CanvasRendererCTX(self.slice_data.renderer, self.slice_data.canvas_renderer, self.orientation)
+        self.canvas.draw_list.append(self.slice_data.text)
+
         # Set the slice number to the last slice to ensure the camera if far
         # enough to show all slices.
         self.set_slice_number(max_slice_number - 1)
@@ -957,30 +1518,65 @@ class Viewer(wx.Panel):
         renderer.SetLayer(0)
         cam = renderer.GetActiveCamera()
 
+        canvas_renderer = vtk.vtkRenderer()
+        canvas_renderer.SetLayer(1)
+        canvas_renderer.SetActiveCamera(cam)
+        canvas_renderer.SetInteractive(0)
+        canvas_renderer.PreserveDepthBufferOn()
+
         overlay_renderer = vtk.vtkRenderer()
-        overlay_renderer.SetLayer(1)
+        overlay_renderer.SetLayer(2)
         overlay_renderer.SetActiveCamera(cam)
         overlay_renderer.SetInteractive(0)
-        
-        self.interactor.GetRenderWindow().SetNumberOfLayers(2)
+
+        self.interactor.GetRenderWindow().SetNumberOfLayers(3)
         self.interactor.GetRenderWindow().AddRenderer(overlay_renderer)
+        self.interactor.GetRenderWindow().AddRenderer(canvas_renderer)
         self.interactor.GetRenderWindow().AddRenderer(renderer)
 
         actor = vtk.vtkImageActor()
+        self.slice_actor = actor
         # TODO: Create a option to let the user set if he wants to interpolate
         # the slice images.
-        #actor.InterpolateOff()
+       
+        if int(ses.Session().slice_interpolation) == 1:
+            actor.InterpolateOff()
+        else:
+            actor.InterpolateOn()
+
         slice_data = sd.SliceData()
         slice_data.SetOrientation(self.orientation)
         slice_data.renderer = renderer
+        slice_data.canvas_renderer = canvas_renderer
         slice_data.overlay_renderer = overlay_renderer
         slice_data.actor = actor
         slice_data.SetBorderStyle(sd.BORDER_ALL)
         renderer.AddActor(actor)
-        renderer.AddActor(slice_data.text.actor)
+        #  renderer.AddActor(slice_data.text.actor)
         renderer.AddViewProp(slice_data.box_actor)
+
         return slice_data
 
+    def UpdateInterpolatedSlice(self, pub_sub):
+        if self.slice_actor != None:    
+            if ses.Session().slice_interpolation:
+                self.slice_actor.InterpolateOff()
+            else:
+                self.slice_actor.InterpolateOn()
+            self.interactor.Render()
+
+
+    def SetInterpolatedSlices(self, pub_sub):
+        self.interpolation_slice_status = status = pub_sub.data
+        
+        if self.slice_actor != None:
+            if status == True:
+                self.slice_actor.InterpolateOn()
+            else:
+                self.slice_actor.InterpolateOff()
+            
+            self.interactor.Render()
+
     def __update_camera(self):
         orientation = self.orientation
         proj = project.Project()
@@ -998,9 +1594,26 @@ class Viewer(wx.Panel):
         self.slice_data.renderer.ResetCameraClippingRange()
 
     def UpdateRender(self, evt):
-        print "Updating viewer", self.orientation
         self.interactor.Render()
 
+    def UpdateCanvas(self, evt=None):
+        if self.canvas is not None:
+            cp_draw_list = self.canvas.draw_list[:]
+            self.canvas.draw_list = []
+
+            # Removing all measures
+            for i in cp_draw_list:
+                if not isinstance(i, (measures.AngularMeasure, measures.LinearMeasure)):
+                    self.canvas.draw_list.append(i)
+
+            # Then add all needed measures
+            for (m, mr) in self.measures.get(self.orientation, self.slice_data.number):
+                if m.visible:
+                    self.canvas.draw_list.append(mr)
+
+            self.canvas.modified = True
+            self.interactor.Render()
+
     def __configure_scroll(self):
         actor = self.slice_data_list[0].actor
         number_of_slices = self.layout[0] * self.layout[1]
@@ -1026,15 +1639,15 @@ class Viewer(wx.Panel):
     def set_scroll_position(self, position):
         self.scroll.SetThumbPosition(position)
         self.OnScrollBar()
-    
+
     def UpdateSlice3D(self, pos):
         original_orientation = project.Project().original_orientation
         pos = self.scroll.GetThumbPosition()
         Publisher.sendMessage('Change slice from slice plane',\
                                    (self.orientation, pos))
-                
+
     def OnScrollBar(self, evt=None, update3D=True):
-        pos = self.scroll.GetThumbPosition() 
+        pos = self.scroll.GetThumbPosition()
         self.set_slice_number(pos)
         if update3D:
             self.UpdateSlice3D(pos)
@@ -1043,14 +1656,14 @@ class Viewer(wx.Panel):
             # the actual orientation.
             focal_point = self.cross.GetFocalPoint()
             Publisher.sendMessage('Update cross position', focal_point)
-            Publisher.sendMessage('Update slice viewer') 
+            Publisher.sendMessage('Update slice viewer')
         else:
-            self.interactor.Render() 
+            self.interactor.Render()
         if evt:
             if self._flush_buffer:
                 self.slice_.apply_slice_buffer_to_mask(self.orientation)
             evt.Skip()
-            
+
     def OnScrollBarRelease(self, evt):
         pos = self.scroll.GetThumbPosition()
         evt.Skip()
@@ -1076,7 +1689,7 @@ class Viewer(wx.Panel):
         if (evt.GetKeyCode() == wx.WXK_UP and pos > min):
             self.OnScrollForward()
             self.OnScrollBar()
-            
+
         elif (evt.GetKeyCode() == wx.WXK_DOWN and pos < max):
             self.OnScrollBackward()
             self.OnScrollBar()
@@ -1100,7 +1713,7 @@ class Viewer(wx.Panel):
             Publisher.sendMessage('Set projection type', projections[evt.GetKeyCode()])
             Publisher.sendMessage('Reload actual slice')
             skip = False
-        
+
         self.UpdateSlice3D(pos)
         self.interactor.Render()
 
@@ -1108,20 +1721,24 @@ class Viewer(wx.Panel):
             evt.Skip()
 
     def OnScrollForward(self, evt=None, obj=None):
+        if not self.scroll_enabled:
+            return
         pos = self.scroll.GetThumbPosition()
         min = 0
-        
+
         if(pos > min):
             if self._flush_buffer:
                 self.slice_.apply_slice_buffer_to_mask(self.orientation)
             pos = pos - 1
             self.scroll.SetThumbPosition(pos)
             self.OnScrollBar()
-    
+
     def OnScrollBackward(self, evt=None, obj=None):
+        if not self.scroll_enabled:
+            return
         pos = self.scroll.GetThumbPosition()
         max = self.slice_.GetMaxSliceNumber(self.orientation)
-        
+
         if(pos < max):
             if self._flush_buffer:
                 self.slice_.apply_slice_buffer_to_mask(self.orientation)
@@ -1130,7 +1747,7 @@ class Viewer(wx.Panel):
             self.OnScrollBar()
 
     def OnSize(self, evt):
-        w, h = evt.GetSize() 
+        w, h = evt.GetSize()
         w = float(w)
         h = float(h)
         if self.slice_data:
@@ -1165,9 +1782,9 @@ class Viewer(wx.Panel):
                 self.Layout()
         else:
             self.mip_ctrls.Hide()
-            self.GetSizer().Remove(self.mip_ctrls)
+            self.GetSizer().Detach(self.mip_ctrls)
             self.Layout()
-    
+
     def OnSetOverwriteMask(self, pubsub_evt):
         value = pubsub_evt.data
         self.overwrite_mask = value
@@ -1178,11 +1795,21 @@ class Viewer(wx.Panel):
         image = self.slice_.GetSlices(self.orientation, index,
                                       self.number_slices, inverted, border_size)
         self.slice_data.actor.SetInputData(image)
-        for actor in self.actors_by_slice_number.get(self.slice_data.number, []):
+        for actor in self.actors_by_slice_number[self.slice_data.number]:
             self.slice_data.renderer.RemoveActor(actor)
-        for actor in self.actors_by_slice_number.get(index, []):
+        for actor in self.actors_by_slice_number[index]:
             self.slice_data.renderer.AddActor(actor)
 
+        for (m, mr) in self.measures.get(self.orientation, self.slice_data.number):
+            try:
+                self.canvas.draw_list.remove(mr)
+            except ValueError:
+                pass
+
+        for (m, mr) in self.measures.get(self.orientation, index):
+            if m.visible:
+                self.canvas.draw_list.append(mr)
+
         if self.slice_._type_projection == const.PROJECTION_NORMAL:
             self.slice_data.SetNumber(index)
         else:
@@ -1215,7 +1842,7 @@ class Viewer(wx.Panel):
         # orientation
         axis0, axis1 = pubsub_evt.data
         cursor = self.slice_data.cursor
-        spacing = cursor.spacing       
+        spacing = cursor.spacing
         if (axis0, axis1) == (2, 1):
             cursor.SetSpacing((spacing[1], spacing[0], spacing[2]))
         elif (axis0, axis1) == (2, 0):
@@ -1239,10 +1866,7 @@ class Viewer(wx.Panel):
             for actor in actors:
                 self.slice_data.renderer.AddActor(actor)
 
-        try:
-            self.actors_by_slice_number[n].extend(actors)
-        except KeyError:
-            self.actors_by_slice_number[n] = list(actors)
+        self.actors_by_slice_number[n].extend(actors)
 
     def RemoveActors(self, pubsub_evt):
         "Remove a list of actors"
diff --git a/invesalius/data/viewer_volume.py b/invesalius/data/viewer_volume.py
index f75e6b6..b077e1b 100755
--- a/invesalius/data/viewer_volume.py
+++ b/invesalius/data/viewer_volume.py
@@ -20,22 +20,32 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 
+import os
 import sys
 
-import numpy
+import numpy as np
+from numpy.core.umath_tests import inner1d
 import wx
 import vtk
 from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import data.bases as bases
-import data.vtk_utils as vtku
-import project as prj
-import style as st
-import utils
-
-from data import measures
+import invesalius.constants as const
+import invesalius.data.bases as bases
+import invesalius.data.vtk_utils as vtku
+import invesalius.project as prj
+import invesalius.style as st
+import invesalius.utils as utils
+import invesalius.data.measures as measures
+
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
 
 PROP_MEASURE = 0.8
 
@@ -46,10 +56,11 @@ class Viewer(wx.Panel):
 
         self.interaction_style = st.StyleStateManager()
 
-        self.ball_reference = None
-        self.initial_foco = None
+        self.initial_focus = None
+
+        self.staticballs = []
 
-        style =  vtk.vtkInteractorStyleTrackballCamera()
+        style = vtk.vtkInteractorStyleTrackballCamera()
         self.style = style
 
         interactor = wxVTKRenderWindowInteractor(self, -1, size = self.GetSize())
@@ -112,10 +123,19 @@ class Viewer(wx.Panel):
         self.repositioned_coronal_plan = 0
         self.added_actor = 0
 
+        self.camera_state = True
+
+        self.ball_actor = None
         self._mode_cross = False
         self._to_show_ball = 0
         self._ball_ref_visibility = False
 
+        self.sen1 = False
+        self.sen2 = False
+
+        self.timer = False
+        self.index = False
+
     def __bind_events(self):
         Publisher.subscribe(self.LoadActor,
                                  'Load surface actor into viewer')
@@ -154,6 +174,7 @@ class Viewer(wx.Panel):
 
         Publisher.subscribe(self.ResetCamClippingRange, 'Reset cam clipping range')
         Publisher.subscribe(self.SetVolumeCamera, 'Set camera in volume')
+        Publisher.subscribe(self.SetVolumeCameraState, 'Update volume camera state')
 
         Publisher.subscribe(self.OnEnableStyle, 'Enable style')
         Publisher.subscribe(self.OnDisableStyle, 'Disable style')
@@ -175,23 +196,29 @@ class Viewer(wx.Panel):
         Publisher.subscribe(self.OnStartSeed,'Create surface by seeding - start')
         Publisher.subscribe(self.OnEndSeed,'Create surface by seeding - end')
 
-        Publisher.subscribe(self.ActivateBallReference,
-                'Activate ball reference')
-        Publisher.subscribe(self.DeactivateBallReference,
-                'Deactivate ball reference')
-        Publisher.subscribe(self.SetBallReferencePosition,
-                'Set ball reference position')
-        Publisher.subscribe(self.SetBallReferencePositionBasedOnBound,
-                'Set ball reference position based on bound')
         Publisher.subscribe(self.SetStereoMode, 'Set stereo mode')
     
         Publisher.subscribe(self.Reposition3DPlane, 'Reposition 3D Plane')
         
         Publisher.subscribe(self.RemoveVolume, 'Remove Volume')
 
+        Publisher.subscribe(self.SetBallReferencePosition,
+                            'Set ball reference position')
         Publisher.subscribe(self._check_ball_reference, 'Enable style')
         Publisher.subscribe(self._uncheck_ball_reference, 'Disable style')
 
+        Publisher.subscribe(self.OnSensors, 'Sensors ID')
+        Publisher.subscribe(self.OnRemoveSensorsID, 'Remove sensors ID')
+
+        # Related to marker creation in navigation tools
+        Publisher.subscribe(self.AddMarker, 'Add marker')
+        Publisher.subscribe(self.HideAllMarkers, 'Hide all markers')
+        Publisher.subscribe(self.ShowAllMarkers, 'Show all markers')
+        Publisher.subscribe(self.RemoveAllMarkers, 'Remove all markers')
+        Publisher.subscribe(self.RemoveMarker, 'Remove marker')
+        Publisher.subscribe(self.BlinkMarker, 'Blink Marker')
+        Publisher.subscribe(self.StopBlinkMarker, 'Stop Blink Marker')
+
     def SetStereoMode(self, pubsub_evt):
         mode = pubsub_evt.data
         ren_win = self.interactor.GetRenderWindow()
@@ -221,43 +248,6 @@ class Viewer(wx.Panel):
         
         self.interactor.Render()
 
-    def CreateBallReference(self):
-        MRAD = 3.0
-        proj = prj.Project()
-        s = proj.spacing
-        # The sphere's radius will be MRAD times bigger than the media of the
-        # spacing values.
-        r = (s[0] + s[1] + s[2]) / 3.0 * MRAD
-        self.ball_reference = vtk.vtkSphereSource()
-        self.ball_reference.SetRadius(r)
-
-        mapper = vtk.vtkPolyDataMapper()
-        mapper.SetInputConnection(self.ball_reference.GetOutputPort())
-
-        p = vtk.vtkProperty()
-        p.SetColor(1, 0, 0)
-
-        self.ball_actor = vtk.vtkActor()
-        self.ball_actor.SetMapper(mapper)
-        self.ball_actor.SetProperty(p)
-
-    def RemoveBallReference(self):
-        self._ball_ref_visibility = False
-        if self.ball_reference:
-            self.ren.RemoveActor(self.ball_actor)
-
-    def ActivateBallReference(self, pubsub_evt):
-        self._mode_cross = True
-        self._ball_ref_visibility = True
-        if self._to_show_ball:
-            if not self.ball_reference:
-                self.CreateBallReference()
-            self.ren.AddActor(self.ball_actor)
-
-    def DeactivateBallReference(self, pubsub_evt):
-        self._mode_cross = False
-        self.RemoveBallReference()
-
     def _check_ball_reference(self, pubsub_evt):
         st = pubsub_evt.data
         if st == const.SLICE_STATE_CROSS:
@@ -272,6 +262,51 @@ class Viewer(wx.Panel):
             self.RemoveBallReference()
             self.interactor.Render()
 
+    def OnSensors(self, pubsub_evt):
+        probe_id = pubsub_evt.data[0]
+        ref_id = pubsub_evt.data[1]
+        if not self.sen1:
+            self.CreateSensorID()
+
+        if probe_id:
+            colour1 = (0, 1, 0)
+        else:
+            colour1 = (1, 0, 0)
+        if ref_id:
+            colour2 = (0, 1, 0)
+        else:
+            colour2 = (1, 0, 0)
+
+        self.sen1.SetColour(colour1)
+        self.sen2.SetColour(colour2)
+        self.Refresh()
+
+    def CreateSensorID(self):
+        sen1 = vtku.Text()
+        sen1.SetSize(const.TEXT_SIZE_LARGE)
+        sen1.SetPosition((const.X, const.Y))
+        sen1.ShadowOff()
+        sen1.SetValue("O")
+        self.sen1 = sen1
+        self.ren.AddActor(sen1.actor)
+
+        sen2 = vtku.Text()
+        sen2.SetSize(const.TEXT_SIZE_LARGE)
+        sen2.SetPosition((const.X+0.04, const.Y))
+        sen2.ShadowOff()
+        sen2.SetValue("O")
+        self.sen2 = sen2
+        self.ren.AddActor(sen2.actor)
+
+        self.interactor.Render()
+
+    def OnRemoveSensorsID(self, pubsub_evt):
+        if self.sen1:
+            self.ren.RemoveActor(self.sen1.actor)
+            self.ren.RemoveActor(self.sen2.actor)
+            self.sen1 = self.sen2 = False
+            self.interactor.Render()
+
     def OnShowSurface(self, pubsub_evt):
         index, value = pubsub_evt.data
         if value:
@@ -280,19 +315,6 @@ class Viewer(wx.Panel):
             self._to_show_ball -= 1
         self._check_and_set_ball_visibility()
 
-    def SetBallReferencePosition(self, pubsub_evt):
-        x, y, z = pubsub_evt.data
-        self.ball_reference.SetCenter(x, y, z)
-
-    def SetBallReferencePositionBasedOnBound(self, pubsub_evt):
-        if self._to_show_ball:
-            self.ActivateBallReference(None)
-            coord = pubsub_evt.data
-            x, y, z = bases.FlipX(coord)
-            self.ball_reference.SetCenter(x, y, z)
-        else:
-            self.DeactivateBallReference(None)
-
     def OnStartSeed(self, pubsub_evt):
         index = pubsub_evt.data
         self.seed_points = []
@@ -302,15 +324,24 @@ class Viewer(wx.Panel):
                                     self.seed_points) 
 
     def OnExportPicture(self, pubsub_evt):
-        Publisher.sendMessage('Begin busy cursor')
         id, filename, filetype = pubsub_evt.data
         if id == const.VOLUME:
+            Publisher.sendMessage('Begin busy cursor')
+            if _has_win32api:
+                utils.touch(filename)
+                win_filename = win32api.GetShortPathName(filename)
+                self._export_picture(id, win_filename, filetype)
+            else:
+                self._export_picture(id, filename, filetype)
+            Publisher.sendMessage('End busy cursor')
+
+    def _export_picture(self, id, filename, filetype):
             if filetype == const.FILETYPE_POV:
                 renwin = self.interactor.GetRenderWindow()
                 image = vtk.vtkWindowToImageFilter()
                 image.SetInput(renwin)
                 writer = vtk.vtkPOVExporter()
-                writer.SetFileName(filename)
+                writer.SetFileName(filename.encode(const.FS_ENCODE))
                 writer.SetRenderWindow(renwin)
                 writer.Write()
             else:
@@ -333,17 +364,20 @@ class Viewer(wx.Panel):
                     writer = vtk.vtkPostScriptWriter()
                 elif (filetype == const.FILETYPE_TIF):
                     writer = vtk.vtkTIFFWriter()
-                    filename = "%s.tif"%filename.strip(".tif")
+                    filename = u"%s.tif"%filename.strip(".tif")
 
                 writer.SetInputData(image)
-                writer.SetFileName(filename)
+                writer.SetFileName(filename.encode(const.FS_ENCODE))
                 writer.Write()
-        Publisher.sendMessage('End busy cursor')
+
+            if not os.path.exists(filename):
+                wx.MessageBox(_("InVesalius was not able to export this picture"), _("Export picture error"))
+
 
     def OnCloseProject(self, pubsub_evt):
         if self.raycasting_volume:
             self.raycasting_volume = False
-            
+
         if  self.slice_plane:
             self.slice_plane.Disable()
             self.slice_plane.DeletePlanes()
@@ -353,6 +387,10 @@ class Viewer(wx.Panel):
             self.on_wl = False
             self.slice_plane = 0
 
+        self.interaction_style.Reset()
+        self.SetInteractorStyle(const.STATE_DEFAULT)
+        self._last_state = const.STATE_DEFAULT
+
     def OnHideText(self, pubsub_evt):
         self.text.Hide()
         self.interactor.Render()
@@ -403,7 +441,6 @@ class Viewer(wx.Panel):
         actor.PickableOff()
 
         self.ren.AddActor(actor)
-
         self.points_reference.append(actor)
 
     def RemoveAllPointsReference(self):
@@ -419,6 +456,138 @@ class Viewer(wx.Panel):
         actor = self.points_reference.pop(point)
         self.ren.RemoveActor(actor)
 
+    def AddMarker(self, pubsub_evt):
+        """
+        Markers create by navigation tools and
+        rendered in volume viewer.
+        """
+        self.ball_id = pubsub_evt.data[0]
+        ballsize = pubsub_evt.data[1]
+        ballcolour = pubsub_evt.data[2]
+        coord = pubsub_evt.data[3]
+        x, y, z = bases.flip_x(coord)
+
+        ball_ref = vtk.vtkSphereSource()
+        ball_ref.SetRadius(ballsize)
+        ball_ref.SetCenter(x, y, z)
+
+        mapper = vtk.vtkPolyDataMapper()
+        mapper.SetInputConnection(ball_ref.GetOutputPort())
+
+        prop = vtk.vtkProperty()
+        prop.SetColor(ballcolour)
+
+        #adding a new actor for the present ball
+        self.staticballs.append(vtk.vtkActor())
+
+        self.staticballs[self.ball_id].SetMapper(mapper)
+        self.staticballs[self.ball_id].SetProperty(prop)
+
+        self.ren.AddActor(self.staticballs[self.ball_id])
+        self.ball_id = self.ball_id + 1
+        #self.UpdateRender()
+        self.Refresh()
+        
+    def HideAllMarkers(self, pubsub_evt):
+        ballid = pubsub_evt.data
+        for i in range(0, ballid):
+            self.staticballs[i].SetVisibility(0)
+        self.UpdateRender()
+
+    def ShowAllMarkers(self, pubsub_evt):
+        ballid = pubsub_evt.data
+        for i in range(0, ballid):
+            self.staticballs[i].SetVisibility(1)
+        self.UpdateRender()
+
+    def RemoveAllMarkers(self, pubsub_evt):
+        ballid = pubsub_evt.data
+        for i in range(0, ballid):
+            self.ren.RemoveActor(self.staticballs[i])
+        self.staticballs = []
+        self.UpdateRender()
+
+    def RemoveMarker(self, pubsub_evt):
+        index = pubsub_evt.data
+        for i in reversed(index):
+            self.ren.RemoveActor(self.staticballs[i])
+            del self.staticballs[i]
+            self.ball_id = self.ball_id - 1
+        self.UpdateRender()
+
+    def BlinkMarker(self, pubsub_evt):
+        if self.timer:
+            self.timer.Stop()
+            self.staticballs[self.index].SetVisibility(1)
+        self.index = pubsub_evt.data
+        self.timer = wx.Timer(self)
+        self.Bind(wx.EVT_TIMER, self.blink, self.timer)
+        self.timer.Start(500)
+        self.timer_count = 0
+
+    def blink(self, evt):
+        self.staticballs[self.index].SetVisibility(int(self.timer_count % 2))
+        self.Refresh()
+        self.timer_count += 1
+
+    def StopBlinkMarker(self, pubsub_evt):
+        if self.timer:
+            self.timer.Stop()
+            if pubsub_evt.data == None:
+                self.staticballs[self.index].SetVisibility(1)
+                self.Refresh()
+            self.index = False
+
+    def CreateBallReference(self):
+        """
+        Red sphere on volume visualization to reference center of
+        cross in slice planes.
+        The sphere's radius will be scale times bigger than the average of
+        image spacing values.
+        """
+        scale = 3.0
+        proj = prj.Project()
+        s = proj.spacing
+        r = (s[0] + s[1] + s[2]) / 3.0 * scale
+
+        ball_source = vtk.vtkSphereSource()
+        ball_source.SetRadius(r)
+
+        mapper = vtk.vtkPolyDataMapper()
+        mapper.SetInputConnection(ball_source.GetOutputPort())
+
+        self.ball_actor = vtk.vtkActor()
+        self.ball_actor.SetMapper(mapper)
+        self.ball_actor.GetProperty().SetColor(1, 0, 0)
+
+        self.ren.AddActor(self.ball_actor)
+
+    def ActivateBallReference(self):
+        self._mode_cross = True
+        self._ball_ref_visibility = True
+        if self._to_show_ball:
+            if not self.ball_actor:
+                self.CreateBallReference()
+
+    def RemoveBallReference(self):
+        self._mode_cross = False
+        self._ball_ref_visibility = False
+        if self.ball_actor:
+            self.ren.RemoveActor(self.ball_actor)
+            self.ball_actor = None
+
+    def SetBallReferencePosition(self, pubsub_evt):
+        if self._to_show_ball:
+            if not self.ball_actor:
+                self.ActivateBallReference()
+
+            coord = pubsub_evt.data
+            x, y, z = bases.flip_x(coord)
+            self.ball_actor.SetPosition(x, y, z)
+
+        else:
+            self.RemoveBallReference()
+
     def __bind_events_wx(self):
         #self.Bind(wx.EVT_SIZE, self.OnSize)
         pass
@@ -581,33 +750,54 @@ class Viewer(wx.Panel):
         self.ren.ResetCamera()
         self.ren.ResetCameraClippingRange()
 
+    def SetVolumeCameraState(self, pubsub_evt):
+        self.camera_state = pubsub_evt.data
+
     def SetVolumeCamera(self, pubsub_evt):
-        
-        coord_camera = pubsub_evt.data
-        coord_camera = numpy.array(bases.FlipX(coord_camera))
-        
-        cam = self.ren.GetActiveCamera()
-        
-        if self.initial_foco is None:
-            self.initial_foco = numpy.array(cam.GetFocalPoint())
-        
-        cam_initialposition = numpy.array(cam.GetPosition())
-        cam_initialfoco = numpy.array(cam.GetFocalPoint())
-        
-        cam_sub = cam_initialposition - cam_initialfoco
-        cam_sub_norm = numpy.linalg.norm(cam_sub)
-        vet1 = cam_sub/cam_sub_norm
-        
-        cam_sub_novo = coord_camera - self.initial_foco
-        cam_sub_novo_norm = numpy.linalg.norm(cam_sub_novo)
-        vet2 = cam_sub_novo/cam_sub_novo_norm
-        vet2 = vet2*cam_sub_norm + coord_camera
-        
-        cam.SetFocalPoint(coord_camera)
-        cam.SetPosition(vet2)
+        if self.camera_state:
+            #TODO: exclude dependency on initial focus
+            cam_focus = np.array(bases.flip_x(pubsub_evt.data))
+            cam = self.ren.GetActiveCamera()
+
+            if self.initial_focus is None:
+                self.initial_focus = np.array(cam.GetFocalPoint())
+
+            cam_pos0 = np.array(cam.GetPosition())
+            cam_focus0 = np.array(cam.GetFocalPoint())
+
+            v0 = cam_pos0 - cam_focus0
+            v0n = np.sqrt(inner1d(v0, v0))
+
+            v1 = (cam_focus - self.initial_focus)
+            v1n = np.sqrt(inner1d(v1, v1))
+            if not v1n:
+                v1n = 1.0
+            cam_pos = (v1/v1n)*v0n + cam_focus
+
+            cam.SetFocalPoint(cam_focus)
+            cam.SetPosition(cam_pos)
+
+        # It works without doing the reset. Check with trackers if there is any difference.
+        # Need to be outside condition for sphere marker position update
+        # self.ren.ResetCameraClippingRange()
+        # self.ren.ResetCamera()
+        #self.interactor.Render()
+        self.Refresh()
 
     def OnExportSurface(self, pubsub_evt):
         filename, filetype = pubsub_evt.data
+        if filetype not in (const.FILETYPE_STL,
+                            const.FILETYPE_VTP,
+                            const.FILETYPE_PLY,
+                            const.FILETYPE_STL_ASCII):
+            if _has_win32api:
+                utils.touch(filename)
+                win_filename = win32api.GetShortPathName(filename)
+                self._export_surface(win_filename.encode(const.FS_ENCODE), filetype)
+            else:
+                self._export_surface(filename.encode(const.FS_ENCODE), filetype)
+
+    def _export_surface(self, filename, filetype):
         fileprefix = filename.split(".")[-2]
         renwin = self.interactor.GetRenderWindow()
 
@@ -707,19 +897,18 @@ class Viewer(wx.Panel):
         self.interactor.Render()
         self._to_show_ball -= 1
         self._check_and_set_ball_visibility()
-        
+
     def RemoveAllActor(self, pubsub_evt):
         utils.debug("RemoveAllActor")
         self.ren.RemoveAllProps()
         Publisher.sendMessage('Render volume viewer')
 
-        
     def LoadSlicePlane(self, pubsub_evt):
         self.slice_plane = SlicePlane()
 
     def LoadVolume(self, pubsub_evt):
         self.raycasting_volume = True
-        #self._to_show_ball += 1
+        self._to_show_ball += 1
 
         volume = pubsub_evt.data[0]
         colour = pubsub_evt.data[1]
@@ -896,14 +1085,15 @@ class Viewer(wx.Panel):
                 self.repositioned_coronal_plan = 1
 
     def _check_and_set_ball_visibility(self):
+        #TODO: When creating Raycasting volume and cross is pressed, it is not
+        # automatically creating the ball reference.
         if self._mode_cross:
             if self._to_show_ball > 0 and not self._ball_ref_visibility:
-                self.ActivateBallReference(None)
+                self.ActivateBallReference()
                 self.interactor.Render()
             elif not self._to_show_ball and self._ball_ref_visibility:
                 self.RemoveBallReference()
                 self.interactor.Render()
-            
 
 class SlicePlane:
     def __init__(self):
diff --git a/invesalius/data/volume.py b/invesalius/data/volume.py
index 3f2ee4d..b2bf98e 100644
--- a/invesalius/data/volume.py
+++ b/invesalius/data/volume.py
@@ -25,13 +25,13 @@ import vtk
 import wx
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import project as prj
-import slice_
-import converters
-from data import vtk_utils
+import invesalius.constants as const
+import invesalius.project as prj
+import invesalius.data.slice_ as slice_
+import invesalius.data.converters as converters
+import invesalius.data.vtk_utils as vtk_utils
 from vtk.util import numpy_support
-import session as ses
+import invesalius.session as ses
 
 
 Kernels = { 
@@ -131,11 +131,29 @@ class Volume():
             self.plane.DestroyObjs()
             del self.plane
             self.plane = 0
-            
+
         if self.exist:
             self.exist = None
             Publisher.sendMessage('Remove surface actor from viewer', self.volume)
             Publisher.sendMessage('Disable volume cut menu')
+            Publisher.sendMessage('Unload volume', self.volume)
+
+            del self.image
+            del self.imagedata
+            del self.final_imagedata
+            del self.volume
+            del self.color_transfer
+            del self.opacity_transfer_func
+            del self.volume_properties
+            del self.volume_mapper
+            self.volume = None
+            self.exist = False
+            self.loaded_image = False
+            self.image = None
+            self.final_imagedata = None
+            self.opacity_transfer_func = None
+            self.color_transfer = None
+            Publisher.sendMessage('Render volume viewer')
 
     def OnLoadVolume(self, pubsub_evt):
         label = pubsub_evt.data
@@ -143,18 +161,22 @@ class Volume():
         self.LoadVolume()
 
     def OnHideVolume(self, pubsub_evt):
+        print 'Hide Volume'
         self.volume.SetVisibility(0)
         if (self.plane and self.plane_on):
             self.plane.Disable()
         Publisher.sendMessage('Render volume viewer')
 
     def OnShowVolume(self, pubsub_evt = None):
+        print 'Show volume'
         if self.exist:
+            print 'Volume exists'
             self.volume.SetVisibility(1)
             if (self.plane and self.plane_on):
                 self.plane.Enable()
             Publisher.sendMessage('Render volume viewer')
         else:
+            print 'Volume doesnt exit'
             Publisher.sendMessage('Load raycasting preset', const.RAYCASTING_LABEL)
             self.LoadConfig()
             self.LoadVolume()
@@ -339,12 +361,17 @@ class Volume():
             g = p['Green']
             b = p['Blue']
             colors = zip(r,g,b)
-            ww = self.config['ww']
-            wl = self.TranslateScale(scale, self.config['wl'])
-            init = wl - ww/2.0
-            inc = ww / (len(colors) - 1.0)
-            for n,rgb in enumerate(colors):
-                color_transfer.AddRGBPoint(init + n * inc, *[i/255.0 for i in rgb])
+        else:
+            # Grayscale from black to white
+            colors = [(i, i, i) for i in xrange(256)]
+
+        ww = self.config['ww']
+        wl = self.TranslateScale(scale, self.config['wl'])
+        init = wl - ww/2.0
+        inc = ww / (len(colors) - 1.0)
+        for n,rgb in enumerate(colors):
+            color_transfer.AddRGBPoint(init + n * inc, *[i/255.0 for i in rgb])
+
         self.color_transfer = color_transfer
 
     def CreateOpacityTable(self, scale):
@@ -486,7 +513,7 @@ class Volume():
                 convolve = vtk.vtkImageConvolve()
                 convolve.SetInputData(imagedata)
                 convolve.SetKernel5x5([i/60.0 for i in Kernels[filter]])
-                convolve.ReleaseDataFlagOn()
+                #  convolve.ReleaseDataFlagOn()
 
                 convolve_ref = weakref.ref(convolve)
                 
@@ -533,7 +560,7 @@ class Volume():
         flip.SetInputData(image)
         flip.SetFilteredAxis(1)
         flip.FlipAboutOriginOn()
-        flip.ReleaseDataFlagOn()
+        #  flip.ReleaseDataFlagOn()
 
         flip_ref = weakref.ref(flip)
         flip_ref().AddObserver("ProgressEvent", lambda obj,evt:
@@ -548,7 +575,7 @@ class Volume():
         cast.SetInputData(image)
         cast.SetShift(abs(scale[0]))
         cast.SetOutputScalarTypeToUnsignedShort()
-        cast.ReleaseDataFlagOn()
+        #  cast.ReleaseDataFlagOn()
         cast_ref = weakref.ref(cast)
         cast_ref().AddObserver("ProgressEvent", lambda obj,evt:
                             update_progress(cast_ref(), "Rendering..."))
@@ -632,8 +659,12 @@ class Volume():
 
         self.exist = 1
 
+        if self.plane:
+            self.plane.SetVolumeMapper(volume_mapper)
+
         Publisher.sendMessage('Load volume into viewer',
                                     (volume, colour, (self.ww, self.wl)))
+
         del flip
         del cast
 
@@ -648,7 +679,7 @@ class Volume():
                     self.plane_on = False
                     self.plane.Disable()
             else:
-                self.final_imagedata.Update()
+                #  self.final_imagedata.Update()
                 self.plane_on = True
                 self.plane = CutPlane(self.final_imagedata,
                                       self.volume_mapper)
@@ -660,7 +691,7 @@ class Volume():
         accumulate.SetInputData(image)
         accumulate.SetComponentExtent(0, r -1, 0, 0, 0, 0)
         accumulate.SetComponentOrigin(image.GetScalarRange()[0], 0, 0)
-        accumulate.ReleaseDataFlagOn()
+        #  accumulate.ReleaseDataFlagOn()
         accumulate.Update()
         n_image = numpy_support.vtk_to_numpy(accumulate.GetOutput().GetPointData().GetScalars())
         del accumulate
@@ -692,7 +723,7 @@ class CutPlane:
             
     def Create(self):
         self.plane_widget = plane_widget = vtk.vtkImagePlaneWidget()
-        plane_widget.SetInput(self.img)
+        plane_widget.SetInputData(self.img)
         plane_widget.SetPlaneOrientationToXAxes()
         #plane_widget.SetResliceInterpolateToLinear()
         plane_widget.TextureVisibilityOff()
@@ -710,7 +741,7 @@ class CutPlane:
         plane_source.SetPoint2(plane_widget.GetPoint2())
         plane_source.SetNormal(plane_widget.GetNormal())
         plane_mapper = self.plane_mapper = vtk.vtkPolyDataMapper()
-        plane_mapper.SetInput(plane_source.GetOutput())
+        plane_mapper.SetInputData(plane_source.GetOutput())
         self.plane_actor = plane_actor = vtk.vtkActor()
         plane_actor.SetMapper(plane_mapper)
         plane_actor.GetProperty().BackfaceCullingOn()
@@ -729,7 +760,11 @@ class CutPlane:
         self.p1 = plane_widget.GetPoint1()
         self.p2 = plane_widget.GetPoint2()
         self.normal = plane_widget.GetNormal()
-        
+
+    def SetVolumeMapper(self, volume_mapper):
+        self.volume_mapper = volume_mapper
+        self.volume_mapper.AddClippingPlane(self.plane)
+
     def Update(self, a, b):        
         plane_source = self.plane_source
         plane_widget = self.plane_widget
diff --git a/invesalius/data/vtk_utils.py b/invesalius/data/vtk_utils.py
index 86724b9..c24e224 100644
--- a/invesalius/data/vtk_utils.py
+++ b/invesalius/data/vtk_utils.py
@@ -19,10 +19,10 @@
 import sys
 
 import vtk
+import wx
 from wx.lib.pubsub import pub as Publisher
-
-import constants as const
-from gui.dialogs import ProgressDialog
+import invesalius.constants as const
+from invesalius.gui.dialogs import ProgressDialog
 
 # If you are frightened by the code bellow, or think it must have been result of
 # an identation error, lookup at:
@@ -132,10 +132,14 @@ class Text(object):
         # With some encoding in some dicom fields (like name) raises a
         # UnicodeEncodeError because they have non-ascii characters. To avoid
         # that we encode in utf-8.
-        try:
-            self.mapper.SetInput(value.encode("latin-1"))
-        except(UnicodeEncodeError):
-            self.mapper.SetInput(value.encode("utf-8"))
+        
+	if sys.platform == 'win32':
+            self.mapper.SetInput(value.encode("utf-8"))  
+        else:
+	    try:
+                self.mapper.SetInput(value.encode("latin-1"))
+            except(UnicodeEncodeError):
+                self.mapper.SetInput(value.encode("utf-8"))
 
     def SetPosition(self, position):
         self.actor.GetPositionCoordinate().SetValue(position[0],
@@ -186,6 +190,10 @@ class TextZero(object):
         actor.PickableOff()
         self.actor = actor
 
+        self.text = ''
+        self.position = (0, 0)
+        self.symbolic_syze = wx.FONTSIZE_MEDIUM
+
     def SetColour(self, colour):
         self.property.SetColor(colour)
 
@@ -195,6 +203,9 @@ class TextZero(object):
     def SetSize(self, size):
         self.property.SetFontSize(size)
 
+    def SetSymbolicSize(self, size):
+        self.symbolic_syze = size
+
     def SetValue(self, value):
         if isinstance(value, int) or isinstance(value, float):
             value = str(value)
@@ -204,13 +215,15 @@ class TextZero(object):
         # UnicodeEncodeError because they have non-ascii characters. To avoid
         # that we encode in utf-8.
         self.actor.SetInput(value.encode("cp1252"))
+        self.text = value
 
     def SetPosition(self, position):
+        self.position = position
         self.actor.GetPositionCoordinate().SetValue(position[0],
                                                     position[1])
 
-    def GetPosition(self, position):
-        self.actor.GetPositionCoordinate().GetValue()
+    def GetPosition(self):
+        return self.actor.GetPositionCoordinate().GetValue()
 
     def SetJustificationToRight(self):
         self.property.SetJustificationToRight()
@@ -234,3 +247,13 @@ class TextZero(object):
     def Hide(self):
         self.actor.VisibilityOff()
 
+    def draw_to_canvas(self, gc, canvas):
+        coord = vtk.vtkCoordinate()
+        coord.SetCoordinateSystemToNormalizedDisplay()
+        coord.SetValue(*self.position)
+        x, y = coord.GetComputedDisplayValue(canvas.evt_renderer)
+
+        font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
+        #  font.SetWeight(wx.FONTWEIGHT_BOLD)
+        font.SetSymbolicSize(self.symbolic_syze)
+        canvas.draw_text(self.text, (x, y), font=font)
diff --git a/invesalius/data/watershed_process.py b/invesalius/data/watershed_process.py
index af3de65..6c370f1 100644
--- a/invesalius/data/watershed_process.py
+++ b/invesalius/data/watershed_process.py
@@ -2,8 +2,6 @@ import numpy as np
 from scipy import ndimage
 from scipy.ndimage import watershed_ift, generate_binary_structure
 from skimage.morphology import watershed
-from skimage import filter
-
 
 def get_LUT_value(data, window, level):
     shape = data.shape
diff --git a/invesalius/expanduser.py b/invesalius/expanduser.py
new file mode 100644
index 0000000..8aac381
--- /dev/null
+++ b/invesalius/expanduser.py
@@ -0,0 +1,46 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# From http://bugs.python.org/file23442/expanduser.py
+
+import ctypes
+from ctypes import windll, wintypes
+
+class GUID(ctypes.Structure):
+    _fields_ = [
+         ('Data1', wintypes.DWORD),
+         ('Data2', wintypes.WORD),
+         ('Data3', wintypes.WORD),
+         ('Data4', wintypes.BYTE * 8)
+    ]
+
+    def __init__(self, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8):
+        """Create a new GUID."""
+        self.Data1 = l
+        self.Data2 = w1
+        self.Data3 = w2
+        self.Data4[:] = (b1, b2, b3, b4, b5, b6, b7, b8)
+
+    def __repr__(self):
+        b1, b2, b3, b4, b5, b6, b7, b8 = self.Data4
+        return 'GUID(%x-%x-%x-%x%x%x%x%x%x%x%x)' % (
+                   self.Data1, self.Data2, self.Data3, b1, b2, b3, b4, b5, b6, b7, b8)
+
+# constants to be used according to the version on shell32
+CSIDL_PROFILE = 40
+FOLDERID_Profile = GUID(0x5E6C858F, 0x0E22, 0x4760, 0x9A, 0xFE, 0xEA, 0x33, 0x17, 0xB6, 0x71, 0x73)
+
+def expand_user():
+    # get the function that we can find from Vista up, not the one in XP
+    get_folder_path = getattr(windll.shell32, 'SHGetKnownFolderPath', None)
+    #import pdb; pdb.set_trace()
+    if get_folder_path is not None:
+        # ok, we can use the new function which is recomended by the msdn
+        ptr = ctypes.c_wchar_p()
+        get_folder_path(ctypes.byref(FOLDERID_Profile), 0, 0, ctypes.byref(ptr))
+        return ptr.value
+    else:
+        # use the deprecated one found in XP and on for compatibility reasons
+       get_folder_path = getattr(windll.shell32, 'SHGetSpecialFolderPathW', None)
+       buf = ctypes.create_unicode_buffer(300)
+       get_folder_path(None, buf, CSIDL_PROFILE, False)
+       return buf.value
diff --git a/invesalius/gui/bitmap_preview_panel.py b/invesalius/gui/bitmap_preview_panel.py
new file mode 100644
index 0000000..e66432a
--- /dev/null
+++ b/invesalius/gui/bitmap_preview_panel.py
@@ -0,0 +1,660 @@
+import wx
+import vtk
+import vtkgdcm
+import time
+import numpy
+
+from vtk.util import  numpy_support
+from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor
+from wx.lib.pubsub import pub as Publisher
+
+import invesalius.constants as const
+import invesalius.data.vtk_utils as vtku
+import invesalius.data.converters as converters
+import invesalius.reader.bitmap_reader as bitmap_reader
+import invesalius.utils as utils
+
+NROWS = 3
+NCOLS = 6
+NUM_PREVIEWS = NCOLS*NROWS
+PREVIEW_WIDTH = 70
+PREVIEW_HEIGTH = 70
+
+PREVIEW_BACKGROUND = (255, 255, 255) # White
+
+STR_SIZE = _("Image size: %d x %d")
+STR_SPC = _("Spacing: %.2f")
+STR_LOCAL = _("Location: %.2f")
+STR_PATIENT = "%s\n%s"
+STR_ACQ = _("%s %s\nMade in InVesalius")
+
+myEVT_PREVIEW_CLICK = wx.NewEventType()
+EVT_PREVIEW_CLICK = wx.PyEventBinder(myEVT_PREVIEW_CLICK, 1)
+
+myEVT_PREVIEW_DBLCLICK = wx.NewEventType()
+EVT_PREVIEW_DBLCLICK = wx.PyEventBinder(myEVT_PREVIEW_DBLCLICK, 1)
+
+myEVT_CLICK_SLICE = wx.NewEventType()
+# This event occurs when the user select a preview
+EVT_CLICK_SLICE = wx.PyEventBinder(myEVT_CLICK_SLICE, 1)
+
+myEVT_CLICK_SERIE = wx.NewEventType()
+# This event occurs when the user select a preview
+EVT_CLICK_SERIE = wx.PyEventBinder(myEVT_CLICK_SERIE, 1)
+
+myEVT_CLICK = wx.NewEventType()
+EVT_CLICK = wx.PyEventBinder(myEVT_CLICK, 1)
+
+
+class SelectionEvent(wx.PyCommandEvent):
+    pass
+
+
+class PreviewEvent(wx.PyCommandEvent):
+    def __init__(self , evtType, id):
+        super(PreviewEvent, self).__init__(evtType, id)
+
+    def GetSelectID(self):
+        return self.SelectedID
+
+    def SetSelectedID(self, id):
+        self.SelectedID = id
+
+    def GetItemData(self):
+        return self.data
+
+    def GetPressedShift(self):
+        return self.pressed_shift
+    
+    def SetItemData(self, data):
+        self.data = data
+
+    def SetShiftStatus(self, status):
+        self.pressed_shift = status
+    
+
+class SerieEvent(PreviewEvent):
+    def __init__(self , evtType, id):
+        super(SerieEvent, self).__init__(evtType, id)
+
+
+class BitmapInfo(object):
+    """
+    Keep the informations and the image used by preview.
+    """
+    def __init__(self, data):
+        #self.id = id
+        self.id = data[7]
+        self.title = data[6]
+        self.data = data
+        self.pos = data[8]
+        self._preview = None
+        self.selected = False
+        self.thumbnail_path = data[1]
+
+    @property
+    def preview(self):
+        
+        if not self._preview:
+            bmp = wx.Bitmap(self.thumbnail_path, wx.BITMAP_TYPE_PNG)
+            self._preview = bmp.ConvertToImage()
+        return self._preview
+        
+    def release_thumbnail(self):
+        self._preview = None
+
+class DicomPaintPanel(wx.Panel):
+    def __init__(self, parent):
+        super(DicomPaintPanel, self).__init__(parent)
+        self._bind_events()
+        self.image = None
+        self.last_size = (10,10)
+
+    def _bind_events(self):
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
+        self.Bind(wx.EVT_SIZE, self.OnSize)
+
+    def _build_bitmap(self, image):
+        bmp = wx.BitmapFromImage(image)
+        return bmp
+
+    def _image_resize(self, image):
+        self.Update()
+        self.Layout()
+        new_size = self.GetSize()
+        # This is necessary due to darwin problem #
+        if new_size != (0,0):
+            self.last_size = new_size
+            return image.Scale(*new_size)
+        else:
+            return image.Scale(*self.last_size)
+
+    def SetImage(self, image):
+        self.image = image
+        r_img = self._image_resize(image)
+        self.bmp = self._build_bitmap(r_img)
+        self.Refresh()
+
+    def OnPaint(self, evt):
+        if self.image:
+            dc = wx.PaintDC(self)
+            dc.Clear()
+            dc.DrawBitmap(self.bmp, 0, 0)
+
+    def OnSize(self, evt):
+        if self.image:
+            self.bmp = self._build_bitmap(self._image_resize(self.image))
+        self.Refresh()
+        evt.Skip()
+
+
+class Preview(wx.Panel):
+    """
+    The little previews.
+    """
+    def __init__(self, parent):
+        super(Preview, self).__init__(parent)
+        # Will it be white?
+        self.select_on = False
+        self.bitmap_info = None
+        self._init_ui()
+        self._bind_events()
+
+    def _init_ui(self):
+        self.SetBackgroundColour(PREVIEW_BACKGROUND)
+
+        self.title = wx.StaticText(self, -1, _("Image"))
+        self.subtitle = wx.StaticText(self, -1, _("Image"))
+        self.image_viewer = DicomPaintPanel(self)
+
+        self.sizer = wx.BoxSizer(wx.VERTICAL)
+        self.sizer.Add(self.title, 0,
+                        wx.ALIGN_CENTER_HORIZONTAL)
+        self.sizer.Add(self.subtitle, 0,
+                        wx.ALIGN_CENTER_HORIZONTAL)
+        self.sizer.Add(self.image_viewer, 1, wx.ALIGN_CENTRE_HORIZONTAL \
+                       | wx.SHAPED | wx.ALL, 5)
+        self.sizer.Fit(self)
+
+        self.SetSizer(self.sizer)
+
+        self.Layout()
+        self.Update()
+        self.Fit()
+        self.SetAutoLayout(1)
+
+    def _bind_events(self):
+        self.Bind( wx.EVT_LEFT_DCLICK, self.OnDClick)
+        self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
+        self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
+
+        self.Bind(wx.EVT_LEFT_DOWN, self.OnSelect)
+        self.title.Bind(wx.EVT_LEFT_DOWN, self.OnSelect)
+        self.subtitle.Bind(wx.EVT_LEFT_DOWN, self.OnSelect)
+        self.image_viewer.Bind(wx.EVT_LEFT_DOWN, self.OnSelect)
+
+
+    def SetBitmapToPreview(self, bitmap_info):
+
+        if self.bitmap_info:
+            self.bitmap_info.release_thumbnail()
+
+        self.bitmap_info = bitmap_info
+        self.SetTitle(self.bitmap_info.title[-10:])
+        self.SetSubtitle('')
+
+        image = self.bitmap_info.preview
+        
+        self.image_viewer.SetImage(image)
+        self.select_on = bitmap_info.selected
+        self.Select()
+        self.Update()
+
+    def SetTitle(self, title):
+        self.title.SetLabel(title)
+
+    def SetSubtitle(self, subtitle):
+        self.subtitle.SetLabel(subtitle)
+
+    def OnEnter(self, evt):
+        if not self.select_on:
+            c = wx.SystemSettings_GetColour(wx.SYS_COLOUR_BTNFACE)
+            self.SetBackgroundColour(c)
+
+    def OnLeave(self, evt):
+        if not self.select_on:
+            c = (PREVIEW_BACKGROUND)
+            self.SetBackgroundColour(c)
+
+    def OnSelect(self, evt):
+
+        shift_pressed = False
+        if evt.m_shiftDown:
+            shift_pressed = True
+
+        self.select_on = True
+        self.bitmap_info.selected = True
+        self.Select()
+
+        # Generating a EVT_PREVIEW_CLICK event
+        my_evt = SerieEvent(myEVT_PREVIEW_CLICK, self.GetId())
+
+        my_evt.SetSelectedID(self.bitmap_info.id)
+        my_evt.SetItemData(self.bitmap_info.data)
+
+        my_evt.SetShiftStatus(shift_pressed)
+        my_evt.SetEventObject(self)
+        self.GetEventHandler().ProcessEvent(my_evt)
+
+        Publisher.sendMessage('Set bitmap in preview panel', self.bitmap_info.pos)
+
+        evt.Skip()
+
+    def OnSize(self, evt):
+        if self.bitmap_info:
+            self.SetBitmapToPreview(self.bitmap_info)
+        evt.Skip()
+
+    def Select(self, on=True):
+        if self.select_on:
+            c = wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT)
+        else:
+            c = (PREVIEW_BACKGROUND)
+        self.SetBackgroundColour(c)
+        self.Refresh()
+
+    def OnDClick(self, evt):
+        my_evt = SerieEvent(myEVT_PREVIEW_DBLCLICK, self.GetId())
+        my_evt.SetSelectedID(self.bitmap_info.id)
+        my_evt.SetItemData(self.bitmap_info.data)
+        my_evt.SetEventObject(self)
+        self.GetEventHandler().ProcessEvent(my_evt)
+        evt.Skip()
+
+
+class BitmapPreviewSeries(wx.Panel):
+    """A dicom series preview panel"""
+    def __init__(self, parent):
+        super(BitmapPreviewSeries, self).__init__(parent)
+        # TODO: 3 pixels between the previews is a good idea?
+        # I have to test.
+        self.displayed_position = 0
+        self.nhidden_last_display = 0
+        self.selected_dicom = None
+        self.selected_panel = None
+        self._init_ui()
+
+    def _init_ui(self):
+        scroll = wx.ScrollBar(self, -1, style=wx.SB_VERTICAL)
+        self.scroll = scroll
+
+        self.grid = wx.GridSizer(rows=NROWS, cols=NCOLS, vgap=3, hgap=3)
+
+        sizer = wx.BoxSizer(wx.HORIZONTAL)
+        sizer.AddSizer(self.grid, 1, wx.EXPAND|wx.GROW|wx.ALL, 2)
+
+        background_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        background_sizer.AddSizer(sizer, 1, wx.EXPAND|wx.GROW|wx.ALL, 2)
+        background_sizer.Add(scroll, 0, wx.EXPAND|wx.GROW)
+        self.SetSizer(background_sizer)
+        background_sizer.Fit(self)
+
+        self.Layout()
+        self.Update()
+        self.SetAutoLayout(1)
+
+        self.sizer = background_sizer
+
+        self._Add_Panels_Preview()
+        self._bind_events()
+        self._bind_pub_sub_events()
+
+    def _Add_Panels_Preview(self):
+        self.previews = []
+        for i in xrange(NROWS):
+            for j in xrange(NCOLS):
+                p = Preview(self)
+                p.Bind(EVT_PREVIEW_CLICK, self.OnSelect)
+
+                self.previews.append(p)
+                self.grid.Add(p, 1, flag=wx.EXPAND)
+
+
+    def _bind_events(self):
+        # When the user scrolls the window
+        self.Bind(wx.EVT_SCROLL, self.OnScroll)
+        self.Bind(wx.EVT_MOUSEWHEEL, self.OnWheel)
+
+    def _bind_pub_sub_events(self):
+        Publisher.subscribe(self.RemovePanel, 'Remove preview panel')
+
+    def OnSelect(self, evt):
+        my_evt = SerieEvent(myEVT_CLICK_SERIE, self.GetId())
+        my_evt.SetSelectedID(evt.GetSelectID())
+        my_evt.SetItemData(evt.GetItemData())
+
+        if self.selected_dicom:
+            self.selected_dicom.selected = self.selected_dicom is \
+                    evt.GetEventObject().bitmap_info
+            self.selected_panel.select_on = self.selected_panel is evt.GetEventObject()
+            self.selected_panel.Select()
+        self.selected_panel = evt.GetEventObject()
+        self.selected_dicom = self.selected_panel.bitmap_info
+        self.GetEventHandler().ProcessEvent(my_evt)
+        evt.Skip()
+
+    def SetBitmapFiles(self, data):
+        self.files = []
+        
+        bitmap = bitmap_reader.BitmapData()
+        bitmap.SetData(data)
+
+        pos = 0
+        for d in data:
+            d.append(pos)
+            info = BitmapInfo(d)
+            self.files.append(info)
+            pos += 1
+
+        scroll_range = len(self.files)/NCOLS
+        if scroll_range * NCOLS < len(self.files):
+            scroll_range +=1
+        self.scroll.SetScrollbar(0, NROWS, scroll_range, NCOLS)
+        self._display_previews()
+
+
+    def RemovePanel(self, pub_sub):
+        data = pub_sub.data
+        for p, f in zip(self.previews, self.files):
+            if p.bitmap_info != None:
+                if data.encode('utf-8') in p.bitmap_info.data:
+                    self.files.remove(f)
+                    p.Hide()
+                    self._display_previews()
+                    Publisher.sendMessage('Update max of slidebar in single preview image', len(self.files))
+
+                    self.Update()
+                    self.Layout()
+    
+        for n, p in enumerate(self.previews):
+            if p.bitmap_info != None:
+
+                if p.IsShown():
+                    p.bitmap_info.pos = n
+
+
+    def _display_previews(self):
+        initial = self.displayed_position * NCOLS
+        final = initial + NUM_PREVIEWS
+        if len(self.files) < final:
+            for i in xrange(final-len(self.files)):
+                try:
+                    self.previews[-i-1].Hide()
+                except IndexError:
+                    utils.debug("doesn't exist!")
+                    pass
+            self.nhidden_last_display = final-len(self.files)
+        else:
+            if self.nhidden_last_display:
+                for i in xrange(self.nhidden_last_display):
+                    try:
+                        self.previews[-i-1].Show()
+                    except IndexError:
+                        utils.debug("doesn't exist!")
+                        pass
+                self.nhidden_last_display = 0
+
+        for f, p in zip(self.files[initial:final], self.previews):
+            p.SetBitmapToPreview(f)
+            if f.selected:
+                self.selected_panel = p
+
+        for f, p in zip(self.files[initial:final], self.previews):
+            p.Show()
+
+
+    def OnScroll(self, evt=None):
+        if evt:
+            if self.displayed_position != evt.GetPosition():
+                self.displayed_position = evt.GetPosition()
+        else:
+            if self.displayed_position != self.scroll.GetThumbPosition():
+                self.displayed_position = self.scroll.GetThumbPosition()
+        self._display_previews()
+
+    def OnWheel(self, evt):
+        d = evt.GetWheelDelta() / evt.GetWheelRotation()
+        self.scroll.SetThumbPosition(self.scroll.GetThumbPosition() - d)
+        self.OnScroll()
+
+
+class SingleImagePreview(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent, -1)
+        self.actor = None
+        self.__init_gui()
+        self.__init_vtk()
+        self.__bind_evt_gui()
+        self.__bind_pubsub()
+        self.dicom_list = []
+        self.nimages = 1
+        self.current_index = 0
+        self.window_width = const.WINDOW_LEVEL[_("Bone")][0]
+        self.window_level = const.WINDOW_LEVEL[_("Bone")][1]
+
+    def __init_vtk(self):
+        text_image_size = vtku.Text()
+        text_image_size.SetPosition(const.TEXT_POS_LEFT_UP)
+        text_image_size.SetValue("")
+        text_image_size.SetSize(const.TEXT_SIZE_SMALL)
+        self.text_image_size = text_image_size
+
+        text_image_location = vtku.Text()
+        text_image_location.SetVerticalJustificationToBottom()
+        text_image_location.SetPosition(const.TEXT_POS_LEFT_DOWN)
+        text_image_location.SetValue("")
+        text_image_location.SetSize(const.TEXT_SIZE_SMALL)
+        self.text_image_location = text_image_location
+
+        text_patient = vtku.Text()
+        text_patient.SetJustificationToRight()
+        text_patient.SetPosition(const.TEXT_POS_RIGHT_UP)
+        text_patient.SetValue("")
+        text_patient.SetSize(const.TEXT_SIZE_SMALL)
+        self.text_patient = text_patient
+
+        text_acquisition = vtku.Text()
+        text_acquisition.SetJustificationToRight()
+        text_acquisition.SetVerticalJustificationToBottom()
+        text_acquisition.SetPosition(const.TEXT_POS_RIGHT_DOWN)
+        text_acquisition.SetValue("")
+        text_acquisition.SetSize(const.TEXT_SIZE_SMALL)
+        self.text_acquisition = text_acquisition
+
+        renderer = vtk.vtkRenderer()
+        renderer.AddActor(text_image_size.actor)
+        renderer.AddActor(text_image_location.actor)
+        renderer.AddActor(text_patient.actor)
+        renderer.AddActor(text_acquisition.actor)
+        self.renderer = renderer
+
+        style = vtk.vtkInteractorStyleImage()
+
+        interactor = wxVTKRenderWindowInteractor(self.panel, -1,
+                                    size=wx.Size(340,340))
+        interactor.GetRenderWindow().AddRenderer(renderer)
+        interactor.SetInteractorStyle(style)
+        interactor.Render()
+        self.interactor = interactor
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(interactor, 1, wx.GROW|wx.EXPAND)
+        sizer.Fit(self.panel)
+        self.panel.SetSizer(sizer)
+        self.Layout()
+        self.Update()
+
+    def __init_gui(self):
+        self.panel = wx.Panel(self, -1)
+
+        slider = wx.Slider(self,
+                            id=-1,
+                            value=0,
+                            minValue=0,
+                            maxValue=99,
+                            style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS)
+        slider.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)
+        slider.SetTickFreq(1, 1)
+        self.slider = slider
+
+        checkbox = wx.CheckBox(self, -1, _("Auto-play"))
+        self.checkbox = checkbox
+
+        in_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        in_sizer.Add(slider, 1, wx.GROW|wx.EXPAND)
+        in_sizer.Add(checkbox, 0)
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(self.panel, 20, wx.GROW|wx.EXPAND)
+        sizer.Add(in_sizer, 1, wx.GROW|wx.EXPAND)
+        sizer.Fit(self)
+
+        self.SetSizer(sizer)
+        self.Layout()
+        self.Update()
+        self.SetAutoLayout(1)
+
+    def __bind_evt_gui(self):
+        self.slider.Bind(wx.EVT_SLIDER, self.OnSlider)
+        self.checkbox.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
+
+    def __bind_pubsub(self):
+        Publisher.subscribe(self.ShowBitmapByPosition, 'Set bitmap in preview panel')
+        Publisher.subscribe(self.UpdateMaxValueSliderBar, 'Update max of slidebar in single preview image')
+        Publisher.subscribe(self.ShowBlackSlice, 'Show black slice in single preview image')
+
+    def ShowBitmapByPosition(self, evt):
+        pos = evt.data
+        if pos != None:
+            self.ShowSlice(int(pos))
+
+
+    def OnSlider(self, evt):
+        pos = evt.GetInt()
+        self.ShowSlice(pos)
+        evt.Skip()
+
+    def OnCheckBox(self, evt):
+        self.ischecked = evt.IsChecked()
+        if evt.IsChecked():
+            wx.CallAfter(self.OnRun)
+        evt.Skip()
+
+    def OnRun(self):
+        pos = self.slider.GetValue()
+        pos += 1
+        if not (self.nimages- pos):
+            pos = 0
+        self.slider.SetValue(pos)
+        self.ShowSlice(pos)
+        time.sleep(0.2)
+        if self.ischecked:
+            try:
+                wx.Yield()
+            #TODO: temporary fix necessary in the Windows XP 64 Bits
+            #BUG in wxWidgets http://trac.wxwidgets.org/ticket/10896
+            except(wx._core.PyAssertionError):
+                utils.debug("wx._core.PyAssertionError")
+            finally:
+                wx.CallAfter(self.OnRun)
+
+    def SetBitmapFiles(self, data):
+        #self.dicom_list = group.GetHandSortedList()
+        self.bitmap_list = data
+        self.current_index = 0
+        self.nimages = len(data)
+        # GUI
+        self.slider.SetMax(self.nimages-1)
+        self.slider.SetValue(0)
+        self.ShowSlice()
+
+    def UpdateMaxValueSliderBar(self, pub_sub):
+        self.slider.SetMax(pub_sub.data - 1)
+        self.slider.Refresh()
+        self.slider.Update()
+
+    def ShowBlackSlice(self, pub_sub):
+        n_array = numpy.zeros((100,100))
+       
+        self.text_image_size.SetValue('')
+
+        image = converters.to_vtk(n_array, spacing=(1,1,1),\
+                slice_number=1, orientation="AXIAL")
+
+        colorer = vtk.vtkImageMapToWindowLevelColors()
+        colorer.SetInputData(image)
+        colorer.Update()
+
+        if self.actor is None:
+            self.actor = vtk.vtkImageActor()
+            self.renderer.AddActor(self.actor)
+
+        # PLOT IMAGE INTO VIEWER
+        self.actor.SetInputData(colorer.GetOutput())
+        self.renderer.ResetCamera()
+        self.interactor.Render()
+
+        # Setting slider position
+        self.slider.SetValue(0)
+
+
+    def ShowSlice(self, index = 0):
+        bitmap = self.bitmap_list[index]
+
+        # UPDATE GUI
+        ## Text related to size
+        value = STR_SIZE %(bitmap[3], bitmap[4])
+        self.text_image_size.SetValue(value)
+
+        value1 = ''
+        value2 = ''
+
+        value = "%s\n%s" %(value1, value2)
+        self.text_image_location.SetValue(value)
+
+
+        #self.text_patient.SetValue(value)
+        self.text_patient.SetValue('')
+
+        #self.text_acquisition.SetValue(value)
+        self.text_acquisition.SetValue('')
+
+
+
+        n_array = bitmap_reader.ReadBitmap(bitmap[0])
+        
+        image = converters.to_vtk(n_array, spacing=(1,1,1),\
+                slice_number=1, orientation="AXIAL")
+
+
+        # ADJUST CONTRAST
+        window_level = n_array.max()/2
+        window_width = n_array.max()
+        
+        colorer = vtk.vtkImageMapToWindowLevelColors()
+        colorer.SetInputData(image)
+        colorer.SetWindow(float(window_width))
+        colorer.SetLevel(float(window_level))
+        colorer.Update()
+
+        if self.actor is None:
+            self.actor = vtk.vtkImageActor()
+            self.renderer.AddActor(self.actor)
+
+        # PLOT IMAGE INTO VIEWER
+        self.actor.SetInputData(colorer.GetOutput())
+        self.renderer.ResetCamera()
+        self.interactor.Render()
+
+        # Setting slider position
+        self.slider.SetValue(index)
diff --git a/invesalius/gui/data_notebook.py b/invesalius/gui/data_notebook.py
index bde92e5..3e96a24 100644
--- a/invesalius/gui/data_notebook.py
+++ b/invesalius/gui/data_notebook.py
@@ -20,6 +20,7 @@
 #--------------------------------------------------------------------------
 import sys
 import platform
+import os
 
 try:
     import Image
@@ -32,14 +33,14 @@ import wx.lib.flatnotebook as fnb
 import wx.lib.platebtn as pbtn
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import data.slice_ as slice_
-import gui.dialogs as dlg
-import gui.widgets.listctrl as listmix
-import utils as ul
+import invesalius.constants as const
+import invesalius.data.slice_ as slice_
+import invesalius.gui.dialogs as dlg
+import invesalius.gui.widgets.listctrl as listmix
+import invesalius.utils as ul
 
 
-BTN_NEW, BTN_REMOVE, BTN_DUPLICATE = [wx.NewId() for i in xrange(3)]
+BTN_NEW, BTN_REMOVE, BTN_DUPLICATE, BTN_OPEN = [wx.NewId() for i in xrange(4)]
 
 TYPE = {const.LINEAR: _(u"Linear"),
         const.ANGULAR: _(u"Angular"),
@@ -148,11 +149,11 @@ class MeasureButtonControlPanel(wx.Panel):
     def __init_gui(self):
 
         # Bitmaps to be used in plate buttons
-        BMP_NEW = wx.Bitmap("../icons/data_new.png",
+        BMP_NEW = wx.Bitmap(os.path.join(const.ICON_DIR, "data_new.png"),
                             wx.BITMAP_TYPE_PNG)
-        BMP_REMOVE = wx.Bitmap("../icons/data_remove.png",
+        BMP_REMOVE = wx.Bitmap(os.path.join(const.ICON_DIR, "data_remove.png"),
                                 wx.BITMAP_TYPE_PNG)
-        BMP_DUPLICATE = wx.Bitmap("../icons/data_duplicate.png",
+        BMP_DUPLICATE = wx.Bitmap(os.path.join(const.ICON_DIR, "data_duplicate.png"),
                                 wx.BITMAP_TYPE_PNG)
 
         # Plate buttons based on previous bitmaps
@@ -161,15 +162,20 @@ class MeasureButtonControlPanel(wx.Panel):
                                      BMP_NEW,
                                      style=button_style,
                                      size = wx.Size(24, 20))
+        button_new.SetToolTipString(_("Create a new measure"))
         self.button_new = button_new
+
         button_remove = pbtn.PlateButton(self, BTN_REMOVE, "",
                                          BMP_REMOVE,
                                          style=button_style,
                                          size = wx.Size(24, 20))
+        button_remove.SetToolTipString(_("Remove measure"))
+
         button_duplicate = pbtn.PlateButton(self, BTN_DUPLICATE, "",
                                             BMP_DUPLICATE,
                                             style=button_style,
                                             size = wx.Size(24, 20))
+        button_duplicate.SetToolTipString(_("Duplicate measure"))
         button_duplicate.Disable()
 
         # Add all controls to gui
@@ -261,11 +267,11 @@ class ButtonControlPanel(wx.Panel):
     def __init_gui(self):
 
         # Bitmaps to be used in plate buttons
-        BMP_NEW = wx.Bitmap("../icons/data_new.png",
+        BMP_NEW = wx.Bitmap(os.path.join(const.ICON_DIR, "data_new.png"),
                             wx.BITMAP_TYPE_PNG)
-        BMP_REMOVE = wx.Bitmap("../icons/data_remove.png",
+        BMP_REMOVE = wx.Bitmap(os.path.join(const.ICON_DIR, "data_remove.png"),
                                 wx.BITMAP_TYPE_PNG)
-        BMP_DUPLICATE = wx.Bitmap("../icons/data_duplicate.png",
+        BMP_DUPLICATE = wx.Bitmap(os.path.join(const.ICON_DIR, "data_duplicate.png"),
                                 wx.BITMAP_TYPE_PNG)
 
         # Plate buttons based on previous bitmaps
@@ -274,14 +280,19 @@ class ButtonControlPanel(wx.Panel):
                                      BMP_NEW,
                                      style=button_style,
                                      size = wx.Size(24, 20))
+        button_new.SetToolTipString(_("Create a new mask"))
+
         button_remove = pbtn.PlateButton(self, BTN_REMOVE, "",
                                          BMP_REMOVE,
                                          style=button_style,
                                          size = wx.Size(24, 20))
+        button_remove.SetToolTipString(_("Remove mask"))
+
         button_duplicate = pbtn.PlateButton(self, BTN_DUPLICATE, "",
                                             BMP_DUPLICATE,
                                             style=button_style,
                                             size = wx.Size(24, 20))
+        button_duplicate.SetToolTipString(_("Duplicate mask"))
 
         # Add all controls to gui
         sizer = wx.BoxSizer(wx.HORIZONTAL)
@@ -364,6 +375,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
 
         Publisher.subscribe(self.OnChangeCurrentMask, 'Change mask selected')
         Publisher.subscribe(self.__hide_current_mask, 'Hide current mask')
+        Publisher.subscribe(self.__show_current_mask, 'Show current mask')
         Publisher.subscribe(self.OnCloseProject, 'Close project data')
 
     def OnKeyEvent(self, event):
@@ -435,6 +447,9 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
     def __hide_current_mask(self, pubsub_evt):
         self.SetItemImage(self.current_index, 0)
 
+    def __show_current_mask(self, pubsub_evt):
+        self.SetItemImage(self.current_index, 1)
+
     def __init_columns(self):
 
         self.InsertColumn(0, "", wx.LIST_FORMAT_CENTER)
@@ -448,13 +463,13 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
     def __init_image_list(self):
         self.imagelist = wx.ImageList(16, 16)
 
-        image = wx.Image("../icons/object_invisible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_invisible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
         img_null = self.imagelist.Add(bitmap)
 
-        image = wx.Image("../icons/object_visible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_visible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
@@ -462,7 +477,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
 
         self.SetImageList(self.imagelist,wx.IMAGE_LIST_SMALL)
 
-        self.image_gray = Image.open("../icons/object_colour.jpg")
+        self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg"))
 
     def OnEditLabel(self, evt):
         Publisher.sendMessage('Change mask name',
@@ -508,11 +523,11 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
         self.SetStringItem(index, 1, label,
                            imageId=self.mask_list_index[index])
         self.SetStringItem(index, 2, threshold)
-        self.SetItemImage(index, 1)
-        for key in self.mask_list_index.keys():
-            if key != index:
-                self.SetItemImage(key, 0)
-        self.current_index = index
+        #  self.SetItemImage(index, 1)
+        #  for key in self.mask_list_index.keys():
+            #  if key != index:
+                #  self.SetItemImage(key, 0)
+        #  self.current_index = index
 
     def AddMask(self, pubsub_evt):
         index, mask_name, threshold_range, colour = pubsub_evt.data
@@ -582,11 +597,13 @@ class SurfaceButtonControlPanel(wx.Panel):
     def __init_gui(self):
 
         # Bitmaps to be used in plate buttons
-        BMP_NEW = wx.Bitmap("../icons/data_new.png",
+        BMP_NEW = wx.Bitmap(os.path.join(const.ICON_DIR, "data_new.png"),
                             wx.BITMAP_TYPE_PNG)
-        BMP_REMOVE = wx.Bitmap("../icons/data_remove.png",
+        BMP_REMOVE = wx.Bitmap(os.path.join(const.ICON_DIR, "data_remove.png"),
                                 wx.BITMAP_TYPE_PNG)
-        BMP_DUPLICATE = wx.Bitmap("../icons/data_duplicate.png",
+        BMP_DUPLICATE = wx.Bitmap(os.path.join(const.ICON_DIR, "data_duplicate.png"),
+                                wx.BITMAP_TYPE_PNG)
+        BMP_OPEN = wx.Bitmap(os.path.join(const.ICON_DIR, "load_mesh.png"),
                                 wx.BITMAP_TYPE_PNG)
 
         # Plate buttons based on previous bitmaps
@@ -595,20 +612,32 @@ class SurfaceButtonControlPanel(wx.Panel):
                                      BMP_NEW,
                                      style=button_style,
                                      size = wx.Size(24, 20))
+        button_new.SetToolTipString(_("Create a new surface"))
+
         button_remove = pbtn.PlateButton(self, BTN_REMOVE, "",
                                          BMP_REMOVE,
                                          style=button_style,
                                          size = wx.Size(24, 20))
+        button_remove.SetToolTipString(_("Remove surface"))
+
         button_duplicate = pbtn.PlateButton(self, BTN_DUPLICATE, "",
                                             BMP_DUPLICATE,
                                             style=button_style,
                                             size = wx.Size(24, 20))
+        button_duplicate.SetToolTipString(_("Duplicate surface"))
+
+        button_open = pbtn.PlateButton(self, BTN_OPEN, "",
+                                       BMP_OPEN,
+                                       style=button_style,
+                                       size = wx.Size(24, 20))
+        button_open.SetToolTipString(_("Import a surface file into InVesalius"))
 
         # Add all controls to gui
         sizer = wx.BoxSizer(wx.HORIZONTAL)
         sizer.Add(button_new, 0, wx.GROW|wx.EXPAND|wx.LEFT)
         sizer.Add(button_remove, 0, wx.GROW|wx.EXPAND)
         sizer.Add(button_duplicate, 0, wx.GROW|wx.EXPAND)
+        sizer.Add(button_open, 0, wx.GROW|wx.EXPAND)
         self.SetSizer(sizer)
         self.Fit()
 
@@ -623,6 +652,8 @@ class SurfaceButtonControlPanel(wx.Panel):
             self.OnRemove()
         elif id ==  BTN_DUPLICATE:
             self.OnDuplicate()
+        elif id == BTN_OPEN:
+            self.OnOpenMesh()
 
     def OnNew(self):
         sl = slice_.Slice()
@@ -654,6 +685,11 @@ class SurfaceButtonControlPanel(wx.Panel):
         else:
            dlg.SurfaceSelectionRequiredForDuplication()
 
+    def OnOpenMesh(self):
+        filename = dlg.ShowImportMeshFilesDialog()
+        if filename:
+            Publisher.sendMessage('Import surface file', filename)
+
 
 class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
 
@@ -777,13 +813,13 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
     def __init_image_list(self):
         self.imagelist = wx.ImageList(16, 16)
 
-        image = wx.Image("../icons/object_invisible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_invisible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
         img_null = self.imagelist.Add(bitmap)
 
-        image = wx.Image("../icons//object_visible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_visible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
@@ -791,7 +827,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
 
         self.SetImageList(self.imagelist,wx.IMAGE_LIST_SMALL)
 
-        self.image_gray = Image.open("../icons/object_colour.jpg")
+        self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg"))
 
     def OnEditLabel(self, evt):
         Publisher.sendMessage('Change surface name', (evt.GetIndex(), evt.GetLabel()))
@@ -939,6 +975,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
         Publisher.subscribe(self.OnShowSingle, 'Show single measurement')
         Publisher.subscribe(self.OnShowMultiple, 'Show multiple measurements')
         Publisher.subscribe(self.OnLoadData, 'Load measurement dict')
+        Publisher.subscribe(self.OnRemoveGUIMeasure, 'Remove GUI measurement')
 
     def __bind_events_wx(self):
         self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated)
@@ -955,6 +992,19 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
         elif (keycode == wx.WXK_DELETE):
             self.RemoveMeasurements()
 
+    def OnRemoveGUIMeasure(self, pubsub_evt):
+        idx = pubsub_evt.data
+        self.DeleteItem(idx)
+
+        old_dict = self._list_index
+        new_dict = {}
+        j = 0
+        for i in old_dict:
+            if i != idx:
+                new_dict[j] = old_dict[i]
+                j+=1
+        self._list_index = new_dict
+
     def RemoveMeasurements(self):
         """
         Remove items selected.
@@ -1027,13 +1077,13 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
     def __init_image_list(self):
         self.imagelist = wx.ImageList(16, 16)
 
-        image = wx.Image("../icons/object_invisible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_invisible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
         img_null = self.imagelist.Add(bitmap)
 
-        image = wx.Image("../icons/object_visible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_visible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
@@ -1041,7 +1091,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
 
         self.SetImageList(self.imagelist,wx.IMAGE_LIST_SMALL)
 
-        self.image_gray = Image.open("../icons/object_colour.jpg")
+        self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg"))
 
 
     def OnEditLabel(self, evt):
@@ -1101,7 +1151,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
                 value = (u"%.2f°") % m.value
             self.InsertNewItem(m.index, m.name, colour, location, type, value)
 
-            if not m.is_shown:
+            if not m.visible:
                 self.SetItemImage(i, False)
 
     def AddItem_(self, pubsub_evt):
@@ -1123,6 +1173,8 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
                 self.UpdateItemInfo(index, name, colour, location, type_, value)
             else:
                 self.InsertNewItem(index, name, colour, location, type_, value)
+        else:
+            self.UpdateItemInfo(index, name, colour, location, type_, value)
 
 
 
@@ -1138,7 +1190,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
         self.Refresh()
 
     def UpdateItemInfo(self, index=0, label="Measurement 1", colour=None,
-                      type_="LINEAR", location="SURFACE", value="0 mm"):
+                      location="SURFACE", type_="LINEAR", value="0 mm"):
         self.SetStringItem(index, 1, label,
                             imageId = self._list_index[index])
         self.SetStringItem(index, 2, location)
@@ -1220,19 +1272,19 @@ class AnnotationsListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
     def __init_image_list(self):
         self.imagelist = wx.ImageList(16, 16)
 
-        image = wx.Image("../icons/object_visible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_visible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
         img_check = self.imagelist.Add(bitmap)
 
-        image = wx.Image("../icons/object_invisible.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_invisible.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
         img_null = self.imagelist.Add(bitmap)
 
-        image = wx.Image("../icons/object_colour.jpg")
+        image = wx.Image(os.path.join(const.ICON_DIR, "object_colour.jpg"))
         bitmap = wx.BitmapFromImage(image.Scale(16, 16))
         bitmap.SetWidth(16)
         bitmap.SetHeight(16)
diff --git a/invesalius/gui/default_tasks.py b/invesalius/gui/default_tasks.py
index f575da6..babb733 100644
--- a/invesalius/gui/default_tasks.py
+++ b/invesalius/gui/default_tasks.py
@@ -21,15 +21,15 @@ import wx
 import wx.lib.foldpanelbar as fpb
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import data_notebook as nb
-import session as ses
-import task_exporter as exporter
-import task_slice as slice_
-import task_importer as importer
-import task_surface as surface
-import task_tools as tools
-import task_navigator as navigator
+import invesalius.constants as const
+import invesalius.gui.data_notebook as nb
+import invesalius.session as ses
+import invesalius.gui.task_exporter as exporter
+import invesalius.gui.task_slice as slice_
+import invesalius.gui.task_importer as importer
+import invesalius.gui.task_surface as surface
+import invesalius.gui.task_tools as tools
+import invesalius.gui.task_navigator as navigator
 
 FPB_DEFAULT_STYLE = 2621440
 
@@ -250,7 +250,8 @@ class UpperTaskPanel(wx.Panel):
             tasks = [(_("Load data"), importer.TaskPanel),
                      (_("Select region of interest"), slice_.TaskPanel),
                      (_("Configure 3D surface"), surface.TaskPanel),
-                     (_("Utilize navigation system"), navigator.TaskPanel)]
+                     (_("Export data"), exporter.TaskPanel),
+                     (_("Navigation system"), navigator.TaskPanel)]
 
         for i in xrange(len(tasks)):
             (name, panel) = tasks[i]
@@ -283,9 +284,11 @@ class UpperTaskPanel(wx.Panel):
 
         fold_panel.Expand(fold_panel.GetFoldPanel(0))
         self.fold_panel = fold_panel
+        self.image_list = image_list
 
         sizer = wx.BoxSizer(wx.VERTICAL)
         sizer.Add(fold_panel, 1, wx.GROW|wx.EXPAND)
+        self.sizer = sizer
         self.SetSizerAndFit(sizer)
 
         self.SetStateProjectClose()
@@ -297,6 +300,7 @@ class UpperTaskPanel(wx.Panel):
         Publisher.subscribe(self.OnOverwrite, 'Create surface from index')
         Publisher.subscribe(self.OnFoldSurface, 'Fold surface task')
         Publisher.subscribe(self.OnFoldExport, 'Fold export task')
+        Publisher.subscribe(self.SetNavigationMode, "Set navigation mode")
 
     def OnOverwrite(self, pubsub_evt):
         self.overwrite = pubsub_evt.data['options']['overwrite']
@@ -315,6 +319,37 @@ class UpperTaskPanel(wx.Panel):
         else:
             self.SetStateProjectClose()
 
+    def SetNavigationMode(self, pubsub_evt):
+        self.navigation_mode_status = status = pubsub_evt.data
+        name = _("Navigation system")
+        panel = navigator.TaskPanel
+        if status and (self.fold_panel.GetCount()<=4):
+            # Create panel
+            item = self.fold_panel.AddFoldPanel("%d. %s"%(5, name),
+                                                collapsed=True,
+                                                foldIcons=self.image_list)
+            style = self.fold_panel.GetCaptionStyle(item)
+            col = style.GetFirstColour()
+
+            # Add panel to FoldPanel
+            self.fold_panel.AddFoldPanelWindow(item,
+                                               panel(item),
+                                               #Spacing=0,
+                                               leftSpacing=0,
+                                               rightSpacing=0)
+            self.enable_items.append(item)
+            if not self.fold_panel.GetFoldPanel(2).IsEnabled():
+                item.Disable()
+
+        elif status and (self.fold_panel.GetCount()>4):
+            self.fold_panel.GetFoldPanel(4).Show()
+
+        else:
+            self.fold_panel.GetFoldPanel(4).Hide()
+        self.sizer.Layout()
+
+
+
     def SetStateProjectClose(self):
         self.fold_panel.Expand(self.fold_panel.GetFoldPanel(0))
         for item in self.enable_items:
diff --git a/invesalius/gui/default_viewers.py b/invesalius/gui/default_viewers.py
index 948cb75..8c0a037 100644
--- a/invesalius/gui/default_viewers.py
+++ b/invesalius/gui/default_viewers.py
@@ -17,21 +17,24 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 import sys
+import os
 
 import wx
 import wx.lib.agw.fourwaysplitter as fws
 from wx.lib.pubsub import pub as Publisher
 
-import data.viewer_slice as slice_viewer
-import data.viewer_volume as volume_viewer
-import project
-import widgets.slice_menu as slice_menu_
+import invesalius.data.viewer_slice as slice_viewer
+import invesalius.data.viewer_volume as volume_viewer
+import invesalius.project as project
+import invesalius.gui.widgets.slice_menu as slice_menu_
 
-from gui.widgets.clut_raycasting import CLUTRaycastingWidget, \
+
+from invesalius.gui.widgets.clut_raycasting import CLUTRaycastingWidget, \
         EVT_CLUT_POINT_RELEASE, EVT_CLUT_CURVE_SELECT, \
         EVT_CLUT_CURVE_WL_CHANGE
 
-from constants import ID_TO_BMP
+from invesalius.constants import ID_TO_BMP
+import invesalius.constants as const
 
 class Panel(wx.Panel):
     def __init__(self, parent):
@@ -299,9 +302,9 @@ class VolumeInteraction(wx.Panel):
 import wx.lib.platebtn as pbtn
 import wx.lib.buttons as btn
 import wx.lib.pubsub as ps
+import wx.lib.colourselect as csel
 
-import constants as const
-import widgets.colourselect as csel
+import invesalius.constants as const
 
 [BUTTON_RAYCASTING, BUTTON_VIEW, BUTTON_SLICE_PLANE, BUTTON_3D_STEREO] = [wx.NewId() for num in xrange(4)]
 RAYCASTING_TOOLS = wx.NewId()
@@ -333,14 +336,14 @@ class VolumeToolPanel(wx.Panel):
         wx.Panel.__init__(self, parent)
 
         # VOLUME RAYCASTING BUTTON
-        BMP_RAYCASTING = wx.Bitmap("../icons/volume_raycasting.png",
+        BMP_RAYCASTING = wx.Bitmap(os.path.join(const.ICON_DIR, "volume_raycasting.png"),
                                     wx.BITMAP_TYPE_PNG)
 
-        BMP_SLICE_PLANE = wx.Bitmap("../icons/slice_plane.png",
+        BMP_SLICE_PLANE = wx.Bitmap(os.path.join(const.ICON_DIR, "slice_plane.png"),
                                     wx.BITMAP_TYPE_PNG)
 
 
-        BMP_3D_STEREO = wx.Bitmap("../icons/3D_glasses.png",
+        BMP_3D_STEREO = wx.Bitmap(os.path.join(const.ICON_DIR, "3D_glasses.png"),
                                     wx.BITMAP_TYPE_PNG)
 
 
diff --git a/invesalius/gui/dialogs.py b/invesalius/gui/dialogs.py
index 43e4e89..a315ea8 100644
--- a/invesalius/gui/dialogs.py
+++ b/invesalius/gui/dialogs.py
@@ -22,23 +22,31 @@ import os
 import random
 import sys
 
+import vtk
 import wx
 import wx.combo
+
+from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor
 from wx.lib import masked
 from wx.lib.agw import floatspin
 from wx.lib.wordwrap import wordwrap
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import gui.widgets.gradient as grad
-import project as proj
-import session as ses
-import utils
-
-from gui.widgets.clut_imagedata import CLUTImageDataWidget, EVT_CLUT_NODE_CHANGED
+import invesalius.constants as const
+import invesalius.gui.widgets.gradient as grad
+import invesalius.session as ses
+import invesalius.utils as utils
+from invesalius.gui.widgets import clut_imagedata
+from invesalius.gui.widgets.clut_imagedata import CLUTImageDataWidget, EVT_CLUT_NODE_CHANGED
 
 import numpy as np
 
+try:
+    from agw import floatspin as FS
+except ImportError: # if it's not there locally, try the wxPython lib.
+    import wx.lib.agw.floatspin as FS
+
+
 class MaskEvent(wx.PyCommandEvent):
     def __init__(self , evtType, id, mask_index):
         wx.PyCommandEvent.__init__(self, evtType, id,)
@@ -201,13 +209,27 @@ class ProgressDialog(object):
         self.dlg.Destroy()
 
 
-
-#---------
-WILDCARD_OPEN = "InVesalius 3 project (*.inv3)|*.inv3|"\
+# ---------
+WILDCARD_OPEN = "InVesalius 3 project (*.inv3)|*.inv3|" \
                 "All files (*.*)|*.*"
 
-WILDCARD_ANALYZE = "Analyze (*.hdr)|*.hdr|"\
-                "All files (*.*)|*.*"
+WILDCARD_ANALYZE = "Analyze 7.5 (*.hdr)|*.hdr|" \
+                   "All files (*.*)|*.*"
+
+WILDCARD_NIFTI = "NIfTI 1 (*.nii)|*.nii|" \
+                 "Compressed NIfTI (*.nii.gz)|*.nii.gz|" \
+                 "HDR NIfTI (*.hdr)|*.hdr|" \
+                 "All files (*.*)|*.*"
+#".[jJ][pP][gG]"
+WILDCARD_PARREC = "PAR/REC (*.par)|*.par|" \
+                  "All files (*.*)|*.*"
+
+WILDCARD_MESH_FILES = "STL File format (*.stl)|*.stl|" \
+                      "Standard Polygon File Format (*.ply)|*.ply|" \
+                      "Alias Wavefront Object (*.obj)|*.obj|" \
+                      "VTK Polydata File Format (*.vtp)|*.vtp|" \
+                      "All files (*.*)|*.*"
+
 
 def ShowOpenProjectDialog():
     # Default system path
@@ -227,7 +249,7 @@ def ShowOpenProjectDialog():
         if dlg.ShowModal() == wx.ID_OK:
             # This returns a Python list of files that were selected.
             filepath = dlg.GetPath()
-    except(wx._core.PyAssertionError): #FIX: win64
+    except(wx._core.PyAssertionError):  # FIX: win64
         filepath = dlg.GetPath()
 
     # Destroy the dialog. Don't do this until you are done with it!
@@ -237,35 +259,48 @@ def ShowOpenProjectDialog():
     return filepath
 
 
-def ShowOpenAnalyzeDialog():
-    # Default system path
+def ShowImportDirDialog(self):
     current_dir = os.path.abspath(".")
-    dlg = wx.FileDialog(None, message=_("Open Analyze file"),
-                        defaultDir="",
-                        defaultFile="", wildcard=WILDCARD_ANALYZE,
-                        style=wx.FD_OPEN|wx.FD_CHANGE_DIR)
 
-    # inv3 filter is default
-    dlg.SetFilterIndex(0)
+    if (sys.platform == 'win32') or (sys.platform == 'linux2'):
+        session = ses.Session()
 
-    # Show the dialog and retrieve the user response. If it is the OK response,
-    # process the data.
-    filepath = None
+        if (session.GetLastDicomFolder()):
+            folder = session.GetLastDicomFolder()
+        else:
+            folder = ''
+    else:
+        folder = ''
+
+    dlg = wx.DirDialog(self, _("Choose a DICOM folder:"), folder,
+                        style=wx.DD_DEFAULT_STYLE
+                        | wx.DD_DIR_MUST_EXIST
+                        | wx.DD_CHANGE_DIR)
+
+    path = None
     try:
         if dlg.ShowModal() == wx.ID_OK:
-            # This returns a Python list of files that were selected.
-            filepath = dlg.GetPath()
-    except(wx._core.PyAssertionError): #FIX: win64
-        filepath = dlg.GetPath()
+            # GetPath returns in unicode, if a path has non-ascii characters a
+            # UnicodeEncodeError is raised. To avoid this, path is encoded in utf-8
+            if sys.platform == "win32":
+                path = dlg.GetPath()
+            else:
+                path = dlg.GetPath().encode('utf-8')
 
-    # Destroy the dialog. Don't do this until you are done with it!
-    # BAD things can happen otherwise!
+    except(wx._core.PyAssertionError): #TODO: error win64
+         if (dlg.GetPath()):
+             path = dlg.GetPath()
+
+    if (sys.platform != 'darwin'):
+        if (path):
+            session.SetLastDicomFolder(path)
+
+    # Only destroy a dialog after you're done with it.
     dlg.Destroy()
     os.chdir(current_dir)
-    return filepath
-
+    return path
 
-def ShowImportDirDialog():
+def ShowImportBitmapDirDialog(self):
     current_dir = os.path.abspath(".")
 
     if (sys.platform == 'win32') or (sys.platform == 'linux2'):
@@ -278,7 +313,7 @@ def ShowImportDirDialog():
     else:
         folder = ''
 
-    dlg = wx.DirDialog(None, _("Choose a DICOM folder:"), folder,
+    dlg = wx.DirDialog(self, _("Choose a folder with TIFF, BMP, JPG or PNG:"), folder,
                         style=wx.DD_DEFAULT_STYLE
                         | wx.DD_DIR_MUST_EXIST
                         | wx.DD_CHANGE_DIR)
@@ -288,10 +323,7 @@ def ShowImportDirDialog():
         if dlg.ShowModal() == wx.ID_OK:
             # GetPath returns in unicode, if a path has non-ascii characters a
             # UnicodeEncodeError is raised. To avoid this, path is encoded in utf-8
-            if sys.platform == "win32":
-                path = dlg.GetPath()
-            else:
-                path = dlg.GetPath().encode('utf-8')
+            path = dlg.GetPath()
 
     except(wx._core.PyAssertionError): #TODO: error win64
          if (dlg.GetPath()):
@@ -306,6 +338,76 @@ def ShowImportDirDialog():
     os.chdir(current_dir)
     return path
 
+
+def ShowImportOtherFilesDialog(id_type):
+    # Default system path
+    current_dir = os.path.abspath(".")
+    dlg = wx.FileDialog(None, message=_("Import Analyze 7.5 file"),
+                        defaultDir="",
+                        defaultFile="", wildcard=WILDCARD_ANALYZE,
+                        style=wx.FD_OPEN | wx.FD_CHANGE_DIR)
+
+    if id_type == const.ID_NIFTI_IMPORT:
+        dlg.SetMessage(_("Import NIFTi 1 file"))
+        dlg.SetWildcard(WILDCARD_NIFTI)
+    elif id_type == const.ID_PARREC_IMPORT:
+        dlg.SetMessage(_("Import PAR/REC file"))
+        dlg.SetWildcard(WILDCARD_PARREC)
+
+    # inv3 filter is default
+    dlg.SetFilterIndex(0)
+
+    # Show the dialog and retrieve the user response. If it is the OK response,
+    # process the data.
+    filename = None
+    try:
+        if dlg.ShowModal() == wx.ID_OK:
+            # GetPath returns in unicode, if a path has non-ascii characters a
+            # UnicodeEncodeError is raised. To avoid this, path is encoded in utf-8
+            if sys.platform == "win32":
+                filename = dlg.GetPath()
+            else:
+                filename = dlg.GetPath().encode('utf-8')
+
+    except(wx._core.PyAssertionError):  # TODO: error win64
+        if (dlg.GetPath()):
+            filename = dlg.GetPath()
+
+    # Destroy the dialog. Don't do this until you are done with it!
+    # BAD things can happen otherwise!
+    dlg.Destroy()
+    os.chdir(current_dir)
+    return filename
+
+
+def ShowImportMeshFilesDialog():
+    # Default system path
+    current_dir = os.path.abspath(".")
+    dlg = wx.FileDialog(None, message=_("Import surface file"),
+                        wildcard=WILDCARD_MESH_FILES,
+                        style=wx.FD_OPEN | wx.FD_CHANGE_DIR)
+
+    # stl filter is default
+    dlg.SetFilterIndex(0)
+
+    # Show the dialog and retrieve the user response. If it is the OK response,
+    # process the data.
+    filename = None
+    try:
+        if dlg.ShowModal() == wx.ID_OK:
+            filename = dlg.GetPath()
+
+    except(wx._core.PyAssertionError):  # TODO: error win64
+        if (dlg.GetPath()):
+            filename = dlg.GetPath()
+
+    # Destroy the dialog. Don't do this until you are done with it!
+    # BAD things can happen otherwise!
+    dlg.Destroy()
+    os.chdir(current_dir)
+    return filename
+
+
 def ShowSaveAsProjectDialog(default_filename=None):
     current_dir = os.path.abspath(".")
     dlg = wx.FileDialog(None,
@@ -333,10 +435,71 @@ def ShowSaveAsProjectDialog(default_filename=None):
             if filename.split(".")[-1] != extension:
                 filename = filename + "." + extension
 
+    os.chdir(current_dir)
+    return filename
+
+
+# Dialog for neuronavigation markers
+def ShowSaveMarkersDialog(default_filename=None):
+    current_dir = os.path.abspath(".")
+    dlg = wx.FileDialog(None,
+                        _("Save markers as..."),  # title
+                        "",  # last used directory
+                        default_filename,
+                        _("Markers files (*.mks)|*.mks"),
+                        wx.SAVE | wx.OVERWRITE_PROMPT)
+    # dlg.SetFilterIndex(0) # default is VTI
+
+    filename = None
+    try:
+        if dlg.ShowModal() == wx.ID_OK:
+            filename = dlg.GetPath()
+            ok = 1
+        else:
+            ok = 0
+    except(wx._core.PyAssertionError):  # TODO: fix win64
+        filename = dlg.GetPath()
+        ok = 1
+
+    if (ok):
+        extension = "mks"
+        if sys.platform != 'win32':
+            if filename.split(".")[-1] != extension:
+                filename = filename + "." + extension
 
     os.chdir(current_dir)
     return filename
 
+
+def ShowLoadMarkersDialog():
+    current_dir = os.path.abspath(".")
+
+    dlg = wx.FileDialog(None, message=_("Load markers"),
+                        defaultDir="",
+                        defaultFile="",
+                        wildcard=_("Markers files (*.mks)|*.mks"),
+                        style=wx.OPEN|wx.CHANGE_DIR)
+
+    # inv3 filter is default
+    dlg.SetFilterIndex(0)
+
+    # Show the dialog and retrieve the user response. If it is the OK response,
+    # process the data.
+    filepath = None
+    try:
+        if dlg.ShowModal() == wx.ID_OK:
+            # This returns a Python list of files that were selected.
+            filepath = dlg.GetPath()
+    except(wx._core.PyAssertionError):  # FIX: win64
+        filepath = dlg.GetPath()
+
+    # Destroy the dialog. Don't do this until you are done with it!
+    # BAD things can happen otherwise!
+    dlg.Destroy()
+    os.chdir(current_dir)
+    return filepath
+
+
 class MessageDialog(wx.Dialog):
     def __init__(self, message):
         pre = wx.PreDialog()
@@ -462,8 +625,15 @@ def ImportEmptyDirectory(dirpath):
     dlg.ShowModal()
     dlg.Destroy()
 
-def ImportInvalidFiles():
-    msg = _("There are no DICOM files in the selected folder.")
+
+def ImportInvalidFiles(ftype="DICOM"):
+    if ftype == "Bitmap":
+        msg =  _("There are no Bitmap, JPEG, PNG or TIFF files in the selected folder.")
+    elif ftype == "DICOM":
+        msg = _("There are no DICOM files in the selected folder.")
+    else:
+        msg = _("Invalid file.")
+
     if sys.platform == 'darwin':
         dlg = wx.MessageDialog(None, "", msg,
                                 wx.ICON_INFORMATION | wx.OK)
@@ -473,6 +643,20 @@ def ImportInvalidFiles():
     dlg.ShowModal()
     dlg.Destroy()
 
+
+def ImportAnalyzeWarning():
+    msg1 = _("Warning! InVesalius has limited support to Analyze format.\n")
+    msg2 = _("Slices may be wrongly oriented and functions may not work properly.")
+    if sys.platform == 'darwin':
+        dlg = wx.MessageDialog(None, "", msg1 + msg2,
+                                wx.ICON_INFORMATION | wx.OK)
+    else:
+        dlg = wx.MessageDialog(None, msg1 + msg2, "InVesalius 3",
+                                wx.ICON_INFORMATION | wx.OK)
+    dlg.ShowModal()
+    dlg.Destroy()
+
+
 def InexistentMask():
     msg = _("A mask is needed to create a surface.")
     if sys.platform == 'darwin':
@@ -542,6 +726,98 @@ def SurfaceSelectionRequiredForDuplication():
     dlg.ShowModal()
     dlg.Destroy()
 
+
+# Dialogs for neuronavigation mode
+def InvalidFiducials():
+    msg = _("Fiducials are invalid. Select six coordinates.")
+    if sys.platform == 'darwin':
+        dlg = wx.MessageDialog(None, "", msg,
+                               wx.ICON_INFORMATION | wx.OK)
+    else:
+        dlg = wx.MessageDialog(None, msg, "InVesalius 3 - Neuronavigator",
+                               wx.ICON_INFORMATION | wx.OK)
+    dlg.ShowModal()
+    dlg.Destroy()
+
+
+def NavigationTrackerWarning(trck_id, lib_mode):
+    """
+    Spatial Tracker connection error
+    """
+    trck = {1: 'Claron MicronTracker',
+            2: 'Polhemus FASTRAK',
+            3: 'Polhemus ISOTRAK',
+            4: 'Polhemus PATRIOT',
+            5: 'Debug tracker device'}
+
+    if lib_mode == 'choose':
+        msg = _('No tracking device selected')
+    elif lib_mode == 'error':
+        msg = trck[trck_id] + _(' is not installed.')
+    elif lib_mode == 'disconnect':
+        msg = trck[trck_id] + _(' disconnected.')
+    else:
+        msg = trck[trck_id] + _(' is not connected.')
+
+    if sys.platform == 'darwin':
+        dlg = wx.MessageDialog(None, "", msg,
+                               wx.ICON_INFORMATION | wx.OK)
+    else:
+        dlg = wx.MessageDialog(None, msg, "InVesalius 3 - Neuronavigator",
+                               wx.ICON_INFORMATION | wx.OK)
+
+    dlg.ShowModal()
+    dlg.Destroy()
+
+
+def InvalidMarkersFile():
+    msg = _("The TXT file is invalid.")
+    if sys.platform == 'darwin':
+        dlg = wx.MessageDialog(None, "", msg,
+                               wx.ICON_INFORMATION | wx.OK)
+    else:
+        dlg = wx.MessageDialog(None, msg, "InVesalius 3 - Neuronavigator",
+                               wx.ICON_INFORMATION | wx.OK)
+    dlg.ShowModal()
+    dlg.Destroy()
+
+
+def NoMarkerSelected():
+    msg = _("No data selected")
+    if sys.platform == 'darwin':
+        dlg = wx.MessageDialog(None, "", msg,
+                                wx.ICON_INFORMATION | wx.OK)
+    else:
+        dlg = wx.MessageDialog(None, msg, "InVesalius 3 - Neuronavigator",
+                                wx.ICON_INFORMATION | wx.OK)
+    dlg.ShowModal()
+    dlg.Destroy()
+
+def DeleteAllMarkers():
+    msg = _("Do you really want to delete all markers?")
+    if sys.platform == 'darwin':
+        dlg = wx.MessageDialog(None, "", msg,
+                               wx.OK | wx.CANCEL | wx.ICON_QUESTION)
+    else:
+        dlg = wx.MessageDialog(None, msg, "InVesalius 3 - Neuronavigator",
+                               wx.OK | wx.CANCEL | wx.ICON_QUESTION)
+    result = dlg.ShowModal()
+    dlg.Destroy()
+    return result
+
+
+def EnterMarkerID(default):
+    msg = _("Edit marker ID")
+    if sys.platform == 'darwin':
+        dlg = wx.TextEntryDialog(None, "", msg, defaultValue=default)
+    else:
+        dlg = wx.TextEntryDialog(None, msg, "InVesalius 3", defaultValue=default)
+    dlg.ShowModal()
+    result = dlg.GetValue()
+    dlg.Destroy()
+    return result
+
+
 class NewMask(wx.Dialog):
     def __init__(self,
                  parent=None,
@@ -551,9 +827,9 @@ class NewMask(wx.Dialog):
                  pos=wx.DefaultPosition,
                  style=wx.DEFAULT_DIALOG_STYLE,
                  useMetal=False):
-        import constants as const
-        import data.mask as mask
-        import project as prj
+        import invesalius.constants as const
+        import invesalius.data.mask as mask
+        import invesalius.project as prj
 
         # Instead of calling wx.Dialog.__init__ we precreate the dialog
         # so we can set an extra style that must be set before
@@ -659,14 +935,14 @@ class NewMask(wx.Dialog):
 
 
     def OnComboThresh(self, evt):
-        import project as prj
+        import invesalius.project as prj
         proj = prj.Project()
         (thresh_min, thresh_max) = proj.threshold_modes[evt.GetString()]
         self.gradient.SetMinimun(thresh_min)
         self.gradient.SetMaximun(thresh_max)
 
     def OnSlideChanged(self, evt):
-        import project as prj
+        import invesalius.project as prj
         thresh_min = self.gradient.GetMinValue()
         thresh_max = self.gradient.GetMaxValue()
         thresh = (thresh_min, thresh_max)
@@ -762,8 +1038,8 @@ def ShowAboutDialog(parent):
 
     info = wx.AboutDialogInfo()
     info.Name = "InVesalius"
-    info.Version = "3.0"
-    info.Copyright = _("(c) 2007-2015 Center for Information Technology Renato Archer - CTI")
+    info.Version = "3.1.1"
+    info.Copyright = _("(c) 2007-2017 Center for Information Technology Renato Archer - CTI")
     info.Description = wordwrap(_("InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Developme [...]
 
 #       _("InVesalius is a software for medical imaging 3D reconstruction. ")+\
@@ -771,38 +1047,55 @@ def ShowAboutDialog(parent):
 #       _("The software also allows generating correspondent STL files,")+\
 #       _("so the user can print 3D physical models of the patient's anatomy ")+\
 #       _("using Rapid Prototyping."), 350, wx.ClientDC(parent))
-    info.WebSite = ("http://www.cti.gov.br/invesalius")
+    info.WebSite = ("https://www.cti.gov.br/invesalius")
     info.License = _("GNU GPL (General Public License) version 2")
 
-    info.Developers = ["Paulo Henrique Junqueira Amorim",
-                       "Thiago Franco de Moraes",
-                       "Jorge Vicente Lopes da Silva",
-                       "Tatiana Al-Chueyr (former)",
-                       "Guilherme Cesar Soares Ruppert (former)",
-                       "Fabio de Souza Azevedo (former)",
-                       "Bruno Lara Bottazzini (contributor)",
-                       "Olly Betts (patches to support wxPython3)"]
-
-    info.Translators = ["Alex P. Natsios",
-                        "Anderson Antonio Mamede da Silva",
-                        "Andreas Loupasakis",
-                        "Annalisa Manenti",
-                        "Cheng-Chia Tseng",
-                        "Dimitris Glezos",
-                        "Eugene Liscio",
+    info.Developers = [u"Paulo Henrique Junqueira Amorim",
+                       u"Thiago Franco de Moraes",
+                       u"Hélio Pedrini",
+                       u"Jorge Vicente Lopes da Silva",
+                       u"Victor Hugo de Oliveira e Souza (navigator)",
+                       u"Renan Hiroshi Matsuda (navigator)",
+                       u"André Salles Cunha Peres (navigator)",
+                       u"Oswaldo Baffa Filho (navigator)",
+                       u"Tatiana Al-Chueyr (former)",
+                       u"Guilherme Cesar Soares Ruppert (former)",
+                       u"Fabio de Souza Azevedo (former)",
+                       u"Bruno Lara Bottazzini (contributor)",
+                       u"Olly Betts (patches to support wxPython3)"]
+
+    info.Translators = [u"Alex P. Natsios",
+                        u"Alicia Perez",
+                        u"Anderson Antonio Mamede da Silva",
+                        u"Andreas Loupasakis",
+                        u"Angelo Pucillo",
+                        u"Annalisa Manenti",
+                        u"Cheng-Chia Tseng",
+                        u"Dan",
+                        u"DCamer",
+                        u"Dimitris Glezos",
+                        u"Eugene Liscio",
                         u"Frédéric Lopez",
-                        "fri",
-                        "Javier de Lima Moreno",
-                        "Mario Regino Moreno Guerra",
-                        "Massimo Crisantemo",
-                        "Nikos Korkakakis",
-                        "Raul Bolliger Neto",
-                        "Sebastian Hilbert",
-                        "Semarang Pari"]
+                        u"Florin Putura",
+                        u"Fri",
+                        u"Jangblue",
+                        u"Javier de Lima Moreno",
+                        u"Kensey Okinawa",
+                        u"Maki Sugimoto",
+                        u"Mario Regino Moreno Guerra",
+                        u"Massimo Crisantemo",
+                        u"Nikos Korkakakis",
+                        u"Raul Bolliger Neto",
+                        u"Sebastian Hilbert",
+                        u"Semarang Pari",
+                        u"Silvério Santos",
+                        u"Vasily Shishkin",
+                        u"Yohei Sotsuka",
+                        u"Yoshihiro Sato"]
 
     #info.DocWriters = ["Fabio Francisco da Silva (PT)"]
 
-    info.Artists = ["Otavio Henrique Junqueira Amorim"]
+    info.Artists = [u"Otavio Henrique Junqueira Amorim"]
 
     # Then we call wx.AboutBox providing its info object
     wx.AboutBox(info)
@@ -826,9 +1119,9 @@ class NewSurfaceDialog(wx.Dialog):
     def __init__(self, parent=None, ID=-1, title="InVesalius 3", size=wx.DefaultSize,
             pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE,
             useMetal=False):
-        import constants as const
-        import data.surface as surface
-        import project as prj
+        import invesalius.constants as const
+        import invesalius.data.surface as surface
+        import invesalius.project as prj
 
         # Instead of calling wx.Dialog.__init__ we precreate the dialog
         # so we can set an extra style that must be set before
@@ -950,7 +1243,9 @@ class NewSurfaceDialog(wx.Dialog):
 
 
 def ExportPicture(type_=""):
-    import constants as const
+    import invesalius.constants as const
+    import invesalius.project as proj
+    
     INDEX_TO_EXTENSION = {0: "bmp", 1: "jpg", 2: "png", 3: "ps", 4:"povray", 5:"tiff"}
     WILDCARD_SAVE_PICTURE = _("BMP image")+" (*.bmp)|*.bmp|"+\
                                 _("JPG image")+" (*.jpg)|*.jpg|"+\
@@ -1091,6 +1386,7 @@ class SurfaceCreationDialog(wx.Dialog):
         sizer.Fit(self)
 
     def OnSetMask(self, evt):
+        import invesalius.project as proj
         mask = proj.Project().mask_dict[evt.mask_index]
         self.ca.mask_edited = mask.was_edited
         self.ca.ReloadMethodsOptions()
@@ -1101,9 +1397,9 @@ class SurfaceCreationDialog(wx.Dialog):
 
 class SurfaceCreationOptionsPanel(wx.Panel):
     def __init__(self, parent, ID=-1):
-        import constants as const
-        import data.surface as surface
-        import project as prj
+        import invesalius.constants as const
+        import invesalius.data.surface as surface
+        import invesalius.project as prj
 
         wx.Panel.__init__(self, parent, ID)
 
@@ -1222,7 +1518,7 @@ class CAOptions(wx.Panel):
                                          max_val=100.0, increment=0.1,
                                          digits=2)
 
-        self.min_weight = floatspin.FloatSpin(self, -1, value=0.2, min_val=0.0,
+        self.min_weight = floatspin.FloatSpin(self, -1, value=0.5, min_val=0.0,
                                          max_val=1.0, increment=0.1,
                                          digits=1)
 
@@ -1513,7 +1809,7 @@ class MaskBooleanDialog(wx.Dialog):
         else:
             self.mask2.SetSelection(0)
 
-        icon_folder = '../icons/'
+        icon_folder = const.ICON_DIR
         op_choices = ((_(u"Union"), const.BOOLEAN_UNION, 'bool_union.png'),
                       (_(u"Difference"), const.BOOLEAN_DIFF, 'bool_difference.png'),
                       (_(u"Intersection"), const.BOOLEAN_AND, 'bool_intersection.png'),
@@ -1566,3 +1862,1108 @@ class MaskBooleanDialog(wx.Dialog):
 
         self.Close()
         self.Destroy()
+
+
+class ReorientImageDialog(wx.Dialog):
+    def __init__(self):
+        pre = wx.PreDialog()
+        pre.Create(wx.GetApp().GetTopWindow(), -1, _(u'Image reorientation'), style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT)
+        self.PostCreate(pre)
+
+        self._closed = False
+
+        self._last_ax = "0.0"
+        self._last_ay = "0.0"
+        self._last_az = "0.0"
+
+        self._init_gui()
+        self._bind_events()
+        self._bind_events_wx()
+
+    def _init_gui(self):
+        interp_methods_choices = ((_(u"Nearest Neighbour"), 0),
+                                  (_(u"Trilinear"), 1),
+                                  (_(u"Tricubic"), 2),
+                                  (_(u"Lanczos (experimental)"), 3))
+        self.interp_method = wx.ComboBox(self, -1, choices=[], style=wx.CB_READONLY)
+        for txt, im_code in interp_methods_choices:
+            self.interp_method.Append(txt, im_code)
+        self.interp_method.SetValue(interp_methods_choices[2][0])
+
+        self.anglex = wx.TextCtrl(self, -1, "0.0")
+        self.angley = wx.TextCtrl(self, -1, "0.0")
+        self.anglez = wx.TextCtrl(self, -1, "0.0")
+
+        self.btnapply = wx.Button(self, -1, _("Apply"))
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+
+        angles_sizer = wx.FlexGridSizer(3, 2, 5, 5)
+        angles_sizer.AddMany([
+            (wx.StaticText(self, -1, _("Angle X")), 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5),
+            (self.anglex, 0, wx.EXPAND | wx.ALL, 5),
+
+            (wx.StaticText(self, -1, _("Angle Y")), 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5),
+            (self.angley, 0, wx.EXPAND | wx.ALL, 5),
+
+            (wx.StaticText(self, -1, _("Angle Z")), 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5),
+            (self.anglez, 0, wx.EXPAND | wx.ALL, 5),
+        ])
+
+        sizer.Add(wx.StaticText(self, -1, _("Interpolation method:")), 0, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, 5)
+        sizer.Add(self.interp_method, 0, wx.EXPAND | wx.ALL, 5)
+        sizer.Add(angles_sizer, 0, wx.EXPAND | wx.ALL, 5)
+        sizer.Add(self.btnapply, 0, wx.EXPAND | wx.ALL, 5)
+        sizer.AddSpacer(5)
+
+        self.SetSizer(sizer)
+        self.Fit()
+
+    def _bind_events(self):
+        Publisher.subscribe(self._update_angles, 'Update reorient angles')
+        Publisher.subscribe(self._close_dialog, 'Close reorient dialog')
+
+    def _bind_events_wx(self):
+        self.interp_method.Bind(wx.EVT_COMBOBOX, self.OnSelect)
+
+        self.anglex.Bind(wx.EVT_KILL_FOCUS, self.OnLostFocus)
+        self.angley.Bind(wx.EVT_KILL_FOCUS, self.OnLostFocus)
+        self.anglez.Bind(wx.EVT_KILL_FOCUS, self.OnLostFocus)
+
+        self.anglex.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
+        self.angley.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
+        self.anglez.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
+
+        self.btnapply.Bind(wx.EVT_BUTTON, self.apply_reorientation)
+        self.Bind(wx.EVT_CLOSE, self.OnClose)
+
+    def _update_angles(self, pubsub_evt):
+        anglex, angley, anglez = pubsub_evt.data
+        self.anglex.SetValue("%.3f" % np.rad2deg(anglex))
+        self.angley.SetValue("%.3f" % np.rad2deg(angley))
+        self.anglez.SetValue("%.3f" % np.rad2deg(anglez))
+
+    def _close_dialog(self, pubsub_evt):
+        self.Destroy()
+
+    def apply_reorientation(self, evt):
+        Publisher.sendMessage('Apply reorientation')
+        self.Close()
+
+    def OnClose(self, evt):
+        self._closed = True
+        Publisher.sendMessage('Disable style', const.SLICE_STATE_REORIENT)
+        Publisher.sendMessage('Enable style', const.STATE_DEFAULT)
+        self.Destroy()
+
+    def OnSelect(self, evt):
+        im_code = self.interp_method.GetClientData(self.interp_method.GetSelection())
+        Publisher.sendMessage('Set interpolation method', im_code)
+
+    def OnSetFocus(self, evt):
+        self._last_ax = self.anglex.GetValue()
+        self._last_ay = self.angley.GetValue()
+        self._last_az = self.anglez.GetValue()
+
+    def OnLostFocus(self, evt):
+        if not self._closed:
+            try:
+                ax = np.deg2rad(float(self.anglex.GetValue()))
+                ay = np.deg2rad(float(self.angley.GetValue()))
+                az = np.deg2rad(float(self.anglez.GetValue()))
+            except ValueError:
+                self.anglex.SetValue(self._last_ax)
+                self.angley.SetValue(self._last_ay)
+                self.anglez.SetValue(self._last_az)
+                return
+            Publisher.sendMessage('Set reorientation angles', (ax, ay, az))
+
+
+class ImportBitmapParameters(wx.Dialog):
+    from os import sys
+
+    def __init__(self):
+        pre = wx.PreDialog()
+
+        if sys.platform == 'win32':
+            size=wx.Size(380,180)
+        else:
+            size=wx.Size(380,210)
+
+        pre.Create(wx.GetApp().GetTopWindow(), -1, _(u"Create project from bitmap"),size=size,\
+                                style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT|wx.STAY_ON_TOP)
+
+        self.interval = 0
+        
+        self.PostCreate(pre)
+
+        self._init_gui()
+
+        self.bind_evts()
+        self.CenterOnScreen()
+
+
+    def _init_gui(self):
+        
+        import invesalius.project as prj
+        
+        p = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL
+                     | wx.CLIP_CHILDREN
+                     | wx.FULL_REPAINT_ON_RESIZE)
+       
+        gbs_principal = self.gbs = wx.GridBagSizer(4,1)
+
+        gbs = self.gbs = wx.GridBagSizer(5, 2)
+       
+        flag_labels = wx.ALIGN_RIGHT  | wx.ALIGN_CENTER_VERTICAL
+
+        stx_name = wx.StaticText(p, -1, _(u"Project name:"))
+        tx_name = self.tx_name = wx.TextCtrl(p, -1, "InVesalius Bitmap", size=wx.Size(220,-1))
+
+        stx_orientation = wx.StaticText(p, -1, _(u"Slices orientation:"),)
+        cb_orientation_options = [_(u'Axial'), _(u'Coronal'), _(u'Sagital')]
+        cb_orientation = self.cb_orientation = wx.ComboBox(p, value="Axial", choices=cb_orientation_options,\
+                                                size=wx.Size(160,-1), style=wx.CB_DROPDOWN|wx.CB_READONLY)
+
+        stx_spacing = wx.StaticText(p, -1, _(u"Spacing (mm):"))
+
+        gbs.Add(stx_name, (0,0), flag=flag_labels)
+        gbs.Add(tx_name, (0,1))
+        gbs.AddStretchSpacer((1,0))
+
+        gbs.Add(stx_orientation, (2,0), flag=flag_labels)
+        gbs.Add(cb_orientation, (2,1))
+
+        gbs.Add(stx_spacing, (3,0))
+        gbs.AddStretchSpacer((4,0))
+
+        #--- spacing --------------
+        gbs_spacing = wx.GridBagSizer(2, 6)
+        
+        stx_spacing_x = stx_spacing_x = wx.StaticText(p, -1, _(u"X:"))
+        fsp_spacing_x = self.fsp_spacing_x = FS.FloatSpin(p, -1, min_val=0,\
+                                            increment=0.25, value=1.0, digits=8)
+
+
+        stx_spacing_y = stx_spacing_y = wx.StaticText(p, -1, _(u"Y:"))
+        fsp_spacing_y = self.fsp_spacing_y = FS.FloatSpin(p, -1, min_val=0,\
+                                            increment=0.25, value=1.0, digits=8)
+
+        stx_spacing_z = stx_spacing_z = wx.StaticText(p, -1, _(u"Z:"))
+        fsp_spacing_z = self.fsp_spacing_z = FS.FloatSpin(p, -1, min_val=0,\
+                                            increment=0.25, value=1.0, digits=8)
+
+
+        try:
+            proj = prj.Project()
+            
+            sx = proj.spacing[0]
+            sy = proj.spacing[1]
+            sz = proj.spacing[2]
+
+            fsp_spacing_x.SetValue(sx)
+            fsp_spacing_y.SetValue(sy)
+            fsp_spacing_z.SetValue(sz)
+
+        except(AttributeError):
+            pass
+
+        gbs_spacing.Add(stx_spacing_x, (0,0), flag=flag_labels)
+        gbs_spacing.Add(fsp_spacing_x, (0,1))
+
+        gbs_spacing.Add(stx_spacing_y, (0,2), flag=flag_labels)
+        gbs_spacing.Add(fsp_spacing_y, (0,3))
+
+        gbs_spacing.Add(stx_spacing_z, (0,4), flag=flag_labels)
+        gbs_spacing.Add(fsp_spacing_z, (0,5))
+
+        #----- buttons ------------------------
+        gbs_button = wx.GridBagSizer(2, 4)
+ 
+        btn_ok = self.btn_ok= wx.Button(p, wx.ID_OK)
+        btn_ok.SetDefault()
+
+        btn_cancel = wx.Button(p, wx.ID_CANCEL)
+
+        gbs_button.AddStretchSpacer((0,2))
+        gbs_button.Add(btn_cancel, (1,2))
+        gbs_button.Add(btn_ok, (1,3))
+
+        gbs_principal.AddSizer(gbs, (0,0), flag = wx.ALL|wx.EXPAND)
+        gbs_principal.AddSizer(gbs_spacing, (1,0),  flag=wx.ALL|wx.EXPAND)
+        gbs_principal.AddStretchSpacer((2,0))
+        gbs_principal.AddSizer(gbs_button, (3,0), flag = wx.ALIGN_RIGHT)
+
+        box = wx.BoxSizer()
+        box.AddSizer(gbs_principal, 1, wx.ALL|wx.EXPAND, 10)
+        
+        p.SetSizer(box)
+        box.Fit(self)
+        self.Layout()
+
+    def bind_evts(self):
+        self.btn_ok.Bind(wx.EVT_BUTTON, self.OnOk)
+   
+    def SetInterval(self, v):
+        self.interval = v
+
+    def OnOk(self, evt):
+        self.Close()
+        self.Destroy()
+
+        orient_selection = self.cb_orientation.GetSelection()
+
+        if(orient_selection == 1):
+            orientation = u"CORONAL"
+        elif(orient_selection == 2):
+            orientation = u"SAGITTAL"
+        else:
+            orientation = u"AXIAL"
+
+        values = [self.tx_name.GetValue(), orientation,\
+                  self.fsp_spacing_x.GetValue(), self.fsp_spacing_y.GetValue(),\
+                  self.fsp_spacing_z.GetValue(), self.interval]
+        Publisher.sendMessage('Open bitmap files', values)
+
+
+def BitmapNotSameSize():
+    
+    dlg = wx.MessageDialog(None,_("All bitmaps files must be the same \n width and height size."), 'Error',\
+                                wx.OK | wx.ICON_ERROR)
+ 
+    dlg.ShowModal()
+    dlg.Destroy()
+
+
+class PanelTargeFFill(wx.Panel):
+    def __init__(self, parent, ID=-1, style=wx.TAB_TRAVERSAL|wx.NO_BORDER):
+        wx.Panel.__init__(self, parent, ID, style=style)
+        self._init_gui()
+
+    def _init_gui(self):
+        self.target_2d = wx.RadioButton(self, -1, _(u"2D - Actual slice"), style=wx.RB_GROUP)
+        self.target_3d = wx.RadioButton(self, -1, _(u"3D - All slices"))
+
+        sizer = wx.GridBagSizer(5, 5)
+
+        sizer.AddStretchSpacer((0, 0))
+        sizer.Add(self.target_2d, (1, 0), (1, 6), flag=wx.LEFT, border=5)
+        sizer.Add(self.target_3d, (2, 0), (1, 6), flag=wx.LEFT, border=5)
+        sizer.AddStretchSpacer((3, 0))
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+class Panel2DConnectivity(wx.Panel):
+    def __init__(self, parent, ID=-1, show_orientation=False, style=wx.TAB_TRAVERSAL|wx.NO_BORDER):
+        wx.Panel.__init__(self, parent, ID, style=style)
+        self._init_gui(show_orientation)
+
+    def _init_gui(self, show_orientation):
+        self.conect2D_4 = wx.RadioButton(self, -1, "4", style=wx.RB_GROUP)
+        self.conect2D_8 = wx.RadioButton(self, -1, "8")
+
+        sizer = wx.GridBagSizer(5, 5)
+
+        sizer.AddStretchSpacer((0, 0))
+        sizer.Add(wx.StaticText(self, -1, _(u"2D Connectivity")), (1, 0), (1, 6), flag=wx.LEFT, border=5)
+        sizer.Add(self.conect2D_4, (2, 0), flag=wx.LEFT, border=7)
+        sizer.Add(self.conect2D_8, (2, 1), flag=wx.LEFT, border=7)
+        sizer.AddStretchSpacer((3, 0))
+
+        if show_orientation:
+            self.cmb_orientation = wx.ComboBox(self, -1, choices=(_(u"Axial"), _(u"Coronal"), _(u"Sagital")), style=wx.CB_READONLY)
+            self.cmb_orientation.SetSelection(0)
+
+            sizer.Add(wx.StaticText(self, -1, _(u"Orientation")), (4, 0), (1, 6), flag=wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, border=5)
+            sizer.Add(self.cmb_orientation, (5, 0), (1, 10), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+            sizer.AddStretchSpacer((6, 0))
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+    def GetConnSelected(self):
+        if self.conect2D_4.GetValue():
+            return 4
+        else:
+            return 8
+
+    def GetOrientation(self):
+        dic_ori = {
+            _(u"Axial"): 'AXIAL',
+            _(u"Coronal"): 'CORONAL',
+            _(u"Sagital"): 'SAGITAL'
+        }
+
+        return dic_ori[self.cmb_orientation.GetStringSelection()]
+
+
+class Panel3DConnectivity(wx.Panel):
+    def __init__(self, parent, ID=-1, style=wx.TAB_TRAVERSAL|wx.NO_BORDER):
+        wx.Panel.__init__(self, parent, ID, style=style)
+        self._init_gui()
+
+    def _init_gui(self):
+        self.conect3D_6 = wx.RadioButton(self, -1, "6", style=wx.RB_GROUP)
+        self.conect3D_18 = wx.RadioButton(self, -1, "18")
+        self.conect3D_26 = wx.RadioButton(self, -1, "26")
+
+        sizer = wx.GridBagSizer(5, 5)
+
+        sizer.AddStretchSpacer((0, 0))
+        sizer.Add(wx.StaticText(self, -1, _(u"3D Connectivity")), (1, 0), (1, 6), flag=wx.LEFT, border=5)
+        sizer.Add(self.conect3D_6, (2, 0), flag=wx.LEFT, border=9)
+        sizer.Add(self.conect3D_18, (2, 1), flag=wx.LEFT, border=9)
+        sizer.Add(self.conect3D_26, (2, 2), flag=wx.LEFT, border=9)
+        sizer.AddStretchSpacer((3, 0))
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+    def GetConnSelected(self):
+        if self.conect3D_6.GetValue():
+            return 6
+        elif self.conect3D_18.GetValue():
+            return 18
+        else:
+            return 26
+
+
+class PanelFFillThreshold(wx.Panel):
+    def __init__(self, parent, config, ID=-1, style=wx.TAB_TRAVERSAL|wx.NO_BORDER):
+        wx.Panel.__init__(self, parent, ID, style=style)
+
+        self.config = config
+
+        self._init_gui()
+
+    def _init_gui(self):
+        import invesalius.project as prj
+
+        project = prj.Project()
+        bound_min, bound_max = project.threshold_range
+        colour = [i*255 for i in const.MASK_COLOUR[0]]
+        colour.append(100)
+
+        self.threshold = grad.GradientCtrl(self, -1, int(bound_min),
+                                             int(bound_max), self.config.t0,
+                                             self.config.t1, colour)
+
+        # sizer
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.AddSpacer(5)
+        sizer.Add(self.threshold, 0, wx.EXPAND|wx.LEFT|wx.RIGHT, 5)
+        sizer.AddSpacer(5)
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+        self.Bind(grad.EVT_THRESHOLD_CHANGING, self.OnSlideChanged, self.threshold)
+        self.Bind(grad.EVT_THRESHOLD_CHANGED, self.OnSlideChanged, self.threshold)
+
+    def OnSlideChanged(self, evt):
+        self.config.t0 = int(self.threshold.GetMinValue())
+        self.config.t1 = int(self.threshold.GetMaxValue())
+        print self.config.t0, self.config.t1
+
+
+class PanelFFillDynamic(wx.Panel):
+    def __init__(self, parent, config, ID=-1, style=wx.TAB_TRAVERSAL|wx.NO_BORDER):
+        wx.Panel.__init__(self, parent, ID, style=style)
+
+        self.config = config
+
+        self._init_gui()
+
+    def _init_gui(self):
+        self.use_ww_wl = wx.CheckBox(self, -1,  _(u"Use WW&WL"))
+        self.use_ww_wl.SetValue(self.config.use_ww_wl)
+
+        self.deviation_min = wx.SpinCtrl(self, -1, value='%d' % self.config.dev_min, min=0, max=10000)
+        w, h = self.deviation_min.GetTextExtent('M')
+        self.deviation_min.SetMinSize((w*5, -1))
+
+        self.deviation_max = wx.SpinCtrl(self, -1, value='%d' % self.config.dev_max, min=0, max=10000)
+        self.deviation_max.SetMinSize((w*5, -1))
+
+        sizer = wx.GridBagSizer(5, 5)
+
+        sizer.AddStretchSpacer((0, 0))
+
+        sizer.Add(self.use_ww_wl, (1, 0), (1, 6), flag=wx.LEFT, border=5)
+
+        sizer.AddStretchSpacer((2, 0))
+
+        sizer.Add(wx.StaticText(self, -1, _(u"Deviation")), (3, 0), (1, 6), flag=wx.LEFT, border=5)
+
+        sizer.Add(wx.StaticText(self, -1, _(u"Min:")), (4, 0), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=9)
+        sizer.Add(self.deviation_min, (4, 1))
+
+        sizer.Add(wx.StaticText(self, -1, _(u"Max:")), (4, 2), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=9)
+        sizer.Add(self.deviation_max, (4, 3))
+
+        sizer.AddStretchSpacer((5, 0))
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+        self.use_ww_wl.Bind(wx.EVT_CHECKBOX, self.OnSetUseWWWL)
+        self.deviation_min.Bind(wx.EVT_SPINCTRL, self.OnSetDeviation)
+        self.deviation_max.Bind(wx.EVT_SPINCTRL, self.OnSetDeviation)
+
+    def OnSetUseWWWL(self, evt):
+        self.config.use_ww_wl = self.use_ww_wl.GetValue()
+
+    def OnSetDeviation(self, evt):
+        self.config.dev_max = self.deviation_max.GetValue()
+        self.config.dev_min = self.deviation_min.GetValue()
+
+
+class PanelFFillConfidence(wx.Panel):
+    def __init__(self, parent, config, ID=-1, style=wx.TAB_TRAVERSAL|wx.NO_BORDER):
+        wx.Panel.__init__(self, parent, ID, style=style)
+
+        self.config = config
+
+        self._init_gui()
+
+    def _init_gui(self):
+        self.use_ww_wl = wx.CheckBox(self, -1,  _(u"Use WW&WL"))
+        self.use_ww_wl.SetValue(self.config.use_ww_wl)
+
+        self.spin_mult = floatspin.FloatSpin(self, -1,
+                                             value=self.config.confid_mult,
+                                             min_val=1.0, max_val=10.0,
+                                             increment=0.1, digits=1,
+                                             style=wx.TE_PROCESS_TAB|wx.TE_PROCESS_ENTER,
+                                             agwStyle=floatspin.FS_RIGHT)
+        w, h = self.spin_mult.GetTextExtent('M')
+        self.spin_mult.SetMinSize((w*7, -1))
+
+        self.spin_iters = wx.SpinCtrl(self, -1, value='%d' % self.config.confid_iters, min=0, max=100)
+        self.spin_iters.SetMinSize((w*7, -1))
+
+        sizer = wx.GridBagSizer(5, 5)
+
+        sizer.AddStretchSpacer((0, 0))
+
+        sizer.Add(self.use_ww_wl, (1, 0), (1, 6), flag=wx.LEFT, border=5)
+
+        sizer.AddStretchSpacer((2, 0))
+
+        sizer.Add(wx.StaticText(self, -1, _(u"Multiplier")), (3, 0), (1, 3), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=5)
+        sizer.Add(self.spin_mult, (3, 3), (1, 2))
+
+        sizer.Add(wx.StaticText(self, -1, _(u"Iterations")), (4, 0), (1, 3), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=5)
+        sizer.Add(self.spin_iters, (4, 3), (1, 2))
+
+        sizer.AddStretchSpacer((5, 0))
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+        self.use_ww_wl.Bind(wx.EVT_CHECKBOX, self.OnSetUseWWWL)
+        self.spin_mult.Bind(wx.EVT_SPINCTRL, self.OnSetMult)
+        self.spin_iters.Bind(wx.EVT_SPINCTRL, self.OnSetIters)
+
+    def OnSetUseWWWL(self, evt):
+        self.config.use_ww_wl = self.use_ww_wl.GetValue()
+
+    def OnSetMult(self, evt):
+        self.config.confid_mult = self.spin_mult.GetValue()
+
+    def OnSetIters(self, evt):
+        self.config.confid_iters = self.spin_iters.GetValue()
+
+
+class FFillOptionsDialog(wx.Dialog):
+    def __init__(self, title, config):
+        pre = wx.PreDialog()
+        pre.Create(wx.GetApp().GetTopWindow(), -1, title, style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT)
+        self.PostCreate(pre)
+
+        self.config = config
+
+        self._init_gui()
+
+    def _init_gui(self):
+        """
+        Create the widgets.
+        """
+
+        # Target
+        if sys.platform == "win32":
+            border_style = wx.SIMPLE_BORDER
+        else:
+            border_style = wx.SUNKEN_BORDER
+
+        self.panel_target = PanelTargeFFill(self, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel2dcon = Panel2DConnectivity(self, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel3dcon = Panel3DConnectivity(self, style=border_style|wx.TAB_TRAVERSAL)
+
+        if self.config.target == "2D":
+            self.panel_target.target_2d.SetValue(1)
+            self.panel2dcon.Enable(1)
+            self.panel3dcon.Enable(0)
+        else:
+            self.panel_target.target_3d.SetValue(1)
+            self.panel3dcon.Enable(1)
+            self.panel2dcon.Enable(0)
+
+        # Connectivity 2D
+        if self.config.con_2d == 8:
+            self.panel2dcon.conect2D_8.SetValue(1)
+        else:
+            self.panel2dcon.conect2D_4.SetValue(1)
+            self.config.con_2d = 4
+
+        # Connectivity 3D
+        if self.config.con_3d == 18:
+            self.panel3dcon.conect3D_18.SetValue(1)
+        elif self.config.con_3d == 26:
+            self.panel3dcon.conect3D_26.SetValue(1)
+        else:
+            self.panel3dcon.conect3D_6.SetValue(1)
+
+        self.close_btn = wx.Button(self, wx.ID_CLOSE)
+
+        # Sizer
+        sizer = wx.BoxSizer(wx.VERTICAL)
+
+        sizer.AddSpacer(5)
+        sizer.Add(wx.StaticText(self, -1, _(u"Parameters")), flag=wx.LEFT, border=5)
+        sizer.AddSpacer(5)
+        sizer.Add(self.panel_target, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddSpacer(5)
+        sizer.Add(self.panel2dcon, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddSpacer(5)
+        sizer.Add(self.panel3dcon, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddSpacer(5)
+        sizer.Add(self.close_btn, 0, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=7)
+        sizer.AddSpacer(5)
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+        self.close_btn.Bind(wx.EVT_BUTTON, self.OnBtnClose)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnSetRadio)
+        self.Bind(wx.EVT_CLOSE, self.OnClose)
+
+    def OnBtnClose(self, evt):
+        self.Close()
+
+    def OnSetRadio(self, evt):
+        # Target
+        if self.panel_target.target_2d.GetValue():
+            self.config.target = "2D"
+            self.panel2dcon.Enable(1)
+            self.panel3dcon.Enable(0)
+        else:
+            self.config.target = "3D"
+            self.panel3dcon.Enable(1)
+            self.panel2dcon.Enable(0)
+
+        # 2D
+        if self.panel2dcon.conect2D_4.GetValue():
+            self.config.con_2d = 4
+        elif self.panel2dcon.conect2D_8.GetValue():
+            self.config.con_2d = 8
+
+        # 3D
+        if self.panel3dcon.conect3D_6.GetValue():
+            self.config.con_3d = 6
+        elif self.panel3dcon.conect3D_18.GetValue():
+            self.config.con_3d = 18
+        elif self.panel3dcon.conect3D_26.GetValue():
+            self.config.con_3d = 26
+
+    def OnClose(self, evt):
+        print "ONCLOSE"
+        if self.config.dlg_visible:
+            Publisher.sendMessage('Disable style', const.SLICE_STATE_MASK_FFILL)
+        evt.Skip()
+        self.Destroy()
+
+
+class SelectPartsOptionsDialog(wx.Dialog):
+    def __init__(self, config):
+        pre = wx.PreDialog()
+        pre.Create(wx.GetApp().GetTopWindow(), -1, _(u"Select mask parts"), style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT)
+        self.PostCreate(pre)
+
+        self.config = config
+
+        self.SetReturnCode(wx.CANCEL)
+
+        self._init_gui()
+
+    def _init_gui(self):
+        self.target_name = wx.TextCtrl(self, -1)
+        self.target_name.SetValue(self.config.mask_name)
+
+        # Connectivity 3D
+        self.panel3dcon = Panel3DConnectivity(self)
+        if self.config.con_3d == 18:
+            self.panel3dcon.conect3D_18.SetValue(1)
+        elif self.config.con_3d == 26:
+            self.panel3dcon.conect3D_26.SetValue(1)
+        else:
+            self.panel3dcon.conect3D_6.SetValue(1)
+
+        self.btn_ok = wx.Button(self, wx.ID_OK)
+        self.btn_cancel = wx.Button(self, wx.ID_CANCEL)
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+
+        sizer.AddSpacer(5)
+        sizer.Add(wx.StaticText(self, -1, _(u"Target mask name")), flag=wx.LEFT, border=5)
+        sizer.AddSpacer(5)
+        sizer.Add(self.target_name, flag=wx.LEFT|wx.EXPAND|wx.RIGHT, border=9)
+        sizer.AddSpacer(5)
+        sizer.Add(self.panel3dcon, flag=wx.LEFT|wx.RIGHT|wx.EXPAND)
+        sizer.AddSpacer(5)
+
+        btn_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        btn_sizer.Add(self.btn_ok, 0, flag=wx.ALIGN_RIGHT, border=5)
+        btn_sizer.Add(self.btn_cancel, 0, flag=wx.LEFT|wx.ALIGN_RIGHT, border=5)
+
+        sizer.AddSizer(btn_sizer, 0, flag=wx.ALIGN_RIGHT|wx.LEFT|wx.RIGHT, border=5)
+        sizer.AddSpacer(5)
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+        self.btn_ok.Bind(wx.EVT_BUTTON, self.OnOk)
+        self.btn_cancel.Bind(wx.EVT_BUTTON, self.OnCancel)
+
+        self.target_name.Bind(wx.EVT_CHAR, self.OnChar)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnSetRadio)
+        self.Bind(wx.EVT_CLOSE, self.OnClose)
+
+    def OnOk(self, evt):
+        self.SetReturnCode(wx.OK)
+        self.Close()
+
+    def OnCancel(self, evt):
+        self.SetReturnCode(wx.CANCEL)
+        self.Close()
+
+    def OnChar(self, evt):
+        evt.Skip()
+        self.config.mask_name = self.target_name.GetValue()
+
+    def OnSetRadio(self, evt):
+        if self.panel3dcon.conect3D_6.GetValue():
+            self.config.con_3d = 6
+        elif self.panel3dcon.conect3D_18.GetValue():
+            self.config.con_3d = 18
+        elif self.panel3dcon.conect3D_26.GetValue():
+            self.config.con_3d = 26
+
+    def OnClose(self, evt):
+        if self.config.dlg_visible:
+            Publisher.sendMessage('Disable style', const.SLICE_STATE_SELECT_MASK_PARTS)
+        evt.Skip()
+        self.Destroy()
+
+class FFillSegmentationOptionsDialog(wx.Dialog):
+    def __init__(self, config):
+        pre = wx.PreDialog()
+        pre.Create(wx.GetApp().GetTopWindow(), -1, _(u"Region growing"), style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT)
+        self.PostCreate(pre)
+
+        self.config = config
+
+        self._init_gui()
+
+    def _init_gui(self):
+        """
+        Create the widgets.
+        """
+        import invesalius.project as prj
+
+        # Target
+        if sys.platform == "win32":
+            border_style = wx.SIMPLE_BORDER
+        else:
+            border_style = wx.SUNKEN_BORDER
+
+        self.panel_target = PanelTargeFFill(self, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel2dcon = Panel2DConnectivity(self, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel3dcon = Panel3DConnectivity(self, style=border_style|wx.TAB_TRAVERSAL)
+
+        if self.config.target == "2D":
+            self.panel_target.target_2d.SetValue(1)
+            self.panel2dcon.Enable(1)
+            self.panel3dcon.Enable(0)
+        else:
+            self.panel_target.target_3d.SetValue(1)
+            self.panel3dcon.Enable(1)
+            self.panel2dcon.Enable(0)
+
+        # Connectivity 2D
+        if self.config.con_2d == 8:
+            self.panel2dcon.conect2D_8.SetValue(1)
+        else:
+            self.panel2dcon.conect2D_4.SetValue(1)
+            self.config.con_2d = 4
+
+        # Connectivity 3D
+        if self.config.con_3d == 18:
+            self.panel3dcon.conect3D_18.SetValue(1)
+        elif self.config.con_3d == 26:
+            self.panel3dcon.conect3D_26.SetValue(1)
+        else:
+            self.panel3dcon.conect3D_6.SetValue(1)
+
+        self.cmb_method = wx.ComboBox(self, -1, choices=(_(u"Dynamic"), _(u"Threshold"), _(u"Confidence")), style=wx.CB_READONLY)
+
+        if self.config.method == 'dynamic':
+            self.cmb_method.SetSelection(0)
+        elif self.config.method == 'threshold':
+            self.cmb_method.SetSelection(1)
+        elif self.config.method == 'confidence':
+            self.cmb_method.SetSelection(2)
+
+        self.panel_ffill_threshold = PanelFFillThreshold(self, self.config, -1, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel_ffill_threshold.SetMinSize((250, -1))
+        self.panel_ffill_threshold.Hide()
+
+        self.panel_ffill_dynamic = PanelFFillDynamic(self, self.config, -1, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel_ffill_dynamic.SetMinSize((250, -1))
+        self.panel_ffill_dynamic.Hide()
+
+        self.panel_ffill_confidence = PanelFFillConfidence(self, self.config, -1, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel_ffill_confidence.SetMinSize((250, -1))
+        self.panel_ffill_confidence.Hide()
+
+        self.close_btn = wx.Button(self, wx.ID_CLOSE)
+
+        # Sizer
+        sizer = wx.GridBagSizer(2, 2)
+
+        sizer.AddStretchSpacer((0, 0))
+        sizer.Add(wx.StaticText(self, -1, _(u"Parameters")), (1, 0), (1, 6), flag=wx.LEFT, border=5)
+        sizer.AddStretchSpacer((2, 0))
+        sizer.Add(self.panel_target, (3, 0), (1, 6), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddStretchSpacer((4, 0))
+        sizer.Add(self.panel2dcon, (5, 0), (1, 6), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddStretchSpacer((6, 0))
+        sizer.Add(self.panel3dcon, (7, 0), (1, 6), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddStretchSpacer((8, 0))
+
+        sizer.Add(wx.StaticText(self, -1, _(u"Method")), (9, 0), (1, 1), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=7)
+        sizer.Add(self.cmb_method, (9, 1), (1, 5), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+
+        sizer.AddStretchSpacer((10, 0))
+
+        if self.config.method == 'dynamic':
+            self.cmb_method.SetSelection(0)
+            self.panel_ffill_dynamic.Show()
+            sizer.Add(self.panel_ffill_dynamic, (11, 0), (1, 6), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        elif self.config.method == 'confidence':
+            self.cmb_method.SetSelection(2)
+            self.panel_ffill_confidence.Show()
+            sizer.Add(self.panel_ffill_confidence, (11, 0), (1, 6), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        else:
+            self.cmb_method.SetSelection(1)
+            self.panel_ffill_threshold.Show()
+            sizer.Add(self.panel_ffill_threshold, (11, 0), (1, 6), flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+            self.config.method = 'threshold'
+
+        sizer.AddStretchSpacer((12, 0))
+        sizer.Add(self.close_btn, (13, 0), (1, 6), flag=wx.ALIGN_RIGHT|wx.RIGHT, border=5)
+        sizer.AddStretchSpacer((14, 0))
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnSetRadio)
+        self.cmb_method.Bind(wx.EVT_COMBOBOX, self.OnSetMethod)
+        self.close_btn.Bind(wx.EVT_BUTTON, self.OnBtnClose)
+        self.Bind(wx.EVT_CLOSE, self.OnClose)
+
+    def OnSetRadio(self, evt):
+        # Target
+        if self.panel_target.target_2d.GetValue():
+            self.config.target = "2D"
+            self.panel2dcon.Enable(1)
+            self.panel3dcon.Enable(0)
+        else:
+            self.config.target = "3D"
+            self.panel3dcon.Enable(1)
+            self.panel2dcon.Enable(0)
+
+        # 2D
+        if self.panel2dcon.conect2D_4.GetValue():
+            self.config.con_2d = 4
+        elif self.panel2dcon.conect2D_8.GetValue():
+            self.config.con_2d = 8
+
+        # 3D
+        if self.panel3dcon.conect3D_6.GetValue():
+            self.config.con_3d = 6
+        elif self.panel3dcon.conect3D_18.GetValue():
+            self.config.con_3d = 18
+        elif self.panel3dcon.conect3D_26.GetValue():
+            self.config.con_3d = 26
+
+    def OnSetMethod(self, evt):
+        item_panel = self.GetSizer().FindItemAtPosition((11, 0)).GetWindow()
+
+        if self.cmb_method.GetSelection() == 0:
+            self.config.method = 'dynamic'
+            item_panel.Hide()
+            self.panel_ffill_dynamic.Show()
+            self.GetSizer().Replace(item_panel, self.panel_ffill_dynamic)
+
+        elif self.cmb_method.GetSelection() == 2:
+            self.config.method = 'confidence'
+            item_panel.Hide()
+            self.panel_ffill_confidence.Show()
+            self.GetSizer().Replace(item_panel, self.panel_ffill_confidence)
+
+        else:
+            self.config.method = 'threshold'
+            item_panel.Hide()
+            self.panel_ffill_threshold.Show()
+            self.GetSizer().Replace(item_panel, self.panel_ffill_threshold)
+
+        self.GetSizer().Fit(self)
+        self.Layout()
+
+    def OnBtnClose(self, evt):
+        self.Close()
+
+    def OnClose(self, evt):
+        if self.config.dlg_visible:
+            Publisher.sendMessage('Disable style', const.SLICE_STATE_MASK_FFILL)
+        evt.Skip()
+        self.Destroy()
+
+
+class CropOptionsDialog(wx.Dialog):
+    
+    def __init__(self, config):
+        self.config = config
+        pre = wx.PreDialog()
+
+        pre.Create(wx.GetApp().GetTopWindow(), -1, _(u"Crop mask"),\
+                    style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT)
+        self.PostCreate(pre)
+
+        self._init_gui()
+
+    def UpdateValues(self, pubsub_evt):
+
+        if type(pubsub_evt) == list:
+            data = pubsub_evt
+        else:
+            data = pubsub_evt.data
+
+        xi, xf, yi, yf, zi, zf = data
+
+        self.tx_axial_i.SetValue(str(zi))
+        self.tx_axial_f.SetValue(str(zf))
+
+        self.tx_sagital_i.SetValue(str(xi))
+        self.tx_sagital_f.SetValue(str(xf))
+
+        self.tx_coronal_i.SetValue(str(yi))
+        self.tx_coronal_f.SetValue(str(yf))
+
+    def _init_gui(self):
+        p = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL
+                     | wx.CLIP_CHILDREN
+                     | wx.FULL_REPAINT_ON_RESIZE)
+
+        gbs_principal = self.gbs = wx.GridBagSizer(4,1)
+
+        gbs = self.gbs = wx.GridBagSizer(3, 4)
+
+        flag_labels = wx.ALIGN_RIGHT  | wx.ALIGN_CENTER_VERTICAL
+
+        txt_style = wx.TE_READONLY
+
+        stx_axial = wx.StaticText(p, -1, _(u"Axial:"))
+        self.tx_axial_i = tx_axial_i = wx.TextCtrl(p, -1, "", size=wx.Size(50,-1), style=txt_style)
+        stx_axial_t = wx.StaticText(p, -1, _(u" - "))
+        self.tx_axial_f = tx_axial_f = wx.TextCtrl(p, -1, "", size=wx.Size(50,-1), style=txt_style)
+
+        gbs.Add(stx_axial, (0,0), flag=flag_labels)
+        gbs.Add(tx_axial_i, (0,1))
+        gbs.Add(stx_axial_t, (0,2), flag=flag_labels)
+        gbs.Add(tx_axial_f, (0,3))
+
+        stx_sagital = wx.StaticText(p, -1, _(u"Sagital:"))
+        self.tx_sagital_i = tx_sagital_i = wx.TextCtrl(p, -1, "", size=wx.Size(50,-1), style=txt_style)
+        stx_sagital_t = wx.StaticText(p, -1, _(u" - "))
+        self.tx_sagital_f = tx_sagital_f = wx.TextCtrl(p, -1, "", size=wx.Size(50,-1), style=txt_style)
+
+        gbs.Add(stx_sagital, (1,0), flag=flag_labels)
+        gbs.Add(tx_sagital_i, (1,1))
+        gbs.Add(stx_sagital_t, (1,2), flag=flag_labels)
+        gbs.Add(tx_sagital_f, (1,3))
+
+        stx_coronal = wx.StaticText(p, -1, _(u"Coronal:"))
+        self.tx_coronal_i = tx_coronal_i = wx.TextCtrl(p, -1, "", size=wx.Size(50,-1), style=txt_style)
+        stx_coronal_t = wx.StaticText(p, -1, _(u" - "))
+        self.tx_coronal_f = tx_coronal_f = wx.TextCtrl(p, -1, "", size=wx.Size(50,-1), style=txt_style)
+
+        gbs.Add(stx_coronal, (2,0), flag=flag_labels)
+        gbs.Add(tx_coronal_i, (2,1))
+        gbs.Add(stx_coronal_t, (2,2), flag=flag_labels)
+        gbs.Add(tx_coronal_f, (2,3))
+
+        gbs_button = wx.GridBagSizer(2, 4)
+
+        btn_ok = self.btn_ok= wx.Button(p, wx.ID_OK)
+        btn_ok.SetDefault()
+
+        btn_cancel = wx.Button(p, wx.ID_CANCEL)
+
+        gbs_button.Add(btn_cancel, (0,0))
+        gbs_button.Add(btn_ok, (0,1))
+
+        gbs_principal.AddSizer(gbs, (0,0), flag = wx.ALL|wx.EXPAND)
+        gbs_principal.AddStretchSpacer((1,0))
+        gbs_principal.AddStretchSpacer((2,0))
+        gbs_principal.AddSizer(gbs_button, (3,0), flag = wx.ALIGN_RIGHT)
+
+        box = wx.BoxSizer()
+        box.AddSizer(gbs_principal, 1, wx.ALL|wx.EXPAND, 10)
+
+        p.SetSizer(box)
+        box.Fit(p)
+        p.Layout()
+
+        sizer = wx.BoxSizer()
+        sizer.Add(p, 1, wx.EXPAND)
+        sizer.Fit(self)
+        self.Layout()
+
+        Publisher.subscribe(self.UpdateValues, 'Update crop limits into gui')
+
+        btn_ok.Bind(wx.EVT_BUTTON, self.OnOk)
+        btn_cancel.Bind(wx.EVT_BUTTON, self.OnClose)
+        self.Bind(wx.EVT_CLOSE, self.OnClose)
+
+
+    def OnOk(self, evt):
+        self.config.dlg_visible = False
+        Publisher.sendMessage('Crop mask')
+        Publisher.sendMessage('Disable style', const.SLICE_STATE_CROP_MASK)
+        evt.Skip()
+
+    def OnClose(self, evt):
+        self.config.dlg_visible = False
+        Publisher.sendMessage('Disable style', const.SLICE_STATE_CROP_MASK)
+        evt.Skip()
+        self.Destroy()
+
+
+class FillHolesAutoDialog(wx.Dialog):
+    def __init__(self, title):
+        pre = wx.PreDialog()
+        pre.Create(wx.GetApp().GetTopWindow(), -1, title, style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT)
+        self.PostCreate(pre)
+
+        self._init_gui()
+
+    def _init_gui(self):
+        if sys.platform == "win32":
+            border_style = wx.SIMPLE_BORDER
+        else:
+            border_style = wx.SUNKEN_BORDER
+
+        self.spin_size = wx.SpinCtrl(self, -1, value='1000', min=1, max=1000000000)
+        self.panel_target = PanelTargeFFill(self, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel2dcon = Panel2DConnectivity(self, show_orientation=True, style=border_style|wx.TAB_TRAVERSAL)
+        self.panel3dcon = Panel3DConnectivity(self, style=border_style|wx.TAB_TRAVERSAL)
+
+        self.panel_target.target_2d.SetValue(1)
+        self.panel2dcon.Enable(1)
+        self.panel3dcon.Enable(0)
+
+        self.apply_btn = wx.Button(self, wx.ID_APPLY)
+        self.close_btn = wx.Button(self, wx.ID_CLOSE)
+
+        # Sizer
+        sizer = wx.BoxSizer(wx.VERTICAL)
+
+        sizer.AddSpacer(5)
+        sizer.Add(wx.StaticText(self, -1, _(u"Parameters")), flag=wx.LEFT, border=5)
+        sizer.AddSpacer(5)
+
+        sizer.Add(self.panel_target, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddSpacer(5)
+        sizer.Add(self.panel2dcon, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddSpacer(5)
+        sizer.Add(self.panel3dcon, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddSpacer(5)
+
+        spin_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        spin_sizer.Add(wx.StaticText(self, -1, _(u"Max hole size")), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5)
+        spin_sizer.Add(self.spin_size, 0, flag=wx.LEFT|wx.RIGHT, border=5)
+        spin_sizer.Add(wx.StaticText(self, -1, _(u"voxels")), flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, border=5)
+
+        sizer.Add(spin_sizer, 0, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, border=7)
+        sizer.AddSpacer(5)
+
+        btn_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        btn_sizer.Add(self.apply_btn, 0, flag=wx.ALIGN_RIGHT, border=5)
+        btn_sizer.Add(self.close_btn, 0, flag=wx.LEFT|wx.ALIGN_RIGHT, border=5)
+
+        sizer.AddSizer(btn_sizer, 0, flag=wx.ALIGN_RIGHT|wx.LEFT|wx.RIGHT, border=5)
+
+        sizer.AddSpacer(5)
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+        self.Layout()
+
+        self.apply_btn.Bind(wx.EVT_BUTTON, self.OnApply)
+        self.close_btn.Bind(wx.EVT_BUTTON, self.OnBtnClose)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnSetRadio)
+
+    def OnApply(self, evt):
+        if self.panel_target.target_2d.GetValue():
+            target = "2D"
+            conn = self.panel2dcon.GetConnSelected()
+            orientation = self.panel2dcon.GetOrientation()
+        else:
+            target = "3D"
+            conn = self.panel3dcon.GetConnSelected()
+            orientation = 'VOLUME'
+
+        data = {
+            'target': target,
+            'conn': conn,
+            'orientation': orientation,
+            'size': self.spin_size.GetValue(),
+        }
+
+        Publisher.sendMessage("Fill holes automatically", data)
+
+
+    def OnBtnClose(self, evt):
+        self.Close()
+        self.Destroy()
+
+    def OnSetRadio(self, evt):
+        # Target
+        if self.panel_target.target_2d.GetValue():
+            self.panel2dcon.Enable(1)
+            self.panel3dcon.Enable(0)
+        else:
+            self.panel3dcon.Enable(1)
+            self.panel2dcon.Enable(0)
diff --git a/invesalius/gui/dicom_preview_panel.py b/invesalius/gui/dicom_preview_panel.py
index 8d31e7c..52d2326 100644
--- a/invesalius/gui/dicom_preview_panel.py
+++ b/invesalius/gui/dicom_preview_panel.py
@@ -21,6 +21,7 @@
 # -*- coding: UTF-8 -*-
 
 #TODO: To create a beautiful API
+import sys
 import time
 import tempfile
 
@@ -31,12 +32,20 @@ from vtk.util import  numpy_support
 from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-from reader import dicom_reader
-import data.vtk_utils as vtku
-import utils
+import invesalius.constants as const
+import invesalius.reader.dicom_reader as dicom_reader
+import invesalius.data.vtk_utils as vtku
+import invesalius.utils as utils
 import vtkgdcm
 
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
 
 NROWS = 3
 NCOLS = 6
@@ -837,7 +846,10 @@ class SingleImagePreview(wx.Panel):
         self.text_acquisition.SetValue(value)
 
         rdicom = vtkgdcm.vtkGDCMImageReader()
-        rdicom.SetFileName(dicom.image.file)
+        if _has_win32api:
+            rdicom.SetFileName(win32api.GetShortPathName(dicom.image.file).encode(const.FS_ENCODE))
+        else:
+            rdicom.SetFileName(dicom.image.file)
         rdicom.Update()
 
         # ADJUST CONTRAST
diff --git a/invesalius/gui/frame.py b/invesalius/gui/frame.py
index ebaaf07..1ae4759 100644
--- a/invesalius/gui/frame.py
+++ b/invesalius/gui/frame.py
@@ -31,17 +31,17 @@ import wx.lib.popupctl as pc
 
 from wx.lib.agw.aui.auibar import AuiToolBar, AUI_TB_PLAIN_BACKGROUND
 
-import constants as const
-import default_tasks as tasks
-import default_viewers as viewers
-import gui.dialogs as dlg
-import import_panel as imp
-import import_network_panel as imp_net
-import project as prj
-import session as ses
-import utils
-import preferences
-
+import invesalius.constants as const
+import invesalius.gui.default_tasks as tasks
+import invesalius.gui.default_viewers as viewers
+import invesalius.gui.dialogs as dlg
+import invesalius.gui.import_panel as imp
+import invesalius.gui.import_bitmap_panel as imp_bmp
+import invesalius.gui.import_network_panel as imp_net
+import invesalius.project as prj
+import invesalius.session as ses
+import invesalius.utils as utils
+import invesalius.gui.preferences as preferences
 # Layout tools' IDs - this is used only locally, therefore doesn't
 # need to be defined in constants.py
 VIEW_TOOLS = [ID_LAYOUT, ID_TEXT] =\
@@ -84,6 +84,7 @@ class Frame(wx.Frame):
 
         self.mw = None
 
+
         if sys.platform != 'darwin':
             self.Maximize()
 
@@ -93,9 +94,16 @@ class Frame(wx.Frame):
         self.SetSize(self.GetSize())
         #self.SetSize(wx.Size(1024, 748))
 
+        self._show_navigator_message = True
+
+        #to control check and unckeck of menu view -> interpolated_slices
+        main_menu = MenuBar(self)
+
+        self.actived_interpolated_slices = main_menu.view_menu
+        self.actived_navigation_mode = main_menu.mode_menu
 
         # Set menus, status and task bar
-        self.SetMenuBar(MenuBar(self))
+        self.SetMenuBar(main_menu)
         self.SetStatusBar(StatusBar(self))
 
         # Set TaskBarIcon
@@ -126,6 +134,7 @@ class Frame(wx.Frame):
         sub(self._ShowImportPanel, 'Show import panel in frame')
         #sub(self._ShowHelpMessage, 'Show help message')
         sub(self._ShowImportNetwork, 'Show retrieve dicom panel')
+        sub(self._ShowImportBitmap, 'Show import bitmap panel in frame')
         sub(self._ShowTask, 'Show task panel')
         sub(self._UpdateAUI, 'Update AUI')
         sub(self._Exit, 'Exit')
@@ -166,12 +175,17 @@ class Frame(wx.Frame):
                           Hide().Layer(1).MaximizeButton(True).
                           Name("Data").Position(1))
 
-        # This is the DICOM import panel. When the two panels above
-        # are shown, this should be hiden
+        # This is the DICOM import panel. When the two panels above as dicom        # are shown, this should be hiden
         caption = _("Preview medical data to be reconstructed")
         aui_manager.AddPane(imp.Panel(self), wx.aui.AuiPaneInfo().
-                          Name("Import").Centre().Hide().
-                          MaximizeButton(True).Floatable(True).
+                          Name("Import").CloseButton(False).Centre().Hide().
+                          MaximizeButton(False).Floatable(True).
+                          Caption(caption).CaptionVisible(True))
+
+        caption = _("Preview bitmap to be reconstructed")
+        aui_manager.AddPane(imp_bmp.Panel(self), wx.aui.AuiPaneInfo().
+                          Name("ImportBMP").CloseButton(False).Centre().Hide().
+                          MaximizeButton(False).Floatable(True).
                           Caption(caption).CaptionVisible(True))
 
         ncaption = _("Retrieve DICOM from PACS")
@@ -298,6 +312,9 @@ class Frame(wx.Frame):
         Publisher.sendMessage("Set layout button full")
         aui_manager = self.aui_manager
         aui_manager.GetPane("Import").Show(0)
+        
+        aui_manager.GetPane("ImportBMP").Show(0)
+
         aui_manager.GetPane("Data").Show(1)
         aui_manager.GetPane("Tasks").Show(1)
         aui_manager.Update()
@@ -314,6 +331,18 @@ class Frame(wx.Frame):
         aui_manager.GetPane("Import").Show(0)
         aui_manager.Update()
 
+    def _ShowImportBitmap(self, evt_pubsub):
+        """
+        Show viewers and task, hide import panel.
+        """
+        Publisher.sendMessage("Set layout button full")
+        aui_manager = self.aui_manager
+        aui_manager.GetPane("ImportBMP").Show(1)
+        aui_manager.GetPane("Data").Show(0)
+        aui_manager.GetPane("Tasks").Show(0)
+        aui_manager.GetPane("Import").Show(0)
+        aui_manager.Update()
+
     def _ShowHelpMessage(self, evt_pubsub):
         aui_manager = self.aui_manager
         pos = aui_manager.GetPane("Data").window.GetScreenPosition()
@@ -324,8 +353,7 @@ class Frame(wx.Frame):
 
     def _ShowImportPanel(self, evt_pubsub):
         """
-        Show only DICOM import panel.
-        """
+        Show only DICOM import panel. as dicom        """
         Publisher.sendMessage("Set layout button data only")
         aui_manager = self.aui_manager
         aui_manager.GetPane("Import").Show(1)
@@ -354,6 +382,7 @@ class Frame(wx.Frame):
         Close all project data.
         """
         Publisher.sendMessage('Close Project')
+        Publisher.sendMessage('Disconnect tracker')
         s = ses.Session()
         if not s.IsOpen() or not s.project_path:
             Publisher.sendMessage('Exit')
@@ -370,7 +399,13 @@ class Frame(wx.Frame):
         elif id == const.ID_PROJECT_OPEN:
             self.ShowOpenProject()
         elif id == const.ID_ANALYZE_IMPORT:
-            self.ShowAnalyzeImporter()
+            self.ShowImportOtherFiles(id)
+        elif id == const.ID_NIFTI_IMPORT:
+            self.ShowImportOtherFiles(id)
+        elif id == const.ID_PARREC_IMPORT:
+            self.ShowImportOtherFiles(id)
+        elif id == const.ID_TIFF_JPG_PNG:
+            self.ShowBitmapImporter()
         elif id == const.ID_PROJECT_SAVE:
             session = ses.Session()
             if session.temp_item:
@@ -411,6 +446,64 @@ class Frame(wx.Frame):
         elif id == const.ID_CLEAN_MASK:
             self.OnCleanMask()
 
+        elif id == const.ID_REORIENT_IMG:
+            self.OnReorientImg()
+
+        elif id == const.ID_THRESHOLD_SEGMENTATION:
+            Publisher.sendMessage("Show panel", const.ID_THRESHOLD_SEGMENTATION)
+            Publisher.sendMessage('Disable actual style')
+            Publisher.sendMessage('Enable style', const.STATE_DEFAULT)
+
+        elif id == const.ID_MANUAL_SEGMENTATION:
+            Publisher.sendMessage("Show panel", const.ID_MANUAL_SEGMENTATION)
+            Publisher.sendMessage('Disable actual style')
+            Publisher.sendMessage('Enable style', const.SLICE_STATE_EDITOR)
+
+        elif id == const.ID_WATERSHED_SEGMENTATION:
+            Publisher.sendMessage("Show panel", const.ID_WATERSHED_SEGMENTATION)
+            Publisher.sendMessage('Disable actual style')
+            Publisher.sendMessage('Enable style', const.SLICE_STATE_WATERSHED)
+
+        elif id == const.ID_FLOODFILL_MASK:
+            self.OnFillHolesManually()
+
+        elif id == const.ID_FILL_HOLE_AUTO:
+            self.OnFillHolesAutomatically()
+
+        elif id == const.ID_REMOVE_MASK_PART:
+            self.OnRemoveMaskParts()
+
+        elif id == const.ID_SELECT_MASK_PART:
+            self.OnSelectMaskParts()
+
+        elif id == const.ID_FLOODFILL_SEGMENTATION:
+            self.OnFFillSegmentation()
+
+        elif id == const.ID_VIEW_INTERPOLATED:
+            st = self.actived_interpolated_slices.IsChecked(const.ID_VIEW_INTERPOLATED)
+            if st:
+                self.OnInterpolatedSlices(True)
+            else:
+                self.OnInterpolatedSlices(False)
+
+        elif id == const.ID_MODE_NAVIGATION:
+            st = self.actived_navigation_mode.IsChecked(const.ID_MODE_NAVIGATION)
+            self.OnNavigationMode(st)
+
+        elif id == const.ID_CROP_MASK:
+            self.OnCropMask()
+
+    def OnInterpolatedSlices(self, status):
+        Publisher.sendMessage('Set interpolated slices', status)
+
+    def OnNavigationMode(self, status):
+        if status and self._show_navigator_message and sys.platform != 'win32':
+            wx.MessageBox(_('Currently the Navigation mode is only working on Windows'), 'Info', wx.OK | wx.ICON_INFORMATION)
+            self._show_navigator_message = False
+        Publisher.sendMessage('Set navigation mode', status)
+        if not status:
+            Publisher.sendMessage('Remove sensors ID')
+
     def OnSize(self, evt):
         """
         Refresh GUI when frame is resized.
@@ -444,9 +537,13 @@ class Frame(wx.Frame):
             ses.Session().rendering = values[const.RENDERING]
             ses.Session().surface_interpolation = values[const.SURFACE_INTERPOLATION]
             ses.Session().language = values[const.LANGUAGE]
+            ses.Session().slice_interpolation = values[const.SLICE_INTERPOLATION]
 
             Publisher.sendMessage('Remove Volume')
             Publisher.sendMessage('Reset Reaycasting')
+            Publisher.sendMessage('Update Slice Interpolation')
+            Publisher.sendMessage('Update Slice Interpolation MenuBar')
+            Publisher.sendMessage('Update Navigation Mode MenuBar')
             Publisher.sendMessage('Update Surface Interpolation')
 
     def ShowAbout(self):
@@ -465,18 +562,28 @@ class Frame(wx.Frame):
         """
         Show getting started window.
         """
+        if ses.Session().language == 'pt_BR':
+            user_guide = "user_guide_pt_BR.pdf"
+        else:
+            user_guide = "user_guide_en.pdf"
+
         path = os.path.join(const.DOC_DIR,
-                            "user_guide_pt_BR.pdf")
+                            user_guide)
         if sys.platform == 'darwin':
             path = r'file://' + path
         webbrowser.open(path)
 
     def ShowImportDicomPanel(self):
         """
-        Show import DICOM panel.
-        """
+        Show import DICOM panel. as dicom        """
         Publisher.sendMessage('Show import directory dialog')
 
+    def ShowImportOtherFiles(self, id_file):
+        """
+        Show import Analyze, NiFTI1 or PAR/REC dialog.
+        """
+        Publisher.sendMessage('Show import other files dialog', id_file)
+
     def ShowRetrieveDicomPanel(self):
         Publisher.sendMessage('Show retrieve dicom panel')
 
@@ -492,11 +599,11 @@ class Frame(wx.Frame):
         """
         Publisher.sendMessage('Show save dialog', True)
 
-    def ShowAnalyzeImporter(self):
+    def ShowBitmapImporter(self):
         """
-        Show save as dialog.
+        Tiff, BMP, JPEG and PNG
         """
-        Publisher.sendMessage('Show analyze dialog', True)
+        Publisher.sendMessage('Show bitmap dialog', True)
 
     def FlipVolume(self, axis):
         Publisher.sendMessage('Flip volume', axis)
@@ -520,6 +627,33 @@ class Frame(wx.Frame):
         Publisher.sendMessage('Clean current mask')
         Publisher.sendMessage('Reload actual slice')
 
+    def OnReorientImg(self):
+        Publisher.sendMessage('Enable style', const.SLICE_STATE_REORIENT)
+        rdlg = dlg.ReorientImageDialog()
+        rdlg.Show()
+
+    def OnFillHolesManually(self):
+        Publisher.sendMessage('Enable style', const.SLICE_STATE_MASK_FFILL)
+
+    def OnFillHolesAutomatically(self):
+        fdlg = dlg.FillHolesAutoDialog(_(u"Fill holes automatically"))
+        fdlg.Show()
+
+    def OnRemoveMaskParts(self):
+        Publisher.sendMessage('Enable style', const.SLICE_STATE_REMOVE_MASK_PARTS)
+
+    def OnSelectMaskParts(self):
+        Publisher.sendMessage('Enable style', const.SLICE_STATE_SELECT_MASK_PARTS)
+
+    def OnFFillSegmentation(self):
+        Publisher.sendMessage('Enable style', const.SLICE_STATE_FFILL_SEGMENTATION)
+
+    def OnInterpolatedSlices(self, status):
+        Publisher.sendMessage('Set interpolated slices', status)
+    
+    def OnCropMask(self):
+        Publisher.sendMessage('Enable style', const.SLICE_STATE_CROP_MASK)
+
 # ------------------------------------------------------------------
 # ------------------------------------------------------------------
 # ------------------------------------------------------------------
@@ -538,7 +672,24 @@ class MenuBar(wx.MenuBar):
         # not. Eg. save should only be available if a project is open
         self.enable_items = [const.ID_PROJECT_SAVE,
                              const.ID_PROJECT_SAVE_AS,
-                             const.ID_PROJECT_CLOSE]
+                             const.ID_PROJECT_CLOSE,
+                             const.ID_REORIENT_IMG,
+                             const.ID_FLOODFILL_MASK,
+                             const.ID_FILL_HOLE_AUTO,
+                             const.ID_REMOVE_MASK_PART,
+                             const.ID_SELECT_MASK_PART,
+                             const.ID_FLOODFILL_SEGMENTATION,
+                             const.ID_FLIP_X,
+                             const.ID_FLIP_Y,
+                             const.ID_FLIP_Z,
+                             const.ID_SWAP_XY,
+                             const.ID_SWAP_XZ,
+                             const.ID_SWAP_YZ,
+                             const.ID_THRESHOLD_SEGMENTATION,
+                             const.ID_MANUAL_SEGMENTATION,
+                             const.ID_WATERSHED_SEGMENTATION,
+                             const.ID_THRESHOLD_SEGMENTATION,
+                             const.ID_FLOODFILL_SEGMENTATION,]
         self.__init_items()
         self.__bind_events()
 
@@ -556,10 +707,13 @@ class MenuBar(wx.MenuBar):
         sub(self.OnEnableState, "Enable state project")
         sub(self.OnEnableUndo, "Enable undo")
         sub(self.OnEnableRedo, "Enable redo")
+        sub(self.OnEnableNavigation, "Navigation Status")
 
         sub(self.OnAddMask, "Add mask")
         sub(self.OnRemoveMasks, "Remove masks")
         sub(self.OnShowMask, "Show mask")
+        sub(self.OnUpdateSliceInterpolation, "Update Slice Interpolation MenuBar")
+        sub(self.OnUpdateNavigationMode, "Update Navigation Mode MenuBar")
 
         self.num_masks = 0
 
@@ -571,7 +725,10 @@ class MenuBar(wx.MenuBar):
 
         #Import Others Files
         others_file_menu = wx.Menu()
-        others_file_menu.Append(const.ID_ANALYZE_IMPORT, "Analyze")
+        others_file_menu.Append(const.ID_ANALYZE_IMPORT, _("Analyze 7.5"))
+        others_file_menu.Append(const.ID_NIFTI_IMPORT, _("NIfTI 1"))
+        others_file_menu.Append(const.ID_PARREC_IMPORT, _("PAR/REC"))
+        others_file_menu.Append(const.ID_TIFF_JPG_PNG, u"TIFF,BMP,JPG or PNG (\xb5CT)")
 
         # FILE
         file_menu = wx.Menu()
@@ -593,26 +750,7 @@ class MenuBar(wx.MenuBar):
         #file_menu.AppendSeparator()
         app(const.ID_EXIT, _("Exit\tCtrl+Q"))
 
-
-        ############################### EDIT###############################
-        # Flip
-        #flip_menu = wx.Menu()
-        #app = flip_menu.Append
-        #app(const.ID_FLIP_X, _("R <-> L"))
-        #app(const.ID_FLIP_Y, _("A <-> P"))
-        #app(const.ID_FLIP_Z, _("T <-> B"))
-
-        #swap_axes_menu = wx.Menu()
-        #app = swap_axes_menu.Append
-        #app(const.ID_SWAP_XY, _("R-L <-> A-P"))
-        #app(const.ID_SWAP_XZ, _("R-L <-> T-B"))
-        #app(const.ID_SWAP_YZ, _("A-P <-> T-B"))
-
         file_edit = wx.Menu()
-        #file_edit.AppendMenu(wx.NewId(), _('Flip'), flip_menu)
-        #file_edit.AppendMenu(wx.NewId(), _('Swap axes'), swap_axes_menu)
-
-
         d = const.ICON_DIR
         if not(sys.platform == 'darwin'):
             # Bitmaps for show/hide task panel item
@@ -648,10 +786,71 @@ class MenuBar(wx.MenuBar):
         self.clean_mask_menu = mask_menu.Append(const.ID_CLEAN_MASK, _(u"Clean Mask\tCtrl+Shift+A"))
         self.clean_mask_menu.Enable(False)
 
+        mask_menu.AppendSeparator()
+
+        self.fill_hole_mask_menu = mask_menu.Append(const.ID_FLOODFILL_MASK, _(u"Fill holes manually"))
+        self.fill_hole_mask_menu.Enable(False)
+
+        self.fill_hole_auto_menu = mask_menu.Append(const.ID_FILL_HOLE_AUTO, _(u"Fill holes automatically"))
+        self.fill_hole_mask_menu.Enable(False)
+
+        mask_menu.AppendSeparator()
+
+        self.remove_mask_part_menu = mask_menu.Append(const.ID_REMOVE_MASK_PART, _(u"Remove parts"))
+        self.remove_mask_part_menu.Enable(False)
+
+        self.select_mask_part_menu = mask_menu.Append(const.ID_SELECT_MASK_PART, _(u"Select parts"))
+        self.select_mask_part_menu.Enable(False)
+
+        mask_menu.AppendSeparator()
+
+        self.crop_mask_menu = mask_menu.Append(const.ID_CROP_MASK, _("Crop"))
+        self.crop_mask_menu.Enable(False)
+
+        # Segmentation Menu
+        segmentation_menu = wx.Menu()
+        self.threshold_segmentation = segmentation_menu.Append(const.ID_THRESHOLD_SEGMENTATION, _(u"Threshold"))
+        self.manual_segmentation = segmentation_menu.Append(const.ID_MANUAL_SEGMENTATION, _(u"Manual segmentation"))
+        self.watershed_segmentation = segmentation_menu.Append(const.ID_WATERSHED_SEGMENTATION, _(u"Watershed"))
+        self.ffill_segmentation = segmentation_menu.Append(const.ID_FLOODFILL_SEGMENTATION, _(u"Region growing"))
+        self.ffill_segmentation.Enable(False)
+
+        # Image menu
+        image_menu = wx.Menu()
+
+        # Flip
+        flip_menu = wx.Menu()
+        flip_menu.Append(const.ID_FLIP_X, _("Right - Left")).Enable(False)
+        flip_menu.Append(const.ID_FLIP_Y, _("Anterior - Posterior")).Enable(False)
+        flip_menu.Append(const.ID_FLIP_Z, _("Top - Bottom")).Enable(False)
+
+        swap_axes_menu = wx.Menu()
+        swap_axes_menu.Append(const.ID_SWAP_XY, _("From Right-Left to Anterior-Posterior")).Enable(False)
+        swap_axes_menu.Append(const.ID_SWAP_XZ, _("From Right-Left to Top-Bottom")).Enable(False)
+        swap_axes_menu.Append(const.ID_SWAP_YZ, _("From Anterior-Posterior to Top-Bottom")).Enable(False)
+
+        image_menu.AppendMenu(wx.NewId(), _('Flip'), flip_menu)
+        image_menu.AppendMenu(wx.NewId(), _('Swap axes'), swap_axes_menu)
+
+        reorient_menu = image_menu.Append(const.ID_REORIENT_IMG, _(u'Reorient image\tCtrl+Shift+R'))
+
+        reorient_menu.Enable(False)
+        tools_menu.AppendMenu(-1, _(u'Image'), image_menu)
         tools_menu.AppendMenu(-1,  _(u"Mask"), mask_menu)
+        tools_menu.AppendMenu(-1, _("Segmentation"), segmentation_menu)
+
+
+        #View
+
+        self.view_menu = view_menu = wx.Menu()
+        view_menu.Append(const.ID_VIEW_INTERPOLATED, _(u'Interpolated slices'), "", wx.ITEM_CHECK)
+
+
+        v = self.SliceInterpolationStatus()
+        self.view_menu.Check(const.ID_VIEW_INTERPOLATED, v)
 
+        self.actived_interpolated_slices = self.view_menu
 
-        # VIEW
         #view_tool_menu = wx.Menu()
         #app = view_tool_menu.Append
         #app(const.ID_TOOL_PROJECT, "Project Toolbar")
@@ -683,6 +882,15 @@ class MenuBar(wx.MenuBar):
         options_menu = wx.Menu()
         options_menu.Append(const.ID_PREFERENCES, _("Preferences..."))
 
+        #Mode
+        self.mode_menu = mode_menu = wx.Menu()
+        mode_menu.Append(const.ID_MODE_NAVIGATION, _(u'Navigation mode'), "", wx.ITEM_CHECK)
+
+        v = self.NavigationModeStatus()
+        self.mode_menu.Check(const.ID_MODE_NAVIGATION, v)
+
+        self.actived_navigation_mode = self.mode_menu
+
         # HELP
         help_menu = wx.Menu()
         help_menu.Append(const.ID_START, _("Getting started..."))
@@ -698,12 +906,41 @@ class MenuBar(wx.MenuBar):
         # Add all menus to menubar
         self.Append(file_menu, _("File"))
         self.Append(file_edit, _("Edit"))
+        self.Append(view_menu, _(u"View"))
         self.Append(tools_menu, _(u"Tools"))
-        #self.Append(view_menu, "View")
         #self.Append(tools_menu, "Tools")
         self.Append(options_menu, _("Options"))
+        self.Append(mode_menu, _("Mode"))
         self.Append(help_menu, _("Help"))
 
+
+    def SliceInterpolationStatus(self):
+        
+        status = int(ses.Session().slice_interpolation)
+        
+        if status == 0:
+            v = True
+        else:
+            v = False
+
+        return v
+
+    def NavigationModeStatus(self):
+        status = int(ses.Session().mode)
+
+        if status == 1:
+            return True
+        else:
+            return False
+
+    def OnUpdateSliceInterpolation(self, pubsub_evt):
+        v = self.SliceInterpolationStatus()
+        self.view_menu.Check(const.ID_VIEW_INTERPOLATED, v)
+
+    def OnUpdateNavigationMode(self, pubsub_evt):
+        v = self.NavigationModeStatus()
+        self.mode_menu.Check(const.ID_MODE_NAVIGATION, v)
+
     def OnEnableState(self, pubsub_evt):
         """
         Based on given state, enables or disables menu items which
@@ -743,6 +980,17 @@ class MenuBar(wx.MenuBar):
         else:
             self.FindItemById(wx.ID_REDO).Enable(False)
 
+    def OnEnableNavigation(self, pubsub_evt):
+        """
+        Disable mode menu when navigation is on.
+        :param pubsub_evt: Navigation status
+        """
+        value = pubsub_evt.data
+        if value:
+            self.FindItemById(const.ID_MODE_NAVIGATION).Enable(False)
+        else:
+            self.FindItemById(const.ID_MODE_NAVIGATION).Enable(True)
+
     def OnAddMask(self, pubsub_evt):
         self.num_masks += 1
         self.bool_op_menu.Enable(self.num_masks >= 2)
@@ -754,6 +1002,7 @@ class MenuBar(wx.MenuBar):
     def OnShowMask(self, pubsub_evt):
         index, value = pubsub_evt.data
         self.clean_mask_menu.Enable(value)
+        self.crop_mask_menu.Enable(value)
 
 
 # ------------------------------------------------------------------
@@ -887,8 +1136,7 @@ class TaskBarIcon(wx.TaskBarIcon):
 
 class ProjectToolBar(AuiToolBar):
     """
-    Toolbar related to general project operations, including: import,
-    open, save and saveas, among others.
+    Toolbar related to general invesalius.project operations, including: import, as project    open, save and saveas, among others.
     """
     def __init__(self, parent):
         style = AUI_TB_PLAIN_BACKGROUND
@@ -1059,6 +1307,7 @@ class ObjectToolBar(AuiToolBar):
         sub(self._UntoggleAllItems, 'Untoggle object toolbar items')
         sub(self._ToggleLinearMeasure, "Set tool linear measure")
         sub(self._ToggleAngularMeasure, "Set tool angular measure")
+        sub(self.ToggleItem, 'Toggle toolbar item')
 
     def __bind_events_wx(self):
         """
@@ -1244,6 +1493,12 @@ class ObjectToolBar(AuiToolBar):
                 self.ToggleTool(item, False)
         evt.Skip()
 
+    def ToggleItem(self, evt):
+        _id, value = evt.data
+        if _id in self.enable_items:
+            self.ToggleTool(_id, value)
+            self.Refresh()
+
     def SetStateProjectClose(self):
         """
         Disable menu items (e.g. zoom) when project is closed.
@@ -1278,7 +1533,7 @@ class SliceToolBar(AuiToolBar):
 
         self.parent = parent
         self.enable_items = [const.SLICE_STATE_SCROLL,
-                             const.SLICE_STATE_CROSS]
+                             const.SLICE_STATE_CROSS,]
         self.__init_items()
         self.__bind_events()
         self.__bind_events_wx()
@@ -1323,6 +1578,8 @@ class SliceToolBar(AuiToolBar):
         sub = Publisher.subscribe
         sub(self._EnableState, "Enable state project")
         sub(self._UntoggleAllItems, 'Untoggle slice toolbar items')
+        sub(self.OnToggle, 'Toggle Cross')
+        sub(self.ToggleItem, 'Toggle toolbar item')
 
     def __bind_events_wx(self):
         """
@@ -1361,8 +1618,14 @@ class SliceToolBar(AuiToolBar):
         Update status of other items on toolbar (only one item
         should be toggle each time).
         """
-        id = evt.GetId()
-        evt.Skip()
+        if hasattr(evt, 'data'):
+            id = evt.data
+            if not self.GetToolToggled(id):
+                self.ToggleTool(id, True)
+                self.Refresh()
+        else:
+            id = evt.GetId()
+            evt.Skip()
 
         state = self.GetToolToggled(id)
 
@@ -1382,6 +1645,11 @@ class SliceToolBar(AuiToolBar):
         ##print ">>>", self.sst.IsToggled()
         #print ">>>", self.sst.GetState()
 
+    def ToggleItem(self, evt):
+        _id, value = evt.data
+        if _id in self.enable_items:
+            self.ToggleTool(_id, value)
+            self.Refresh()
 
     def SetStateProjectClose(self):
         """
diff --git a/invesalius/gui/import_bitmap_panel.py b/invesalius/gui/import_bitmap_panel.py
new file mode 100644
index 0000000..2a7cd3b
--- /dev/null
+++ b/invesalius/gui/import_bitmap_panel.py
@@ -0,0 +1,426 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+import wx
+import wx.gizmos as gizmos
+from wx.lib.pubsub import pub as Publisher
+import wx.lib.splitter as spl
+
+import invesalius.constants as const
+import invesalius.gui.dialogs as dlg
+import invesalius.gui.bitmap_preview_panel as bpp
+import invesalius.reader.bitmap_reader as bpr
+from invesalius.gui.dialogs import ImportBitmapParameters as dialogs
+myEVT_SELECT_SERIE = wx.NewEventType()
+EVT_SELECT_SERIE = wx.PyEventBinder(myEVT_SELECT_SERIE, 1)
+
+myEVT_SELECT_SLICE = wx.NewEventType()
+EVT_SELECT_SLICE = wx.PyEventBinder(myEVT_SELECT_SLICE, 1)
+
+myEVT_SELECT_PATIENT = wx.NewEventType()
+EVT_SELECT_PATIENT = wx.PyEventBinder(myEVT_SELECT_PATIENT, 1)
+
+myEVT_SELECT_SERIE_TEXT = wx.NewEventType()
+EVT_SELECT_SERIE_TEXT = wx.PyEventBinder(myEVT_SELECT_SERIE_TEXT, 1)
+
+class SelectEvent(wx.PyCommandEvent):
+    def __init__(self , evtType, id):
+        super(SelectEvent, self).__init__(evtType, id)
+
+    def GetSelectID(self):
+        return self.SelectedID
+
+    def SetSelectedID(self, id):
+        self.SelectedID = id
+
+    def GetItemData(self):
+        return self.data
+
+    def SetItemData(self, data):
+        self.data = data
+
+
+class Panel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent, pos=wx.Point(5, 5))
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(InnerPanel(self), 1, wx.EXPAND|wx.GROW|wx.ALL, 5)
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+
+        self.Layout()
+        self.Update()
+        self.SetAutoLayout(1)
+
+
+# Inner fold panel
+class InnerPanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent, pos=wx.Point(5, 5))
+
+        self.patients = []
+        self.first_image_selection = None
+        self.last_image_selection = None
+        self._init_ui()
+        self._bind_events()
+        self._bind_pubsubevt()
+
+    def _init_ui(self):
+        splitter = spl.MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
+        splitter.SetOrientation(wx.VERTICAL)
+        self.splitter = splitter
+
+        panel = wx.Panel(self)
+        self.btn_cancel = wx.Button(panel, wx.ID_CANCEL)
+        self.btn_ok = wx.Button(panel, wx.ID_OK, _("Import"))
+
+        btnsizer = wx.StdDialogButtonSizer()
+        btnsizer.AddButton(self.btn_ok)
+        btnsizer.AddButton(self.btn_cancel)
+        btnsizer.Realize()
+
+        self.combo_interval = wx.ComboBox(panel, -1, "", choices=const.IMPORT_INTERVAL,
+                                     style=wx.CB_DROPDOWN|wx.CB_READONLY)
+        self.combo_interval.SetSelection(0)
+
+        inner_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        inner_sizer.AddSizer(btnsizer, 0, wx.LEFT|wx.TOP, 5)
+        inner_sizer.Add(self.combo_interval, 0, wx.LEFT|wx.RIGHT|wx.TOP, 5)
+        panel.SetSizer(inner_sizer)
+        inner_sizer.Fit(panel)
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(splitter, 20, wx.EXPAND)
+        sizer.Add(panel, 0, wx.EXPAND|wx.LEFT, 90)
+
+        self.text_panel = TextPanel(splitter)
+        splitter.AppendWindow(self.text_panel, 250)
+
+        self.image_panel = ImagePanel(splitter)
+        splitter.AppendWindow(self.image_panel, 250)
+        
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+
+        self.Layout()
+        self.Update()
+        self.SetAutoLayout(1)
+
+    def _bind_pubsubevt(self):
+        Publisher.subscribe(self.ShowBitmapPreview, "Load import bitmap panel")
+        Publisher.subscribe(self.GetSelectedImages ,"Selected Import Images")  
+
+    def ShowBitmapPreview(self, pubsub_evt):
+        data = pubsub_evt.data
+        #self.patients.extend(dicom_groups)
+        self.text_panel.Populate(data)
+
+    def GetSelectedImages(self, pubsub_evt):
+        self.first_image_selection = pubsub_evt.data[0]
+        self.last_image_selection = pubsub_evt.data[1]
+        
+    def _bind_events(self):
+        self.Bind(EVT_SELECT_SLICE, self.OnSelectSlice)
+        self.Bind(EVT_SELECT_PATIENT, self.OnSelectPatient)
+        self.btn_ok.Bind(wx.EVT_BUTTON, self.OnClickOk)
+        self.btn_cancel.Bind(wx.EVT_BUTTON, self.OnClickCancel)
+        self.text_panel.Bind(EVT_SELECT_SERIE_TEXT, self.OnDblClickTextPanel)
+
+    def OnSelectSlice(self, evt):
+        pass
+
+    def OnSelectPatient(self, evt):
+        pass
+
+    def OnDblClickTextPanel(self, evt):
+        group = evt.GetItemData()
+        self.LoadDicom(group)
+
+    def OnClickOk(self, evt):
+        parm = dlg.ImportBitmapParameters()
+        parm.SetInterval(self.combo_interval.GetSelection())
+        parm.ShowModal()
+
+
+    def OnClickCancel(self, evt):
+        Publisher.sendMessage("Cancel DICOM load")
+
+
+class TextPanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent, -1)
+
+        self.parent = parent
+
+        self._selected_by_user = True
+        self.idserie_treeitem = {}
+        self.treeitem_idpatient = {}
+
+        self.selected_items = None
+        self.shift_pressed = False
+
+        self.__init_gui()
+        self.__bind_events_wx()
+        self.__bind_pubsub_evt()
+
+    def __bind_pubsub_evt(self):
+        Publisher.subscribe(self.SelectSeries, 'Select series in import panel')
+
+    def __bind_events_wx(self):
+        self.Bind(wx.EVT_SIZE, self.OnSize)
+        self.Bind(wx.EVT_CHAR_HOOK, self.OnKeyPress)
+
+    def __init_gui(self):
+        tree = gizmos.TreeListCtrl(self, -1, style =
+                                   wx.TR_DEFAULT_STYLE
+                                   | wx.TR_HIDE_ROOT
+                                   | wx.TR_ROW_LINES
+                                   | wx.TR_COLUMN_LINES
+                                   | wx.TR_FULL_ROW_HIGHLIGHT
+                                   | wx.TR_MULTIPLE
+                                   | wx.TR_HIDE_ROOT
+                                   )
+
+
+        tree.AddColumn(_("Path"))
+        tree.AddColumn(_("Type"))
+        tree.AddColumn(_("Width x Height"))
+
+        tree.SetMainColumn(0)
+        tree.SetColumnWidth(0, 880)
+        tree.SetColumnWidth(1, 60)
+        tree.SetColumnWidth(2, 130)
+
+        self.root = tree.AddRoot(_("InVesalius Database"))
+        self.tree = tree
+
+
+
+    def OnKeyPress(self, evt):
+        key_code = evt.GetKeyCode()
+        
+        if key_code == wx.WXK_DELETE or key_code == wx.WXK_NUMPAD_DELETE:
+            
+            for selected_item in self.selected_items:
+
+                if selected_item != self.tree.GetRootItem():
+                    text_item = self.tree.GetItemText(selected_item)
+                    
+                    index = bpr.BitmapData().GetIndexByPath(text_item)
+
+                    bpr.BitmapData().RemoveFileByPath(text_item)
+
+                    data_size = len(bpr.BitmapData().GetData())
+                    
+                    if index >= 0 and index < data_size:
+                        Publisher.sendMessage('Set bitmap in preview panel', index)
+                    elif index == data_size and data_size > 0:
+                        Publisher.sendMessage('Set bitmap in preview panel', index - 1)
+                    elif data_size == 1:
+                        Publisher.sendMessage('Set bitmap in preview panel', 0)
+                    else:
+                        Publisher.sendMessage('Show black slice in single preview image')
+                    
+                    self.tree.Delete(selected_item)
+                    self.tree.Update()
+                    self.tree.Refresh()
+                    Publisher.sendMessage('Remove preview panel', text_item)
+
+        evt.Skip()
+
+    def SelectSeries(self, pubsub_evt):
+        group_index = pubsub_evt.data
+
+    def Populate(self, data):
+        tree = self.tree
+        for value in data:
+            parent = tree.AppendItem(self.root, value[0])
+            self.tree.SetItemText(parent, value[2], 1)
+            self.tree.SetItemText(parent, value[5], 2)
+
+        tree.Expand(self.root)
+        tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivate)
+        tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged)
+
+        Publisher.sendMessage('Load bitmap into import panel', data)
+
+    def OnSelChanged(self, evt):
+        self.selected_items = self.tree.GetSelections()
+        item = self.selected_items[-1]
+        
+        if self._selected_by_user:
+
+            text_item = self.tree.GetItemText(item)
+            index = bpr.BitmapData().GetIndexByPath(text_item)
+            Publisher.sendMessage('Set bitmap in preview panel', index)
+
+        evt.Skip()
+
+    def OnActivate(self, evt):
+        item = evt.GetItem()
+        group = self.tree.GetItemPyData(item)
+        my_evt = SelectEvent(myEVT_SELECT_SERIE_TEXT, self.GetId())
+        my_evt.SetItemData(group)
+        self.GetEventHandler().ProcessEvent(my_evt)
+
+    def OnSize(self, evt):
+        self.tree.SetSize(self.GetSize())
+        evt.Skip()
+
+    def SelectSerie(self, serie):
+        self._selected_by_user = False
+        item = self.idserie_treeitem[serie]
+        self.tree.SelectItem(item)
+        self._selected_by_user = True
+
+    def GetSelection(self):
+        """Get selected item"""
+        item = self.tree.GetSelection()
+        group = self.tree.GetItemPyData(item)
+        return group
+
+
+class ImagePanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent, -1)
+        self._init_ui()
+        self._bind_events()
+
+    def _init_ui(self):
+        splitter = spl.MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
+        splitter.SetOrientation(wx.HORIZONTAL)
+        self.splitter = splitter
+
+        splitter.ContainingSizer = wx.BoxSizer(wx.HORIZONTAL)
+
+        sizer = wx.BoxSizer(wx.HORIZONTAL)
+        sizer.Add(splitter, 1, wx.EXPAND)
+        self.SetSizer(sizer)
+
+        self.text_panel = SeriesPanel(splitter)
+        splitter.AppendWindow(self.text_panel, 600)
+
+        self.image_panel = SlicePanel(splitter)
+        splitter.AppendWindow(self.image_panel, 250)
+
+        self.SetSizer(sizer)
+        sizer.Fit(self)
+
+        self.Layout()
+        self.Update()
+        self.SetAutoLayout(1)
+
+    def _bind_events(self):
+        self.text_panel.Bind(EVT_SELECT_SLICE, self.OnSelectSlice)
+
+    def OnSelectSlice(self, evt):
+        self.image_panel.bitmap_preview.ShowSlice(evt.GetSelectID())
+        evt.Skip()
+
+    def SetSerie(self, serie):
+        self.image_panel.bitmap_preview.SetDicomGroup(serie)
+
+
+class SeriesPanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent, -1)
+
+        self.thumbnail_preview = bpp.BitmapPreviewSeries(self)
+
+
+        self.sizer = wx.BoxSizer(wx.HORIZONTAL)
+        self.sizer.Add(self.thumbnail_preview, 1, wx.EXPAND | wx.ALL, 5)
+        self.sizer.Fit(self)
+
+        self.SetSizer(self.sizer)
+
+        self.Layout()
+        self.Update()
+        self.SetAutoLayout(1)
+
+        self.__bind_evt()
+        self._bind_gui_evt()
+
+    def __bind_evt(self):
+        Publisher.subscribe(self.SetBitmapFiles, 'Load bitmap into import panel')
+
+    def _bind_gui_evt(self):
+        self.thumbnail_preview.Bind(bpp.EVT_CLICK_SERIE, self.OnSelectSerie)
+
+
+    def GetSelectedImagesRange(self):
+        return [self.bitmap_preview.first_selected, self.dicom_preview_last_selection]
+
+    def SetBitmapFiles(self, pubsub_evt):
+
+
+        bitmap = pubsub_evt.data
+        self.thumbnail_preview.Show(1)
+
+        self.thumbnail_preview.SetBitmapFiles(bitmap)
+
+        self.Update()
+
+    def OnSelectSerie(self, evt):
+        data = evt.GetItemData()
+        my_evt = SelectEvent(myEVT_SELECT_SERIE, self.GetId())
+        my_evt.SetSelectedID(evt.GetSelectID())
+        my_evt.SetItemData(evt.GetItemData())
+        self.GetEventHandler().ProcessEvent(my_evt)
+
+        self.sizer.Layout()
+        self.Show()
+        self.Update()
+
+    def OnSelectSlice(self, evt):
+        my_evt = SelectEvent(myEVT_SELECT_SLICE, self.GetId())
+        my_evt.SetSelectedID(evt.GetSelectID())
+        my_evt.SetItemData(evt.GetItemData())
+        self.GetEventHandler().ProcessEvent(my_evt)
+
+
+
+class SlicePanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent, -1)
+        self.__init_gui()
+        self.__bind_evt()
+
+    def __bind_evt(self):
+        Publisher.subscribe(self.SetBitmapFiles, 'Load bitmap into import panel')
+
+    def __init_gui(self):
+        self.SetBackgroundColour((255,255,255))
+        self.bitmap_preview = bpp.SingleImagePreview(self)
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(self.bitmap_preview, 1, wx.GROW|wx.EXPAND)
+        sizer.Fit(self)
+        self.SetSizer(sizer)
+        self.Layout()
+        self.Update()
+        self.SetAutoLayout(1)
+        self.sizer = sizer
+
+    def SetBitmapFiles(self, pubsub_evt):
+        data = pubsub_evt.data
+        self.bitmap_preview.SetBitmapFiles(data)
+        self.sizer.Layout()
+        self.Update()
diff --git a/invesalius/gui/import_network_panel.py b/invesalius/gui/import_network_panel.py
index 50e6f11..38086ff 100644
--- a/invesalius/gui/import_network_panel.py
+++ b/invesalius/gui/import_network_panel.py
@@ -22,11 +22,11 @@ import wx.gizmos as gizmos
 from wx.lib.pubsub import pub as Publisher
 import wx.lib.splitter as spl
 
-import constants as const
-import gui.dialogs as dlg
-#import dicom_preview_panel as dpp
-import reader.dicom_grouper as dcm
-import net.dicom as dcm_net
+import invesalius.constants as const
+import invesalius.gui.dialogs as dlg
+#import invesalius.gui.dicom_preview_panel as dpp
+import invesalius.reader.dicom_grouper as dcm
+import invesalius.net.dicom as dcm_net
 
 from wx.lib.mixins.listctrl import CheckListCtrlMixin
 #from dicionario import musicdata
diff --git a/invesalius/gui/import_panel.py b/invesalius/gui/import_panel.py
index 2ea7af2..2125f1a 100644
--- a/invesalius/gui/import_panel.py
+++ b/invesalius/gui/import_panel.py
@@ -21,10 +21,10 @@ import wx.gizmos as gizmos
 from wx.lib.pubsub import pub as Publisher
 import wx.lib.splitter as spl
 
-import constants as const
-import gui.dialogs as dlg
-import dicom_preview_panel as dpp
-import reader.dicom_grouper as dcm
+import invesalius.constants as const
+import invesalius.gui.dialogs as dlg
+import invesalius.gui.dicom_preview_panel as dpp
+import invesalius.reader.dicom_grouper as dcm
 
 myEVT_SELECT_SERIE = wx.NewEventType()
 EVT_SELECT_SERIE = wx.PyEventBinder(myEVT_SELECT_SERIE, 1)
diff --git a/invesalius/gui/language_dialog.py b/invesalius/gui/language_dialog.py
index d147e6c..9d9d153 100644
--- a/invesalius/gui/language_dialog.py
+++ b/invesalius/gui/language_dialog.py
@@ -18,12 +18,25 @@
 #--------------------------------------------------------------------------
 
 import os
+import sys
 import wx
 import wx.combo
 
-import i18n
+import invesalius.i18n as i18n
 
-ICON_DIR = os.path.abspath(os.path.join('..', 'icons'))
+file_path = os.path.split(__file__)[0]
+
+if hasattr(sys,"frozen") and (sys.frozen == "windows_exe"\
+                            or sys.frozen == "console_exe"):
+    abs_file_path = os.path.abspath(file_path + os.sep + ".." +\
+                                os.sep + ".." + os.sep + ".." + os.sep + "..")
+    ICON_DIR = os.path.abspath(os.path.join(abs_file_path, 'icons'))
+else:
+    ICON_DIR = os.path.abspath(os.path.join(file_path, '..', '..','icons'))
+
+# MAC App
+if not os.path.exists(ICON_DIR):
+    ICON_DIR = os.path.abspath(os.path.join(file_path, '..', '..', '..', '..', '..',  'icons'))
 
 class ComboBoxLanguage:
 
diff --git a/invesalius/gui/preferences.py b/invesalius/gui/preferences.py
index 75dc0da..4ea1696 100644
--- a/invesalius/gui/preferences.py
+++ b/invesalius/gui/preferences.py
@@ -1,9 +1,8 @@
 import wx
-import constants as const
+import invesalius.constants as const
 from wx.lib.pubsub import pub as Publisher
-import session as ses
-from language_dialog import ComboBoxLanguage
-
+import invesalius.session as ses
+from invesalius.gui.language_dialog import ComboBoxLanguage
 ID = wx.NewId()
 
 try:
@@ -26,7 +25,7 @@ class Preferences(wx.Dialog):
 
         sizer = wx.BoxSizer(wx.VERTICAL)
 
-        bookStyle = fnb.FNB_NODRAG | fnb.FNB_NO_NAV_BUTTONS | fnb.FNB_NO_X_BUTTON
+        bookStyle = fnb.FNB_NODRAG | fnb.FNB_NO_X_BUTTON
 
         if AGW:
             self.book = fnb.FlatNotebook(self, wx.ID_ANY, agwStyle=bookStyle)
@@ -35,10 +34,12 @@ class Preferences(wx.Dialog):
 
         sizer.Add(self.book, 80, wx.EXPAND|wx.ALL)
 
+        self.pnl_viewer2d = Viewer2D(self)
         self.pnl_viewer3d = Viewer3D(self)
         self.pnl_language = Language(self)
 
-        self.book.AddPage(self.pnl_viewer3d, _("Visualization"))
+        self.book.AddPage(self.pnl_viewer2d, _("2D Visualization"))
+        self.book.AddPage(self.pnl_viewer3d, _("3D Visualization"))
         self.book.AddPage(self.pnl_language, _("Language"))
 
         line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
@@ -69,17 +70,23 @@ class Preferences(wx.Dialog):
         values = {}
         lang = self.pnl_language.GetSelection()
         viewer = self.pnl_viewer3d.GetSelection()
+        viewer2d = self.pnl_viewer2d.GetSelection()
         values.update(lang)
         values.update(viewer)
+        values.update(viewer2d)
+        
         return values
 
     def LoadPreferences(self, pub_evt):
         se = ses.Session()
+        
         values = {const.RENDERING:se.rendering,
                   const.SURFACE_INTERPOLATION:se.surface_interpolation,
-                  const.LANGUAGE:se.language
+                  const.LANGUAGE:se.language,
+                  const.SLICE_INTERPOLATION: se.slice_interpolation,
                 }
 
+        self.pnl_viewer2d.LoadSelection(values)
         self.pnl_viewer3d.LoadSelection(values)
         self.pnl_language.LoadSelection(values)
 
@@ -135,6 +142,42 @@ class Viewer3D(wx.Panel):
         self.rb_rendering.SetSelection(int(rendering))
         self.rb_inter.SetSelection(int(surface_interpolation))
 
+
+class Viewer2D(wx.Panel):
+
+    def __init__(self, parent):
+
+        wx.Panel.__init__(self, parent)
+
+        box_visualization = wx.StaticBox(self, -1, _("Slices"))
+        bsizer = wx.StaticBoxSizer(box_visualization, wx.VERTICAL)
+
+        lbl_inter = wx.StaticText(self, -1, _("Interpolated "))
+        bsizer.Add(lbl_inter, 0, wx.TOP|wx.LEFT, 10)
+
+        rb_inter = self.rb_inter = wx.RadioBox(self, -1, "", wx.DefaultPosition, wx.DefaultSize,
+                    [_('Yes'), _('No')], 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
+
+        bsizer.Add(rb_inter, 0, wx.TOP|wx.LEFT, 0)
+
+        border = wx.BoxSizer(wx.VERTICAL)
+        border.Add(bsizer, 50, wx.EXPAND|wx.ALL, 10)
+        self.SetSizer(border)
+
+        border.Fit(self)
+
+
+    def GetSelection(self):
+
+        options = {const.SLICE_INTERPOLATION:self.rb_inter.GetSelection()}
+
+        return options
+
+    def LoadSelection(self, values):
+        value = values[const.SLICE_INTERPOLATION]
+        self.rb_inter.SetSelection(int(value))
+
+
 class Language(wx.Panel):
 
     def __init__(self, parent):
diff --git a/invesalius/gui/task_exporter.py b/invesalius/gui/task_exporter.py
index ec3f5c5..3b62522 100644
--- a/invesalius/gui/task_exporter.py
+++ b/invesalius/gui/task_exporter.py
@@ -25,9 +25,9 @@ import wx.lib.hyperlink as hl
 import wx.lib.platebtn as pbtn
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import gui.dialogs as dlg
-import project as proj
+import invesalius.constants as const
+import invesalius.gui.dialogs as dlg
+import invesalius.project as proj
 
 BTN_MASK = wx.NewId()
 BTN_PICTURE = wx.NewId()
@@ -164,22 +164,22 @@ class InnerTaskPanel(wx.Panel):
         # Image(s) for buttons
         if sys.platform == 'darwin':
             BMP_EXPORT_SURFACE = wx.Bitmap(\
-                                  "../icons/surface_export_original.png",
+                                  os.path.join(const.ICON_DIR, "surface_export_original.png"),
                                   wx.BITMAP_TYPE_PNG).ConvertToImage()\
                                           .Rescale(25, 25).ConvertToBitmap()
             BMP_TAKE_PICTURE = wx.Bitmap(\
-                                 "../icons/tool_photo_original.png",
+                                 os.path.join(const.ICON_DIR, "tool_photo_original.png"),
                                  wx.BITMAP_TYPE_PNG).ConvertToImage()\
                                           .Rescale(25, 25).ConvertToBitmap()
 
             #BMP_EXPORT_MASK = wx.Bitmap("../icons/mask.png",
             #                            wx.BITMAP_TYPE_PNG)
         else:
-            BMP_EXPORT_SURFACE = wx.Bitmap("../icons/surface_export.png",
+            BMP_EXPORT_SURFACE = wx.Bitmap(os.path.join(const.ICON_DIR, "surface_export.png"),
                                         wx.BITMAP_TYPE_PNG).ConvertToImage()\
                                           .Rescale(25, 25).ConvertToBitmap()
 
-            BMP_TAKE_PICTURE = wx.Bitmap("../icons/tool_photo.png",
+            BMP_TAKE_PICTURE = wx.Bitmap(os.path.join(const.ICON_DIR, "tool_photo.png"),
                                      wx.BITMAP_TYPE_PNG).ConvertToImage()\
                                           .Rescale(25, 25).ConvertToBitmap()
 
@@ -331,6 +331,13 @@ class InnerTaskPanel(wx.Panel):
                         filename = filename + "."+ extension
                 Publisher.sendMessage('Export surface to file',
                                             (filename, filetype))
+                if not os.path.exists(filename):
+                    dlg = wx.MessageDialog(None,
+                                       _("It was not possible to save the surface."),
+                                       _("Error saving surface"),
+                                       wx.OK | wx.ICON_ERROR)
+                    dlg.ShowModal()
+                    dlg.Destroy()
         else:
             dlg = wx.MessageDialog(None,
                     _("You need to create a surface and make it ") +
diff --git a/invesalius/gui/task_importer.py b/invesalius/gui/task_importer.py
index 80293bb..ecd1903 100644
--- a/invesalius/gui/task_importer.py
+++ b/invesalius/gui/task_importer.py
@@ -24,8 +24,8 @@ import wx.lib.hyperlink as hl
 import wx.lib.platebtn as pbtn
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import gui.dialogs as dlg
+import invesalius.constants as const
+import invesalius.gui.dialogs as dlg
 
 BTN_IMPORT_LOCAL = wx.NewId()
 BTN_IMPORT_PACS = wx.NewId()
@@ -64,8 +64,8 @@ class InnerTaskPanel(wx.Panel):
         self.float_hyper_list = []
 
         # Fixed hyperlink items
-        tooltip = wx.ToolTip(_("Select DICOM files to be reconstructed"))
-        link_import_local = hl.HyperLinkCtrl(self, -1, _("Import DICOM images..."))
+        tooltip = wx.ToolTip(_("Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"))
+        link_import_local = hl.HyperLinkCtrl(self, -1, _("Import medical images..."))
         link_import_local.SetUnderlines(False, False, False)
         link_import_local.SetBold(True)
         link_import_local.SetColours("BLACK", "BLACK", "BLACK")
@@ -96,9 +96,9 @@ class InnerTaskPanel(wx.Panel):
         link_open_proj.Bind(hl.EVT_HYPERLINK_LEFT, self.OnLinkOpenProject)
 
         # Image(s) for buttons
-        BMP_IMPORT = wx.Bitmap("../icons/file_import.png", wx.BITMAP_TYPE_PNG)
-        BMP_NET = wx.Bitmap("../icons/file_from_internet.png", wx.BITMAP_TYPE_PNG)
-        BMP_OPEN_PROJECT = wx.Bitmap("../icons/file_open.png", wx.BITMAP_TYPE_PNG)
+        BMP_IMPORT = wx.Bitmap(os.path.join(const.ICON_DIR, "file_import.png"), wx.BITMAP_TYPE_PNG)
+        BMP_NET = wx.Bitmap(os.path.join(const.ICON_DIR, "file_from_internet.png"), wx.BITMAP_TYPE_PNG)
+        BMP_OPEN_PROJECT = wx.Bitmap(os.path.join(const.ICON_DIR, "file_open.png"), wx.BITMAP_TYPE_PNG)
 
         bmp_list = [BMP_IMPORT, BMP_NET, BMP_OPEN_PROJECT]
         #for bmp in bmp_list:
@@ -159,7 +159,7 @@ class InnerTaskPanel(wx.Panel):
     #        self.LoadProject(filename, path)
 
     def TestLoadProjects2(self):
-        import session as ses
+        import invesalius.session as ses
         session = ses.Session()
         projects = session.recent_projects
         for tuple in projects:
@@ -175,7 +175,7 @@ class InnerTaskPanel(wx.Panel):
 
     def LoadProject(self, proj_name="Unnamed", proj_dir=""):
         """
-        Load into user interface name of project into import task panel.
+        Load into user interface name of invesalius.project into import task panel.
         Can be called 3 times in sequence.
         Call UnloadProjects to empty it.
         """
diff --git a/invesalius/gui/task_navigator.py b/invesalius/gui/task_navigator.py
index da1bda9..e8e2057 100644
--- a/invesalius/gui/task_navigator.py
+++ b/invesalius/gui/task_navigator.py
@@ -17,434 +17,785 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 
-import os
+from functools import partial
 import sys
 
-import serial
+import numpy as np
 import wx
 import wx.lib.hyperlink as hl
 import wx.lib.masked.numctrl
-import wx.lib.platebtn as pbtn
+import wx.lib.foldpanelbar as fpb
 from wx.lib.pubsub import pub as Publisher
+import wx.lib.colourselect as csel
 
-import data.bases as db
-import data.co_registration as dcr
-import project
-
-IR1 = wx.NewId()
-IR2 = wx.NewId()
-IR3 = wx.NewId()
-PR1 = wx.NewId()
-PR2 = wx.NewId()
-PR3 = wx.NewId()
-Neuronavigate = wx.NewId()
-Corregistration = wx.NewId()
-GetPoint = wx.NewId()
+import invesalius.constants as const
+import invesalius.data.bases as db
+import invesalius.data.coordinates as dco
+import invesalius.data.coregistration as dcr
+import invesalius.data.trackers as dt
+import invesalius.data.trigger as trig
+import invesalius.gui.dialogs as dlg
 
 class TaskPanel(wx.Panel):
-    """
-    This panel works as a "frame", drawing a white margin arround 
-    the panel that really matters (InnerTaskPanel).
-    """
     def __init__(self, parent):
-        # note: don't change this class!!!
         wx.Panel.__init__(self, parent)
 
         inner_panel = InnerTaskPanel(self)
 
         sizer = wx.BoxSizer(wx.HORIZONTAL)
-        sizer.Add(inner_panel, 1, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT |
-                  wx.LEFT, 8)
+        sizer.Add(inner_panel, 1, wx.EXPAND|wx.GROW|wx.BOTTOM|wx.RIGHT |
+                  wx.LEFT, 7)
         sizer.Fit(self)
 
         self.SetSizer(sizer)
         self.Update()
         self.SetAutoLayout(1)
 
+
 class InnerTaskPanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent)
+        default_colour = self.GetBackgroundColour()
+        background_colour = wx.Colour(255,255,255)
+        self.SetBackgroundColour(background_colour)
+
+        txt_nav = wx.StaticText(self, -1, _('Select fiducials and navigate'),
+                                size=wx.Size(90, 20))
+        txt_nav.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
+
+        # Create horizontal sizer to represent lines in the panel
+        txt_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        txt_sizer.Add(txt_nav, 1, wx.EXPAND|wx.GROW, 5)
+
+        # Fold panel which contains navigation configurations
+        fold_panel = FoldPanel(self)
+        fold_panel.SetBackgroundColour(default_colour)
+
+
+        # Add line sizer into main sizer
+        main_sizer = wx.BoxSizer(wx.VERTICAL)
+        main_sizer.Add(txt_sizer, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT, 5)
+        main_sizer.Add(fold_panel, 1, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT, 5)
+        main_sizer.AddSpacer(5)
+        main_sizer.Fit(self)
+
+        self.SetSizerAndFit(main_sizer)
+        self.Update()
+        self.SetAutoLayout(1)
 
+        self.sizer = main_sizer
+
+
+class FoldPanel(wx.Panel):
     def __init__(self, parent):
-        wx.Panel.__init__(self, parent, size=wx.Size(320,300))
-        self.SetBackgroundColour(wx.Colour(221, 221, 221, 255))
+        wx.Panel.__init__(self, parent)
+
+        inner_panel = InnerFoldPanel(self)
+
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(inner_panel, 0, wx.EXPAND|wx.GROW)
+        sizer.Fit(self)
+
+        self.SetSizerAndFit(sizer)
+        self.Update()
         self.SetAutoLayout(1)
+
+
+class InnerFoldPanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent)
+        default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
+        self.SetBackgroundColour(default_colour)
+
         self.__bind_events()
+        # Fold panel and its style settings
+        # FIXME: If we dont insert a value in size or if we set wx.DefaultSize,
+        # the fold_panel doesnt show. This means that, for some reason, Sizer
+        # is not working properly in this panel. It might be on some child or
+        # parent panel. Perhaps we need to insert the item into the sizer also...
+        # Study this.
+        displaySize = wx.DisplaySize()
+        if displaySize[1] > 768:
+            fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition,
+                                          (10, 350), 0, fpb.FPB_SINGLE_FOLD)
+        else:
+            fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition,
+                                          (10, 293), 0, fpb.FPB_SINGLE_FOLD)
+        # Fold panel style
+        style = fpb.CaptionBarStyle()
+        style.SetCaptionStyle(fpb.CAPTIONBAR_GRADIENT_V)
+        style.SetFirstColour(default_colour)
+        style.SetSecondColour(default_colour)
 
-        self.aux_img_ref1 = 0
-        self.aux_img_ref2 = 0
-        self.aux_img_ref3 = 0
-        self.flagpoint = 0
-        self.aux_plh_ref1 = 1
-        self.aux_plh_ref2 = 1
-        self.aux_plh_ref3 = 1
-        self.a = 0, 0, 0
-        self.coord1a = (0, 0, 0)
-        self.coord2a = (0, 0, 0)
-        self.coord3a = (0, 0, 0)
-        self.coord1b = (0, 0, 0)
-        self.coord2b = (0, 0, 0)
-        self.coord3b = (0, 0, 0)
-        self.correg = None
-                
+        # Fold 1 - Navigation panel
+        item = fold_panel.AddFoldPanel(_("Neuronavigation"), collapsed=True)
+        ntw = NeuronavigationPanel(item)
 
-        self.button_img_ref1 = wx.ToggleButton(self, IR1, label = 'TEI', size = wx.Size(30,23))
-        self.button_img_ref1.Bind(wx.EVT_TOGGLEBUTTON, self.Img_Ref_ToggleButton1)
-        
-        self.button_img_ref2 = wx.ToggleButton(self, IR2, label = 'TDI', size = wx.Size(30,23))
-        self.button_img_ref2.Bind(wx.EVT_TOGGLEBUTTON, self.Img_Ref_ToggleButton2)
-        
-        self.button_img_ref3 = wx.ToggleButton(self, IR3, label = 'FNI', size = wx.Size(30,23))
-        self.button_img_ref3.Bind(wx.EVT_TOGGLEBUTTON, self.Img_Ref_ToggleButton3)
-
-        self.button_plh_ref1 = wx.Button(self, PR1, label = 'TEP', size = wx.Size(30,23))
-        self.button_plh_ref2 = wx.Button(self, PR2, label = 'TDP', size = wx.Size(30,23))
-        self.button_plh_ref3 = wx.Button(self, PR3, label = 'FNP', size = wx.Size(30,23))
-        self.button_crg = wx.Button(self, Corregistration, label = 'Corregistrate')
-        self.button_getpoint = wx.Button(self, GetPoint, label = 'GP', size = wx.Size(23,23))
-        self.Bind(wx.EVT_BUTTON, self.Buttons)
-                       
-        self.button_neuronavigate = wx.ToggleButton(self, Neuronavigate, "Neuronavigate")
-        self.button_neuronavigate.Bind(wx.EVT_TOGGLEBUTTON, self.Neuronavigate_ToggleButton)
-        
-        self.numCtrl1a = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl1a', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl2a = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl2a', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl3a = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl3a', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl1b = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl1b', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl2b = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl2b', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl3b = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl3b', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl1c = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl1c', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl2c = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl2c', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl3c = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl3c', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl1d = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl1d', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl2d = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl2d', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl3d = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl3d', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl1e = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl1e', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl2e = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl2e', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl3e = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl3e', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl1f = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl1f', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl2f = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl2f', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl3f = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl3f', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl1g = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl1g', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl2g = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl2g', parent=self, integerWidth = 4, fractionWidth = 1)
-        self.numCtrl3g = wx.lib.masked.numctrl.NumCtrl(
-            name='numCtrl3g', parent=self, integerWidth = 4, fractionWidth = 1)
-
-        RefImg_sizer1 = wx.FlexGridSizer(rows=1, cols=4, hgap=5, vgap=5)
-        RefImg_sizer1.AddMany([ (self.button_img_ref1),
-                                (self.numCtrl1a),
-                                (self.numCtrl2a),
-                                (self.numCtrl3a)])
-        
-        RefImg_sizer2 = wx.FlexGridSizer(rows=1, cols=4, hgap=5, vgap=5)
-        RefImg_sizer2.AddMany([ (self.button_img_ref2),
-                                (self.numCtrl1b),
-                                (self.numCtrl2b),
-                                (self.numCtrl3b)])
-        
-        RefImg_sizer3 = wx.FlexGridSizer(rows=1, cols=4, hgap=5, vgap=5)
-        RefImg_sizer3.AddMany([ (self.button_img_ref3),
-                                (self.numCtrl1c),
-                                (self.numCtrl2c),
-                                (self.numCtrl3c)])
-        
-        RefPlh_sizer1 = wx.FlexGridSizer(rows=1, cols=4, hgap=5, vgap=5)
-        RefPlh_sizer1.AddMany([ (self.button_plh_ref1, 0, wx.GROW|wx.EXPAND),
-                                (self.numCtrl1d, wx.RIGHT),
-                                (self.numCtrl2d),
-                                (self.numCtrl3d, wx.LEFT)])
-        
-        RefPlh_sizer2 = wx.FlexGridSizer(rows=1, cols=4, hgap=5, vgap=5)
-        RefPlh_sizer2.AddMany([ (self.button_plh_ref2, 0, wx.GROW|wx.EXPAND),
-                                (self.numCtrl1e, 0, wx.RIGHT),
-                                (self.numCtrl2e),
-                                (self.numCtrl3e, 0, wx.LEFT)])
-        
-        RefPlh_sizer3 = wx.FlexGridSizer(rows=1, cols=4, hgap=5, vgap=5)
-        RefPlh_sizer3.AddMany([ (self.button_plh_ref3, 0, wx.GROW|wx.EXPAND),
-                                (self.numCtrl1f, wx.RIGHT),
-                                (self.numCtrl2f),
-                                (self.numCtrl3f, wx.LEFT)])
-        
-        Buttons_sizer4 = wx.FlexGridSizer(rows=1, cols=3, hgap=5, vgap=5)
-        Buttons_sizer4.AddMany([ (self.button_crg, wx.RIGHT),
-                                (self.button_neuronavigate, wx.LEFT)])
-        
-        GetPoint_sizer5 = wx.FlexGridSizer(rows=1, cols=4, hgap=5, vgap=5)
-        GetPoint_sizer5.AddMany([ (self.button_getpoint, 0, wx.GROW|wx.EXPAND),
-                                (self.numCtrl1g, wx.RIGHT),
-                                (self.numCtrl2g),
-                                (self.numCtrl3g, wx.LEFT)])
-        
-        text = wx.StaticText(self, -1, 'Neuronavigator')
-        
-        Ref_sizer = wx.FlexGridSizer(rows=9, cols=1, hgap=5, vgap=5)
-        Ref_sizer.AddGrowableCol(0, 1)
-        Ref_sizer.AddGrowableRow(0, 1)
-        Ref_sizer.AddGrowableRow(1, 1)
-        Ref_sizer.AddGrowableRow(2, 1)
-        Ref_sizer.AddGrowableRow(3, 1)
-        Ref_sizer.AddGrowableRow(4, 1)
-        Ref_sizer.AddGrowableRow(5, 1)
-        Ref_sizer.AddGrowableRow(6, 1)
-        Ref_sizer.AddGrowableRow(7, 1)
-        Ref_sizer.AddGrowableRow(8, 1)
-        Ref_sizer.SetFlexibleDirection(wx.BOTH)
-        Ref_sizer.AddMany([ (text, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (RefImg_sizer1, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (RefImg_sizer2, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (RefImg_sizer3, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (RefPlh_sizer1, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (RefPlh_sizer2, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (RefPlh_sizer3, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (Buttons_sizer4, 0, wx.ALIGN_CENTER_HORIZONTAL),
-                            (GetPoint_sizer5, 0, wx.ALIGN_CENTER_HORIZONTAL)])
+        fold_panel.ApplyCaptionStyle(item, style)
+        fold_panel.AddFoldPanelWindow(item, ntw, spacing= 0,
+                                      leftSpacing=0, rightSpacing=0)
+        fold_panel.Expand(fold_panel.GetFoldPanel(0))
+
+        # Fold 2 - Markers panel
+        item = fold_panel.AddFoldPanel(_("Extra tools"), collapsed=True)
+        mtw = MarkersPanel(item)
+
+        fold_panel.ApplyCaptionStyle(item, style)
+        fold_panel.AddFoldPanelWindow(item, mtw, spacing= 0,
+                                      leftSpacing=0, rightSpacing=0)
+
+
+        # Check box for camera update in volume rendering during navigation
+        tooltip = wx.ToolTip(_("Update camera in volume"))
+        checkcamera = wx.CheckBox(self, -1, _('Volume camera'))
+        checkcamera.SetToolTip(tooltip)
+        checkcamera.SetValue(True)
+        checkcamera.Bind(wx.EVT_CHECKBOX, partial(self.UpdateVolumeCamera, ctrl=checkcamera))
+
+        # Check box for camera update in volume rendering during navigation
+        tooltip = wx.ToolTip(_("Enable external trigger for creating markers"))
+        checktrigger = wx.CheckBox(self, -1, _('External trigger'))
+        checktrigger.SetToolTip(tooltip)
+        checktrigger.SetValue(False)
+        checktrigger.Bind(wx.EVT_CHECKBOX, partial(self.UpdateExternalTrigger, ctrl=checktrigger))
+        self.checktrigger = checktrigger
+
+        if sys.platform != 'win32':
+            checkcamera.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)
+            checktrigger.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)
+
+        line_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        line_sizer.Add(checkcamera, 0, wx.ALIGN_LEFT | wx.RIGHT | wx.LEFT, 5)
+        line_sizer.Add(checktrigger, 1,wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5)
+        line_sizer.Fit(self)
+
+        # Panel sizer to expand fold panel
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(fold_panel, 0, wx.GROW|wx.EXPAND)
+        sizer.Add(line_sizer, 1, wx.GROW | wx.EXPAND)
+        sizer.Fit(self)
+
+        self.SetSizer(sizer)
+        self.Update()
+        self.SetAutoLayout(1)
         
+    def __bind_events(self):
+        Publisher.subscribe(self.OnTrigger, 'Navigation Status')
+
+    def OnTrigger(self, pubsub_evt):
+        status = pubsub_evt.data
+        if status:
+            self.checktrigger.Enable(False)
+        else:
+            self.checktrigger.Enable(True)
+
+    def UpdateExternalTrigger(self, evt, ctrl):
+        Publisher.sendMessage('Update trigger state', ctrl.GetValue())
+
+    def UpdateVolumeCamera(self, evt, ctrl):
+        Publisher.sendMessage('Update volume camera state', ctrl.GetValue())
+
+
+
+
+class NeuronavigationPanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent)
+        default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
+        self.SetBackgroundColour(default_colour)
+
+        self.SetAutoLayout(1)
+
+        self.__bind_events()
+
+        # Initialize global variables
+        self.fiducials = np.full([6, 3], np.nan)
+        self.correg = None
+        self.current_coord = 0, 0, 0
+        self.trk_init = None
+        self.trigger = None
+        self.trigger_state = False
+
+        self.tracker_id = const.DEFAULT_TRACKER
+        self.ref_mode_id = const.DEFAULT_REF_MODE
+
+        # Initialize list of buttons and numctrls for wx objects
+        self.btns_coord = [None] * 7
+        self.numctrls_coord = [list(), list(), list(), list(), list(), list(), list()]
+
+        # ComboBox for spatial tracker device selection
+        tooltip = wx.ToolTip(_("Choose the tracking device"))
+        choice_trck = wx.ComboBox(self, -1, "",
+                                  choices=const.TRACKER, style=wx.CB_DROPDOWN|wx.CB_READONLY)
+        choice_trck.SetToolTip(tooltip)
+        choice_trck.SetSelection(const.DEFAULT_TRACKER)
+        choice_trck.Bind(wx.EVT_COMBOBOX, partial(self.OnChoiceTracker, ctrl=choice_trck))
+
+        # ComboBox for tracker reference mode
+        tooltip = wx.ToolTip(_("Choose the navigation reference mode"))
+        choice_ref = wx.ComboBox(self, -1, "",
+                                 choices=const.REF_MODE, style=wx.CB_DROPDOWN|wx.CB_READONLY)
+        choice_ref.SetSelection(const.DEFAULT_REF_MODE)
+        choice_ref.SetToolTip(tooltip)
+        choice_ref.Bind(wx.EVT_COMBOBOX, partial(self.OnChoiceRefMode, ctrl=choice_trck))
+
+        # Toggle buttons for image fiducials
+        btns_img = const.BTNS_IMG
+        tips_img = const.TIPS_IMG
+
+        for k in btns_img:
+            n = btns_img[k].keys()[0]
+            lab = btns_img[k].values()[0]
+            self.btns_coord[n] = wx.ToggleButton(self, k, label=lab, size=wx.Size(45, 23))
+            self.btns_coord[n].SetToolTip(tips_img[n])
+            self.btns_coord[n].Bind(wx.EVT_TOGGLEBUTTON, self.OnImageFiducials)
+
+        # Push buttons for tracker fiducials
+        btns_trk = const.BTNS_TRK
+        tips_trk = const.TIPS_TRK
+
+        for k in btns_trk:
+            n = btns_trk[k].keys()[0]
+            lab = btns_trk[k].values()[0]
+            self.btns_coord[n] = wx.Button(self, k, label=lab, size=wx.Size(45, 23))
+            self.btns_coord[n].SetToolTip(tips_trk[n-3])
+            # Excepetion for event of button that set image coordinates
+            if n == 6:
+                self.btns_coord[n].Bind(wx.EVT_BUTTON, self.OnSetImageCoordinates)
+            else:
+                self.btns_coord[n].Bind(wx.EVT_BUTTON, self.OnTrackerFiducials)
+
+        # TODO: Find a better allignment between FRE, text and navigate button
+        txt_fre = wx.StaticText(self, -1, _('FRE:'))
+
+        # Fiducial registration error text box
+        tooltip = wx.ToolTip(_("Fiducial registration error"))
+        txtctrl_fre = wx.TextCtrl(self, value="", size=wx.Size(60, -1), style=wx.TE_CENTRE)
+        txtctrl_fre.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
+        txtctrl_fre.SetBackgroundColour('WHITE')
+        txtctrl_fre.SetEditable(0)
+        txtctrl_fre.SetToolTip(tooltip)
+
+        # Toggle button for neuronavigation
+        tooltip = wx.ToolTip(_("Start navigation"))
+        btn_nav = wx.ToggleButton(self, -1, _("Navigate"), size=wx.Size(80, -1))
+        btn_nav.SetToolTip(tooltip)
+        btn_nav.Bind(wx.EVT_TOGGLEBUTTON, partial(self.OnNavigate, btn=(btn_nav, choice_trck, choice_ref, txtctrl_fre)))
+
+        # Image and tracker coordinates number controls
+        for m in range(0, 7):
+            for n in range(0, 3):
+                self.numctrls_coord[m].append(
+                    wx.lib.masked.numctrl.NumCtrl(parent=self, integerWidth=4, fractionWidth=1))
+
+        # Sizers to group all GUI objects
+        choice_sizer = wx.FlexGridSizer(rows=1, cols=2, hgap=5, vgap=5)
+        choice_sizer.AddMany([(choice_trck, wx.LEFT),
+                              (choice_ref, wx.RIGHT)])
+
+        coord_sizer = wx.GridBagSizer(hgap=5, vgap=5)
+
+        for m in range(0, 7):
+            coord_sizer.Add(self.btns_coord[m], pos=wx.GBPosition(m, 0))
+            for n in range(0, 3):
+                coord_sizer.Add(self.numctrls_coord[m][n], pos=wx.GBPosition(m, n+1))
+                if m in range(1, 6):
+                    self.numctrls_coord[m][n].SetEditable(False)
+
+        nav_sizer = wx.FlexGridSizer(rows=1, cols=3, hgap=5, vgap=5)
+        nav_sizer.AddMany([(txt_fre, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL),
+                           (txtctrl_fre, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL),
+                           (btn_nav, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL)])
+
+        group_sizer = wx.FlexGridSizer(rows=9, cols=1, hgap=5, vgap=5)
+        group_sizer.AddGrowableCol(0, 1)
+        group_sizer.AddGrowableRow(0, 1)
+        group_sizer.AddGrowableRow(1, 1)
+        group_sizer.AddGrowableRow(2, 1)
+        group_sizer.SetFlexibleDirection(wx.BOTH)
+        group_sizer.AddMany([(choice_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL),
+                             (coord_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL),
+                             (nav_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL)])
+
         main_sizer = wx.BoxSizer(wx.HORIZONTAL)
-        main_sizer.Add(Ref_sizer, 1, wx.ALIGN_CENTER_HORIZONTAL, 10)
+        main_sizer.Add(group_sizer, 1, wx.ALIGN_CENTER_HORIZONTAL, 10)
         self.sizer = main_sizer
         self.SetSizer(main_sizer)
         self.Fit()
 
-        tooltip = wx.ToolTip("Pick the coordinates x, y, z in the image")
-        self.button_img_ref1.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Pick the coordinates x, y, z in the image")
-        self.button_img_ref2.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Pick the coordinates x, y, z in the image")
-        self.button_img_ref3.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Pick the coordinates x, y, z in the space")
-        self.button_plh_ref1.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Pick the coordinates x, y, z in the space")
-        self.button_plh_ref2.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Pick the coordinates x, y, z in the space")
-        self.button_plh_ref3.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("X Coordinate")
-        self.numCtrl1a.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("X Coordinate")
-        self.numCtrl1b.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("X Coordinate")
-        self.numCtrl1c.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("X Coordinate")
-        self.numCtrl1d.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("X Coordinate")
-        self.numCtrl1e.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("X Coordinate")
-        self.numCtrl1f.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("X Coordinate")
-        self.numCtrl1g.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Y Coordinate")
-        self.numCtrl2a.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Y Coordinate")
-        self.numCtrl2b.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Y Coordinate")
-        self.numCtrl2c.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Y Coordinate")
-        self.numCtrl2d.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Y Coordinate")
-        self.numCtrl2e.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Y Coordinate")
-        self.numCtrl2f.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Y Coordinate")
-        self.numCtrl2g.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Z Coordinate")
-        self.numCtrl3a.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Z Coordinate")
-        self.numCtrl3b.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Z Coordinate")
-        self.numCtrl3c.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Z Coordinate")
-        self.numCtrl3d.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Z Coordinate")
-        self.numCtrl3e.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Z Coordinate")
-        self.numCtrl3f.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Z Coordinate")
-        self.numCtrl3g.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Corregistration of the real position with the image position")
-        self.button_crg.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Neuronavigation")
-        self.button_neuronavigate.SetToolTip(tooltip)
-        tooltip = wx.ToolTip("Get Cross Center Coordinates")
-        self.button_getpoint.SetToolTip(tooltip)
-        
     def __bind_events(self):
-        Publisher.subscribe(self.__update_points_img, 'Update cross position')
-        Publisher.subscribe(self.__update_points_plh, 'Update plh position')
-         
-    def __update_points_img(self, pubsub_evt):
-        x, y, z = pubsub_evt.data[1]
-        self.a = x, y, z
-        if self.aux_img_ref1 == 0: 
-            self.numCtrl1a.SetValue(x)
-            self.numCtrl2a.SetValue(y)
-            self.numCtrl3a.SetValue(z)
-        if self.aux_img_ref2 == 0:   
-            self.numCtrl1b.SetValue(x)
-            self.numCtrl2b.SetValue(y)
-            self.numCtrl3b.SetValue(z)
-        if self.aux_img_ref3 == 0:
-            self.numCtrl1c.SetValue(x)
-            self.numCtrl2c.SetValue(y)
-            self.numCtrl3c.SetValue(z)
+        Publisher.subscribe(self.LoadImageFiducials, 'Load image fiducials')
+        Publisher.subscribe(self.UpdateTriggerState, 'Update trigger state')
+        Publisher.subscribe(self.UpdateImageCoordinates, 'Set ball reference position')
+        Publisher.subscribe(self.OnDisconnectTracker, 'Disconnect tracker')
+
+    def LoadImageFiducials(self, pubsub_evt):
+        marker_id = pubsub_evt.data[0]
+        coord = pubsub_evt.data[1]
+        for n in const.BTNS_IMG_MKS:
+            btn_id = const.BTNS_IMG_MKS[n].keys()[0]
+            fid_id = const.BTNS_IMG_MKS[n].values()[0]
+            if marker_id == fid_id and not self.btns_coord[btn_id].GetValue():
+                self.btns_coord[btn_id].SetValue(True)
+                self.fiducials[btn_id, :] = coord[0:3]
+                for m in [0, 1, 2]:
+                    self.numctrls_coord[btn_id][m].SetValue(coord[m])
+
+    def UpdateImageCoordinates(self, pubsub_evt):
+        # TODO: Change from world coordinates to matrix coordinates. They are better for multi software communication.
+        self.current_coord = pubsub_evt.data
+        for m in [0, 1, 2, 6]:
+            if m == 6 and self.btns_coord[m].IsEnabled():
+                for n in [0, 1, 2]:
+                    self.numctrls_coord[m][n].SetValue(self.current_coord[n])
+            elif m != 6 and not self.btns_coord[m].GetValue():
+                # btn_state = self.btns_coord[m].GetValue()
+                # if not btn_state:
+                for n in [0, 1, 2]:
+                    self.numctrls_coord[m][n].SetValue(self.current_coord[n])
+
+    def UpdateTriggerState (self, pubsub_evt):
+        self.trigger_state = pubsub_evt.data
+
+    def OnDisconnectTracker(self, pubsub_evt):
+        if self.tracker_id:
+            dt.TrackerConnection(self.tracker_id, 'disconnect')
+
+    def OnChoiceTracker(self, evt, ctrl):
+        Publisher.sendMessage('Update status text in GUI', _("Configuring tracker ..."))
+        if evt:
+            choice = evt.GetSelection()
+        else:
+            choice = self.tracker_id
+
+        if self.trk_init:
+            trck = self.trk_init[0]
+        else:
+            trck = None
+
+        # Conditions check if click was on current selection and if any other tracker
+        # has been initialized before
+        if trck and choice != 6:
+            self.ResetTrackerFiducials()
+            self.trk_init = dt.TrackerConnection(self.tracker_id, 'disconnect')
+            self.tracker_id = choice
+            if not self.trk_init[0]:
+                self.trk_init = dt.TrackerConnection(self.tracker_id, 'connect')
+                if not self.trk_init[0]:
+                    dlg.NavigationTrackerWarning(self.tracker_id, self.trk_init[1])
+                    ctrl.SetSelection(0)
+                    print "Tracker not connected!"
+                else:
+                    ctrl.SetSelection(self.tracker_id)
+                    print "Tracker connected!"
+        elif choice == 6:
+            if trck:
+                self.trk_init = dt.TrackerConnection(self.tracker_id, 'disconnect')
+                if not self.trk_init[0]:
+                    dlg.NavigationTrackerWarning(self.tracker_id, 'disconnect')
+                    self.tracker_id = 0
+                    ctrl.SetSelection(self.tracker_id)
+                    print "Tracker disconnected!"
+                else:
+                    print "Tracker still connected!"
+            else:
+                ctrl.SetSelection(self.tracker_id)
+
+        else:
+            # If trk_init is None try to connect. If doesn't succeed show dialog.
+            if choice:
+                self.tracker_id = choice
+                self.trk_init = dt.TrackerConnection(self.tracker_id, 'connect')
+                if not self.trk_init[0]:
+                    dlg.NavigationTrackerWarning(self.tracker_id, self.trk_init[1])
+                    self.tracker_id = 0
+                    ctrl.SetSelection(self.tracker_id)
+        Publisher.sendMessage('Update status text in GUI', _("Ready"))
+
+    def OnChoiceRefMode(self, evt, ctrl):
+        # When ref mode is changed the tracker coords are set to zero
+        self.ref_mode_id = evt.GetSelection()
+        self.ResetTrackerFiducials()
+        # Some trackers do not accept restarting within this time window
+        # TODO: Improve the restarting of trackers after changing reference mode
+        # self.OnChoiceTracker(None, ctrl)
+        print "Reference mode changed!"
+
+    def OnSetImageCoordinates(self, evt):
+        # FIXME: Cross does not update in last clicked slice, only on the other two
+        btn_id = const.BTNS_TRK[evt.GetId()].keys()[0]
+
+        wx, wy, wz = self.numctrls_coord[btn_id][0].GetValue(), \
+                     self.numctrls_coord[btn_id][1].GetValue(), \
+                     self.numctrls_coord[btn_id][2].GetValue()
+
+        Publisher.sendMessage('Set ball reference position', (wx, wy, wz))
+        Publisher.sendMessage('Set camera in volume', (wx, wy, wz))
+        Publisher.sendMessage('Co-registered points', (wx, wy, wz))
+        Publisher.sendMessage('Update cross position', (wx, wy, wz))
+
+    def OnImageFiducials(self, evt):
+        btn_id = const.BTNS_IMG_MKS[evt.GetId()].keys()[0]
+        marker_id = const.BTNS_IMG_MKS[evt.GetId()].values()[0]
+
+        if self.btns_coord[btn_id].GetValue():
+            coord = self.numctrls_coord[btn_id][0].GetValue(),\
+                    self.numctrls_coord[btn_id][1].GetValue(),\
+                    self.numctrls_coord[btn_id][2].GetValue()
+
+            self.fiducials[btn_id, :] = coord[0:3]
+            Publisher.sendMessage('Create marker', (coord, marker_id))
+        else:
+            for n in [0, 1, 2]:
+                self.numctrls_coord[btn_id][n].SetValue(self.current_coord[n])
+
+            self.fiducials[btn_id, :] = np.nan
+            Publisher.sendMessage('Delete fiducial marker', marker_id)
+
+    def OnTrackerFiducials(self, evt):
+        btn_id = const.BTNS_TRK[evt.GetId()].keys()[0]
+        coord = None
+
+        if self.trk_init and self.tracker_id:
+            coord = dco.GetCoordinates(self.trk_init, self.tracker_id, self.ref_mode_id)
+        else:
+            dlg.NavigationTrackerWarning(0, 'choose')
+
+        # Update number controls with tracker coordinates
+        if coord is not None:
+            self.fiducials[btn_id, :] = coord[0:3]
+            for n in [0, 1, 2]:
+                self.numctrls_coord[btn_id][n].SetValue(float(coord[n]))
+
+    def OnNavigate(self, evt, btn):
+        btn_nav = btn[0]
+        choice_trck = btn[1]
+        choice_ref = btn[2]
+        txtctrl_fre = btn[3]
+
+        nav_id = btn_nav.GetValue()
+        if nav_id:
+            if np.isnan(self.fiducials).any():
+                dlg.InvalidFiducials()
+                btn_nav.SetValue(False)
+
+            else:
+                tooltip = wx.ToolTip(_("Stop neuronavigation"))
+                btn_nav.SetToolTip(tooltip)
+
+                # Disable all navigation buttons
+                choice_ref.Enable(False)
+                choice_trck.Enable(False)
+                for btn_c in self.btns_coord:
+                    btn_c.Enable(False)
+
+                m, q1, minv = db.base_creation(self.fiducials[0:3, :])
+                n, q2, ninv = db.base_creation(self.fiducials[3::, :])
+
+                tracker_mode = self.trk_init, self.tracker_id, self.ref_mode_id
+                # FIXME: FRE is taking long to calculate so it updates on GUI delayed to navigation - I think its fixed
+                # TODO: Exhibit FRE in a warning dialog and only starts navigation after user clicks ok
+                fre = db.calculate_fre(self.fiducials, minv, n, q1, q2)
+
+                txtctrl_fre.SetValue(str(round(fre, 2)))
+                if fre <= 3:
+                    txtctrl_fre.SetBackgroundColour('GREEN')
+                else:
+                    txtctrl_fre.SetBackgroundColour('RED')
+
+                if self.trigger_state:
+                    self.trigger = trig.Trigger(nav_id)
+
+                Publisher.sendMessage("Navigation Status", True)
+                Publisher.sendMessage("Toggle Cross", const.SLICE_STATE_CROSS)
+                Publisher.sendMessage("Hide current mask")
+
+                self.correg = dcr.Coregistration((minv, n, q1, q2), nav_id, tracker_mode)
+
+        else:
+            tooltip = wx.ToolTip(_("Start neuronavigation"))
+            btn_nav.SetToolTip(tooltip)
+
+            # Enable all navigation buttons
+            choice_ref.Enable(True)
+            choice_trck.Enable(True)
+            for btn_c in self.btns_coord:
+                btn_c.Enable(True)
+
+            if self.trigger_state:
+                self.trigger.stop()
 
-        
-    def __update_points_plh(self, pubsub_evt):
-        coord = pubsub_evt.data   
-        if self.aux_plh_ref1 == 0:    
-            self.numCtrl1d.SetValue(coord[0])
-            self.numCtrl2d.SetValue(coord[1])
-            self.numCtrl3d.SetValue(coord[2])
-            self.aux_plh_ref1 = 1
-        if self.aux_plh_ref2 == 0:    
-            self.numCtrl1e.SetValue(coord[0])
-            self.numCtrl2e.SetValue(coord[1])
-            self.numCtrl3e.SetValue(coord[2])
-            self.aux_plh_ref2 = 1
-        if self.aux_plh_ref3 == 0:
-            self.numCtrl1f.SetValue(coord[0])
-            self.numCtrl2f.SetValue(coord[1])
-            self.numCtrl3f.SetValue(coord[2])
-            self.aux_plh_ref3 = 1
-           
-    def Buttons(self, evt):
-        id = evt.GetId()
-        x, y, z = self.a
-        if id == PR1:
-            self.aux_plh_ref1 = 0
-            self.coord1b = self.Coordinates()
-            coord = self.coord1b
-        elif id == PR2:
-            self.aux_plh_ref2 = 0
-            self.coord2b = self.Coordinates()
-            coord = self.coord2b
-        elif id == PR3:
-            self.aux_plh_ref3 = 0
-            self.coord3b = self.Coordinates()
-            coord = self.coord3b
-        elif id == GetPoint:
-            x, y, z = self.a
-            self.numCtrl1g.SetValue(x)
-            self.numCtrl2g.SetValue(y)
-            self.numCtrl3g.SetValue(z)
-            info = self.a, self.flagpoint
-            self.SaveCoordinates(info)
-            self.flagpoint = 1 
-        elif id == Corregistration and self.aux_img_ref1 == 1 and self.aux_img_ref2 == 1 and self.aux_img_ref3 == 1:
-            print "Coordenadas Imagem: ", self.coord1a, self.coord2a, self.coord3a
-            print "Coordenadas Polhemus: ", self.coord1b, self.coord2b, self.coord3b
-            
-            self.M, self.q1, self.Minv = db.Bases(self.coord1a, self.coord2a, self.coord3a).Basecreation()
-            self.N, self.q2, self.Ninv = db.Bases(self.coord1b, self.coord2b, self.coord3b).Basecreation()
-                
-        if self.aux_plh_ref1 == 0 or self.aux_plh_ref2 == 0 or self.aux_plh_ref3 == 0:
-            Publisher.sendMessage('Update plh position', coord)         
-   
-    def Coordinates(self):
-        #Get Polhemus points for base creation       
-        ser = serial.Serial(0)
-        ser.write("Y")       
-        ser.write("P")
-        str = ser.readline()
-        ser.write("Y")
-        str = str.replace("\r\n","")
-        str = str.replace("-"," -")
-        aostr = [s for s in str.split()]
-        #aoflt -> 0:letter 1:x 2:y 3:z
-        aoflt = [float(aostr[1]), float(aostr[2]), float(aostr[3]),
-                  float(aostr[4]), float(aostr[5]), float(aostr[6])]      
-        ser.close()
-        #Unit change: inches to millimeters
-        x = 25.4
-        y = 25.4
-        z = -25.4
-
-        coord = (aoflt[0]*x, aoflt[1]*y, aoflt[2]*z)
-        return coord
-    
-    def Img_Ref_ToggleButton1(self, evt):
-        id = evt.GetId()
-        flag1 = self.button_img_ref1.GetValue()
-        x, y, z = self.a
-        if flag1 == True:
-            self.coord1a = x, y, z
-            self.aux_img_ref1 = 1
-        elif flag1 == False:
-            self.aux_img_ref1 = 0
-            self.coord1a = (0, 0, 0)
-            self.numCtrl1a.SetValue(x)
-            self.numCtrl2a.SetValue(y)
-            self.numCtrl3a.SetValue(z)
-            
-    def Img_Ref_ToggleButton2(self, evt):
-        id = evt.GetId()
-        flag2 = self.button_img_ref2.GetValue()
-        x, y, z = self.a
-        if flag2 == True:
-            self.coord2a = x, y, z
-            self.aux_img_ref2 = 1
-        elif flag2 == False:
-            self.aux_img_ref2 = 0
-            self.coord2a = (0, 0, 0)
-            self.numCtrl1b.SetValue(x)
-            self.numCtrl2b.SetValue(y)
-            self.numCtrl3b.SetValue(z)
-            
-    def Img_Ref_ToggleButton3(self, evt):
-        id = evt.GetId()
-        flag3 = self.button_img_ref3.GetValue()
-        x, y, z = self.a
-        if flag3 == True:
-            self.coord3a = x, y, z
-            self.aux_img_ref3 = 1
-        elif flag3 == False:
-            self.aux_img_ref3 = 0
-            self.coord3a = (0, 0, 0)
-            self.numCtrl1c.SetValue(x)
-            self.numCtrl2c.SetValue(y)
-            self.numCtrl3c.SetValue(z)
-      
-    def Neuronavigate_ToggleButton(self, evt):
-        id = evt.GetId()
-        flag4 = self.button_neuronavigate.GetValue()
-        bases = self.Minv, self.N, self.q1, self.q2
-        if flag4 == True:
-            self.correg = dcr.Corregister(bases, flag4)
-        elif flag4 == False:
             self.correg.stop()
-    
-    def SaveCoordinates(self, info):
-        #Create a file and write the points given by getpoint's button 
-        x, y, z = info[0]
-        flag = info[1]
-
-        if flag == 0:
-            text_file = open("points.txt", "w")
-            line = str('%.2f' %x) + "\t" + str('%.2f' %y) + "\t" + str('%.2f' %z) + "\n"
-            text_file.writelines(line)
-            text_file.close()
+
+            Publisher.sendMessage("Navigation Status", False)
+
+    def ResetTrackerFiducials(self):
+        for m in range(3, 6):
+            for n in range(0, 3):
+                self.numctrls_coord[m][n].SetValue(0.0)
+
+
+class MarkersPanel(wx.Panel):
+    def __init__(self, parent):
+        wx.Panel.__init__(self, parent)
+        default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
+        self.SetBackgroundColour(default_colour)
+
+        self.SetAutoLayout(1)
+
+        self.__bind_events()
+
+        self.current_coord = 0, 0, 0
+        self.list_coord = []
+        self.marker_ind = 0
+
+        self.marker_colour = (0.0, 0.0, 1.)
+        self.marker_size = 4
+
+        # Change marker size
+        spin_size = wx.SpinCtrl(self, -1, "", size=wx.Size(40, 23))
+        spin_size.SetRange(1, 99)
+        spin_size.SetValue(self.marker_size)
+        spin_size.Bind(wx.EVT_TEXT, partial(self.OnSelectSize, ctrl=spin_size))
+        spin_size.Bind(wx.EVT_SPINCTRL, partial(self.OnSelectSize, ctrl=spin_size))
+
+        # Marker colour select
+        select_colour = csel.ColourSelect(self, -1, colour=[255*s for s in self.marker_colour], size=wx.Size(20, 23))
+        select_colour.Bind(csel.EVT_COLOURSELECT, partial(self.OnSelectColour, ctrl=select_colour))
+
+        btn_create = wx.Button(self, -1, label=_('Create marker'), size=wx.Size(135, 23))
+        btn_create.Bind(wx.EVT_BUTTON, self.OnCreateMarker)
+
+        sizer_create = wx.FlexGridSizer(rows=1, cols=3, hgap=5, vgap=5)
+        sizer_create.AddMany([(spin_size, 1),
+                              (select_colour, 0),
+                              (btn_create, 0)])
+
+        # Buttons to save and load markers and to change its visibility as well
+        btn_save = wx.Button(self, -1, label=_('Save'), size=wx.Size(65, 23))
+        btn_save.Bind(wx.EVT_BUTTON, self.OnSaveMarkers)
+
+        btn_load = wx.Button(self, -1, label=_('Load'), size=wx.Size(65, 23))
+        btn_load.Bind(wx.EVT_BUTTON, self.OnLoadMarkers)
+
+        btn_visibility = wx.ToggleButton(self, -1, _("Hide"), size=wx.Size(65, 23))
+        btn_visibility.Bind(wx.EVT_TOGGLEBUTTON, partial(self.OnMarkersVisibility, ctrl=btn_visibility))
+
+        sizer_btns = wx.FlexGridSizer(rows=1, cols=3, hgap=5, vgap=5)
+        sizer_btns.AddMany([(btn_save, 1, wx.RIGHT),
+                            (btn_load, 0, wx.LEFT | wx.RIGHT),
+                            (btn_visibility, 0, wx.LEFT)])
+
+        # Buttons to delete or remove markers
+        btn_delete_single = wx.Button(self, -1, label=_('Remove'), size=wx.Size(65, 23))
+        btn_delete_single.Bind(wx.EVT_BUTTON, self.OnDeleteSingleMarker)
+
+        btn_delete_all = wx.Button(self, -1, label=_('Delete all'), size=wx.Size(135, 23))
+        btn_delete_all.Bind(wx.EVT_BUTTON, self.OnDeleteAllMarkers)
+
+        sizer_delete = wx.FlexGridSizer(rows=1, cols=2, hgap=5, vgap=5)
+        sizer_delete.AddMany([(btn_delete_single, 1, wx.RIGHT),
+                              (btn_delete_all, 0, wx.LEFT)])
+
+        # List of markers
+        self.lc = wx.ListCtrl(self, -1, style=wx.LC_REPORT, size=wx.Size(0,120))
+        self.lc.InsertColumn(0, '#')
+        self.lc.InsertColumn(1, 'X')
+        self.lc.InsertColumn(2, 'Y')
+        self.lc.InsertColumn(3, 'Z')
+        self.lc.InsertColumn(4, 'ID')
+        self.lc.SetColumnWidth(0, 28)
+        self.lc.SetColumnWidth(1, 50)
+        self.lc.SetColumnWidth(2, 50)
+        self.lc.SetColumnWidth(3, 50)
+        self.lc.SetColumnWidth(4, 50)
+        self.lc.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnListEditMarkerId)
+        self.lc.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemBlink)
+        self.lc.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnStopItemBlink)
+
+        # Add all lines into main sizer
+        group_sizer = wx.BoxSizer(wx.VERTICAL)
+        group_sizer.Add(sizer_create, 0, wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, 5)
+        group_sizer.Add(sizer_btns, 0, wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, 5)
+        group_sizer.Add(sizer_delete, 0, wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, 5)
+        group_sizer.Add(self.lc, 0, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
+        group_sizer.Fit(self)
+
+        self.SetSizer(group_sizer)
+        self.Update()
+
+    def __bind_events(self):
+        Publisher.subscribe(self.UpdateCurrentCoord, 'Set ball reference position')
+        Publisher.subscribe(self.OnDeleteSingleMarker, 'Delete fiducial marker')
+        Publisher.subscribe(self.OnCreateMarker, 'Create marker')
+
+    def UpdateCurrentCoord(self, pubsub_evt):
+        self.current_coord = pubsub_evt.data
+
+    def OnListEditMarkerId(self, evt):
+        menu_id = wx.Menu()
+        menu_id.Append(-1, _('Edit ID'))
+        menu_id.Bind(wx.EVT_MENU, self.OnMenuEditMarkerId)
+        self.PopupMenu(menu_id)
+        menu_id.Destroy()
+
+    def OnItemBlink(self, evt):
+        Publisher.sendMessage('Blink Marker', self.lc.GetFocusedItem())
+
+    def OnStopItemBlink(self, evt):
+        Publisher.sendMessage('Stop Blink Marker')
+
+    def OnMenuEditMarkerId(self, evt):
+        id_label = dlg.EnterMarkerID(self.lc.GetItemText(self.lc.GetFocusedItem(), 4))
+        list_index = self.lc.GetFocusedItem()
+        self.lc.SetStringItem(list_index, 4, id_label)
+        # Add the new ID to exported list
+        self.list_coord[list_index][7] = str(id_label)
+
+    def OnDeleteAllMarkers(self, pubsub_evt):
+        result = dlg.DeleteAllMarkers()
+        if result == wx.ID_OK:
+            self.list_coord = []
+            self.marker_ind = 0
+            Publisher.sendMessage('Remove all markers', self.lc.GetItemCount())
+            self.lc.DeleteAllItems()
+            Publisher.sendMessage('Stop Blink Marker', 'DeleteAll')
+
+    def OnDeleteSingleMarker(self, evt):
+        # OnDeleteSingleMarker is used for both pubsub and button click events
+        # Pubsub is used for fiducial handle and button click for all others
+
+        if hasattr(evt, 'data'):
+            marker_id = evt.data
+            if self.lc.GetItemCount():
+                for id_n in range(self.lc.GetItemCount()):
+                    item = self.lc.GetItem(id_n, 4)
+                    if item.GetText() == marker_id:
+                        for i in const.BTNS_IMG_MKS:
+                            if marker_id in const.BTNS_IMG_MKS[i].values()[0]:
+                                self.lc.Focus(item.GetId())
+                index = [self.lc.GetFocusedItem()]
         else:
-            text_file = open("points.txt", "r")
-            filedata = text_file.read()
-            line = filedata + str('%.2f' %x) + "\t" + str('%.2f' %y) + "\t" + str('%.2f' %z) + "\n"
-            text_file = open("points.txt", "w")
-            text_file.write(line)
-            text_file.close()
-        
+            if self.lc.GetFirstSelected() is not -1:
+                index = self.GetSelectedItems()
+            else:
+                index = None
+
+        if index:
+            self.DeleteMarker(index)
+        else:
+            dlg.NoMarkerSelected()
+
+    def DeleteMarker(self, index):
+        for i in reversed(index):
+            del self.list_coord[i]
+            self.lc.DeleteItem(i)
+            for n in range(0, self.lc.GetItemCount()):
+                self.lc.SetStringItem(n, 0, str(n+1))
+            self.marker_ind -= 1
+        Publisher.sendMessage('Remove marker', index)
+
+    def OnCreateMarker(self, evt):
+        # OnCreateMarker is used for both pubsub and button click events
+        # Pubsub is used for markers created with fiducial buttons, trigger and create marker button
+        if hasattr(evt, 'data'):
+            if evt.data is not None:
+                self.CreateMarker(evt.data[0], (0.0, 1.0, 0.0), self.marker_size, evt.data[1])
+            else:
+                self.CreateMarker(self.current_coord, self.marker_colour, self.marker_size)
+        else:
+            self.CreateMarker(self.current_coord, self.marker_colour, self.marker_size)
+
+    def OnLoadMarkers(self, evt):
+        filepath = dlg.ShowLoadMarkersDialog()
+
+        if filepath:
+            try:
+                content = [s.rstrip() for s in open(filepath)]
+                for data in content:
+                    line = [s for s in data.split()]
+                    coord = float(line[0]), float(line[1]), float(line[2])
+                    colour = float(line[3]), float(line[4]), float(line[5])
+                    size = float(line[6])
+
+                    if len(line) == 8:
+                        for i in const.BTNS_IMG_MKS:
+                            if line[7] in const.BTNS_IMG_MKS[i].values()[0]:
+                                Publisher.sendMessage('Load image fiducials', (line[7], coord))
+                    else:
+                        line.append("")
+                    self.CreateMarker(coord, colour, size, line[7])
+            except:
+                dlg.InvalidMarkersFile()
+
+    def OnMarkersVisibility(self, evt, ctrl):
+
+        if ctrl.GetValue():
+            Publisher.sendMessage('Hide all markers',  self.lc.GetItemCount())
+            ctrl.SetLabel('Show')
+        else:
+            Publisher.sendMessage('Show all markers',  self.lc.GetItemCount())
+            ctrl.SetLabel('Hide')
+
+    def OnSaveMarkers(self, evt):
+        filename = dlg.ShowSaveMarkersDialog("markers.mks")
+        if filename:
+            if self.list_coord:
+                text_file = open(filename, "w")
+                list_slice1 = self.list_coord[0]
+                coord = str('%.3f' %self.list_coord[0][0]) + "\t" + str('%.3f' %self.list_coord[0][1]) + "\t" + str('%.3f' %self.list_coord[0][2])
+                properties = str('%.3f' %list_slice1[3]) + "\t" + str('%.3f' %list_slice1[4]) + "\t" + str('%.3f' %list_slice1[5]) + "\t" + str('%.1f' %list_slice1[6]) + "\t" + list_slice1[7]
+                line = coord + "\t" + properties + "\n"
+                list_slice = self.list_coord[1:]
+
+                for value in list_slice:
+                    coord = str('%.3f' %value[0]) + "\t" + str('%.3f' %value[1]) + "\t" + str('%.3f' %value[2])
+                    properties = str('%.3f' %value[3]) + "\t" + str('%.3f' %value[4]) + "\t" + str('%.3f' %value[5]) + "\t" + str('%.1f' %value[6]) + "\t" + value[7]
+                    line = line + coord + "\t" + properties + "\n"
+
+                text_file.writelines(line)
+                text_file.close()
+
+    def OnSelectColour(self, evt, ctrl):
+        self.marker_colour = [colour/255.0 for colour in ctrl.GetValue()]
+
+    def OnSelectSize(self, evt, ctrl):
+        self.marker_size = ctrl.GetValue()
+
+    def CreateMarker(self, coord, colour, size, marker_id=""):
+        # TODO: Use matrix coordinates and not world coordinates as current method.
+        # This makes easier for inter-software comprehension.
+
+        Publisher.sendMessage('Add marker', (self.marker_ind, size, colour,  coord))
+
+        self.marker_ind += 1
+
+        # List of lists with coordinates and properties of a marker
+        line = [coord[0], coord[1], coord[2], colour[0], colour[1], colour[2], self.marker_size, marker_id]
+
+        # Adding current line to a list of all markers already created
+        if not self.list_coord:
+            self.list_coord = [line]
+        else:
+            self.list_coord.append(line)
+
+        # Add item to list control in panel
+        num_items = self.lc.GetItemCount()
+        self.lc.InsertStringItem(num_items, str(num_items + 1))
+        self.lc.SetStringItem(num_items, 1, str(round(coord[0], 2)))
+        self.lc.SetStringItem(num_items, 2, str(round(coord[1], 2)))
+        self.lc.SetStringItem(num_items, 3, str(round(coord[2], 2)))
+        self.lc.SetStringItem(num_items, 4, str(marker_id))
+        self.lc.EnsureVisible(num_items)
+
+    def GetSelectedItems(self):
+        """    
+        Returns a list of the selected items in the list control.
+        """
+        selection = []
+        index = self.lc.GetFirstSelected()
+        selection.append(index)
+        while len(selection) != self.lc.GetSelectedItemCount():
+            index = self.lc.GetNextSelected(index)
+            selection.append(index)
+        return selection
diff --git a/invesalius/gui/task_slice.py b/invesalius/gui/task_slice.py
index 41d3ebf..04fe288 100644
--- a/invesalius/gui/task_slice.py
+++ b/invesalius/gui/task_slice.py
@@ -18,22 +18,23 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 import sys
+import os
 
 import wx
 import wx.lib.hyperlink as hl
 import wx.lib.platebtn as pbtn
+import wx.lib.foldpanelbar as fpb
+import wx.lib.colourselect as csel
 from wx.lib.pubsub import pub as Publisher
 
-import data.mask as mask
-import data.slice_ as slice_
-import constants as const
-import gui.dialogs as dlg
-import gui.widgets.gradient as grad
-import gui.widgets.foldpanelbar as fpb
-import widgets.colourselect as csel
+import invesalius.data.mask as mask
+import invesalius.data.slice_ as slice_
+import invesalius.constants as const
+import invesalius.gui.dialogs as dlg
+import invesalius.gui.widgets.gradient as grad
 
-from project import Project
-import session as ses
+from invesalius.project import Project
+import invesalius.session as ses
 
 BTN_NEW = wx.NewId()
 
@@ -70,7 +71,7 @@ class InnerTaskPanel(wx.Panel):
         self.SetAutoLayout(1)
 
         # Image(s) for buttons
-        BMP_ADD = wx.Bitmap("../icons/object_add.png", wx.BITMAP_TYPE_PNG)
+        BMP_ADD = wx.Bitmap(os.path.join(const.ICON_DIR, "object_add.png"), wx.BITMAP_TYPE_PNG)
         #BMP_ADD.SetWidth(25)
         #BMP_ADD.SetHeight(25)
 
@@ -267,7 +268,7 @@ class InnerFoldPanel(wx.Panel):
         self.mask_prop_panel = MaskProperties(item)
 
         fold_panel.ApplyCaptionStyle(item, style)
-        fold_panel.AddFoldPanelWindow(item, self.mask_prop_panel, Spacing= 0,
+        fold_panel.AddFoldPanelWindow(item, self.mask_prop_panel, spacing= 0,
                                       leftSpacing=0, rightSpacing=0)
 
         # Fold 2 - Advanced edition tools
@@ -275,7 +276,7 @@ class InnerFoldPanel(wx.Panel):
         etw = EditionTools(item)
 
         fold_panel.ApplyCaptionStyle(item, style)
-        fold_panel.AddFoldPanelWindow(item, etw, Spacing= 0,
+        fold_panel.AddFoldPanelWindow(item, etw, spacing= 0,
                                       leftSpacing=0, rightSpacing=0)
         self.__id_editor = item.GetId()
         self.last_panel_opened = None
@@ -285,7 +286,7 @@ class InnerFoldPanel(wx.Panel):
         wtw = WatershedTool(item)
 
         fold_panel.ApplyCaptionStyle(item, style)
-        fold_panel.AddFoldPanelWindow(item, wtw, Spacing= 0,
+        fold_panel.AddFoldPanelWindow(item, wtw, spacing= 0,
                                       leftSpacing=0, rightSpacing=0)
         self.__id_watershed = item.GetId()
 
@@ -341,6 +342,7 @@ class InnerFoldPanel(wx.Panel):
         Publisher.subscribe(self.OnRetrieveStyle, 'Retrieve task slice style')
         Publisher.subscribe(self.OnDisableStyle, 'Disable task slice style')
         Publisher.subscribe(self.OnCloseProject, 'Close project data')
+        Publisher.subscribe(self.OnColapsePanel, 'Show panel')
 
     def OnFoldPressCaption(self, evt):
         id = evt.GetTag().GetId()
@@ -387,6 +389,19 @@ class InnerFoldPanel(wx.Panel):
     def OnCloseProject(self, pubsub_evt):
         self.fold_panel.Expand(self.fold_panel.GetFoldPanel(0))
 
+    def OnColapsePanel(self, pubsub_evt):
+        panel_seg_id = {
+            const.ID_THRESHOLD_SEGMENTATION: 0,
+            const.ID_MANUAL_SEGMENTATION: 1,
+            const.ID_WATERSHED_SEGMENTATION: 2
+        }
+
+        try:
+            _id = panel_seg_id[pubsub_evt.data]
+            self.fold_panel.Expand(self.fold_panel.GetFoldPanel(_id))
+        except KeyError:
+            pass
+
     def GetMaskSelected(self):
         x= self.mask_prop_panel.GetMaskSelected()
         return self.mask_prop_panel.GetMaskSelected()
@@ -406,7 +421,7 @@ class MaskProperties(wx.Panel):
         self.combo_mask_name = combo_mask_name
 
         # Mask colour
-        button_colour= csel.ColourSelect(self, 111,colour=(0,255,0),size=(-1,22))
+        button_colour= csel.ColourSelect(self, 111,colour=(0,255,0),size=(22,-1))
         self.button_colour = button_colour
 
         # Sizer which represents the first line
@@ -524,6 +539,7 @@ class MaskProperties(wx.Panel):
         self.bind_evt_gradient = False
         self.gradient.SetMinValue(thresh_min)
         self.gradient.SetMaxValue(thresh_max)
+        
         self.bind_evt_gradient = True
         thresh = (thresh_min, thresh_max)
         if thresh in Project().threshold_modes.values():
@@ -561,10 +577,10 @@ class MaskProperties(wx.Panel):
         mask_thresh = evt_pubsub.data[2]
         mask_colour = [int(c*255) for c in evt_pubsub.data[3]]
         index = self.combo_mask_name.Append(mask_name)
-        self.combo_mask_name.SetSelection(index)
-        self.button_colour.SetColour(mask_colour)
-        self.gradient.SetColour(mask_colour)
-        self.combo_mask_name.SetSelection(index)
+        #  self.combo_mask_name.SetSelection(index)
+        #  self.button_colour.SetColour(mask_colour)
+        #  self.gradient.SetColour(mask_colour)
+        #  self.combo_mask_name.SetSelection(index)
 
     def GetMaskSelected(self):
         x = self.combo_mask_name.GetSelection()
@@ -650,11 +666,11 @@ class EditionTools(wx.Panel):
         ## LINE 2
         menu = wx.Menu()
 
-        CIRCLE_BMP = wx.Bitmap("../icons/brush_circle.jpg", wx.BITMAP_TYPE_JPEG)
+        CIRCLE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_circle.jpg"), wx.BITMAP_TYPE_JPEG)
         item = wx.MenuItem(menu, MENU_BRUSH_CIRCLE, _("Circle"))
         item.SetBitmap(CIRCLE_BMP)
 
-        SQUARE_BMP = wx.Bitmap("../icons/brush_square.jpg", wx.BITMAP_TYPE_JPEG)
+        SQUARE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_square.jpg"), wx.BITMAP_TYPE_JPEG)
         item2 = wx.MenuItem(menu, MENU_BRUSH_SQUARE, _("Square"))
         item2.SetBitmap(SQUARE_BMP)
 
@@ -770,8 +786,8 @@ class EditionTools(wx.Panel):
                                      (thresh_min, thresh_max))
 
     def OnMenu(self, evt):
-        SQUARE_BMP = wx.Bitmap("../icons/brush_square.jpg", wx.BITMAP_TYPE_JPEG)
-        CIRCLE_BMP = wx.Bitmap("../icons/brush_circle.jpg", wx.BITMAP_TYPE_JPEG)
+        SQUARE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_square.jpg"), wx.BITMAP_TYPE_JPEG)
+        CIRCLE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_circle.jpg"), wx.BITMAP_TYPE_JPEG)
 
         brush = {MENU_BRUSH_CIRCLE: const.BRUSH_CIRCLE,
                  MENU_BRUSH_SQUARE: const.BRUSH_SQUARE}
@@ -814,11 +830,11 @@ class WatershedTool(EditionTools):
         ## LINE 2
         menu = wx.Menu()
 
-        CIRCLE_BMP = wx.Bitmap("../icons/brush_circle.jpg", wx.BITMAP_TYPE_JPEG)
+        CIRCLE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_circle.jpg"), wx.BITMAP_TYPE_JPEG)
         item = wx.MenuItem(menu, MENU_BRUSH_CIRCLE, _("Circle"))
         item.SetBitmap(CIRCLE_BMP)
 
-        SQUARE_BMP = wx.Bitmap("../icons/brush_square.jpg", wx.BITMAP_TYPE_JPEG)
+        SQUARE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_square.jpg"), wx.BITMAP_TYPE_JPEG)
         item2 = wx.MenuItem(menu, MENU_BRUSH_SQUARE, _("Square"))
         item2.SetBitmap(SQUARE_BMP)
 
@@ -873,7 +889,7 @@ class WatershedTool(EditionTools):
         self.ww_wl_cbox = ww_wl_cbox
 
         # Line 6
-        bmp = wx.Bitmap("../icons/configuration.png", wx.BITMAP_TYPE_PNG)
+        bmp = wx.Bitmap(os.path.join(const.ICON_DIR, "configuration.png"), wx.BITMAP_TYPE_PNG)
         self.btn_wconfig = wx.BitmapButton(self, -1, bitmap=bmp,
                                            size=(bmp.GetWidth()+10, bmp.GetHeight()+10))
         self.btn_exp_watershed = wx.Button(self, -1, _('Expand watershed to 3D'))
@@ -941,8 +957,8 @@ class WatershedTool(EditionTools):
         self.gradient_thresh.SetMaxValue(thresh_max)
 
     def OnMenu(self, evt):
-        SQUARE_BMP = wx.Bitmap("../icons/brush_square.jpg", wx.BITMAP_TYPE_JPEG)
-        CIRCLE_BMP = wx.Bitmap("../icons/brush_circle.jpg", wx.BITMAP_TYPE_JPEG)
+        SQUARE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_square.jpg"), wx.BITMAP_TYPE_JPEG)
+        CIRCLE_BMP = wx.Bitmap(os.path.join(const.ICON_DIR, "brush_circle.jpg"), wx.BITMAP_TYPE_JPEG)
 
         brush = {MENU_BRUSH_CIRCLE: const.BRUSH_CIRCLE,
                  MENU_BRUSH_SQUARE: const.BRUSH_SQUARE}
@@ -977,7 +993,7 @@ class WatershedTool(EditionTools):
         Publisher.sendMessage('Set use ww wl', value)
 
     def OnConfig(self, evt):
-        from data.styles import WatershedConfig
+        from invesalius.data.styles import WatershedConfig
         config = WatershedConfig()
         dlg.WatershedOptionsDialog(config).Show()
 
diff --git a/invesalius/gui/task_surface.py b/invesalius/gui/task_surface.py
index a830436..3400920 100644
--- a/invesalius/gui/task_surface.py
+++ b/invesalius/gui/task_surface.py
@@ -17,19 +17,20 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 import sys
+import os
 
 import wx
 import wx.lib.hyperlink as hl
 from wx.lib.pubsub import pub as Publisher
+import wx.lib.foldpanelbar as fpb
+import wx.lib.colourselect as csel
 
-import constants as const
-import data.slice_ as slice_
-import gui.dialogs as dlg
-import gui.widgets.foldpanelbar as fpb
-import gui.widgets.colourselect as csel
-import gui.widgets.platebtn as pbtn
-import project as prj
-import utils as utl
+import invesalius.constants as const
+import invesalius.data.slice_ as slice_
+import invesalius.gui.dialogs as dlg
+import wx.lib.platebtn as pbtn
+import invesalius.project as prj
+import invesalius.utils as utl
 
 #INTERPOLATION_MODE_LIST = ["Cubic", "Linear", "NearestNeighbor"]
 MIN_TRANSPARENCY = 0
@@ -73,7 +74,7 @@ class InnerTaskPanel(wx.Panel):
         self.SetAutoLayout(1)
 
 
-        BMP_ADD = wx.Bitmap("../icons/object_add.png", wx.BITMAP_TYPE_PNG)
+        BMP_ADD = wx.Bitmap(os.path.join(const.ICON_DIR, "object_add.png"), wx.BITMAP_TYPE_PNG)
         #BMP_ADD.SetWidth(25)
         #BMP_ADD.SetHeight(25)
 
@@ -134,7 +135,7 @@ class InnerTaskPanel(wx.Panel):
             evt.Skip()
 
     def OnLinkNewSurface(self, evt=None):
-        #import gui.dialogs as dlg
+        #import invesalius.gui.dialogs as dlg
         sl = slice_.Slice()
         dialog = dlg.SurfaceCreationDialog(None, -1,
                             _('New surface'),
@@ -215,13 +216,13 @@ class InnerFoldPanel(wx.Panel):
         # Fold 1 - Surface properties
         item = fold_panel.AddFoldPanel(_("Surface properties"), collapsed=True)
         fold_panel.ApplyCaptionStyle(item, style)
-        fold_panel.AddFoldPanelWindow(item, SurfaceProperties(item), Spacing= 0,
+        fold_panel.AddFoldPanelWindow(item, SurfaceProperties(item), spacing= 0,
                                       leftSpacing=0, rightSpacing=0)
 
         # Fold 2 - Surface tools
         item = fold_panel.AddFoldPanel(_("Advanced options"), collapsed=True)
         fold_panel.ApplyCaptionStyle(item, style)
-        fold_panel.AddFoldPanelWindow(item, SurfaceTools(item), Spacing= 0,
+        fold_panel.AddFoldPanelWindow(item, SurfaceTools(item), spacing= 0,
                                       leftSpacing=0, rightSpacing=0)
 
         #fold_panel.AddFoldPanelWindow(item, QualityAdjustment(item), Spacing= 0,
@@ -299,17 +300,17 @@ class SurfaceTools(wx.Panel):
         link_seeds.Bind(hl.EVT_HYPERLINK_LEFT, self.OnLinkSeed)
 
         # Image(s) for buttons
-        img_largest = wx.Image("../icons/connectivity_largest.png",
+        img_largest = wx.Image(os.path.join(const.ICON_DIR, "connectivity_largest.png"),
                                wx.BITMAP_TYPE_PNG)
         img_largest.Rescale(25, 25)
         bmp_largest = img_largest.ConvertToBitmap()
 
-        img_split_all = wx.Image("../icons/connectivity_split_all.png",
+        img_split_all = wx.Image(os.path.join(const.ICON_DIR, "connectivity_split_all.png"),
                                  wx.BITMAP_TYPE_PNG)
         img_split_all.Rescale(25, 25)
         bmp_split_all = img_split_all.ConvertToBitmap()
 
-        img_seeds = wx.Image("../icons/connectivity_manual.png",
+        img_seeds = wx.Image(os.path.join(const.ICON_DIR, "connectivity_manual.png"),
                              wx.BITMAP_TYPE_PNG)
         img_seeds.Rescale(25, 25)
         bmp_seeds = img_seeds.ConvertToBitmap()
@@ -329,6 +330,7 @@ class SurfaceTools(wx.Panel):
 
         # When using PlaneButton, it is necessary to bind events from parent win
         self.Bind(wx.EVT_BUTTON, self.OnButton)
+        self.Bind(wx.EVT_TOGGLEBUTTON, self.OnToggleButton)
 
         # Tags and grid sizer for fixed items
         flag_link = wx.EXPAND|wx.GROW|wx.LEFT|wx.TOP
@@ -360,7 +362,8 @@ class SurfaceTools(wx.Panel):
         self.SplitSurface()
 
     def OnLinkSeed(self, evt):
-        self.button_seeds.Toggle()
+        self.button_seeds._SetState(not self.button_seeds.GetState())
+        self.button_seeds.Refresh()
         self.SelectSeed()
 
     def OnButton(self, evt):
@@ -372,6 +375,13 @@ class SurfaceTools(wx.Panel):
         else:
             self.SelectSeed()
 
+    def OnToggleButton(self, evt):
+        id = evt.GetId()
+        if id == BTN_SEEDS:
+            self.button_seeds._SetState(self.button_seeds.IsPressed())
+            self.button_seeds.Refresh()
+            self.SelectSeed()
+
     def SelectLargest(self):
         Publisher.sendMessage('Create surface from largest region')
 
@@ -379,16 +389,18 @@ class SurfaceTools(wx.Panel):
         Publisher.sendMessage('Split surface')
 
     def SelectSeed(self):
-        if self.button_seeds.IsPressed():
+        if self.button_seeds.GetState() == 1:
             self.StartSeeding()
         else:
             self.EndSeeding()
 
     def StartSeeding(self):
+        print "Start Seeding"
         Publisher.sendMessage('Enable style', const.VOLUME_STATE_SEED)
         Publisher.sendMessage('Create surface by seeding - start')
 
     def EndSeeding(self):
+        print "End Seeding"
         Publisher.sendMessage('Disable style', const.VOLUME_STATE_SEED)
         Publisher.sendMessage('Create surface by seeding - end')
 
@@ -414,7 +426,7 @@ class SurfaceProperties(wx.Panel):
         self.combo_surface_name = combo_surface_name
 
         # Mask colour
-        button_colour= csel.ColourSelect(self, -1,colour=(0,0,255),size=(-1,22))
+        button_colour= csel.ColourSelect(self, -1,colour=(0,0,255),size=(22, -1))
         button_colour.Bind(csel.EVT_COLOURSELECT, self.OnSelectColour)
         self.button_colour = button_colour
 
@@ -500,6 +512,7 @@ class SurfaceProperties(wx.Panel):
         n = self.combo_surface_name.GetCount()
         for i in xrange(n-1, -1, -1):
             self.combo_surface_name.Delete(i)
+        self.surface_list = []
 
     def ChangeSurfaceName(self, pubsub_evt):
         index, name = pubsub_evt.data
@@ -526,7 +539,7 @@ class SurfaceProperties(wx.Panel):
 
         self.combo_surface_name.SetItems([n[0] for n in self.surface_list])
         self.combo_surface_name.SetSelection(i)
-        transparency = 100*pubsub_evt.data[4]
+        transparency = 100*pubsub_evt.data[5]
         self.button_colour.SetColour(colour)
         self.slider_transparency.SetValue(transparency)
         Publisher.sendMessage('Update surface data', (index))
@@ -556,7 +569,7 @@ class SurfaceProperties(wx.Panel):
 
 class QualityAdjustment(wx.Panel):
     def __init__(self, parent):
-        import constants as const
+        import invesalius.constants as const
         wx.Panel.__init__(self, parent)
         default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
         self.SetBackgroundColour(default_colour)
diff --git a/invesalius/gui/task_tools.py b/invesalius/gui/task_tools.py
index 38ce05c..d3d4bb4 100644
--- a/invesalius/gui/task_tools.py
+++ b/invesalius/gui/task_tools.py
@@ -18,12 +18,14 @@
 #--------------------------------------------------------------------------
 
 import wx
+import os
 import wx.lib.embeddedimage as emb
 import wx.lib.hyperlink as hl
 import wx.lib.platebtn as pbtn
 from wx.lib.pubsub import pub as Publisher
 
-import constants
+import invesalius.constants as constants
+import invesalius.constants as const
 
 ID_BTN_MEASURE_LINEAR = wx.NewId()
 ID_BTN_MEASURE_ANGULAR = wx.NewId()
@@ -71,9 +73,9 @@ class InnerTaskPanel(wx.Panel):
         txt_annotation.Bind(hl.EVT_HYPERLINK_LEFT, self.OnTextAnnotation)
 
         # Image(s) for buttons
-        BMP_ANNOTATE = wx.Bitmap("../icons/annotation.png", wx.BITMAP_TYPE_PNG)
-        BMP_ANGLE = wx.Bitmap("../icons/measure_angle.jpg", wx.BITMAP_TYPE_JPEG)
-        BMP_DISTANCE = wx.Bitmap("../icons/measure_line.png", wx.BITMAP_TYPE_PNG)
+        BMP_ANNOTATE = wx.Bitmap(os.path.join(const.ICON_DIR, "annotation.png"), wx.BITMAP_TYPE_PNG)
+        BMP_ANGLE = wx.Bitmap(os.path.join(const.ICON_DIR, "measure_angle.jpg"), wx.BITMAP_TYPE_JPEG)
+        BMP_DISTANCE = wx.Bitmap(os.path.join(const.ICON_DIR, "measure_line.png"), wx.BITMAP_TYPE_PNG)
         BMP_ANNOTATE.SetWidth(25)
         BMP_ANNOTATE.SetHeight(25)
         BMP_ANGLE.SetWidth(25)
diff --git a/invesalius/gui/widgets/clut_raycasting.py b/invesalius/gui/widgets/clut_raycasting.py
index 2a29a9f..158cbdc 100644
--- a/invesalius/gui/widgets/clut_raycasting.py
+++ b/invesalius/gui/widgets/clut_raycasting.py
@@ -26,8 +26,8 @@ import numpy
 import wx
 from wx.lib.pubsub import pub as Publisher
 
-import gui.dialogs as dialog
-import constants as const
+import invesalius.gui.dialogs as dialog
+import invesalius.constants as const
 
 FONT_COLOUR = (1, 1, 1)
 LINE_COLOUR = (128, 128, 128)
diff --git a/invesalius/gui/widgets/colourselect.py b/invesalius/gui/widgets/colourselect.py
deleted file mode 100644
index 8b5eff5..0000000
--- a/invesalius/gui/widgets/colourselect.py
+++ /dev/null
@@ -1,176 +0,0 @@
-#----------------------------------------------------------------------------
-# Name:         ColourSelect.py
-# Purpose:      Colour Box Selection Control
-#
-# Author:       Lorne White, Lorne.White at telusplanet.net
-#
-# Created:      Feb 25, 2001
-# Licence:      wxWindows license
-#----------------------------------------------------------------------------
-
-# creates a colour wxButton with selectable color
-# button click provides a colour selection box
-# button colour will change to new colour
-# GetColour method to get the selected colour
-
-# Updates:
-# call back to function if changes made
-
-# Cliff Wells, logiplexsoftware at earthlink.net:
-# - Made ColourSelect into "is a button" rather than "has a button"
-# - Added label parameter and logic to adjust the label colour according to the background
-#   colour
-# - Added id argument
-# - Rearranged arguments to more closely follow wx conventions
-# - Simplified some of the code
-
-# Cliff Wells, 2002/02/07
-# - Added ColourSelect Event
-
-# 12/01/2003 - Jeff Grimmett (grimmtooth at softhome.net)
-#
-# o Updated for 2.5 compatability.
-#
-
-"""
-Provides a `ColourSelect` button that, when clicked, will display a
-colour selection dialog.  The selected colour is displayed on the
-button itself.
-"""
-
-#----------------------------------------------------------------------------
-
-import  wx
-
-#----------------------------------------------------------------------------
-
-wxEVT_COMMAND_COLOURSELECT = wx.NewEventType()
-
-class ColourSelectEvent(wx.PyCommandEvent):
-    def __init__(self, id, value):
-        wx.PyCommandEvent.__init__(self, id = id)
-        self.SetEventType(wxEVT_COMMAND_COLOURSELECT)
-        self.value = value
-
-    def GetValue(self):
-        return self.value
-
-EVT_COLOURSELECT = wx.PyEventBinder(wxEVT_COMMAND_COLOURSELECT, 1)
-
-#----------------------------------------------------------------------------
-
-class ColourSelect(wx.BitmapButton):
-    def __init__(self, parent, id=wx.ID_ANY, label="", colour=wx.BLACK,
-                 pos=wx.DefaultPosition, size=wx.DefaultSize,
-                 callback=None, style=0):
-        if label:
-            w, h = parent.GetTextExtent(label)
-            w += 6
-            h += 6
-        else:
-            w, h = 20, 20
-        wx.BitmapButton.__init__(self, parent, id, wx.EmptyBitmap(w,h),
-                                 pos=pos, size=size, style=style|wx.BU_AUTODRAW)
-
-        if type(colour) == type( () ):
-            colour = wx.Colour(*colour)
-        self.colour = colour
-        self.SetLabel(label)
-        self.callback = callback
-        bmp = self.MakeBitmap()
-        self.SetBitmap(bmp)
-        parent.Bind(wx.EVT_BUTTON, self.OnClick, self)
-
-
-    def GetColour(self):
-        return self.colour
-
-    def GetValue(self):
-        return self.colour
-
-    def SetValue(self, colour):
-        self.SetColour(colour)
-
-    def SetColour(self, colour):
-        if type(colour) == tuple:
-            colour = wx.Colour(*colour)
-        if type(colour) == str:
-            colour = wx.NamedColour(colour)
-
-        self.colour = colour
-        bmp = self.MakeBitmap()
-        self.SetBitmap(bmp)
-
-
-    def SetLabel(self, label):
-        self.label = label
-
-    def GetLabel(self):
-        return self.label
-
-
-    def MakeBitmap(self):
-        bdr = 8
-        width, height = self.GetSize()
-
-        # yes, this is weird, but it appears to work around a bug in wxMac
-        if "wxMac" in wx.PlatformInfo and width == height:
-            height -= 1
-
-        bmp = wx.EmptyBitmap(width-bdr, height-bdr)
-        dc = wx.MemoryDC()
-        dc.SelectObject(bmp)
-        dc.SetFont(self.GetFont())
-        label = self.GetLabel()
-        # Just make a little colored bitmap
-        dc.SetBackground(wx.Brush(self.colour))
-        dc.Clear()
-
-        if label:
-            # Add a label to it
-            avg = reduce(lambda a, b: a + b, self.colour.Get()) / 3
-            fcolour = avg > 128 and wx.BLACK or wx.WHITE
-            dc.SetTextForeground(fcolour)
-            dc.DrawLabel(label, (0,0, width-bdr, height-bdr),
-                         wx.ALIGN_CENTER)
-
-        dc.SelectObject(wx.NullBitmap)
-        return bmp
-
-
-    def SetBitmap(self, bmp):
-        self.SetBitmapLabel(bmp)
-        #self.SetBitmapSelected(bmp)
-        #self.SetBitmapDisabled(bmp)
-        #self.SetBitmapFocus(bmp)
-        #self.SetBitmapSelected(bmp)
-        self.Refresh()
-
-
-    def OnChange(self):
-        evt = ColourSelectEvent(self.GetId(), self.GetValue())
-        evt.SetEventObject(self)
-        wx.PostEvent(self, evt)
-        if self.callback is not None:
-            self.callback()
-
-    def OnClick(self, event):
-        data = wx.ColourData()
-        data.SetChooseFull(True)
-        data.SetColour(self.colour)
-        dlg = wx.ColourDialog(wx.GetTopLevelParent(self), data)
-
-        try:
-            changed = dlg.ShowModal() == wx.ID_OK
-        except(wx._core.PyAssertionError):
-            changed = True
-
-        if changed:
-            data = dlg.GetColourData()
-            self.SetColour(data.GetColour())
-        dlg.Destroy()
-
-        # moved after dlg.Destroy, since who knows what the callback will do...
-        if changed:
-            self.OnChange()
-
diff --git a/invesalius/gui/widgets/foldpanelbar.py b/invesalius/gui/widgets/foldpanelbar.py
deleted file mode 100644
index 28b6472..0000000
--- a/invesalius/gui/widgets/foldpanelbar.py
+++ /dev/null
@@ -1,1937 +0,0 @@
-#--------------------------------------------------------------------------
-# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
-# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
-# Homepage:     http://www.softwarepublico.gov.br
-# Contact:      invesalius at cti.gov.br
-# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
-#--------------------------------------------------------------------------
-#    Este programa e software livre; voce pode redistribui-lo e/ou
-#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
-#    publicada pela Free Software Foundation; de acordo com a versao 2
-#    da Licenca.
-#
-#    Este programa eh distribuido na expectativa de ser util, mas SEM
-#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
-#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
-#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
-#    detalhes.
-#--------------------------------------------------------------------------
-
-# --------------------------------------------------------------------------- #
-# FOLDPANELBAR wxPython IMPLEMENTATION
-# Ported From Jorgen Bodde & Julian Smart (Extended Demo) C++ Code By:
-#
-# Andrea Gavana, @ 23 Mar 2005
-# Latest Revision: 05 Nov 2005, 23.30 CET
-#
-#
-# TODO List
-#
-# All The C++ TODOs Are Still Alive. I Am Not Able to Read Jorges's Mind
-# So I Don't Really Know What Will Be The New Features/Additions He Will
-# Make On His Code. At The Moment They Are:
-#
-# 1. OnPaint Function In CaptionBar Class:
-# TODO: Maybe First A Memory Dc Should Draw All, And Then Paint It On The
-# Caption. This Way A Flickering Arrow During Resize Is Not Visible.
-#
-# 2. OnChar Function In CaptionBar Class:
-# TODO: This Is Easy To Do But I Don't Have Any Useful Idea On Which Kind
-# Of Features To Add. Does Anyone Have An Intelligent Idea?
-#
-# 3. AddFoldPanelWindow Function In FoldPanelBar Class:
-# TODO: Take Old And New Heights, And If Difference, Reposition All The
-# Lower Panels. This Is Because The User Can Add New wxWindow Controls
-# Somewhere In Between When Other Panels Are Already Present.
-# Don't Know What It Means. Probably Is My Poor English...
-#
-# 4. OnSizePanel Function In FoldPanelBar Class:
-# TODO: A Smart Way To Check Wether The Old - New Width Of The
-# Panel Changed, If So No Need To Resize The Fold Panel Items
-#
-#
-# DONE List:
-#
-# 1. Implemented Styles Like FPB_SINGLE_FOLD and FPB_EXCLUSIVE_FOLD
-# Thanks To E. A. Tacao For His Nice Suggestions.
-#
-# 2. Added Some Maquillage To FoldPanelBar: When The Mouse Enters The Icon
-# Region, It Is Changed To wx.CURSOR_HAND.
-#
-#
-# For The Original TODO List From Jorgen, Please Refer To:
-# http://www.solidsteel.nl/jorg/components/foldpanel/wxFoldPanelBar.php#todo_list
-#
-#
-#
-# For All Kind Of Problems, Requests Of Enhancements And Bug Reports, Please
-# Write To Me At:
-#
-# andrea.gavana at agip.it
-# andrea_gavan at tin.it
-#
-# Or, Obviously, To The wxPython Mailing List!!!
-#
-#
-# End Of Comments
-# --------------------------------------------------------------------------- #
-
-
-"""
-The `FoldPanelBar` is a control that contains multiple panels (of type
-`FoldPanelItem`) that can be expanded or collapsed. The captionbar of
-the FoldPanel can be customized by setting it to a horizontal gradient
-style, vertical gradient style, a single color, a rectangle or filled
-rectangle. The FoldPanel items can be collapsed in place or to the
-bottom of the control. `wx.Window` derived controls can be added
-dynamically, and separated by separator lines.  FoldPanelBar is
-freeware and distributed under the wxPython license.
- 
-   
-How does it work
-----------------
-
-The internals of the FoldPanelBar is a list of FoldPanelItem objects. Through
-the reference of FoldPanel these panels can be controlled by adding new controls
-to a FoldPanel or adding new FoldPanels to the FoldPanelBar. 
-The CaptionBar fires events to the parent (container of all panel items) when a
-sub-panel needs resizing (either folding or expanding). The fold or expand process
-is simply a resize of the panel so it looks like all controls on it are gone. All
-controls are still child of the FoldPanel they are located on. If they don't
-handle the event (and they won't) then the owner of the FoldPanelBar gets the
-events. This is what you need to handle the controls. There isn't much to it just
-a lot of calculations to see what panel belongs where. There are no sizers
-involved in the panels, everything is purely x-y positioning. 
-
-
-What can it do and what not?
-----------------------------
-
-    a) What it can do:
-        * Run-time addition of panels (no deletion just yet) 
-        * Run time addition of controls to the panel (it will be resized accordingly)
-        * Creating panels in collapsed mode or expanded mode 
-        * Various modes of caption behaviour and filling to make it more appealing 
-        * Panels can be folded and collapsed (or all of them) to allow more space
-        
-    b) What it cannot do:
-
-        * Selection of a panel like in a list ctrl 
-        * Dragging and dropping the panels 
-        * Re-ordering the panels (not yet)  
-
- 
-Supported platforms
--------------------
-
-FoldPanelBar is supported on the following platforms: 
-  * Windows (Verified on Windows XP, 2000)
-  * Linux/Unix (GTK2) (Thanks To Toni Brkic And Robin Dunn)
-  * Mac OSX (Thanks To Robin Dunn For The CaptionBar Size Patch)
-
-
-FoldPanelBar is based upon Jorgen Bodde's C++ implementation.
-Latest Revision: Andrea Gavana @ 05 Nov 2005, 23.30 CET
-
-"""
-
-import wx
-
-#----------------------------------------------------------------------
-# Collapsed And Expanded Bitmap Images
-# Created With img2py.py 
-#----------------------------------------------------------------------
-from wx.lib.embeddedimage import PyEmbeddedImage
-
-CollapsedIcon = PyEmbeddedImage(
-    "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAADdJ"
-    "REFUOI1jZGRiZqAEMFGke/Ab8P/f3/8D5wKY7YRcQRsXoNuKzxXUdwEu23CJU+wCxtG8wAAA"
-    "mvUb+vltJD8AAAAASUVORK5CYII=")
-
-ExpandedIcon = PyEmbeddedImage(
-    "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAEJJ"
-    "REFUOI1jZGRiZqAEMFGke1AYwIIu8P/f3/+4FDMyMTNS3QUYBmCzBZ84bQIR3TZcttPOBci2"
-    "4rOdKi5gHM0LDACevARXGc9htQAAAABJRU5ErkJggg==")
-
-#----------------------------------------------------------------------
-# FOLDPANELBAR Starts Here
-#----------------------------------------------------------------------
-
-# CAPTIONBAR STYLES
-#
-#- CAPTIONBAR_GRADIENT_V: Draws a vertical gradient from top to bottom
-#- CAPTIONBAR_GRADIENT_H: Draws a horizontal gradient from left to right
-#- CAPTIONBAR_SINGLE: Draws a single filled rectangle to draw the caption
-#- CAPTIONBAR_RECTANGLE: Draws a single colour with a rectangle around the caption
-#- CAPTIONBAR_FILLED_RECTANGLE: Draws a filled rectangle and a border around it
-
-CAPTIONBAR_NOSTYLE            = 0
-CAPTIONBAR_GRADIENT_V         = 1
-CAPTIONBAR_GRADIENT_H         = 2
-CAPTIONBAR_SINGLE             = 3
-CAPTIONBAR_RECTANGLE          = 4
-CAPTIONBAR_FILLED_RECTANGLE   = 5
-
-FPB_EXTRA_X = 10
-FPB_EXTRA_Y = 4
-
-# pixels of the bmp to be aligned from the right filled with space
-FPB_BMP_RIGHTSPACE = 2
-
-# Now supported! Single fold forces
-# other panels to close when they are open, and only opens the current panel.
-# This will allow the open panel to gain the full size left in the client area
-FPB_SINGLE_FOLD = 0x0001
-
-# All panels are stacked to the bottom. When they are expanded again they
-# show up at the top
-FPB_COLLAPSE_TO_BOTTOM = 0x0002
-
-# Now supported! Single fold plus panels
-# will be stacked at the bottom
-FPB_EXCLUSIVE_FOLD = 0x0004
-
-# Orientation Flag 
-FPB_HORIZONTAL = wx.HORIZONTAL
-FPB_VERTICAL = wx.VERTICAL  
-
-# Default Extrastyle of the FoldPanelBar 
-FPB_DEFAULT_EXTRASTYLE = 0
-# Default style of the FoldPanelBar 
-FPB_DEFAULT_STYLE = wx.TAB_TRAVERSAL | wx.NO_BORDER
-
-# FoldPanelItem default settings
-FPB_ALIGN_LEFT = 0 
-FPB_ALIGN_WIDTH = 1
-
-FPB_DEFAULT_LEFTSPACING = 5
-FPB_DEFAULT_RIGHTSPACING = 10
-FPB_DEFAULT_SPACING = 8
-
-FPB_DEFAULT_LEFTLINESPACING = 2
-FPB_DEFAULT_RIGHTLINESPACING = 2
-
-
-# ------------------------------------------------------------------------------ #
-# class CaptionBarStyle
-# ------------------------------------------------------------------------------ #
-
-class CaptionBarStyle:
-    """
-    This class encapsulates the styles you wish to set for the
-    `CaptionBar` (this is the part of the FoldPanel where the caption
-    is displayed). It can either be applied at creation time be
-    reapplied when styles need to be changed.
-
-    At construction time, all styles are set to their default
-    transparency.  This means none of the styles will be applied to
-    the `CaptionBar` in question, meaning it will be created using the
-    default internals. When setting i.e the color, font or panel
-    style, these styles become active to be used.
-    
-    """
-
-    def __init__(self):
-        """ Default constructor for this class."""
-        
-        self.ResetDefaults()
-
-
-    def ResetDefaults(self):
-        """ Resets default CaptionBarStyle."""        
-        self._firstColourUsed = False
-        self._secondColourUsed = False
-        self._textColourUsed = False
-        self._captionFontUsed = False
-        self._captionStyleUsed = False
-        self._captionStyle = CAPTIONBAR_GRADIENT_V
-
-
-    # ------- CaptionBar Font -------
-    
-    def SetCaptionFont(self, font):
-        """
-        Sets font for the caption bar.
-
-        If this is not set, the font property is undefined and will
-        not be used. Use `CaptionFontUsed` to check if this style is
-        used.
-        """        
-        self._captionFont = font
-        self._captionFontUsed = True
-
-
-    def CaptionFontUsed(self):
-        """ Checks if the caption bar font is set. """        
-        return self._captionFontUsed
-
-
-    def GetCaptionFont(self):
-        """
-        Returns the font for the caption bar.
-
-        Please be warned this will result in an assertion failure when
-        this property is not previously set.
-        
-        :see: `SetCaptionFont`, `CaptionFontUsed`
-        """        
-        return self._captionFont
-
-
-    # ------- First Colour -------
-    
-    def SetFirstColour(self, colour):
-        """
-        Sets first colour for the caption bar.
-
-        If this is not set, the colour property is undefined and will
-        not be used. Use `FirstColourUsed` to check if this style is
-        used.
-        """        
-        self._firstColour = colour
-        self._firstColourUsed = True
-
-
-    def FirstColourUsed(self):
-        """ Checks if the first colour of the caption bar is set."""        
-        return self._firstColourUsed
-
-
-    def GetFirstColour(self):
-        """
-        Returns the first colour for the caption bar.
-
-        Please be warned this will result in an assertion failure when
-        this property is not previously set.
-        
-        :see: `SetFirstColour`, `FirstColourUsed`
-        """        
-        return self._firstColour
-
-
-    # ------- Second Colour -------
-    
-    def SetSecondColour(self, colour):
-        """
-        Sets second colour for the caption bar.
-
-        If this is not set, the colour property is undefined and will
-        not be used. Use `SecondColourUsed` to check if this style is
-        used.
-        """        
-        self._secondColour = colour
-        self._secondColourUsed = True
-
-
-    def SecondColourUsed(self):
-        """ Checks if the second colour of the caption bar is set."""        
-        return self._secondColourUsed
-
-
-    def GetSecondColour(self):
-        """
-        Returns the second colour for the caption bar.
-
-        Please be warned this will result in an assertion failure when
-        this property is not previously set.
-        
-        :see: `SetSecondColour`, `SecondColourUsed`
-        """        
-        return self._secondColour
-
-
-    # ------- Caption Text Colour -------
-    
-    def SetCaptionColour(self, colour):
-        """
-        Sets caption colour for the caption bar.
-
-        If this is not set, the colour property is undefined and will
-        not be used. Use `CaptionColourUsed` to check if this style is
-        used.
-        """        
-        self._textColour = colour
-        self._textColourUsed = True
-
-
-    def CaptionColourUsed(self):
-        """ Checks if the caption colour of the caption bar is set."""        
-        return self._textColourUsed
-
-
-    def GetCaptionColour(self):
-        """
-        Returns the caption colour for the caption bar.
-
-        Please be warned this will result in an assertion failure
-        when this property is not previously set.
-        See also SetCaptionColour(), CaptionColourUsed()
-        """        
-        return self._textColour
-
-
-    # ------- CaptionStyle  -------
-    
-    def SetCaptionStyle(self, style):
-        """
-        Sets caption style for the caption bar.
-
-        If this is not set, the property is undefined and will not be
-        used. Use CaptionStyleUsed() to check if this style is used.
-        The following styles can be applied:
-
-            * CAPTIONBAR_GRADIENT_V: Draws a vertical gradient from top to bottom
-            
-            * CAPTIONBAR_GRADIENT_H: Draws a horizontal gradient from
-              left to right
-                                         
-            * CAPTIONBAR_SINGLE: Draws a single filled rectangle to
-              draw the caption
-              
-            * CAPTIONBAR_RECTANGLE: Draws a single colour with a
-              rectangle around the caption
-              
-            * CAPTIONBAR_FILLED_RECTANGLE: Draws a filled rectangle
-              and a border around it
-              
-        """    
-        self._captionStyle = style
-        self._captionStyleUsed = True
-        
-
-    def CaptionStyleUsed(self):
-        """ Checks if the caption style of the caption bar is set."""        
-        return self._captionStyleUsed
-
-
-    def GetCaptionStyle(self):
-        """
-        Returns the caption style for the caption bar.
-        
-        Please be warned this will result in an assertion failure
-        when this property is not previously set.
-        
-        :see: `SetCaptionStyle`, `CaptionStyleUsed`
-        """        
-        return self._captionStyle
-
-
-#-----------------------------------#
-#        CaptionBarEvent
-#-----------------------------------#
-wxEVT_CAPTIONBAR = wx.NewEventType()
-EVT_CAPTIONBAR = wx.PyEventBinder(wxEVT_CAPTIONBAR, 0)
-
-
-# ---------------------------------------------------------------------------- #
-# class CaptionBarEvent
-# ---------------------------------------------------------------------------- #
-
-class CaptionBarEvent(wx.PyCommandEvent):
-    """
-    This event will be sent when a EVT_CAPTIONBAR is mapped in the parent.
-    It is to notify the parent that the bar is now in collapsed or expanded
-    state. The parent should re-arrange the associated windows accordingly
-    """    
-    def __init__(self, evtType):
-        """ Default Constructor For This Class."""        
-        wx.PyCommandEvent.__init__(self, evtType)
-
-        
-    def GetFoldStatus(self):
-        """
-        Returns whether the bar is expanded or collapsed. True means
-        expanded.
-        """        
-        return not self._bar.IsCollapsed()
-
-
-    def GetBar(self):
-        """ Returns The CaptionBar Selected."""        
-        return self._bar
-
-
-    def SetTag(self, tag):
-        """ Assign A Tag To The Selected CaptionBar."""        
-        self._tag = tag
-
-
-    def GetTag(self):
-        """ Returns The Tag Assigned To The Selected CaptionBar."""        
-        return self._tag
-
-
-    def SetBar(self, bar):
-        """
-        Sets the bar associated with this event.
-
-        Should not used by any other then the originator of the event.
-        """        
-        self._bar = bar
-
-
-# -------------------------------------------------------------------------------- #
-# class CaptionBar
-# -------------------------------------------------------------------------------- #
-
-class CaptionBar(wx.Window):
-    """
-    This class is a graphical caption component that consists of a
-    caption and a clickable arrow.
-
-    The CaptionBar fires an event EVT_CAPTIONBAR which is a
-    `CaptionBarEvent`.  This event can be caught and the parent window
-    can act upon the collapsed or expanded state of the bar (which is
-    actually just the icon which changed).  The parent panel can
-    reduce size or expand again.
-    """
-    
-    # Define Empty CaptionBar Style
-    EmptyCaptionBarStyle = CaptionBarStyle()
-    
-    def __init__(self, parent, id, pos, size, caption="",
-                 foldIcons=None, cbstyle=EmptyCaptionBarStyle,
-                 rightIndent=FPB_BMP_RIGHTSPACE,
-                 iconWidth=16, iconHeight=16, collapsed=False):
-        """ Default Class Constructor."""
-        
-        wx.Window.__init__(self, parent, wx.ID_ANY, pos=pos,
-                           size=(20,20), style=wx.NO_BORDER)
-
-        self._controlCreated = False
-        self._collapsed = collapsed
-        self.ApplyCaptionStyle(cbstyle, True)
-
-        if foldIcons is None:
-            foldIcons = wx.ImageList(16, 16)
-
-            bmp = ExpandedIcon.GetBitmap()
-            foldIcons.Add(bmp)
-            bmp = CollapsedIcon.GetBitmap()
-            foldIcons.Add(bmp)
-
-        # set initial size
-        if foldIcons:
-            assert foldIcons.GetImageCount() > 1
-            iconWidth, iconHeight = foldIcons.GetSize(0)
-
-        self._caption = caption
-        self._foldIcons = foldIcons
-        self._style = cbstyle
-        self._rightIndent = rightIndent
-        self._iconWidth = iconWidth
-        self._iconHeight = iconHeight
-        self._oldSize = wx.Size(20,20)
-
-        self._controlCreated = True
-
-        self.Bind(wx.EVT_PAINT, self.OnPaint)
-        self.Bind(wx.EVT_SIZE, self.OnSize)
-        self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouseEvent)
-        self.Bind(wx.EVT_CHAR, self.OnChar)
-        
-
-    def ApplyCaptionStyle(self, cbstyle=EmptyCaptionBarStyle, applyDefault=True):
-        """ Applies the style defined in cbstyle to the CaptionBar."""
-        
-        newstyle = cbstyle
-        
-        if applyDefault:
-
-            # get first colour from style or make it default
-            if not newstyle.FirstColourUsed():
-                newstyle.SetFirstColour(wx.WHITE)
-
-            # get second colour from style or make it default
-            if not newstyle.SecondColourUsed():
-                # make the second colour slightly darker then the background
-                color = self.GetParent().GetBackgroundColour()
-                r, g, b = int(color.Red()), int(color.Green()), int(color.Blue())
-                color = ((r >> 1) + 20, (g >> 1) + 20, (b >> 1) + 20)
-                newstyle.SetSecondColour(wx.Colour(color[0], color[1], color[2]))
-
-            # get text colour
-            if not newstyle.CaptionColourUsed():
-                newstyle.SetCaptionColour(wx.BLACK)
-
-            # get font colour
-            if not newstyle.CaptionFontUsed():
-                newstyle.SetCaptionFont(self.GetParent().GetFont())
-
-            # apply caption style
-            if not newstyle.CaptionStyleUsed():
-                newstyle.SetCaptionStyle(CAPTIONBAR_GRADIENT_V)
-
-        self._style = newstyle
-        
-
-    def SetCaptionStyle(self, cbstyle=EmptyCaptionBarStyle, applyDefault=True):
-        """
-        Sets CaptionBar styles with CapionBarStyle class.
-
-        All styles that are actually set, are applied. If you set
-        applyDefault to True, all other (not defined) styles will be
-        set to default. If it is False, the styles which are not set
-        in the CaptionBarStyle will be ignored.
-        """        
-        self.ApplyCaptionStyle(cbstyle, applyDefault)
-        self.Refresh()
-
-    
-    def GetCaptionStyle(self):
-        """
-        Returns the current style of the captionbar in a
-        `CaptionBarStyle` class.
-
-        This can be used to change and set back the changes.
-        """        
-        return self._style
-
-
-    def IsCollapsed(self):
-        """
-        Returns wether the status of the bar is expanded or collapsed.
-        """        
-        return self._collapsed
-    
-
-    def SetRightIndent(self, pixels):
-        """
-        Sets the amount of pixels on the right from which the bitmap
-        is trailing.
-
-        If this is 0, it will be drawn all the way to the right,
-        default is equal to FPB_BMP_RIGHTSPACE. Assign this before
-        assigning an image list to prevent a redraw.
-        """
-        assert pixels >= 0
-        self._rightIndent = pixels
-        if self._foldIcons:
-            self.Refresh()
-
-
-    def Collapse(self):
-        """
-        This sets the internal state / representation to collapsed.
-
-        This does not trigger a `CaptionBarEvent` to be sent to the
-        parent.
-        """        
-        self._collapsed = True
-        self.RedrawIconBitmap()
-
-
-    def Expand(self):
-        """
-        This sets the internal state / representation to expanded.
-
-        This does not trigger a `CaptionBarEvent` to be sent to the
-        parent.
-        """        
-        self._collapsed = False
-        self.RedrawIconBitmap()
-        
-
-    def SetBoldFont(self):
-        """ Sets the CaptionBarFont weight to BOLD."""
-        
-        self.GetFont().SetWeight(wx.BOLD)
-
-
-    def SetNormalFont(self):
-        """ Sets the CaptionBarFont weight to NORMAL."""
-        
-        self.GetFont().SetWeight(wx.NORMAL)
-
-
-    def IsVertical(self):
-        """
-        Returns wether the CaptionBar Has Default Orientation Or Not.
-
-        Default is vertical.
-        """
-        
-        fld = self.GetParent().GetGrandParent()
-        if isinstance(fld, FoldPanelBar):
-            return self.GetParent().GetGrandParent().IsVertical()
-        else:
-            raise "ERROR: Wrong Parent " + repr(fld)
-
-        
-    def OnPaint(self, event):
-        """ The paint event for flat or gradient fill. """
-        
-        if not self._controlCreated:
-            event.Skip()
-            return
-        
-        dc = wx.PaintDC(self)
-        wndRect = self.GetRect()
-        vertical = self.IsVertical()
-        
-        # TODO: Maybe first a memory DC should draw all, and then paint it on
-        # the caption. This way a flickering arrow during resize is not visible
-        
-        self.FillCaptionBackground(dc)
-        dc.SetFont(self._style.GetCaptionFont())
-        dc.SetTextForeground(self._style.GetCaptionColour())
-
-        if vertical:
-            dc.DrawText(self._caption, 4, FPB_EXTRA_Y/2)
-        else:
-            dc.DrawRotatedText(self._caption, FPB_EXTRA_Y/2,
-                               wndRect.GetBottom() - 4, 90)
-
-        # draw small icon, either collapsed or expanded
-        # based on the state of the bar. If we have any bmp's
-
-        if self._foldIcons:
-
-            index = self._collapsed
-            
-            if vertical:
-                drw = wndRect.GetRight() - self._iconWidth - self._rightIndent
-                self._foldIcons.Draw(index, dc, drw,
-                                     (wndRect.GetHeight() - self._iconHeight)/2,
-                                     wx.IMAGELIST_DRAW_TRANSPARENT)
-            else:
-                self._foldIcons.Draw(index, dc,
-                                     (wndRect.GetWidth() - self._iconWidth)/2,
-                                     self._rightIndent, wx.IMAGELIST_DRAW_TRANSPARENT)
-
-##        event.Skip()
-        
-
-    def FillCaptionBackground(self, dc):
-        """
-        Fills the background of the caption with either a gradient or
-        a solid color.
-        """
-
-        style = self._style.GetCaptionStyle()
-
-        if style == CAPTIONBAR_GRADIENT_V:
-            if self.IsVertical():
-                self.DrawVerticalGradient(dc, self.GetRect())
-            else:
-                self.DrawHorizontalGradient(dc, self.GetRect())
-
-        elif style == CAPTIONBAR_GRADIENT_H:
-            if self.IsVertical():
-                self.DrawHorizontalGradient(dc, self.GetRect())
-            else:
-                self.DrawVerticalGradient(dc, self.GetRect())
-            
-        elif style == CAPTIONBAR_SINGLE:
-            self.DrawSingleColour(dc, self.GetRect())
-        elif style == CAPTIONBAR_RECTANGLE or style == CAPTIONBAR_FILLED_RECTANGLE:
-            self.DrawSingleRectangle(dc, self.GetRect())
-        else:
-            raise "STYLE Error: Undefined Style Selected: " + repr(style)
-
-
-    def OnMouseEvent(self, event):
-        """
-        Catches the mouse click-double click.
-        
-        If clicked on the arrow (single) or double on the caption we change state
-        and an event must be fired to let this panel collapse or expand.
-        """
-
-        send_event = False
-        vertical = self.IsVertical()
-        
-        if event.LeftDown() and self._foldIcons:
-
-            pt = event.GetPosition()
-            rect = self.GetRect()
-            
-            drw = (rect.GetWidth() - self._iconWidth - self._rightIndent)
-            if vertical and pt.x > drw or not vertical and \
-               pt.y < (self._iconHeight + self._rightIndent):
-                send_event = True
-
-        elif event.LeftDClick():
-            self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
-            send_event = True
-
-        elif event.Entering() and self._foldIcons:
-            pt = event.GetPosition()
-            rect = self.GetRect()
-
-            drw = (rect.GetWidth() - self._iconWidth - self._rightIndent)
-            if vertical and pt.x > drw or not vertical and \
-               pt.y < (self._iconHeight + self._rightIndent):
-                self.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
-            else:
-                self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
-
-        elif event.Leaving():
-            self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
-
-        elif event.Moving():
-            pt = event.GetPosition()
-            rect = self.GetRect()
-
-            drw = (rect.GetWidth() - self._iconWidth - self._rightIndent)           
-            if vertical and pt.x > drw or not vertical and \
-               pt.y < (self._iconHeight + self._rightIndent):
-                self.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
-            else:
-                self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
-                
-        # send the collapse, expand event to the parent
-        
-        if send_event:
-            event = CaptionBarEvent(wxEVT_CAPTIONBAR)
-            event.SetId(self.GetId())
-            event.SetEventObject(self)
-            event.SetBar(self)
-            self.GetEventHandler().ProcessEvent(event)
-        
-
-    def OnChar(self, event):
-        """ Unused Methods. Any Ideas?!?"""
-        # TODO: Anything here?
-        event.Skip()
-
-
-    def DoGetBestSize(self):
-        """
-        Returns the best size for this panel, based upon the font
-        assigned to this window, and the caption string
-        """
-        
-        if self.IsVertical():
-            x, y = self.GetTextExtent(self._caption)
-        else:
-            y, x = self.GetTextExtent(self._caption)
-
-        if x < self._iconWidth:
-            x = self._iconWidth
-
-        if y < self._iconHeight:
-            y = self._iconHeight
-
-        # TODO: The extra FPB_EXTRA_X constants should be adjustable as well
-
-        return wx.Size(x + FPB_EXTRA_X, y + FPB_EXTRA_Y)
-
-
-    def DrawVerticalGradient(self, dc, rect):
-        """ Gradient fill from colour 1 to colour 2 with top to bottom. """
-
-        if  rect.height < 1 or rect.width < 1:
-            return
-
-        dc.SetPen(wx.TRANSPARENT_PEN)
-
-        # calculate gradient coefficients
-        col2 = self._style.GetSecondColour()
-        col1 = self._style.GetFirstColour()
-
-        r1, g1, b1 = int(col1.Red()), int(col1.Green()), int(col1.Blue())
-        r2, g2, b2 = int(col2.Red()), int(col2.Green()), int(col2.Blue())
-
-        flrect = float(rect.height)
-
-        rstep = float((r2 - r1)) / flrect
-        gstep = float((g2 - g1)) / flrect
-        bstep = float((b2 - b1)) / flrect
-
-        rf, gf, bf = 0, 0, 0
-
-        for y in range(rect.y, rect.y + rect.height):
-            currCol = (r1 + rf, g1 + gf, b1 + bf)
-                
-            dc.SetBrush(wx.Brush(currCol, wx.SOLID))
-            dc.DrawRectangle(rect.x, rect.y + (y - rect.y), rect.width, rect.height)
-            rf = rf + rstep
-            gf = gf + gstep
-            bf = bf + bstep
-
-
-    def DrawHorizontalGradient(self, dc, rect):
-        """ Gradient fill from colour 1 to colour 2 with left to right. """
-
-        if rect.height < 1 or rect.width < 1:
-            return
-
-        dc.SetPen(wx.TRANSPARENT_PEN)
-
-        # calculate gradient coefficients
-        col2 = self._style.GetSecondColour()
-        col1 = self._style.GetFirstColour()
-
-        r1, g1, b1 = int(col1.Red()), int(col1.Green()), int(col1.Blue())
-        r2, g2, b2 = int(col2.Red()), int(col2.Green()), int(col2.Blue())
-
-        flrect = float(rect.width)
-
-        rstep = float((r2 - r1)) / flrect
-        gstep = float((g2 - g1)) / flrect
-        bstep = float((b2 - b1)) / flrect
-
-        rf, gf, bf = 0, 0, 0
-        
-        for x in range(rect.x, rect.x + rect.width):
-            currCol = (r1 + rf, g1 + gf, b1 + bf)
-                
-            dc.SetBrush(wx.Brush(currCol, wx.SOLID))
-            dc.DrawRectangle(rect.x + (x - rect.x), rect.y, 1, rect.height)
-            rf = rf + rstep
-            gf = gf + gstep
-            bf = bf + bstep
-
-
-    def DrawSingleColour(self, dc, rect):
-        """ Single colour fill. This is the most easy one to find. """
-
-        if rect.height < 1 or rect.width < 1:
-            return
-
-        dc.SetPen(wx.TRANSPARENT_PEN)
-
-        # draw simple rectangle
-        dc.SetBrush(wx.Brush(self._style.GetFirstColour(), wx.SOLID))
-        dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height)
-        
-
-    def DrawSingleRectangle(self, dc, rect):
-        """ Single rectangle. This is the most easy one to find. """
-        
-        if rect.height < 2 or rect.width < 1:
-            return
-
-        # single frame, set up internal fill colour
-
-        if self._style.GetCaptionStyle() == CAPTIONBAR_RECTANGLE:
-            color = self.GetParent().GetBackgroundColour()
-            br = wx.Brush(color, wx.SOLID)
-        else:
-            color = self._style.GetFirstColour()
-            br = wx.Brush(color, wx.SOLID)
-
-        # setup the pen frame
-
-        pen = wx.Pen(self._style.GetSecondColour())
-        dc.SetPen(pen)
-        dc.SetBrush(br)
-        dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height - 1)
-
-        bgpen = wx.Pen(self.GetParent().GetBackgroundColour())
-        dc.SetPen(bgpen)
-        dc.DrawLine(rect.x, rect.y + rect.height - 1, rect.x + rect.width,
-                    rect.y + rect.height - 1)
-
-
-    def OnSize(self, event):
-        """ Handles the size events for the CaptionBar."""
-
-        if not self._controlCreated:
-            event.Skip()
-            return
-        
-        size = event.GetSize()
-
-        if self._foldIcons:
-
-            # What I am doing here is simply invalidating the part of the window
-            # exposed. So when I make a rect with as width the newly exposed part,
-            # and the x,y of the old window size origin, I don't need a bitmap
-            # calculation in it, or do I ? The bitmap needs redrawing anyway. 
-            # Leave it like this until I figured it out.
-
-            # set rect to redraw as old bitmap area which is entitled to redraw
-
-            rect = wx.Rect(size.GetWidth() - self._iconWidth - self._rightIndent, 0,
-                           self._iconWidth + self._rightIndent,
-                           self._iconWidth + self._rightIndent)
-            
-            # adjust rectangle when more is slided so we need to redraw all
-            # the old stuff but not all (ugly flickering)
-
-            diffX = size.GetWidth() - self._oldSize.GetWidth()
-            
-            if diffX > 1:
-                
-                # adjust the rect with all the crap to redraw
-
-                rect.SetWidth(rect.GetWidth() + diffX + 10)
-                rect.SetX(rect.GetX() - diffX - 10)
-
-            self.RefreshRect(rect)
-            
-        else:
-            
-            rect = self.GetRect()
-            self.RefreshRect(rect)
-
-        self._oldSize = size
-        
-
-    def RedrawIconBitmap(self):
-        """ Redraws the icons (if they exists). """
-
-        if self._foldIcons:
-        
-            # invalidate the bitmap area and force a redraw
-
-            rect = self.GetRect()
-
-            rect.SetX(rect.GetWidth() - self._iconWidth - self._rightIndent)
-            rect.SetWidth(self._iconWidth + self._rightIndent)
-            self.RefreshRect(rect)
-
-
-# ---------------------------------------------------------------------------------- #
-# class FoldPanelBar
-# ---------------------------------------------------------------------------------- #
-
-class FoldPanelBar(wx.Panel):
-    """
-    The FoldPanelBar is a class which can maintain a list of
-    collapsable panels.  Once a panel is collapsed, only it's caption
-    bar is visible to the user. This will provide more space for the
-    other panels, or allow the user to close panels which are not used
-    often to get the most out of the work area.
-
-    This control is easy to use. Simply create it as a child for a
-    panel or sash window, and populate panels with
-    `AddFoldPanel`. Then use the `AddFoldPanelWindow` to add
-    `wx.Window` derived controls to the current fold panel. Use
-    `AddFoldPanelSeparator` to put separators between the groups of
-    controls that need a visual separator to group them
-    together. After all is constructed, the user can fold the panels
-    by doubleclicking on the bar or single click on the arrow, which
-    will indicate the collapsed or expanded state.
-    """
-    # Define Empty CaptionBar Style
-    EmptyCaptionBarStyle = CaptionBarStyle()
-    
-    def __init__(self, parent, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize,
-                 style=FPB_DEFAULT_STYLE, extraStyle=FPB_DEFAULT_EXTRASTYLE): 
-        """ Default Class Constructor. """
-        
-        self._controlCreated = False
-        self._extraStyle = extraStyle
-        
-        # make sure there is any orientation
-        if style & FPB_HORIZONTAL != FPB_HORIZONTAL:
-            style = style | FPB_VERTICAL
-
-        if style & FPB_HORIZONTAL == 4:
-            self._isVertical = False
-        else:
-            self._isVertical = True
-
-        
-        # create the panel (duh!). This causes a size event, which we are going
-        # to skip when we are not initialised
-
-        wx.Panel.__init__(self, parent, id, pos, size, style)
-
-        # the fold panel area
-
-        self._foldPanel = wx.Panel(self, wx.ID_ANY, pos, size,
-                                   wx.NO_BORDER | wx.TAB_TRAVERSAL)
-
-        self._controlCreated = True
-        self._panels = []
-
-        self.Bind(EVT_CAPTIONBAR, self.OnPressCaption)
-        self.Bind(wx.EVT_SIZE, self.OnSizePanel)
-        
-
-    def AddFoldPanel(self, caption="", collapsed=False, foldIcons=None,
-                     cbstyle=EmptyCaptionBarStyle):
-        """
-        Adds a fold panel to the list of panels.
-
-        If the flag collapsed is set to True, the panel is collapsed
-        initially.  The FoldPanel item which is returned, can be used
-        as a reference to perform actions upon the fold panel like
-        collapsing it, expanding it, or deleting it from the list.
-
-        Use this foldpanel to add windows to it. Please consult
-        `AddFoldPanelWindow` and `AddFoldPanelSeparator` to know how
-        to add items derived from `wx.Window` to the panels.
-        """
-
-        # create a fold panel item, which is first only the caption.
-        # the user can now add a panel area which will be folded in
-        # when pressed.
-
-        if foldIcons is None:
-            foldIcons = wx.ImageList(16, 16)
-
-            bmp = ExpandedIcon.GetBitmap()
-            foldIcons.Add(bmp)
-            bmp = CollapsedIcon.GetBitmap()
-            foldIcons.Add(bmp)
-    
-        item = FoldPanelItem(self._foldPanel, -1, caption=caption,
-                             foldIcons=foldIcons,
-                             collapsed=collapsed, cbstyle=cbstyle)
-        
-        pos = 0
-        if len(self._panels) > 0:
-            pos = self._panels[-1].GetItemPos() + self._panels[-1].GetPanelLength()
-
-        item.Reposition(pos)
-        self._panels.append(item)
-
-        return item
-
-
-    def AddFoldPanelWindow(self, panel, window, flags=FPB_ALIGN_WIDTH,
-                           Spacing=FPB_DEFAULT_SPACING,
-                           leftSpacing=FPB_DEFAULT_LEFTLINESPACING,
-                           rightSpacing=FPB_DEFAULT_RIGHTLINESPACING):
-        """
-        Adds a `wx.Window` derived instance to the referenced
-        FoldPanel.
-
-        IMPORTANT: Make the window be a child of the FoldPanel. See
-        example that follows. The flags to be used are:
-        
-            * FPB_ALIGN_WIDTH: Which means the wxWindow to be added
-              will be aligned to fit the width of the FoldPanel when
-              it is resized.  Very handy for sizer items, buttons and
-              text boxes.
-
-            * FPB_ALIGN_LEFT: Aligns left instead of fitting the
-              width of the child window to be added. Use either this
-              one or FPB_ALIGN_WIDTH.
-
-        The wx.Window to be added can be slightly indented from left
-        and right so it is more visibly placed in the FoldPanel. Use
-        Spacing > 0 to give the control an y offset from the previous
-        wx.Window added, use leftSpacing to give it a slight indent
-        from the left, and rightSpacing also reserves a little space
-        on the right so the wxWindow can be properly placed in the
-        FoldPanel.
-
-        The following example adds a FoldPanel to the FoldPanelBar and
-        adds two wx.Window derived controls to the FoldPanel::
-
-            # create the FoldPanelBar
-            >>> m_pnl = FoldPanelBar(self, wx.ID_ANY, wx.DefaultPosition,
-                                     wx.DefaultSize, FPB_DEFAULT_STYLE,
-                                     FPB_COLLAPSE_TO_BOTTOM)
-
-            # add a foldpanel to the control. "Test me" is the caption and it is
-            # initially not collapsed.
-            >>> item = m_pnl.AddFoldPanel("Test me", False)
-
-            # now add a button to the fold panel. Mind that the button should be
-            # made child of the FoldPanel and not of the main form.
-            >>> m_pnl.AddFoldPanelWindow(item, wx.Button(item, ID_COLLAPSEME,
-                                        "Collapse Me"))
-
-            # add a separator between the two controls. This is purely a visual
-            # line that can have a certain color and also the indents and width
-            # aligning like a control.
-            >>> m_pnl.AddFoldPanelSeparator(item)
-
-            # now add a text ctrl. Also very easy. Align this on width so that
-            # when the control gets wider the text control also sizes along.
-            >>> m_pnl.AddFoldPanelWindow(item, wx.TextCtrl(item, wx.ID_ANY, "Comment"),
-                                         FPB_ALIGN_WIDTH, FPB_DEFAULT_SPACING, 20)
-
-        """
-        
-        try:
-            item = self._panels.index(panel)
-        except:
-            raise "ERROR: Invalid Panel Passed To AddFoldPanelWindow: " + repr(panel)
-        
-        panel.AddWindow(window, flags, Spacing, leftSpacing, rightSpacing)
-
-        # TODO: Take old and new height, and if difference, reposition all the lower
-        # panels this is because the user can add new wxWindow controls somewhere in
-        # between when other panels are already present.
-    
-        return 0
-
-
-    def AddFoldPanelSeparator(self, panel, colour=wx.BLACK,
-                              Spacing=FPB_DEFAULT_SPACING,
-                              leftSpacing=FPB_DEFAULT_LEFTLINESPACING,
-                              rightSpacing=FPB_DEFAULT_RIGHTLINESPACING):
-        """
-        Adds a separator line to the current FoldPanel.
-        
-        The seperator is a simple line which is drawn and is no real
-        component.  It can be used to separate groups of controls
-        which belong to each other.  The colour is adjustable, and it
-        takes the same Spacing, leftSpacing and rightSpacing as
-        `AddFoldPanelWindow`.
-        """
-        
-        try:
-            item = self._panels.index(panel)
-        except:
-            raise "ERROR: Invalid Panel Passed To AddFoldPanelSeparator: " + repr(panel)
-        
-        panel.AddSeparator(colour, Spacing, leftSpacing, rightSpacing)
-        return 0
-
-
-    def OnSizePanel(self, event):
-        """ Handles the EVT_SIZE event for the FoldPanelBar. """
-
-        # skip all stuff when we are not initialised yet
-
-        if not self._controlCreated:
-            event.Skip()
-            return
-
-        foldrect = self.GetRect()
-
-        # fold panel itself. If too little space,
-        # don't show it
-
-        foldrect.SetX(0)
-        foldrect.SetY(0)
-
-        self._foldPanel.SetSize(foldrect[2:])
-        
-        if self._extraStyle & FPB_COLLAPSE_TO_BOTTOM or self._extraStyle & FPB_EXCLUSIVE_FOLD:
-            rect = self.RepositionCollapsedToBottom()
-            vertical = self.IsVertical()
-            if vertical and rect.GetHeight() > 0 or not vertical and rect.GetWidth() > 0:
-                self.RefreshRect(rect)
-
-        # TODO: A smart way to check wether the old - new width of the
-        # panel changed, if so no need to resize the fold panel items
-
-        self.RedisplayFoldPanelItems()
-    
-
-    def OnPressCaption(self, event):
-        """ Handles the EVT_CAPTIONBAR event in the FoldPanelBar. """
-
-        # act upon the folding or expanding status of the bar
-        # to expand or collapse the panel(s)
-
-        if event.GetFoldStatus():
-            self.Collapse(event.GetTag())
-        else:
-            self.Expand(event.GetTag())
-
-        #event.Skip()
-        
-
-    def RefreshPanelsFrom(self, item):
-        """ Refreshes all the panels from given index down to last one. """
-        
-        try:
-            i = self._panels.index(item)
-        except:
-            raise "ERROR: Invalid Panel Passed To RefreshPanelsFrom: " + repr(item)
-        
-        self.Freeze()
-
-        # if collapse to bottom is on, the panels that are not expanded
-        # should be drawn at the bottom. All panels that are expanded
-        # are drawn on top. The last expanded panel gets all the extra space
-
-        if self._extraStyle & FPB_COLLAPSE_TO_BOTTOM or self._extraStyle & FPB_EXCLUSIVE_FOLD:
-        
-            offset = 0
-
-            for panels in self._panels:
-            
-                if panels.IsExpanded():
-                    offset = offset + panels.Reposition(offset)
-        
-            # put all non collapsed panels at the bottom where there is space, 
-            # else put them right behind the expanded ones
-
-            self.RepositionCollapsedToBottom()
-        
-        else:
-        
-            pos = self._panels[i].GetItemPos() + self._panels[i].GetPanelLength()
-            for j in range(i+1, len(self._panels)):
-                pos = pos + self._panels[j].Reposition(pos)
-        
-        self.Thaw()
-        
-
-    def RedisplayFoldPanelItems(self):
-        """ Resizes the fold panels so they match the width. """
-        # resize them all. No need to reposition
-        for panels in self._panels:
-            panels.ResizePanel()
-            panels.Refresh()
-
-
-    def RepositionCollapsedToBottom(self):
-        """
-        Repositions all the collapsed panels to the bottom.
-
-        When it is not possible to align them to the bottom, stick
-        them behind the visible panels. The Rect holds the slack area
-        left between last repositioned panel and the bottom
-        panels. This needs to get a refresh.
-        """
-
-        value = wx.Rect(0,0,0,0)
-        vertical = self.IsVertical()
-
-        # determine wether the number of panels left
-        # times the size of their captions is enough
-        # to be placed in the left over space
-
-        expanded = 0
-        collapsed = 0
-        collapsed, expanded, values = self.GetPanelsLength(collapsed, expanded)
-
-        # if no room stick them behind the normal ones, else
-        # at the bottom
-
-        if (vertical and [self.GetSize().GetHeight()] or \
-            [self.GetSize().GetWidth()])[0] - expanded - collapsed < 0:
-            offset = expanded
-        else:
-
-            # value is the region which is left unpainted
-            # I will send it back as 'slack' so it does not need to
-            # be recalculated.
-
-            value.SetHeight(self.GetSize().GetHeight())
-            value.SetWidth(self.GetSize().GetWidth())
-
-            if vertical:
-                value.SetY(expanded)
-                value.SetHeight(value.GetHeight() - expanded)
-            else:
-                value.SetX(expanded)
-                value.SetWidth(value.GetWidth() - expanded)
-
-            offset = (vertical and [self.GetSize().GetHeight()] or \
-                      [self.GetSize().GetWidth()])[0] - collapsed
-
-
-        # go reposition
-
-        for panels in self._panels:
-            if not panels.IsExpanded():
-                offset = offset + panels.Reposition(offset)
-
-        return value
-
-
-    def GetPanelsLength(self, collapsed, expanded):
-        """
-        Returns the length of the panels that are expanded and
-        collapsed.
-
-        This is useful to determine quickly what size is used to
-        display, and what is left at the bottom (right) to align the
-        collapsed panels.
-        """
-        
-        value = 0
-
-        # assumed here that all the panels that are expanded
-        # are positioned after each other from 0,0 to end.
-
-        for j in range(0, len(self._panels)):
-            offset = self._panels[j].GetPanelLength()
-            value = value + offset
-            if self._panels[j].IsExpanded():
-                expanded = expanded + offset
-            else:
-                collapsed = collapsed + offset
-
-        return collapsed, expanded, value
-
-
-    def Collapse(self, foldpanel):
-        """
-        Collapses the given FoldPanel reference, and updates the
-        foldpanel bar.
-
-        In the FPB_COLLAPSE_TO_BOTTOM style, all collapsed captions
-        are put at the bottom of the control. In the normal mode, they
-        stay where they are.
-        """
-        
-        try:
-            item = self._panels.index(foldpanel)
-        except:
-            raise "ERROR: Invalid Panel Passed To Collapse: " + repr(foldpanel)
-        
-        foldpanel.Collapse()
-        self.RefreshPanelsFrom(foldpanel)
-
-
-    def Expand(self, foldpanel):
-        """
-        Expands the given FoldPanel reference, and updates the
-        foldpanel bar.
-        
-        In the FPB_COLLAPSE_TO_BOTTOM style, they will be removed from
-        the bottom and the order where the panel originally was placed
-        is restored.
-        """
-
-        fpbextrastyle = 0
-        
-        if self._extraStyle & FPB_SINGLE_FOLD or self._extraStyle & FPB_EXCLUSIVE_FOLD:
-            fpbextrastyle = 1
-            for panel in self._panels:
-                panel.Collapse()
-
-        foldpanel.Expand()
-        
-        if fpbextrastyle:
-            if self._extraStyle & FPB_EXCLUSIVE_FOLD:
-                self.RepositionCollapsedToBottom()
-            self.RefreshPanelsFrom(self._panels[0])
-        else:
-            self.RefreshPanelsFrom(foldpanel)
-
-
-    def ApplyCaptionStyle(self, foldpanel, cbstyle):
-        """
-        Sets the style of the caption bar (`CaptionBar`) of the
-        FoldPanel.
-
-        The changes are applied immediately. All styles not set in the
-        CaptionBarStyle class are not applied. Use the CaptionBar
-        reference to indicate what captionbar you want to apply the
-        style to. To apply one style to all CaptionBar items, use
-        `ApplyCaptionStyleAll`
-        """        
-        foldpanel.ApplyCaptionStyle(cbstyle)
-        
-
-    def ApplyCaptionStyleAll(self, cbstyle):
-        """
-        Sets the style of all the caption bars of the FoldPanel.
-
-        The changes are applied immediately.
-        """ 
-        for panels in self._panels:
-            self.ApplyCaptionStyle(panels, cbstyle)
-            
-
-    def GetCaptionStyle(self, foldpanel):
-        """
-        Returns the currently used caption style for the FoldPanel.
-
-        It is returned as a CaptionBarStyle class. After modifying it,
-        it can be set again.
-        """        
-        return foldpanel.GetCaptionStyle()
-
-
-    def IsVertical(self):
-        """
-        Returns whether the CaptionBar has default orientation or not.
-
-        Default is vertical.
-        """        
-        return self._isVertical
-
-
-    def GetFoldPanel(self, item):
-        """
-        Returns the panel associated with the index "item".
-
-        See the example at the bottom of the module, especially the events
-        for the "Collapse Me" and "Expand Me" buttons.
-        """
-        try:
-            ind = self._panels[item]
-            return self._panels[item]
-        except:
-            raise "ERROR: List Index Out Of Range Or Bad Item Passed: " + repr(item) + \
-                  ". Item Should Be An Integer Between " + repr(0) + " And " + \
-                  repr(len(self._panels))
-
-
-    def GetCount(self):
-        """ Returns the number of panels in the FoldPanelBar. """
-
-        try:
-            return len(self._panels)
-        except:
-            raise "ERROR: No Panels Have Been Added To FoldPanelBar"
-
-        
-
-# --------------------------------------------------------------------------------- #
-# class FoldPanelItem
-# --------------------------------------------------------------------------------- #
-
-class FoldPanelItem(wx.Panel):
-    """
-    This class is a child sibling of the `FoldPanelBar` class. It will
-    contain a `CaptionBar` class for receiving of events, and a the
-    rest of the area can be populated by a `wx.Panel` derived class.
-    """
-    # Define Empty CaptionBar Style
-    EmptyCaptionBarStyle = CaptionBarStyle()
-    
-    def __init__(self, parent, id=wx.ID_ANY, caption="", foldIcons=None,
-                 collapsed=False, cbstyle=EmptyCaptionBarStyle):
-        """ Default Class Constructor. """
-        
-        wx.Panel.__init__(self, parent, id, wx.Point(0,0), style=wx.CLIP_CHILDREN)
-        self._controlCreated = False
-        self._UserSize = 0
-        self._PanelSize = 0
-        self._LastInsertPos = 0
-        self._itemPos = 0
-        self._userSized = False
-
-        if foldIcons is None:
-            foldIcons = wx.ImageList(16, 16)
-
-            bmp = ExpandedIcon.GetBitmap()
-            foldIcons.Add(bmp)
-            bmp = CollapsedIcon.GetBitmap()
-            foldIcons.Add(bmp)
-        
-        self._foldIcons = foldIcons
-
-        # create the caption bar, in collapsed or expanded state
-         
-        self._captionBar = CaptionBar(self, wx.ID_ANY, wx.Point(0,0),
-                                      size=wx.DefaultSize, caption=caption,
-                                      foldIcons=foldIcons, cbstyle=cbstyle)
-
-        if collapsed:
-            self._captionBar.Collapse()
-
-        self._controlCreated = True
-
-        # make initial size for component, if collapsed, the
-        # size is determined on the panel height and won't change
-    
-        size = self._captionBar.GetSize()
-
-        self._PanelSize = (self.IsVertical() and [size.GetHeight()] or \
-                           [size.GetWidth()])[0]
-        
-        self._LastInsertPos = self._PanelSize
-        self._items = []
-
-        self.Bind(EVT_CAPTIONBAR, self.OnPressCaption)
-        self.Bind(wx.EVT_PAINT, self.OnPaint)
-
-
-    def AddWindow(self, window, flags=FPB_ALIGN_WIDTH, Spacing=FPB_DEFAULT_SPACING,
-                  leftSpacing=FPB_DEFAULT_LEFTLINESPACING,
-                  rightSpacing=FPB_DEFAULT_RIGHTLINESPACING):
-        """
-        Adds a window item to the list of items on this panel.
-
-        The flags are FPB_ALIGN_LEFT for a non sizing window element,
-        and FPB_ALIGN_WIDTH for a width aligned item. The Spacing
-        parameter reserves a number of pixels before the window
-        element, and leftSpacing is an indent.  rightSpacing is only
-        relevant when the style FPB_ALIGN_WIDTH is chosen.
-        """
-        
-        wi = FoldWindowItem(self, window, Type="WINDOW", flags=flags, Spacing=Spacing,
-                            leftSpacing=leftSpacing, rightSpacing=rightSpacing)
-        
-        self._items.append(wi)
-
-        vertical = self.IsVertical()
-        
-        self._Spacing = Spacing
-        self._leftSpacing = leftSpacing
-        self._rightSpacing = rightSpacing
-
-        xpos = (vertical and [leftSpacing] or [self._LastInsertPos + Spacing])[0]
-        ypos = (vertical and [self._LastInsertPos + Spacing] or [leftSpacing])[0]
-
-        window.SetDimensions(xpos, ypos, -1, -1, wx.SIZE_USE_EXISTING)
-
-        self._LastInsertPos = self._LastInsertPos + wi.GetWindowLength(vertical)
-        self.ResizePanel()
-        
-
-    def AddSeparator(self, colour=wx.BLACK, Spacing=FPB_DEFAULT_SPACING,
-                     leftSpacing=FPB_DEFAULT_LEFTSPACING,
-                     rightSpacing=FPB_DEFAULT_RIGHTSPACING):
-        """
-        Adds a separator item to the list of items on this panel. """
-        
-        wi = FoldWindowItem(self, window=None, Type="SEPARATOR",
-                            flags=FPB_ALIGN_WIDTH, y=self._LastInsertPos,
-                            colour=colour, Spacing=Spacing, leftSpacing=leftSpacing,
-                            rightSpacing=rightSpacing)
-        
-        self._items.append(wi)
-        self._LastInsertPos = self._LastInsertPos + \
-                              wi.GetWindowLength(self.IsVertical())
-        
-        self.ResizePanel()
-
-
-    def Reposition(self, pos):
-        """
-        Repositions this FoldPanelBar and reports the length occupied
-        for the next FoldPanelBar in the list.
-        """        
-        # NOTE: Call Resize before Reposition when an item is added, because the new
-        # size needed will be calculated by Resize. Of course the relative position
-        # of the controls have to be correct in respect to the caption bar
-    
-        self.Freeze()
-
-        vertical = self.IsVertical()
-        xpos = (vertical and [-1] or [pos])[0]
-        ypos = (vertical and [pos] or [-1])[0]
-
-        self.SetDimensions(xpos, ypos, -1, -1, wx.SIZE_USE_EXISTING)
-        self._itemPos = pos
-
-        self.Thaw()
-
-        return self.GetPanelLength()
-
-
-    def OnPressCaption(self, event):
-        """ Handles the EVT_CAPTIONBAR event in the FoldPanelItem. """
-        
-        # tell the upper container we are responsible
-        # for this event, so it can fold the panel item
-        # and do a refresh
-
-        event.SetTag(self)
-        event.Skip()
-
-
-    def ResizePanel(self):
-        """ Resizes the panel. """
-        
-        # prevent unnecessary updates by blocking repaints for a sec
-
-        self.Freeze()
-
-        vertical = self.IsVertical()
-        # force this panel to take the width of the parent panel and the y of the
-        # user or calculated width (which will be recalculated by the contents here)
-
-
-        if self._captionBar.IsCollapsed():
-            size = self._captionBar.GetSize()
-            self._PanelSize = (vertical and [size.GetHeight()] or [size.GetWidth()])[0]
-        else:
-            size = self.GetBestSize()
-            self._PanelSize = (vertical and [size.GetHeight()] or [size.GetWidth()])[0]
-
-            if self._UserSize:
-                if vertical:
-                    size.SetHeight(self._UserSize)
-                else:
-                    size.SetWidth(self._UserSize)
-
-        pnlsize = self.GetParent().GetSize()
-
-        if vertical:
-            size.SetWidth(pnlsize.GetWidth())
-        else:
-            size.SetHeight(pnlsize.GetHeight())
-        
-        # resize caption bar
-        xsize = (vertical and [size.GetWidth()] or [-1])[0]
-        ysize = (vertical and [-1] or [size.GetHeight()])[0]
-
-        self._captionBar.SetSize((xsize, ysize))
-
-        # resize the panel
-        self.SetSize(size)
-
-        # go by all the controls and call Layout
-
-        for items in self._items:
-            items.ResizeItem((vertical and [size.GetWidth()] or \
-                              [size.GetHeight()])[0], vertical)
-
-        self.Thaw()            
-        
-
-    def OnPaint(self, event):
-        """ Handles the EVT_PAINT event in the FoldPanelItem. """
-  
-        # draw all the items that are lines
-
-        dc = wx.PaintDC(self)
-        vertical = self.IsVertical()
-
-        for item in self._items:
-            
-            if item.GetType() == "SEPARATOR":
-                pen = wx.Pen(item.GetLineColour(), 1, wx.SOLID)
-                dc.SetPen(pen)
-                a = item.GetLeftSpacing()
-                b = item.GetLineY() + item.GetSpacing()
-                c = item.GetLineLength()
-                d = a + c
-                
-                if vertical:
-                    dc.DrawLine(a, b, d, b)
-                else:
-                    dc.DrawLine(b, a, b, d)
-        
-        event.Skip()
-        
-
-    def IsVertical(self):
-        """
-        Returns wether the CaptionBar Has Default Orientation Or Not.
-
-        Default is vertical.
-        """
-        
-        # grandparent of FoldPanelItem is FoldPanelBar
-        # default is vertical
-        
-        if isinstance(self.GetGrandParent(), FoldPanelBar):
-            return self.GetGrandParent().IsVertical()
-        else:
-            raise "ERROR: Wrong Parent " + repr(self.GetGrandParent())
-
-
-    def IsExpanded(self):
-        """
-        Returns expanded or collapsed status.  If the panel is
-        expanded, True is returned.
-        """
-        
-        return not self._captionBar.IsCollapsed()
-
-    
-    def GetItemPos(self):
-        """ Returns item's position. """
-        
-        return self._itemPos
-
-
-    def Collapse(self):
-        # this should not be called by the user, because it doesn't trigger the
-        # parent  to tell it that we are collapsed or expanded, it only changes
-        # visual state
-        
-        self._captionBar.Collapse()
-        self.ResizePanel()
-
-
-    def Expand(self):
-        # this should not be called by the user, because it doesn't trigger the
-        # parent to tell it that we are collapsed or expanded, it only changes
-        # visual state
-        
-        self._captionBar.Expand()
-        self.ResizePanel()
-
-
-    def GetPanelLength(self):
-        """ Returns size of panel. """
-        
-        if self._captionBar.IsCollapsed():
-            return self.GetCaptionLength()
-        elif self._userSized:
-            return self._UserSize
-        
-        return self._PanelSize
-
-
-    def GetCaptionLength(self):
-        """
-        Returns height of caption only. This is for folding
-        calculation purposes.
-        """
-        
-        size = self._captionBar.GetSize()
-        return (self.IsVertical() and [size.GetHeight()] or [size.GetWidth()])[0]
-
-
-    def ApplyCaptionStyle(self, cbstyle):
-        """ Applies the style defined in cbstyle to the CaptionBar."""
-        
-        self._captionBar.SetCaptionStyle(cbstyle)
-
-
-    def GetCaptionStyle(self):
-        """
-        Returns the current style of the captionbar in a
-        CaptionBarStyle class.
-
-        This can be used to change and set back the changes.
-        """
-        
-        return self._captionBar.GetCaptionStyle()
-
-
-# ----------------------------------------------------------------------------------- #
-# class FoldWindowItem
-# ----------------------------------------------------------------------------------- #
-
-class FoldWindowItem:
-    """
-    This class is a child sibling of the `FoldPanelItem` class. It
-    will contain wx.Window that can be either a separator (a colored
-    line simulated by a wx.Window) or a wxPython controls (such as a
-    wx.Button, a wx.ListCtrl etc...).
-    """
-    def __init__(self, parent, window=None, **kw):
-        """
-        Default Class Constructor
-        
-        Initialize with::
-
-            Type = "WINDOW", flags = FPB_ALIGN_WIDTH,
-            Spacing = FPB_DEFAULT_SPACING,
-            leftSpacing = FPB_DEFAULT_LEFTSPACING,
-            rightSpacing = FPB_DEFAULT_RIGHTSPACING
-
-        or::
-
-            Type = "SEPARATOR"
-            y, lineColor = wx.BLACK,
-            flags = FPB_ALIGN_WIDTH,
-            Spacing = FPB_DEFAULT_SPACING,
-            leftSpacing = FPB_DEFAULT_LEFTLINESPACING,
-            rightSpacing = FPB_DEFAULT_RIGHTLINESPACING
-        """
-
-
-        if not kw.has_key("Type"):
-            raise 'ERROR: Missing Window Type Information. This Should Be "WINDOW" Or "SEPARATOR"'
-
-        if kw.get("Type") == "WINDOW":
-            # Window constructor. This initialises the class as a wx.Window Type
-            
-            if kw.has_key("flags"):
-                self._flags = kw.get("flags")
-            else:
-                self._flags = FPB_ALIGN_WIDTH
-            if kw.has_key("Spacing"):
-                self._Spacing = kw.get("Spacing")
-            else:
-                self._Spacing = FPB_DEFAULT_SPACING
-            if kw.has_key("leftSpacing"):
-                self._leftSpacing = kw.get("leftSpacing")
-            else:
-                self._leftSpacing = FPB_DEFAULT_LEFTSPACING
-            if kw.has_key("rightSpacing"):
-                self._rightSpacing = kw.get("rightSpacing")
-            else:
-                self._rightSpacing = FPB_DEFAULT_RIGHTSPACING
-
-            self._lineY = 0
-            self._sepLineColour = None
-            self._wnd = window
-            
-
-        elif kw.get("Type") == "SEPARATOR":
-            # separator constructor. This initialises the class as a separator type
-            
-            if kw.has_key("y"):
-                self._lineY = kw.get("y")
-            else:
-                raise "ERROR: Undefined Y Position For The Separator"
-            if kw.has_key("lineColour"):
-                self._sepLineColour = kw.get("lineColour")
-            else:
-                self._sepLineColour = wx.BLACK
-            if kw.has_key("flags"):
-                self._flags = kw.get("flags")
-            else:
-                self._flags = FPB_ALIGN_WIDTH
-            if kw.has_key("Spacing"):
-                self._Spacing = kw.get("Spacing")
-            else:
-                self._Spacing = FPB_DEFAULT_SPACING
-            if kw.has_key("leftSpacing"):
-                self._leftSpacing = kw.get("leftSpacing")
-            else:
-                self._leftSpacing = FPB_DEFAULT_LEFTSPACING
-            if kw.has_key("rightSpacing"):
-                self._rightSpacing = kw.get("rightSpacing")
-            else:
-                self._rightSpacing = FPB_DEFAULT_RIGHTSPACING
-
-            self._wnd = window
-
-        else:
-            raise "ERROR: Undefined Window Type Selected: " + repr(kw.get("Type"))
-
-        self._type = kw.get("Type")
-        self._lineLength = 0
-        
-
-    def GetType(self):
-        return self._type
-
-    def GetLineY(self):
-        return self._lineY
-
-    def GetLineLength(self):
-        return self._lineLength
-
-    def GetLineColour(self):
-        return self._sepLineColour
-
-    def GetLeftSpacing(self):
-        return self._leftSpacing
-
-    def GetRightSpacing(self):
-        return self._rightSpacing
-
-    def GetSpacing(self):
-        return self._Spacing
-
-
-    def GetWindowLength(self, vertical=True):
-        """
-        Returns space needed by the window if type is FoldWindowItem
-        "WINDOW" and returns the total size plus the extra spacing.
-        """
-
-        value = 0
-        if self._type == "WINDOW":
-            size = self._wnd.GetSize()
-            value = (vertical and [size.GetHeight()] or [size.GetWidth()])[0] + \
-                    self._Spacing
-            
-        elif self._type == "SEPARATOR":
-            value = 1 + self._Spacing
-
-        return value
-
-
-    def ResizeItem(self, size, vertical=True):
-        """
-        Resizes the element, whatever it is.
-        
-        A separator or line will be always aligned by width or height
-        depending on orientation of the whole panel.
-        """
-        
-        if self._flags & FPB_ALIGN_WIDTH:
-            # align by taking full width
-            mySize = size - self._leftSpacing - self._rightSpacing
-
-            if mySize < 0:
-                mySize = 10  # can't have negative width
-
-            if self._type == "SEPARATOR":
-                self._lineLength = mySize
-            else:
-                xsize = (vertical and [mySize] or [-1])[0]
-                ysize = (vertical and [-1] or [mySize])[0]
-
-                self._wnd.SetSize((xsize, ysize))
-        
diff --git a/invesalius/gui/widgets/listctrl.py b/invesalius/gui/widgets/listctrl.py
index b909f81..4d88c05 100644
--- a/invesalius/gui/widgets/listctrl.py
+++ b/invesalius/gui/widgets/listctrl.py
@@ -1,22 +1,3 @@
-#--------------------------------------------------------------------------
-# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
-# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
-# Homepage:     http://www.softwarepublico.gov.br
-# Contact:      invesalius at cti.gov.br
-# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
-#--------------------------------------------------------------------------
-#    Este programa e software livre; voce pode redistribui-lo e/ou
-#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
-#    publicada pela Free Software Foundation; de acordo com a versao 2
-#    da Licenca.
-#
-#    Este programa eh distribuido na expectativa de ser util, mas SEM
-#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
-#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
-#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
-#    detalhes.
-#--------------------------------------------------------------------------
-
 #----------------------------------------------------------------------------
 # Name:        wxPython.lib.mixins.listctrl
 # Purpose:     Helpful mix-in classes for wxListCtrl
diff --git a/invesalius/gui/widgets/platebtn.py b/invesalius/gui/widgets/platebtn.py
deleted file mode 100644
index 92c23f1..0000000
--- a/invesalius/gui/widgets/platebtn.py
+++ /dev/null
@@ -1,703 +0,0 @@
-###############################################################################
-# Name: platebtn.py                                                           #
-# Purpose: PlateButton is a flat label button with support for bitmaps and    #
-#          drop menu.                                                         #
-# Author: Cody Precord <cprecord at editra.org>                                  #
-# Copyright: (c) 2007 Cody Precord <staff at editra.org>                         #
-# Licence: wxWindows Licence                                                  #
-###############################################################################
-
-"""
-Editra Control Library: PlateButton
-
-The PlateButton is a custom owner drawn flat button, that in many ways emulates
-the buttons found the bookmark bar of the Safari browser. It can be used as a
-drop in replacement for wx.Button/wx.BitmapButton under most circumstances. It
-also offers a wide range of options for customizing its appearance, a
-description of each of the main style settings is listed below.
-
-Main Button Styles:
-Any combination of the following values may be passed to the constructor's style
-keyword parameter.
-
-PB_STYLE_DEFAULT:
-Creates a flat label button with rounded corners, the highlight for mouse over
-and press states is based off of the hightlight color from the systems current
-theme.
-
-PB_STYLE_GRADIENT:
-The highlight and press states are drawn with gradient using the current
-highlight color.
-
-PB_STYLE_SQUARE:
-Instead of the default rounded shape use a rectangular shaped button with
-square edges.
-
-PB_STYLE_NB:
-This style only has an effect on Windows but does not cause harm to use on the
-platforms. It should only be used when the control is shown on a panel or other
-window that has a non solid color for a background. i.e a gradient or image is
-painted on the background of the parent window. If used on a background with
-a solid color it may cause the control to loose its transparent appearance.
-
-PB_STYLE_DROPARROW:
-Add a drop button arrow to the button that will send a separate event when
-clicked on.
-
-Other attributes can be configured after the control has been created. The
-settings that are currently available are as follows:
-
-  - SetBitmap: Change/Add the bitmap at any time and the control will resize and
-               refresh to display it.
-  - SetLabelColor: Explicitly set text colors
-  - SetMenu: Set the button to have a popupmenu. When a menu is set a small drop
-             arrow will be drawn on the button that can then be clicked to show
-             a menu.
-  - SetPressColor: Use a custom highlight color
-
-
-Overridden Methods Inherited from PyControl:
-
-  - SetFont: Changing the font is one way to set the size of the button, by
-             default the control will inherit its font from its parent.
-
-  - SetWindowVariant: Setting the window variant will cause the control to
-                      resize to the corresponding variant size. However if the
-                      button is using a bitmap the bitmap will remain unchanged
-                      and only the font will be adjusted.
-
-Requirements:
-  - python2.4 or higher
-  - wxPython2.8 or higher
-
-"""
-
-__author__ = "Cody Precord <cprecord at editra.org>"
-__svnid__ = "$Id: platebtn.py 57713 2009-01-01 23:36:15Z CJP $"
-__revision__ = "$Revision: 57713 $"
-
-__all__ = ["PlateButton", "AdjustAlpha", "AdjustColor", "GetHighlightColor",
-           "PLATE_NORMAL", "PLATE_PRESSED", "PLATE_HIGHLIGHT",
-           "PB_STYLE_DEFAULT", "PB_STYLE_GRADIENT", "PB_STYLE_SQUARE",
-           "PB_STYLE_NOBG", "PB_STYLE_DROPARROW",
-           "EVT_PLATEBTN_DROPARROW_PRESSED"]
-
-#-----------------------------------------------------------------------------#
-# Imports
-import wx
-import  wx.lib.newevent
-
-# Used on OSX to get access to carbon api constants
-if wx.Platform == '__WXMAC__':
-    import Carbon.Appearance
-
-#-----------------------------------------------------------------------------#
-# Button States
-PLATE_NORMAL = 0
-PLATE_PRESSED = 1
-PLATE_HIGHLIGHT = 2
-
-# Button Styles
-PB_STYLE_DEFAULT  = 1   # Normal Flat Background
-PB_STYLE_GRADIENT = 2   # Gradient Filled Background
-PB_STYLE_SQUARE   = 4   # Use square corners instead of rounded
-PB_STYLE_NOBG     = 8   # Usefull on Windows to get a transparent appearance
-                        # when the control is shown on a non solid background
-PB_STYLE_DROPARROW = 16 # Draw drop arrow and fire EVT_PLATEBTN_DROPRROW_PRESSED event
-PB_STYLE_TOGGLE = 32    # Toggle button (stay pressed if not left-clicked again)
-
-PlateBtnDropArrowPressed, EVT_PLATEBTN_DROPARROW_PRESSED = wx.lib.newevent.NewEvent()
-
-#-----------------------------------------------------------------------------#
-# Utility Functions, moved to their own module
-
-from wx.lib.colourutils import *
-
-#-----------------------------------------------------------------------------#
-
-class PlateButton(wx.PyControl):
-    """PlateButton is a custom type of flat button with support for
-    displaying bitmaps and having an attached dropdown menu.
-
-    """
-    def __init__(self, parent, id_=wx.ID_ANY, label='', bmp=None,
-                 pos=wx.DefaultPosition, size=wx.DefaultSize,
-                 style=PB_STYLE_DEFAULT, name=wx.ButtonNameStr):
-        """Create a PlateButton
-        @keyword label: Buttons label text
-        @keyword bmp: Buttons bitmap
-        @keyword style: Button style
-
-        """
-        wx.PyControl.__init__(self, parent, id_, pos, size,
-                              wx.BORDER_NONE|wx.TRANSPARENT_WINDOW, name=name)
-
-        # Attributes
-        self.InheritAttributes()
-        self._bmp = dict(enable=bmp)
-        if bmp is not None:
-            img = bmp.ConvertToImage()
-            img = img.ConvertToGreyscale(.795, .073, .026) #(.634, .224, .143)
-            self._bmp['disable'] = img.ConvertToBitmap()
-        else:
-            self._bmp['disable'] = None
-
-        self._menu = None
-        self.SetLabel(label)
-        self._style = style
-        self._state = dict(pre=PLATE_NORMAL, cur=PLATE_NORMAL)
-        self._color = self.__InitColors()
-        self._pressed = False
-
-        # Setup Initial Size
-        self.SetInitialSize()
-
-        # Event Handlers
-        self.Bind(wx.EVT_PAINT, lambda evt: self.__DrawButton())
-        self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnErase)
-        self.Bind(wx.EVT_SET_FOCUS, self.OnFocus)
-        self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)
-
-        # Mouse Events
-        self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
-        self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
-        self.Bind(wx.EVT_LEFT_DCLICK, lambda evt: self.ToggleState())
-        self.Bind(wx.EVT_ENTER_WINDOW,
-                  lambda evt: self.SetState(PLATE_HIGHLIGHT))
-        self.Bind(wx.EVT_LEAVE_WINDOW,
-                  lambda evt: wx.CallLater(80, self.__LeaveWindow))
-
-        # Other events
-        self.Bind(wx.EVT_KEY_UP, self.OnKeyUp)
-        self.Bind(wx.EVT_CONTEXT_MENU, lambda evt: self.ShowMenu())
-
-    def __DrawBitmap(self, gc):
-        """Draw the bitmap if one has been set
-        @param gc: GCDC to draw with
-        @return: x cordinate to draw text at
-
-        """
-        if self.IsEnabled():
-            bmp = self._bmp['enable']
-        else:
-            bmp = self._bmp['disable']
-
-        if bmp is not None and bmp.IsOk():
-            bw, bh = bmp.GetSize()
-            ypos = (self.GetSize()[1] - bh) / 2
-            gc.DrawBitmap(bmp, 6, ypos, bmp.GetMask() != None)
-            return bw + 6
-        else:
-            return 6
-
-    def __DrawDropArrow(self, gc, xpos, ypos):
-        """Draw a drop arrow if needed and restore pen/brush after finished
-        @param gc: GCDC to draw with
-        @param xpos: x cord to start at
-        @param ypos: y cord to start at
-
-        """
-        if self._menu is not None or self._style & PB_STYLE_DROPARROW:
-            # Positioning needs a little help on Windows
-            if wx.Platform == '__WXMSW__':
-                xpos -= 2
-            tripoints = [(xpos, ypos), (xpos + 6, ypos), (xpos + 3, ypos + 5)]
-            brush_b = gc.GetBrush()
-            pen_b = gc.GetPen()
-            gc.SetPen(wx.TRANSPARENT_PEN)
-            gc.SetBrush(wx.Brush(gc.GetTextForeground()))
-            gc.DrawPolygon(tripoints)
-            gc.SetBrush(brush_b)
-            gc.SetPen(pen_b)
-        else:
-            pass
-
-    def __DrawHighlight(self, gc, width, height):
-        """Draw the main highlight/pressed state
-        @param gc: GCDC to draw with
-        @param width: width of highlight
-        @param height: height of highlight
-
-        """
-        if self._state['cur'] == PLATE_PRESSED:
-            color = self._color['press']
-        else:
-            color = self._color['hlight']
-
-        if self._style & PB_STYLE_SQUARE:
-            rad = 0
-        else:
-            rad = (height - 3) / 2
-
-        if self._style & PB_STYLE_GRADIENT:
-            gc.SetBrush(wx.TRANSPARENT_BRUSH)
-            rgc = gc.GetGraphicsContext()
-            brush = rgc.CreateLinearGradientBrush(0, 1, 0, height,
-                                                  color, AdjustAlpha(color, 55))
-            rgc.SetBrush(brush)
-        else:
-            gc.SetBrush(wx.Brush(color))
-
-        gc.DrawRoundedRectangle(1, 1, width - 2, height - 2, rad)
-
-    def __PostEvent(self):
-        """Post a button event to parent of this control"""
-        bevt = wx.CommandEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, self.GetId())
-        bevt.SetEventObject(self)
-        bevt.SetString(self.GetLabel())
-        self.GetEventHandler().ProcessEvent(bevt)
-
-    def __DrawButton(self):
-        """Draw the button"""
-        # TODO using a buffered paintdc on windows with the nobg style
-        #      causes lots of weird drawing. So currently the use of a
-        #      buffered dc is dissabled for this style.
-        if PB_STYLE_NOBG & self._style:
-            dc = wx.PaintDC(self)
-        else:
-            dc = wx.AutoBufferedPaintDCFactory(self)
-
-        gc = wx.GCDC(dc)
-
-        # Setup
-        dc.SetBrush(wx.TRANSPARENT_BRUSH)
-        gc.SetBrush(wx.TRANSPARENT_BRUSH)
-        gc.SetFont(self.GetFont())
-        gc.SetBackgroundMode(wx.TRANSPARENT)
-
-        # The background needs some help to look transparent on
-        # on Gtk and Windows
-        if wx.Platform in ['__WXGTK__', '__WXMSW__']:
-            gc.SetBackground(self.GetBackgroundBrush(gc))
-            gc.Clear()
-
-        # Calc Object Positions
-        width, height = self.GetSize()
-        tw, th = gc.GetTextExtent(self.GetLabel())
-        txt_y = max((height - th) / 2, 1)
-
-        if self._state['cur'] == PLATE_HIGHLIGHT:
-            gc.SetTextForeground(self._color['htxt'])
-            gc.SetPen(wx.TRANSPARENT_PEN)
-            self.__DrawHighlight(gc, width, height)
-
-        elif self._state['cur'] == PLATE_PRESSED:
-            gc.SetTextForeground(self._color['htxt'])
-            if wx.Platform == '__WXMAC__':
-                brush = wx.Brush(wx.BLACK)
-                brush.MacSetTheme(Carbon.Appearance.kThemeBrushFocusHighlight)
-                pen = wx.Pen(brush.GetColour(), 1, wx.SOLID)
-            else:
-                pen = wx.Pen(AdjustColour(self._color['press'], -80, 220), 1)
-            gc.SetPen(pen)
-
-            self.__DrawHighlight(gc, width, height)
-            txt_x = self.__DrawBitmap(gc)
-            gc.DrawText(self.GetLabel(), txt_x + 2, txt_y)
-            self.__DrawDropArrow(gc, txt_x + tw + 6, (height / 2) - 2)
-
-        else:
-            if self.IsEnabled():
-                gc.SetTextForeground(self.GetForegroundColour())
-            else:
-                txt_c = wx.SystemSettings.GetColour(wx.SYS_COLOUR_GRAYTEXT)
-                gc.SetTextForeground(txt_c)
-
-        # Draw bitmap and text
-        if self._state['cur'] != PLATE_PRESSED:
-            txt_x = self.__DrawBitmap(gc)
-            gc.DrawText(self.GetLabel(), txt_x + 2, txt_y)
-            self.__DrawDropArrow(gc, txt_x + tw + 6, (height / 2) - 2)
-
-    def __InitColors(self):
-        """Initialize the default colors"""
-        color = GetHighlightColour()
-        pcolor = AdjustColour(color, -12)
-        colors = dict(default=True,
-                      hlight=color,
-                      press=pcolor,
-                      htxt=BestLabelColour(self.GetForegroundColour()))
-        return colors
-
-    def __LeaveWindow(self):
-        if (self._style & PB_STYLE_TOGGLE) and self._pressed:
-            self.SetState(PLATE_PRESSED)
-        else:
-            self.SetState(PLATE_NORMAL)
-
-    #---- End Private Member Function ----#
-
-    #---- Public Member Functions ----#
-    def AcceptsFocus(self):
-        """Can this window have the focus?"""
-        return self.IsEnabled()
-
-    @property
-    def BitmapDisabled(self):
-        """Property for accessing the bitmap for the disabled state"""
-        return self._bmp['disable']
-
-    @property
-    def BitmapLabel(self):
-        """Property for accessing the default bitmap"""
-        return self._bmp['enable']
-
-    # Aliases
-    BitmapFocus = BitmapLabel
-    BitmapHover = BitmapLabel
-    BitmapSelected = BitmapLabel
-
-    def Disable(self):
-        """Disable the control"""
-        wx.PyControl.Disable(self)
-        self.Refresh()
-
-    def DoGetBestSize(self):
-        """Calculate the best size of the button
-        @return: wx.Size
-
-        """
-        width = 4
-        height = 6
-        if self.GetLabel():
-            lsize = self.GetTextExtent(self.GetLabel())
-            width += lsize[0]
-            height += lsize[1]
-
-        if self._bmp['enable'] is not None:
-            bsize = self._bmp['enable'].GetSize()
-            width += (bsize[0] + 10)
-            if height <= bsize[1]:
-                height = bsize[1] + 6
-            else:
-                height += 3
-        else:
-            width += 10
-
-        if self._menu is not None or self._style & PB_STYLE_DROPARROW:
-            width += 12
-
-        best = wx.Size(width, height)
-        self.CacheBestSize(best)
-        return best
-
-    def Enable(self, enable=True):
-        """Enable/Disable the control"""
-        wx.PyControl.Enable(self, enable)
-        self.Refresh()
-
-    def GetBackgroundBrush(self, dc):
-        """Get the brush for drawing the background of the button
-        @return: wx.Brush
-        @note: used internally when on gtk
-
-        """
-        if wx.Platform == '__WXMAC__' or self._style & PB_STYLE_NOBG:
-            return wx.TRANSPARENT_BRUSH
-
-        bkgrd = self.GetBackgroundColour()
-        brush = wx.Brush(bkgrd, wx.SOLID)
-        my_attr = self.GetDefaultAttributes()
-        p_attr = self.GetParent().GetDefaultAttributes()
-        my_def = bkgrd == my_attr.colBg
-        p_def = self.GetParent().GetBackgroundColour() == p_attr.colBg
-        if my_def and not p_def:
-            bkgrd = self.GetParent().GetBackgroundColour()
-            brush = wx.Brush(bkgrd, wx.SOLID)
-        return brush
-
-    def GetBitmapDisabled(self):
-        """Get the bitmap of the disable state
-        @return: wx.Bitmap or None
-
-        """
-        return self._bmp['disable']
-
-    def GetBitmapLabel(self):
-        """Get the label bitmap
-        @return: wx.Bitmap or None
-
-        """
-        return self._bmp['enable']
-
-    # GetBitmap Aliases for BitmapButton api
-    GetBitmapFocus = GetBitmapLabel
-    GetBitmapHover = GetBitmapLabel
-
-    # Alias for GetLabel
-    GetLabelText = wx.PyControl.GetLabel
-
-    def GetMenu(self):
-        """Return the menu associated with this button or None if no
-        menu is associated with it.
-
-        """
-        return getattr(self, '_menu', None)
-
-    def HasTransparentBackground(self):
-        """Override setting of background fill"""
-        return True
-
-    def IsPressed(self):
-        """Return if button is pressed (PB_STYLE_TOGGLE)"""
-        return self._pressed
-
-    @property
-    def LabelText(self):
-        """Property for getting the label of the button"""
-        return self.GetLabel()
-
-    #---- Event Handlers ----#
-
-    def OnErase(self, evt):
-        """Trap the erase event to keep the background transparent
-        on windows.
-        @param evt: wx.EVT_ERASE_BACKGROUND
-
-        """
-        pass
-
-    def OnFocus(self, evt):
-        """Set the visual focus state if need be"""
-        if self._state['cur'] == PLATE_NORMAL:
-            self.SetState(PLATE_HIGHLIGHT)
-
-    def OnKeyUp(self, evt):
-        """Execute a single button press action when the Return key is pressed
-        and this control has the focus.
-        @param evt: wx.EVT_KEY_UP
-
-        """
-        if evt.GetKeyCode() == wx.WXK_SPACE:
-            self.SetState(PLATE_PRESSED)
-            self.__PostEvent()
-            wx.CallLater(100, self.SetState, PLATE_HIGHLIGHT)
-        else:
-            evt.Skip()
-
-    def OnKillFocus(self, evt):
-        """Set the visual state back to normal when focus is lost
-        unless the control is currently in a pressed state.
-
-        """
-        # Note: this delay needs to be at least as much as the on in the KeyUp
-        #       handler to prevent ghost highlighting from happening when
-        #       quickly changing focus and activating buttons
-        if self._state['cur'] != PLATE_PRESSED:
-            self.SetState(PLATE_NORMAL)
-
-    def OnLeftDown(self, evt):
-        """Sets the pressed state and depending on the click position will
-        show the popup menu if one has been set.
-
-        """
-        pos = evt.GetPositionTuple()
-        self.SetState(PLATE_PRESSED)
-        size = self.GetSizeTuple()
-        if pos[0] >= size[0] - 16:
-            if self._menu is not None:
-                self.ShowMenu()
-            elif self._style & PB_STYLE_DROPARROW:
-                event = PlateBtnDropArrowPressed()
-                event.SetEventObject(self)
-                wx.PostEvent(self, event)
-
-        if (self._style & PB_STYLE_TOGGLE):
-            self._pressed = not self._pressed
-
-        self.SetFocus()
-
-    def OnLeftUp(self, evt):
-        """Post a button event if the control was previously in a
-        pressed state.
-        @param evt: wx.MouseEvent
-
-        """
-        if self._state['cur'] == PLATE_PRESSED:
-            pos = evt.GetPositionTuple()
-            size = self.GetSizeTuple()
-            if not (self._style & PB_STYLE_DROPARROW and pos[0] >= size[0] - 16):
-                self.__PostEvent()
-
-        if self._pressed:
-            self.SetState(PLATE_PRESSED)
-        else:
-            self.SetState(PLATE_HIGHLIGHT)
-
-    def OnMenuClose(self, evt):
-        """Refresh the control to a proper state after the menu has been
-        dismissed.
-        @param evt: wx.EVT_MENU_CLOSE
-
-        """
-        mpos = wx.GetMousePosition()
-        if self.HitTest(self.ScreenToClient(mpos)) != wx.HT_WINDOW_OUTSIDE:
-            self.SetState(PLATE_HIGHLIGHT)
-        else:
-            self.SetState(PLATE_NORMAL)
-        evt.Skip()
-
-    #---- End Event Handlers ----#
-
-    def SetBitmap(self, bmp):
-        """Set the bitmap displayed in the button
-        @param bmp: wx.Bitmap
-
-        """
-        self._bmp['enable'] = bmp
-        img = bmp.ConvertToImage()
-        img = img.ConvertToGreyscale(.795, .073, .026) #(.634, .224, .143)
-        self._bmp['disable'] = img.ConvertToBitmap()
-        self.InvalidateBestSize()
-
-    def SetBitmapDisabled(self, bmp):
-        """Set the bitmap for the disabled state
-        @param bmp: wx.Bitmap
-
-        """
-        self._bmp['disable'] = bmp
-
-    # Aliases for SetBitmap* functions from BitmapButton
-    SetBitmapFocus = SetBitmap
-    SetBitmapHover = SetBitmap
-    SetBitmapLabel = SetBitmap
-    SetBitmapSelected = SetBitmap
-
-    def SetFocus(self):
-        """Set this control to have the focus"""
-        if self._state['cur'] != PLATE_PRESSED:
-            self.SetState(PLATE_HIGHLIGHT)
-        wx.PyControl.SetFocus(self)
-
-    def SetFont(self, font):
-        """Adjust size of control when font changes"""
-        wx.PyControl.SetFont(self, font)
-        self.InvalidateBestSize()
-
-    def SetLabel(self, label):
-        """Set the label of the button
-        @param label: lable string
-
-        """
-        wx.PyControl.SetLabel(self, label)
-        self.InvalidateBestSize()
-
-    def SetLabelColor(self, normal, hlight=wx.NullColour):
-        """Set the color of the label. The optimal label color is usually
-        automatically selected depending on the button color. In some
-        cases the colors that are choosen may not be optimal.
-
-        The normal state must be specified, if the other two params are left
-        Null they will be automatically guessed based on the normal color. To
-        prevent this automatic color choices from happening either specify
-        a color or None for the other params.
-
-        @param normal: Label color for normal state
-        @keyword hlight: Color for when mouse is hovering over
-
-        """
-        self._color['default'] = False
-        self.SetForegroundColour(normal)
-
-        if hlight is not None:
-            if hlight.IsOk():
-                self._color['htxt'] = hlight
-            else:
-                self._color['htxt'] = BestLabelColour(normal)
-
-        if wx.Platform == '__WXMSW__':
-            self.GetParent().RefreshRect(self.GetRect(), False)
-        else:
-            self.Refresh()
-
-    def SetMenu(self, menu):
-        """Set the menu that can be shown when clicking on the
-        drop arrow of the button.
-        @param menu: wxMenu to use as a PopupMenu
-        @note: Arrow is not drawn unless a menu is set
-
-        """
-        if self._menu is not None:
-            self.Unbind(wx.EVT_MENU_CLOSE)
-
-        self._menu = menu
-        self.Bind(wx.EVT_MENU_CLOSE, self.OnMenuClose)
-        self.InvalidateBestSize()
-
-    def SetPressColor(self, color):
-        """Set the color used for highlighting the pressed state
-        @param color: wx.Color
-        @note: also resets all text colours as necessary
-
-        """
-        self._color['default'] = False
-        if color.Alpha() == 255:
-            self._color['hlight'] = AdjustAlpha(color, 200)
-        else:
-            self._color['hlight'] = color
-        self._color['press'] = AdjustColour(color, -10, 160)
-        self._color['htxt'] = BestLabelColour(self._color['hlight'])
-        self.Refresh()
-
-    def SetState(self, state):
-        """Manually set the state of the button
-        @param state: one of the PLATE_* values
-        @note: the state may be altered by mouse actions
-
-        """
-        self._state['pre'] = self._state['cur']
-        self._state['cur'] = state
-        if wx.Platform == '__WXMSW__':
-            self.GetParent().RefreshRect(self.GetRect(), False)
-        else:
-            self.Refresh()
-
-    def SetWindowStyle(self, style):
-        """Sets the window style bytes, the updates take place
-        immediately no need to call refresh afterwards.
-        @param style: bitmask of PB_STYLE_* values
-
-        """
-        self._style = style
-        self.Refresh()
-
-    def SetWindowVariant(self, variant):
-        """Set the variant/font size of this control"""
-        wx.PyControl.SetWindowVariant(self, variant)
-        self.InvalidateBestSize()
-
-    def ShouldInheritColours(self):
-        """Overridden base class virtual. If the parent has non-default
-        colours then we want this control to inherit them.
-
-        """
-        return True
-
-    def ShowMenu(self):
-        """Show the dropdown menu if one is associated with this control"""
-        if self._menu is not None:
-            size = self.GetSizeTuple()
-            adj = wx.Platform == '__WXMAC__' and 3 or 0
-
-            if self._style & PB_STYLE_SQUARE:
-                xpos = 1
-            else:
-                xpos = size[1] / 2
-
-            self.PopupMenu(self._menu, (xpos, size[1] + adj))
-
-    def Toggle(self):
-        self._pressed = not self._pressed
-        if self._pressed:
-            self.SetState(PLATE_PRESSED)
-        else:
-            self.SetState(PLATE_NORMAL)
-
-    def ToggleState(self):
-        """Toggle button state"""
-        if self._state['cur'] != PLATE_PRESSED:
-            self.SetState(PLATE_PRESSED)
-        else:
-            self.SetState(PLATE_HIGHLIGHT)
-
-    #---- End Public Member Functions ----#
diff --git a/invesalius/gui/widgets/slice_menu.py b/invesalius/gui/widgets/slice_menu.py
index 8dccc38..aaab3f7 100644
--- a/invesalius/gui/widgets/slice_menu.py
+++ b/invesalius/gui/widgets/slice_menu.py
@@ -29,11 +29,10 @@ except(ImportError):
 import wx
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import data.slice_ as sl
-import presets
-
-from gui.dialogs import ClutImagedataDialog
+import invesalius.constants as const
+import invesalius.data.slice_ as sl
+import invesalius.presets as presets
+from invesalius.gui.dialogs import ClutImagedataDialog
 
 PROJECTIONS_ID = OrderedDict(((_('Normal'), const.PROJECTION_NORMAL),
                               (_('MaxIP'), const.PROJECTION_MaxIP),
diff --git a/invesalius/i18n.py b/invesalius/i18n.py
index 8a5edf0..d64b954 100644
--- a/invesalius/i18n.py
+++ b/invesalius/i18n.py
@@ -20,13 +20,17 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 
-import ConfigParser
+try:
+    import configparser as ConfigParser
+except(ImportError):
+    import ConfigParser
+
 import locale
 import gettext
 import os
 import sys
  
-import utils as utl 
+import invesalius.utils as utl
  
 def GetLocales(): 
     """Return a dictionary which defines supported languages""" 
@@ -44,6 +48,8 @@ def GetLocales():
                                 'ca': u'Català',
                                 'ko': u'한국어',
                                 'ro': u'Română',
+                                'ru': u'Русский',
+                                'ja': u'日本語',
                                 }) 
     return d 
  
@@ -58,8 +64,23 @@ def GetLocaleOS():
  
         return locale.getdefaultlocale()[0] 
  
-def InstallLanguage(language): 
-    language_dir = os.path.abspath(os.path.join('..','locale')) 
+def InstallLanguage(language):
+    file_path = os.path.split(__file__)[0]
+
+    if hasattr(sys,"frozen") and (sys.frozen == "windows_exe"\
+                            or sys.frozen == "console_exe"):
+
+        abs_file_path = os.path.abspath(file_path + os.sep + ".." + os.sep + ".." + os.sep + "..")
+        language_dir = os.path.join(abs_file_path, 'locale')
+    else:
+        abs_file_path = os.path.abspath(file_path + os.sep + "..")
+        language_dir = os.path.join(abs_file_path, 'locale')
+
+    # MAC App
+    if not os.path.exists(language_dir):
+        abs_file_path = os.path.abspath(os.path.join(file_path, '..', '..',  '..', '..'))
+        language_dir = os.path.join(abs_file_path, 'locale')
+
     lang = gettext.translation('invesalius', language_dir,\
                                    languages=[language], codeset='utf8') 
     # Using unicode 
diff --git a/invesalius/invesalius.py b/invesalius/invesalius.py
deleted file mode 100755
index b6d0faf..0000000
--- a/invesalius/invesalius.py
+++ /dev/null
@@ -1,319 +0,0 @@
-#!/usr/bin/python
-#--------------------------------------------------------------------------
-# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
-# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
-# Homepage:     http://www.softwarepublico.gov.br
-# Contact:      invesalius at cti.gov.br
-# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
-#--------------------------------------------------------------------------
-#    Este programa e software livre; voce pode redistribui-lo e/ou
-#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
-#    publicada pela Free Software Foundation; de acordo com a versao 2
-#    da Licenca.
-#
-#    Este programa eh distribuido na expectativa de ser util, mas SEM
-#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
-#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
-#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
-#    detalhes.
-#-------------------------------------------------------------------------
-
-
-import multiprocessing
-import optparse as op
-import os
-import sys
-import shutil
-
-if sys.platform == 'win32':
-    import _winreg
-else:
-    if sys.platform != 'darwin':
-        import wxversion
-        #wxversion.ensureMinimal('2.8-unicode', optionsRequired=True)
-        #wxversion.select('2.8-unicode', optionsRequired=True)
-        wxversion.ensureMinimal('3.0')
-        
-import wx
-#from wx.lib.pubsub import setupv1 #new wx
-from wx.lib.pubsub import setuparg1# as psv1
-#from wx.lib.pubsub import Publisher 
-#import wx.lib.pubsub as ps
-from wx.lib.pubsub import pub as Publisher
-
-#import wx.lib.agw.advancedsplash as agw
-#if sys.platform == 'linux2':
-#    _SplashScreen = agw.AdvancedSplash
-#else:
-#    if sys.platform != 'darwin':
-#        _SplashScreen = wx.SplashScreen
-
-
-import gui.language_dialog as lang_dlg
-import i18n
-import session as ses
-import utils
-
-# ------------------------------------------------------------------
-
-
-class InVesalius(wx.App):
-    """
-    InVesalius wxPython application class.
-    """
-    def OnInit(self):
-        """
-        Initialize splash screen and main frame.
-        """
-        self.SetAppName("InVesalius 3")
-        self.splash = SplashScreen()
-        self.splash.Show()
-        wx.CallLater(1000,self.Startup2)
-
-        return True
-
-    def MacOpenFile(self, filename):
-        """
-        Open drag & drop files under darwin
-        """
-        path = os.path.abspath(filename)
-        Publisher.sendMessage('Open project', path)
-
-    def Startup2(self):
-        self.control = self.splash.control
-        self.frame = self.splash.main
-        self.SetTopWindow(self.frame)
-        self.frame.Show()
-        self.frame.Raise()
-
-# ------------------------------------------------------------------
-
-class SplashScreen(wx.SplashScreen):
-    """
-    Splash screen to be shown in InVesalius initialization.
-    """
-    def __init__(self):
-        # Splash screen image will depend on currently language
-        lang = False
-
-        # Language information is available in session configuration
-        # file. First we need to check if this file exist, if now, it
-        # should be created
-        create_session = False
-        session = ses.Session()
-        if not (session.ReadSession()):
-            create_session = True
-
-        install_lang = 0
-        # Check if there is a language set (if session file exists
-        if session.ReadLanguage():
-            lang = session.GetLanguage()
-            if (lang != "False"):
-                _ = i18n.InstallLanguage(lang)
-                install_lang = 1
-            else:
-                install_lang = 0
-        else:
-            install_lang = 0
-
-        # If no language is set into session file, show dialog so
-        # user can select language
-        if install_lang == 0:
-            dialog = lang_dlg.LanguageDialog()
-
-            # FIXME: This works ok in linux2, darwin and win32,
-            # except on win64, due to wxWidgets bug
-            try:
-                ok = (dialog.ShowModal() == wx.ID_OK)
-            except wx._core.PyAssertionError:
-                ok = True
-            finally:
-                if ok:
-                    lang = dialog.GetSelectedLanguage()
-                    session.SetLanguage(lang)
-                    _ = i18n.InstallLanguage(lang)
-                else:
-                    homedir = self.homedir = os.path.expanduser('~')
-                    invdir = os.path.join(homedir, ".invesalius")
-                    shutil.rmtree(invdir)
-                    sys.exit()
-                    
-        # Session file should be created... So we set the recent
-        # choosen language
-        if (create_session):
-            session.CreateItens()
-            session.SetLanguage(lang)
-            session.WriteSessionFile()
-
-        session.SaveConfigFileBackup()
-
-           
-        # Only after language was defined, splash screen will be
-        # shown
-        if lang:
-            # For pt_BR, splash_pt.png should be used
-            if (lang.startswith('pt')):
-                icon_file = "splash_pt.png"
-            else:
-                icon_file = "splash_" + lang + ".png"
-
-            path = os.path.join("..","icons", icon_file)
-
-            if not os.path.exists(path):
-                path = os.path.join("..", "icons", "splash_en.png")
-
-            bmp = wx.Image(path).ConvertToBitmap()
-
-            style = wx.SPLASH_TIMEOUT | wx.SPLASH_CENTRE_ON_SCREEN
-            wx.SplashScreen.__init__(self,
-                                     bitmap=bmp,
-                                     splashStyle=style,
-                                     milliseconds=1500,
-                                     id=-1,
-                                     parent=None)
-            self.Bind(wx.EVT_CLOSE, self.OnClose)
-            wx.Yield()
-            wx.CallLater(200,self.Startup)
-
-    def Startup(self):
-        # Importing takes sometime, therefore it will be done
-        # while splash is being shown
-        from gui.frame import Frame
-        from control import Controller
-        from project import Project
-        
-        self.main = Frame(None)
-        self.control = Controller(self.main)
-        
-        self.fc = wx.FutureCall(1, self.ShowMain)
-        wx.FutureCall(1, parse_comand_line)
-
-        # Check for updates
-        from threading import Thread
-        p = Thread(target=utils.UpdateCheck, args=())
-        p.start()
-
-    def OnClose(self, evt):
-        # Make sure the default handler runs too so this window gets
-        # destroyed
-        evt.Skip()
-        self.Hide()
-
-        # If the timer is still running then go ahead and show the
-        # main frame now
-        if self.fc.IsRunning():
-            self.fc.Stop()
-            self.ShowMain()
-
-    def ShowMain(self):
-        # Show main frame
-        self.main.Show()
-
-        if self.fc.IsRunning():
-            self.Raise()
-
-# ------------------------------------------------------------------
-
-
-def parse_comand_line():
-    """
-    Handle command line arguments.
-    """
-    session = ses.Session()
-
-    # Parse command line arguments
-    parser = op.OptionParser()
-
-    # -d or --debug: print all pubsub messagessent
-    parser.add_option("-d", "--debug",
-                      action="store_true",
-                      dest="debug")
-
-    # -i or --import: import DICOM directory
-    # chooses largest series
-    parser.add_option("-i", "--import",
-                      action="store",
-                      dest="dicom_dir")
-    options, args = parser.parse_args()
-
-    # If debug argument...
-    if options.debug:
-        Publisher.subscribe(print_events, Publisher.ALL_TOPICS)
-        session.debug = 1
-
-    # If import DICOM argument...
-    if options.dicom_dir:
-        import_dir = options.dicom_dir
-        Publisher.sendMessage('Import directory', import_dir)
-        return True
-
-    # Check if there is a file path somewhere in what the user wrote
-    # In case there is, try opening as it was a inv3
-    else:
-        i = len(args)
-        while i:
-            i -= 1
-            file = args[i]
-            if os.path.isfile(file):
-                path = os.path.abspath(file)
-                Publisher.sendMessage('Open project', path)
-                i = 0
-                return True
-    return False
-
-
-def print_events(data):
-    """
-    Print pubsub messages
-    """
-    utils.debug(data.topic)
-
-def main():
-    """
-    Initialize InVesalius GUI
-    """
-    application = InVesalius(0)
-    application.MainLoop()
-
-if __name__ == '__main__':
-    # Needed in win 32 exe
-    if hasattr(sys,"frozen") and (sys.frozen == "windows_exe"\
-                               or sys.frozen == "console_exe"):
-        multiprocessing.freeze_support()
-
-        #Click in the .inv3 file support
-        root = _winreg.HKEY_CLASSES_ROOT
-        key = "InVesalius 3.0\InstallationDir"
-        hKey = _winreg.OpenKey (root, key, 0, _winreg.KEY_READ)
-        value, type_ = _winreg.QueryValueEx (hKey, "")
-        path = os.path.join(value,'dist')
-
-        os.chdir(path)
-
-    # Create raycasting presets' folder, if it doens't exist
-    dirpath = os.path.join(os.path.expanduser('~'),
-                           ".invesalius",
-                           "presets")
-    if not os.path.isdir(dirpath):
-        os.makedirs(dirpath)
-
-    # Create logs' folder, if it doesn't exist
-    dirpath = os.path.join(os.path.expanduser('~'),
-                           ".invesalius",
-                           "logs")
-    if not os.path.isdir(dirpath):
-        os.makedirs(dirpath)
-
-    if hasattr(sys,"frozen") and sys.frozen == "windows_exe":
-        # Set system standard error output to file
-        path = os.path.join(dirpath, "stderr.log")
-        sys.stderr = open(path, "w")
-
-    # Add current directory to PYTHONPATH, so other classes can
-    # import modules as they were on root invesalius folder
-    sys.path.append(".")
-
-
-    # Init application
-    main()
-
diff --git a/invesalius/net/dicom.py b/invesalius/net/dicom.py
index cc0e397..d69b9f2 100644
--- a/invesalius/net/dicom.py
+++ b/invesalius/net/dicom.py
@@ -1,6 +1,5 @@
 import gdcm
-import utils
-
+import invesalius.utils as utils
 
 class DicomNet:
     
@@ -110,7 +109,6 @@ class DicomNet:
                 acquisition_date = utils.format_date(self.GetValueFromDICOM(rt, (0x0008,0x0022)))
 
                 teste = self.GetValueFromDICOM(rt, (0x0020,0x000d))
-                print ">>>>>>>>>>>>>>>>>>>>", teste
 
                 patients[patient_id][serie_id] = {'name':name, 'age':age, 'gender':gender,\
                                                   'study_description':study_description,\
@@ -146,11 +144,6 @@ class DicomNet:
         patient_id = str(values[0])        
         serie_id = str(values[1])
 
-        print "(0x0010, 0x0020)",patient_id
-        
-        print "(0x0020, 0x000e)",serie_id
-        print "\n\n"
-
         de_patient.SetByteValue(patient_id,  gdcm.VL(len(patient_id)))
         de_serie.SetByteValue(serie_id, gdcm.VL(len(serie_id)))
 
diff --git a/invesalius/presets.py b/invesalius/presets.py
index 7e89ea1..401ceee 100644
--- a/invesalius/presets.py
+++ b/invesalius/presets.py
@@ -20,12 +20,11 @@ import glob
 import os
 import plistlib
 
-import constants as const
+import invesalius.constants as const
 
 from wx.lib.pubsub import pub as Publisher
 
-from utils import TwoWaysDictionary
-
+from invesalius.utils import TwoWaysDictionary
 class Presets():
 
     def __init__(self):
@@ -73,12 +72,13 @@ class Presets():
     def UpdateThresholdModes(self, evt):
     
         thresh_min, thresh_max = evt.data
-        
         presets_list = (self.thresh_ct, self.thresh_mri)
 
         for presets in presets_list:
             for key in presets:
                 (t_min, t_max) = presets[key]
+
+
                 if (t_min is None) or (t_max is None): # setting custom preset
                     t_min = thresh_min
                     t_max = thresh_max
@@ -93,7 +93,7 @@ class Presets():
                     t_min = thresh_min
                 if (t_max < thresh_min):
                     t_max = thresh_max
-                    
+
                 presets[key] = (t_min, t_max)
                     
         Publisher.sendMessage('Update threshold limits', (thresh_min,     
@@ -169,7 +169,7 @@ class Presets():
 
 
 def get_wwwl_presets():
-    files = glob.glob(os.path.join('..', 'presets', 'raycasting', 'color_list', '*.plist'))
+    files = glob.glob(os.path.join(const.RAYCASTING_PRESETS_COLOR_DIRECTORY, '*.plist'))
     presets = {}
     for f in files:
         p = os.path.splitext(os.path.basename(f))[0]
diff --git a/invesalius/project.py b/invesalius/project.py
index 96ae4d1..d26f643 100644
--- a/invesalius/project.py
+++ b/invesalius/project.py
@@ -22,6 +22,7 @@ import glob
 import os
 import plistlib
 import shutil
+import sys
 import tarfile
 import tempfile
 
@@ -29,13 +30,20 @@ import wx
 from wx.lib.pubsub import pub as Publisher
 import vtk
 
-import constants as const
-import data.mask as msk
-import data.polydata_utils as pu
-import data.surface as srf
-from presets import Presets
-from utils import Singleton, debug
-import version
+import invesalius.constants as const
+import invesalius.data.polydata_utils as pu
+from invesalius.presets import Presets 
+from invesalius.utils import Singleton, debug, touch
+import invesalius.version as version
+
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
 
 class Project(object):
     # Only one project will be initialized per time. Therefore, we use
@@ -190,13 +198,14 @@ class Project(object):
             item["type"] = m.type
             item["slice_number"] = m.slice_number
             item["points"] = m.points
-            item["visible"] = m.is_shown
+            item["visible"] = m.visible
             measures[str(m.index)] = item
         return measures
 
     def SavePlistProject(self, dir_, filename):
-        dir_temp = tempfile.mkdtemp()
-        filename_tmp = os.path.join(dir_temp, 'matrix.dat')
+        dir_temp = tempfile.mkdtemp().decode(const.FS_ENCODE)
+
+        filename_tmp = os.path.join(dir_temp, u'matrix.dat')
         filelist = {}
 
         project = {
@@ -216,10 +225,11 @@ class Project(object):
                   }
 
         # Saving the matrix containing the slices
-        matrix = {'filename': u'matrix.dat',
-                  'shape': self.matrix_shape,
-                  'dtype': self.matrix_dtype,
-                 }
+        matrix = {
+            'filename': u'matrix.dat',
+            'shape': self.matrix_shape,
+            'dtype': self.matrix_dtype,
+        }
         project['matrix'] = matrix
         filelist[self.matrix_filename] = 'matrix.dat'
         #shutil.copyfile(self.matrix_filename, filename_tmp)
@@ -264,16 +274,17 @@ class Project(object):
 
         for f in filelist:
             if filelist[f].endswith('.plist'):
-                print f
                 os.remove(f)
 
     def OpenPlistProject(self, filename):
-        import data.measures as ms
- 
+        import invesalius.data.measures as ms
+        import invesalius.data.mask as msk
+        import invesalius.data.surface as srf
+        
         if not const.VTK_WARNING:
-            log_path = os.path.join(const.LOG_FOLDER, 'vtkoutput.txt')
+            log_path = os.path.join(const.USER_LOG_DIR, 'vtkoutput.txt')
             fow = vtk.vtkFileOutputWindow()
-            fow.SetFileName(log_path)
+            fow.SetFileName(log_path.encode(const.FS_ENCODE))
             ow = vtk.vtkOutputWindow()
             ow.SetInstance(fow)
             
@@ -329,39 +340,45 @@ class Project(object):
 def Compress(folder, filename, filelist):
     tmpdir, tmpdir_ = os.path.split(folder)
     current_dir = os.path.abspath(".")
+    temp_inv3 = tempfile.mktemp()
+    if _has_win32api:
+        touch(temp_inv3)
+        temp_inv3 = win32api.GetShortPathName(temp_inv3)
+
+    temp_inv3 = temp_inv3.decode(const.FS_ENCODE)
     #os.chdir(tmpdir)
     #file_list = glob.glob(os.path.join(tmpdir_,"*"))
-    tar_filename = tmpdir_ + ".inv3"
-    tar = tarfile.open(filename.encode(wx.GetDefaultPyEncoding()), "w:gz")
+    tar = tarfile.open(temp_inv3, "w:gz")
     for name in filelist:
         tar.add(name, arcname=os.path.join(tmpdir_, filelist[name]))
     tar.close()
-    #shutil.move(tmpdir_+ ".inv3", filename)
+    shutil.move(temp_inv3, filename)
     #os.chdir(current_dir)
 
+
 def Extract(filename, folder):
+    if _has_win32api:
+        folder = win32api.GetShortPathName(folder)
+    folder = folder.decode(const.FS_ENCODE)
+
     tar = tarfile.open(filename, "r:gz")
-    idir = os.path.split(tar.getnames()[0])[0]
-    os.mkdir(os.path.join(folder, idir.decode('utf8')))
+    idir = os.path.split(tar.getnames()[0])[0].decode('utf8')
+    os.mkdir(os.path.join(folder, idir))
     filelist = []
     for t in tar.getmembers():
         fsrc = tar.extractfile(t)
-
         fname = os.path.join(folder, t.name.decode('utf-8'))
         fdst = file(fname, 'wb')
-
         shutil.copyfileobj(fsrc, fdst)
-
         filelist.append(fname)
         fsrc.close()
         fdst.close()
         del fsrc
         del fdst
     tar.close()
-    print filelist
     return filelist
 
-    
+
 def Extract_(filename, folder):
     tar = tarfile.open(filename, "r:gz")
     #tar.list(verbose=True)
diff --git a/invesalius/reader/analyze_reader.py b/invesalius/reader/analyze_reader.py
deleted file mode 100644
index 8546df7..0000000
--- a/invesalius/reader/analyze_reader.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#--------------------------------------------------------------------------
-# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
-# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
-# Homepage:     http://www.softwarepublico.gov.br
-# Contact:      invesalius at cti.gov.br
-# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
-#--------------------------------------------------------------------------
-#    Este programa e software livre; voce pode redistribui-lo e/ou
-#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
-#    publicada pela Free Software Foundation; de acordo com a versao 2
-#    da Licenca.
-#
-#    Este programa eh distribuido na expectativa de ser util, mas SEM
-#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
-#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
-#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
-#    detalhes.
-#--------------------------------------------------------------------------
-
-import os
-import multiprocessing
-import tempfile
-
-import vtk
-
-from nibabel import AnalyzeImage, squeeze_image
-
-def ReadAnalyze(filename):
-    anlz = squeeze_image(AnalyzeImage.from_filename(filename))
-    return anlz
-
-def ReadDirectory(dir_):
-    """ 
-    Looking for analyze files in the given directory
-    """
-    imagedata = None
-    for root, sub_folders, files in os.walk(dir_):
-        for file in files:
-            if file.split(".")[-1] == "hdr":
-                filename = os.path.join(root,file)
-                imagedata = ReadAnalyze(filename)
-                return imagedata
-    return imagedata
diff --git a/invesalius/reader/bitmap_reader.py b/invesalius/reader/bitmap_reader.py
new file mode 100644
index 0000000..cdb352e
--- /dev/null
+++ b/invesalius/reader/bitmap_reader.py
@@ -0,0 +1,441 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+import os
+import Queue
+import threading
+import tempfile
+import sys
+import vtk
+import re
+import invesalius.constants as const
+import wx
+
+from wx.lib.pubsub import pub as Publisher
+from multiprocessing import cpu_count
+
+from vtk.util import numpy_support
+from scipy import misc
+import numpy
+import imghdr
+
+import invesalius.utils as utils
+import invesalius.data.converters as converters
+#flag to control vtk error in read files
+no_error = True 
+vtk_error = False
+
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
+
+class Singleton:
+
+    def __init__(self,klass):
+        self.klass = klass
+        self.instance = None
+            
+    def __call__(self,*args,**kwds):
+        if self.instance == None:
+            self.instance = self.klass(*args,**kwds)
+        return self.instance
+
+ at Singleton
+class BitmapData:
+
+    def __init__(self):
+        self.data = None
+
+    def GetData(self):
+        return self.data
+
+    def SetData(self, data):
+        self.data = data
+
+    def GetOnlyBitmapPath(self):
+        paths = [item[0] for item in self.data]
+        return paths
+
+    def GetFirstBitmapSize(self):
+        return (self.data[0][3], self.data[0][4])
+
+    def IsAllBitmapSameSize(self):
+        sizes = [item[5] for item in self.data]
+
+        k = {}
+        for v in sizes:
+            k[v] = ''
+
+        if len(k.keys()) > 1:
+            return False
+        else:
+            return True
+
+    def GetFirstPixelSize(self):
+        
+        path = self.data[0][0] 
+        size = ReadBitmap(path).dtype.itemsize * 8
+        
+        return size
+
+    def RemoveFileByPath(self, path):
+        for d in self.data:
+            if path.encode('utf-8') in d:
+                self.data.remove(d)
+
+    def GetIndexByPath(self, path):
+        for i, v in enumerate(self.data):
+            if path.encode('utf-8') in v:
+                return i
+
+class BitmapFiles:
+
+    def __init__(self):
+        self.bitmapfiles = []
+
+    def Add(self, bmp):
+        self.bitmapfiles.append(bmp)
+
+    def Sort(self, x):
+        c_re = re.compile('\d+')
+        if len(c_re.findall(x[6])) > 0:
+            return [int(i) for i in c_re.findall(x[6])]
+        else:
+            return [str(x[6])]
+
+    def GetValues(self):
+        bmpfile = self.bitmapfiles
+        bmpfile.sort(key = self.Sort)
+
+        bmp_data = BitmapData()
+        bmp_data.data = bmpfile
+
+        return bmpfile
+
+class LoadBitmap:
+
+    def __init__(self, bmp_file, filepath):
+        self.bmp_file = bmp_file
+        self.filepath = filepath
+        
+        self.run()
+    
+    def run(self):
+        global vtk_error
+
+        #----- verify extension ------------------
+        extension = VerifyDataType(self.filepath)
+
+        file_name = self.filepath.split(os.path.sep)[-1]
+
+        n_array = ReadBitmap(self.filepath)
+      
+        if not(isinstance(n_array, numpy.ndarray)):
+            return False
+            
+        image = converters.to_vtk(n_array, spacing=(1,1,1),\
+                slice_number=1, orientation="AXIAL")
+
+
+        dim = image.GetDimensions()
+        x = dim[0]
+        y = dim[1]
+
+        img = vtk.vtkImageResample()
+        img.SetInputData(image)
+        img.SetAxisMagnificationFactor ( 0, 0.25 )
+        img.SetAxisMagnificationFactor ( 1, 0.25 )
+        img.SetAxisMagnificationFactor ( 2, 1 )    
+        img.Update()
+
+        tp = img.GetOutput().GetScalarTypeAsString()
+
+        image_copy = vtk.vtkImageData()
+        image_copy.DeepCopy(img.GetOutput())
+        
+        thumbnail_path = tempfile.mktemp()
+
+        write_png = vtk.vtkPNGWriter()
+        write_png.SetInputConnection(img.GetOutputPort())
+        write_png.AddObserver("WarningEvent", VtkErrorPNGWriter)
+        write_png.SetFileName(thumbnail_path)
+        write_png.Write()
+
+        if vtk_error:
+            img = vtk.vtkImageCast()
+            img.SetInputData(image_copy)
+            img.SetOutputScalarTypeToUnsignedShort()
+            #img.SetClampOverflow(1)
+            img.Update()
+
+            write_png = vtk.vtkPNGWriter()
+            write_png.SetInputConnection(img.GetOutputPort())
+            write_png.SetFileName(thumbnail_path)
+            write_png.Write()
+    
+            vtk_error = False
+
+        id = wx.NewId()
+
+        bmp_item = [self.filepath, thumbnail_path, extension, x, y,\
+                                str(x) + ' x ' + str(y), file_name, id]
+        self.bmp_file.Add(bmp_item)
+
+
+def yGetBitmaps(directory, recursive=True, gui=True):
+    """
+    Return all full paths to DICOM files inside given directory.
+    """
+    nfiles = 0
+    # Find total number of files
+    if recursive:
+        for dirpath, dirnames, filenames in os.walk(directory):
+            nfiles += len(filenames)
+    else:
+        dirpath, dirnames, filenames = os.walk(directory)
+        nfiles = len(filenames)
+
+
+    counter = 0
+    bmp_file = BitmapFiles()
+
+    # Retrieve only TIFF, BMP, JPEG and PNG files
+    if recursive:
+        for dirpath, dirnames, filenames in os.walk(directory):
+            for name in filenames:
+                filepath = os.path.join(dirpath, name)
+                counter += 1
+                if gui:
+                    yield (counter,nfiles)
+                LoadBitmap(bmp_file, filepath)
+    else:
+        dirpath, dirnames, filenames = os.walk(directory)
+        for name in filenames:
+            filepath = str(os.path.join(dirpath, name))
+            counter += 1
+            if gui:
+                yield (counter,nfiles)
+
+    yield bmp_file.GetValues()
+
+
+class ProgressBitmapReader:
+    def __init__(self):
+        Publisher.subscribe(self.CancelLoad, "Cancel bitmap load")
+
+    def CancelLoad(self, evt_pubsub):
+        self.running = False
+        self.stoped = True
+
+    def SetWindowEvent(self, frame):
+        self.frame = frame          
+
+    def SetDirectoryPath(self, path,recursive=True):
+        self.running = True
+        self.stoped = False
+        self.GetBitmaps(path,recursive)
+
+    def UpdateLoadFileProgress(self,cont_progress):
+        Publisher.sendMessage("Update bitmap load", cont_progress)
+
+    def EndLoadFile(self, bitmap_list):
+        Publisher.sendMessage("End bitmap load", bitmap_list)
+
+    def GetBitmaps(self, path, recursive):
+
+        y = yGetBitmaps(path, recursive)
+        for value_progress in y:
+            if not self.running:
+                break
+            if isinstance(value_progress, tuple):
+                self.UpdateLoadFileProgress(value_progress)
+            else:
+                self.EndLoadFile(value_progress)
+
+        #Is necessary in the case user cancel
+        #the load, ensure that dicomdialog is closed
+        if(self.stoped):
+            self.UpdateLoadFileProgress(None)
+            self.stoped = False   
+
+def VtkErrorPNGWriter(obj, f):
+    global vtk_error
+    vtk_error = True
+
+def ScipyRead(filepath):
+    try:
+        r = misc.imread(filepath, flatten=True)
+        dt = r.dtype 
+        if  dt == "float" or dt == "float16"\
+                          or dt == "float32" or dt == "float64":   
+            shift=-r.max()/2
+            simage = numpy.zeros_like(r, dtype='int16')
+            simage[:] = r.astype('int32') + shift
+
+            return simage
+        else:
+            return r
+    except(IOError):
+        return False
+
+def VtkRead(filepath, t):
+    if not const.VTK_WARNING:
+        log_path = os.path.join(const.USER_LOG_DIR, 'vtkoutput.txt')
+        fow = vtk.vtkFileOutputWindow()
+        fow.SetFileName(log_path.encode(const.FS_ENCODE))
+        ow = vtk.vtkOutputWindow()
+        ow.SetInstance(fow)
+
+    global no_error
+
+    if t == "bmp":
+        reader = vtk.vtkBMPReader()
+
+    elif t == "tiff" or t == "tif":
+        reader = vtk.vtkTIFFReader()
+
+    elif t == "png":
+        reader = vtk.vtkPNGReader()
+    
+    elif t == "jpeg" or t == "jpg":
+        reader = vtk.vtkJPEGReader()
+
+    else:
+        return False
+
+    print ">>>> bmp reader", type(filepath)
+
+    reader.AddObserver("ErrorEvent", VtkErrorToPy)
+    reader.SetFileName(filepath.encode(const.FS_ENCODE))
+    reader.Update()
+    
+    if no_error:
+        image = reader.GetOutput()
+        dim = image.GetDimensions()
+       
+        if reader.GetNumberOfScalarComponents() > 1:
+            luminanceFilter = vtk.vtkImageLuminance()
+            luminanceFilter.SetInputData(image)
+            luminanceFilter.Update()
+
+            image = vtk.vtkImageData()
+            image.DeepCopy(luminanceFilter.GetOutput())
+
+        img_array = numpy_support.vtk_to_numpy(image.GetPointData().GetScalars())
+        img_array.shape = (dim[1], dim[0])
+
+        return img_array
+    else:
+        no_error = True
+        return False
+
+
+def ReadBitmap(filepath): 
+    t = VerifyDataType(filepath)
+
+    if _has_win32api:
+        filepath = win32api.GetShortPathName(filepath)
+
+    if t == False:
+        measures_info = GetPixelSpacingFromInfoFile(filepath)
+        
+        if measures_info:
+            Publisher.sendMessage('Set bitmap spacing', measures_info)
+
+        return False
+
+    img_array = VtkRead(filepath, t)
+    
+    if not(isinstance(img_array, numpy.ndarray)):
+        
+        no_error = True
+        
+        img_array = ScipyRead(filepath)
+        
+        if not(isinstance(img_array, numpy.ndarray)):
+            return False
+
+    return img_array
+           
+
+def GetPixelSpacingFromInfoFile(filepath):
+    fi = open(filepath, 'r')
+    lines = fi.readlines()
+    measure_scale = 'mm'
+    values = []
+
+    if len(lines) > 0:
+        #info text from avizo
+        if '# Avizo Stacked Slices' in lines[0]:
+            value = lines[2].split(' ')
+            spx = float(value[1])
+            spy = float(value[2])
+            value = lines[5].split(' ')
+            spz = float(value[1])
+
+            return [spx * 0.001, spy * 0.001, spz * 0.001]
+        else:
+            #info text from skyscan
+            for l in lines:
+                if 'Pixel Size' in l:
+                    if 'um' in l:
+                        measure_scale = 'um'
+                    
+                    value = l.split("=")[-1]
+                    values.append(value)
+
+            if len(values) > 0:
+                value = values[-1]
+                
+                value = value.replace('\n','')
+                value = value.replace('\r','')
+
+                #convert um to mm (InVesalius default)
+                if measure_scale == 'um':
+                    value = float(value) * 0.001
+                    measure_scale = 'mm'
+
+                elif measure_scale == 'nm':
+                    value = float(value) * 0.000001
+
+                return [value, value, value]
+            else:
+                return False
+    else:
+        return False
+
+def VtkErrorToPy(obj, evt):
+    global no_error
+    no_error = False
+
+
+def VerifyDataType(filepath):
+    try:
+        t = imghdr.what(filepath)
+        if t:
+            return t
+        else:
+            return False
+    except IOError:
+        return False
+
diff --git a/invesalius/reader/dicom.py b/invesalius/reader/dicom.py
index 84be16d..843fd94 100644
--- a/invesalius/reader/dicom.py
+++ b/invesalius/reader/dicom.py
@@ -21,8 +21,8 @@ import time
 #import gdcm
 #import vtkgdcm
 import sys
-import utils
-import constants as const
+import invesalius.utils as utils
+import invesalius.constants as const
 # In DICOM file format, if multiple values are present for the
 # "Window Center" (Level) and "Window Width", both attributes
 # shall have the same number of values and shall be considered as
@@ -1295,7 +1295,10 @@ class Parser():
         if (data):
             encoding = self.GetEncoding()
             # Returns a unicode decoded in the own dicom encoding
-            return data.decode(encoding, 'replace')
+            try:
+                return data.decode(encoding, 'replace')
+            except(UnicodeEncodeError):
+                return data
         return ""
 
 
@@ -1436,6 +1439,20 @@ class Parser():
             return data
         return ""
 
+    def GetManufacturerName(self):
+        """
+        Return Manufacturer of the equipment that produced 
+        the composite instances.
+        """
+        try:
+            data = self.data_image[str(0x0008)][str(0x0070)]
+        except(KeyError):
+            return ""
+
+        if (data):
+            return data
+        return ""
+
     def GetEquipmentManufacturer(self):
         """
         Return manufacturer name (string).
diff --git a/invesalius/reader/dicom_grouper.py b/invesalius/reader/dicom_grouper.py
index 89dda45..f92d012 100644
--- a/invesalius/reader/dicom_grouper.py
+++ b/invesalius/reader/dicom_grouper.py
@@ -51,9 +51,22 @@
 # <dicom.image.number> and <dicom.acquisition.series_number>
 # were swapped
 
+import sys
+
 import gdcm
 
-import utils
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
+
+import invesalius.utils as utils
+import invesalius.constants as const
+
 
 ORIENT_MAP = {"SAGITTAL":0, "CORONAL":1, "AXIAL":2, "OBLIQUE":2}
 
@@ -110,9 +123,14 @@ class DicomGroup:
         # This list will be used to create the vtkImageData
         # (interpolated)
 
-        filelist = [dicom.image.file for dicom in
-                self.slices_dict.values()]
-        
+        if _has_win32api:
+            filelist = [win32api.GetShortPathName(dicom.image.file).encode(const.FS_ENCODE)
+                        for dicom in
+                        self.slices_dict.values()]
+        else:
+            filelist = [dicom.image.file for dicom in
+                        self.slices_dict.values()]
+       
         # Sort slices using GDCM
         if (self.dicom.image.orientation_label <> "CORONAL"):
             #Organize reversed image
@@ -122,10 +140,12 @@ class DicomGroup:
             sorter.Sort(filelist)
             filelist = sorter.GetFilenames()
 
-            #Getting organized image
+        # for breast-CT of koning manufacturing (KBCT)
+        if self.slices_dict.values()[0].parser.GetManufacturerName() == "Koning":
+            filelist.sort()
+        
         return filelist
 
-
     def GetHandSortedList(self):
         # This will be used to fix problem 1, after merging
         # single DicomGroups of same study_id and orientation
diff --git a/invesalius/reader/dicom_reader.py b/invesalius/reader/dicom_reader.py
index c006d0f..f569ca2 100644
--- a/invesalius/reader/dicom_reader.py
+++ b/invesalius/reader/dicom_reader.py
@@ -29,17 +29,24 @@ import vtkgdcm
 import gdcm
 from wx.lib.pubsub import pub as Publisher
 
-import constants as const
-import dicom
-import dicom_grouper
-import session
-
+import invesalius.constants as const
+import invesalius.reader.dicom as dicom
+import invesalius.reader.dicom_grouper as dicom_grouper
+import invesalius.session as session
 import glob
-import utils
-
+import invesalius.utils as utils
 
 import plistlib
 
+if sys.platform == 'win32':
+    try:
+        import win32api
+        _has_win32api = True
+    except ImportError:
+        _has_win32api = False
+else:
+    _has_win32api = False
+
 def ReadDicomGroup(dir_):
 
     patient_group = GetDicomGroups(dir_)
@@ -71,7 +78,7 @@ def SortFiles(filelist, dicom):
     # Sort slices
     # FIXME: Coronal Crash. necessary verify
     if (dicom.image.orientation_label <> "CORONAL"):
-        #Organize reversed image
+        ##Organize reversed image
         sorter = gdcm.IPPSorter()
         sorter.SetComputeZSpacing(True)
         sorter.SetZSpacingTolerance(1e-10)
@@ -90,18 +97,18 @@ class LoadDicom:
     
     def __init__(self, grouper, filepath):
         self.grouper = grouper
-        if sys.platform == 'win32':
-            self.filepath = filepath.encode(utils.get_system_encoding())
-        else:
-            self.filepath = filepath
+        self.filepath = filepath
         
         self.run()
     
     def run(self):
-
         grouper = self.grouper
         reader = gdcm.ImageReader()
-        reader.SetFileName(self.filepath)
+        if _has_win32api:
+            reader.SetFileName(win32api.GetShortPathName(self.filepath).encode(const.FS_ENCODE))
+        else:
+            reader.SetFileName(self.filepath)
+
         if (reader.Read()):
             file = reader.GetFile()
              
@@ -182,7 +189,12 @@ class LoadDicom:
 
             # -------------- To Create DICOM Thumbnail -----------
             rvtk = vtkgdcm.vtkGDCMImageReader()
-            rvtk.SetFileName(self.filepath)
+
+            if _has_win32api:
+                print 'dicom', win32api.GetShortPathName(self.filepath)
+                rvtk.SetFileName(win32api.GetShortPathName(self.filepath).encode(const.FS_ENCODE))
+            else:
+                rvtk.SetFileName(self.filepath)
             rvtk.Update()
             
             try:
@@ -190,7 +202,7 @@ class LoadDicom:
                 level = [float(value) for value in data.split('\\')][0]
                 data = data_dict[str(0x028)][str(0x1051)]
                 window =  [float(value) for value in data.split('\\')][0]
-            except(KeyError):
+            except(KeyError, ValueError):
                 level = 300.0
                 window = 2000.0 
      
@@ -343,7 +355,7 @@ class ProgressDicomReader:
     def GetDicomGroups(self, path, recursive):
 
         if not const.VTK_WARNING:
-            log_path = os.path.join(const.LOG_FOLDER, 'vtkoutput.txt')
+            log_path = os.path.join(const.USER_LOG_DIR, 'vtkoutput.txt').encode(const.FS_ENCODE)
             fow = vtk.vtkFileOutputWindow()
             fow.SetFileName(log_path)
             ow = vtk.vtkOutputWindow()
diff --git a/invesalius/reader/others_reader.py b/invesalius/reader/others_reader.py
new file mode 100644
index 0000000..2cb4e3f
--- /dev/null
+++ b/invesalius/reader/others_reader.py
@@ -0,0 +1,54 @@
+#--------------------------------------------------------------------------
+# Software:     InVesalius - Software de Reconstrucao 3D de Imagens Medicas
+# Copyright:    (C) 2001  Centro de Pesquisas Renato Archer
+# Homepage:     http://www.softwarepublico.gov.br
+# Contact:      invesalius at cti.gov.br
+# License:      GNU - GPL 2 (LICENSE.txt/LICENCA.txt)
+#--------------------------------------------------------------------------
+#    Este programa e software livre; voce pode redistribui-lo e/ou
+#    modifica-lo sob os termos da Licenca Publica Geral GNU, conforme
+#    publicada pela Free Software Foundation; de acordo com a versao 2
+#    da Licenca.
+#
+#    Este programa eh distribuido na expectativa de ser util, mas SEM
+#    QUALQUER GARANTIA; sem mesmo a garantia implicita de
+#    COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM
+#    PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
+#    detalhes.
+#--------------------------------------------------------------------------
+
+import os
+
+import vtk
+import nibabel as nib
+
+import invesalius.constants as const
+
+
+def ReadOthers(dir_):
+    """
+    Read the given Analyze, NIfTI, Compressed NIfTI or PAR/REC file,
+    remove singleton image dimensions and convert image orientation to
+    RAS+ canonical coordinate system. Analyze header does not support
+    affine transformation matrix, though cannot be converted automatically
+    to canonical orientation.
+
+    :param dir_: file path
+    :return: imagedata object
+    """
+
+    if not const.VTK_WARNING:
+        log_path = os.path.join(const.USER_LOG_DIR, 'vtkoutput.txt')
+        fow = vtk.vtkFileOutputWindow()
+        fow.SetFileName(log_path.encode(const.FS_ENCODE))
+        ow = vtk.vtkOutputWindow()
+        ow.SetInstance(fow)
+
+    try:
+        imagedata = nib.squeeze_image(nib.load(dir_))
+        imagedata = nib.as_closest_canonical(imagedata)
+        imagedata.update_header()
+    except(nib.filebasedimages.ImageFileError):
+        return False
+
+    return imagedata
diff --git a/invesalius/session.py b/invesalius/session.py
index 344bf3e..139199e 100644
--- a/invesalius/session.py
+++ b/invesalius/session.py
@@ -17,19 +17,44 @@
 #    detalhes.
 #--------------------------------------------------------------------------
 
-import ConfigParser
+try:
+    import configparser as ConfigParser
+except(ImportError):
+    import ConfigParser
+
 import os
 import shutil
 import sys
 from threading import Thread
 import time
+import codecs
 
 #import wx.lib.pubsub as ps
 from wx.lib.pubsub import pub as Publisher
+import wx
 
-from utils import Singleton, debug
+from invesalius.utils import Singleton, debug
 from random import randint
 
+FS_ENCODE = sys.getfilesystemencoding()
+
+if sys.platform == 'win32':
+    from invesalius.expanduser import expand_user
+    try:
+        USER_DIR = expand_user()
+    except:
+        USER_DIR = os.path.expanduser('~').decode(FS_ENCODE)
+else:
+    USER_DIR = os.path.expanduser('~').decode(FS_ENCODE)
+
+USER_INV_DIR = os.path.join(USER_DIR, u'.invesalius')
+USER_PRESET_DIR = os.path.join(USER_INV_DIR, u'presets')
+USER_LOG_DIR = os.path.join(USER_INV_DIR, u'logs')
+USER_INV_CFG_PATH = os.path.join(USER_INV_DIR, 'config.cfg')
+
+SESSION_ENCODING = 'utf8'
+
+
 class Session(object):
     # Only one session will be initialized per time. Therefore, we use
     # Singleton design pattern for implementing it
@@ -42,7 +67,7 @@ class Session(object):
         self.project_status = 3
 
     def CreateItens(self):
-        import constants as const
+        import invesalius.constants as const
         self.project_path = ()
         self.debug = False
         self.project_status = const.PROJ_CLOSE
@@ -54,8 +79,8 @@ class Session(object):
         # const.MODE_ODONTOLOGY
 
         # InVesalius default projects' directory
-        homedir = self.homedir = os.path.expanduser('~')
-        tempdir = os.path.join(homedir, ".invesalius", "temp")
+        homedir = self.homedir = USER_DIR
+        tempdir = os.path.join(homedir, u".invesalius", u"temp")
         if not os.path.isdir(tempdir):
             os.makedirs(tempdir)
         self.tempdir = tempdir
@@ -64,40 +89,40 @@ class Session(object):
         self.language = "" # "pt_BR", "es"
 
         self.random_id = randint(0,pow(10,16))
-        #print self.random_id
 
         # Recent projects list
-        self.recent_projects = [(const.SAMPLE_DIR, "Cranium.inv3")]
+        self.recent_projects = [(const.SAMPLE_DIR, u"Cranium.inv3")]
         self.last_dicom_folder = ''
         self.surface_interpolation = 1
+        self.slice_interpolation = 0
         self.rendering = 0
         self.WriteSessionFile()
 
     def IsOpen(self):
-        import constants as const
+        import invesalius.constants as const
         return self.project_status != const.PROJ_CLOSE
 
     def SaveConfigFileBackup(self):
         path = os.path.join(self.homedir ,
-                            '.invesalius', 'config.cfg')
+                            u'.invesalius', u'config.cfg')
         path_dst = os.path.join(self.homedir ,
-                            '.invesalius', 'config.backup')
+                            u'.invesalius', u'config.backup')
         shutil.copy(path, path_dst)
 
     def RecoveryConfigFile(self):
         homedir = self.homedir = os.path.expanduser('~')
         try:
             path = os.path.join(self.homedir ,
-                            '.invesalius', 'config.backup')
+                            u'.invesalius', u'config.backup')
             path_dst = os.path.join(self.homedir ,
-                        '.invesalius', 'config.cfg')
+                        u'.invesalius', u'config.cfg')
             shutil.copy(path, path_dst)
             return True
         except(IOError):
            return False
 
     def CloseProject(self):
-        import constants as const
+        import invesalius.constants as const
         debug("Session.CloseProject")
         self.project_path = ()
         self.project_status = const.PROJ_CLOSE
@@ -106,7 +131,7 @@ class Session(object):
         self.WriteSessionFile()
 
     def SaveProject(self, path=()):
-        import constants as const
+        import invesalius.constants as const
         debug("Session.SaveProject")
         self.project_status = const.PROJ_OPEN
         if path:
@@ -117,12 +142,12 @@ class Session(object):
         self.WriteSessionFile()
 
     def ChangeProject(self):
-        import constants as const
+        import invesalius.constants as const
         debug("Session.ChangeProject")
         self.project_status = const.PROJ_CHANGE
 
     def CreateProject(self, filename):
-        import constants as const
+        import invesalius.constants as const
         debug("Session.CreateProject")
         Publisher.sendMessage('Begin busy cursor')
         # Set session info
@@ -133,7 +158,7 @@ class Session(object):
         return self.tempdir
 
     def OpenProject(self, filepath):
-        import constants as const
+        import invesalius.constants as const
         debug("Session.OpenProject")
         # Add item to recent projects list
         item = (path, file) = os.path.split(filepath)
@@ -162,6 +187,7 @@ class Session(object):
         config.set('session', 'random_id', self.random_id)
         config.set('session', 'surface_interpolation', self.surface_interpolation)
         config.set('session', 'rendering', self.rendering)
+        config.set('session', 'slice_interpolation', self.slice_interpolation)
 
         config.add_section('project')
         config.set('project', 'recent_projects', self.recent_projects)
@@ -169,19 +195,17 @@ class Session(object):
         config.add_section('paths')
         config.set('paths','homedir',self.homedir)
         config.set('paths','tempdir',self.tempdir)
-        try:
-            config.set('paths','last_dicom_folder',self.last_dicom_folder.encode('utf-8'))
-        except (UnicodeEncodeError, UnicodeDecodeError):
-            config.set('paths','last_dicom_folder',self.last_dicom_folder)
+        config.set('paths','last_dicom_folder',self.last_dicom_folder)
+
         path = os.path.join(self.homedir ,
                             '.invesalius', 'config.cfg')
 
-        configfile = open(path, 'wb')
+        configfile = codecs.open(path, 'wb', SESSION_ENCODING)
         config.write(configfile)
         configfile.close()
 
     def __add_to_list(self, item):
-        import constants as const
+        import invesalius.constants as const
         # Last projects list
         l = self.recent_projects
 
@@ -218,12 +242,15 @@ class Session(object):
 
     def ReadLanguage(self):
         config = ConfigParser.ConfigParser()
-        home_path = os.path.expanduser('~')
-        path = os.path.join(home_path ,'.invesalius', 'config.cfg')
+        path = os.path.join(USER_INV_DIR, 'config.cfg')
         try:
-            config.read(path)
+            f = codecs.open(path, 'rb', SESSION_ENCODING)
+            config.readfp(f)
+            f.close()
             self.language = config.get('session','language')
             return self.language
+        except IOError:
+            return False
         except (ConfigParser.NoSectionError,
                   ConfigParser.NoOptionError,
                   ConfigParser.MissingSectionHeaderError):
@@ -231,12 +258,15 @@ class Session(object):
 
     def ReadRandomId(self):
         config = ConfigParser.ConfigParser()
-        home_path = os.path.expanduser('~')
-        path = os.path.join(home_path ,'.invesalius', 'config.cfg')
+        path = os.path.join(USER_INV_DIR, 'config.cfg')
         try:
-            config.read(path)
+            f = codecs.open(path, 'rb', SESSION_ENCODING)
+            config.readfp(f)
+            f.close()
             self.random_id = config.get('session','random_id')
             return self.random_id
+        except IOError:
+            return False
         except (ConfigParser.NoSectionError,
                   ConfigParser.NoOptionError,
                   ConfigParser.MissingSectionHeaderError):
@@ -244,10 +274,11 @@ class Session(object):
 
     def ReadSession(self):
         config = ConfigParser.ConfigParser()
-        home_path = os.path.expanduser('~')
-        path = os.path.join(home_path ,'.invesalius', 'config.cfg')
+        path = USER_INV_CFG_PATH
         try:
-            config.read(path)
+            f = codecs.open(path, 'rb', SESSION_ENCODING)
+            config.readfp(f)
+            f.close()
             self.mode = config.get('session', 'mode')
             # Do not reading project status from the config file, since there
             # isn't a recover sessession tool in InVesalius
@@ -257,14 +288,21 @@ class Session(object):
             self.recent_projects = eval(config.get('project','recent_projects'))
             self.homedir = config.get('paths','homedir')
             self.tempdir = config.get('paths','tempdir')
-            self.last_dicom_folder = config.get('paths','last_dicom_folder')
-            self.last_dicom_folder = self.last_dicom_folder.decode('utf-8')
+            self.last_dicom_folder = config.get('paths','last_dicom_folder') 
+
+            #if not(sys.platform == 'win32'):
+            #    self.last_dicom_folder = self.last_dicom_folder.decode('utf-8')
 
             self.surface_interpolation = config.get('session', 'surface_interpolation')
+            self.slice_interpolation = config.get('session', 'slice_interpolation')
+
             self.rendering = config.get('session', 'rendering')
             self.random_id = config.get('session','random_id')
             return True
 
+        except IOError:
+            return False
+
         except(ConfigParser.NoSectionError, ConfigParser.MissingSectionHeaderError, 
                                                         ConfigParser.ParsingError):
 
@@ -277,7 +315,11 @@ class Session(object):
         except(ConfigParser.NoOptionError):
             #Added to fix new version compatibility
             self.surface_interpolation = 0
+            self.slice_interpolation = 0
             self.rendering = 0
             self.random_id = randint(0,pow(10,16))  
-            self.WriteSessionFile()
+            try:
+                self.WriteSessionFile()
+            except AttributeError:
+                return False
             return True
diff --git a/invesalius/style.py b/invesalius/style.py
index 29d3369..3c78950 100644
--- a/invesalius/style.py
+++ b/invesalius/style.py
@@ -78,10 +78,10 @@ class StyleStateManager(object):
                     const.STATE_DEFAULT
 
     def AddState(self, state):
-        
+
         level = const.STYLE_LEVEL[state]
         max_level = max(self.stack.keys())
-                
+
         # Insert new state into stack
         self.stack[level] = state
 
@@ -93,7 +93,7 @@ class StyleStateManager(object):
         level = const.STYLE_LEVEL[state]
         if level in self.stack.keys():
             max_level = max(self.stack.keys())
-        
+
             # Remove item from stack
             self.stack.pop(level)
 
@@ -104,9 +104,18 @@ class StyleStateManager(object):
             # level in stack has been removed
             if level == max_level:
                 new_state = self.stack[new_max_level]
-        
+
             return self.stack[new_max_level]
-        
+
         max_level = max(self.stack.keys())
         return self.stack[max_level]
-        
+
+    def GetActualState(self):
+        max_level = max(self.stack.keys())
+        state = self.stack[max_level]
+        return state
+
+    def Reset(self):
+        self.stack = {}
+        self.stack[const.STYLE_LEVEL[const.STATE_DEFAULT]] = \
+                    const.STATE_DEFAULT
diff --git a/invesalius/utils.py b/invesalius/utils.py
index 5870984..eb329c9 100644
--- a/invesalius/utils.py
+++ b/invesalius/utils.py
@@ -23,6 +23,10 @@ import re
 import locale
 import math
 
+from distutils.version import LooseVersion
+
+import numpy as np
+
 def format_time(value):
     sp1 = value.split(".")
     sp2 = value.split(":")
@@ -69,10 +73,9 @@ def debug(error_str):
     Redirects output to file, or to the terminal
     This should be used in the place of "print"
     """
-    from session import Session
+    from invesalius.session import Session
     session = Session()
     #if session.debug:
-    print >> sys.stderr, error_str
 
 def next_copy_name(original_name, names_list):
     """
@@ -370,8 +373,9 @@ def UpdateCheck():
     import urllib
     import urllib2
     import wx
+    import invesalius.session as ses
     def _show_update_info():
-        from gui import dialogs
+        from invesalius.gui import dialogs
         msg=_("A new version of InVesalius is available. Do you want to open the download website now?")
         title=_("Invesalius Update")
         msgdlg = dialogs.UpdateMessageDialog(url)
@@ -383,8 +387,7 @@ def UpdateCheck():
     print "Checking updates..."
     
     # Check if there is a language set
-    #import i18n
-    import session as ses
+    #import invesalius.i18n as i18n    import invesalius.session as ses
     session = ses.Session()
     install_lang = 0
     if session.ReadLanguage():
@@ -398,8 +401,8 @@ def UpdateCheck():
         random_id = session.GetRandomId()
 
         # Fetch update data from server
-        import constants as const
-        url = "http://www.cti.gov.br/dt3d/invesalius/update/checkupdate.php"
+        import invesalius.constants as const
+        url = "https://www.cti.gov.br/dt3d/invesalius/update/checkupdate.php"
         headers = { 'User-Agent' : 'Mozilla/5.0 (compatible; MSIE 5.5; Windows NT)' }
         data = {'update_protocol_version' : '1', 
                 'invesalius_version' : const.INVESALIUS_VERSION,
@@ -415,6 +418,26 @@ def UpdateCheck():
             return
         last = response.readline().rstrip()
         url = response.readline().rstrip()
-        if (last!=const.INVESALIUS_VERSION):
+
+        try:
+            last_ver = LooseVersion(last)
+            actual_ver = LooseVersion(const.INVESALIUS_VERSION)
+        except (ValueError, AttributeError):
+            return
+
+        if last_ver > actual_ver:
             print "  ...New update found!!! -> version:", last #, ", url=",url
             wx.CallAfter(wx.CallLater, 1000, _show_update_info)
+
+
+def vtkarray_to_numpy(m):
+    nm = np.zeros((4, 4))
+    for i in xrange(4):
+        for j in xrange(4):
+            nm[i, j] = m.GetElement(i, j)
+    return nm
+
+
+def touch(fname):
+    with open(fname, 'a'):
+        pass
diff --git a/locale/ca/LC_MESSAGES/invesalius.mo b/locale/ca/LC_MESSAGES/invesalius.mo
index 7d1b844..3c87464 100644
Binary files a/locale/ca/LC_MESSAGES/invesalius.mo and b/locale/ca/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/cs/LC_MESSAGES/invesalius.mo b/locale/cs/LC_MESSAGES/invesalius.mo
index 2f29c86..15b74ea 100644
Binary files a/locale/cs/LC_MESSAGES/invesalius.mo and b/locale/cs/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/de/LC_MESSAGES/invesalius.mo b/locale/de/LC_MESSAGES/invesalius.mo
index 198afec..ddad0c4 100644
Binary files a/locale/de/LC_MESSAGES/invesalius.mo and b/locale/de/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/el/LC_MESSAGES/invesalius.mo b/locale/el/LC_MESSAGES/invesalius.mo
index 0acc873..d284c72 100644
Binary files a/locale/el/LC_MESSAGES/invesalius.mo and b/locale/el/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/en/LC_MESSAGES/invesalius.mo b/locale/en/LC_MESSAGES/invesalius.mo
index b104450..c51eb3f 100644
Binary files a/locale/en/LC_MESSAGES/invesalius.mo and b/locale/en/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/es/LC_MESSAGES/invesalius.mo b/locale/es/LC_MESSAGES/invesalius.mo
index 94c46e4..4f031b6 100644
Binary files a/locale/es/LC_MESSAGES/invesalius.mo and b/locale/es/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/fa/LC_MESSAGES/invesalius.mo b/locale/fa/LC_MESSAGES/invesalius.mo
index 7e5af0c..7456d04 100644
Binary files a/locale/fa/LC_MESSAGES/invesalius.mo and b/locale/fa/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/fr/LC_MESSAGES/invesalius.mo b/locale/fr/LC_MESSAGES/invesalius.mo
index 56dd562..1376f6f 100644
Binary files a/locale/fr/LC_MESSAGES/invesalius.mo and b/locale/fr/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/it/LC_MESSAGES/invesalius.mo b/locale/it/LC_MESSAGES/invesalius.mo
index 6be4cf5..db03f94 100644
Binary files a/locale/it/LC_MESSAGES/invesalius.mo and b/locale/it/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/ja/LC_MESSAGES/invesalius.mo b/locale/ja/LC_MESSAGES/invesalius.mo
new file mode 100644
index 0000000..51c4b03
Binary files /dev/null and b/locale/ja/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/ko/LC_MESSAGES/invesalius.mo b/locale/ko/LC_MESSAGES/invesalius.mo
index 8dda5a0..549e43f 100644
Binary files a/locale/ko/LC_MESSAGES/invesalius.mo and b/locale/ko/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/ms/LC_MESSAGES/invesalius.mo b/locale/ms/LC_MESSAGES/invesalius.mo
index d6a4704..b2cb17c 100644
Binary files a/locale/ms/LC_MESSAGES/invesalius.mo and b/locale/ms/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/nl/LC_MESSAGES/invesalius.mo b/locale/nl/LC_MESSAGES/invesalius.mo
new file mode 100644
index 0000000..5157af5
Binary files /dev/null and b/locale/nl/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/pt/LC_MESSAGES/invesalius.mo b/locale/pt/LC_MESSAGES/invesalius.mo
index 2972fa0..080be79 100644
Binary files a/locale/pt/LC_MESSAGES/invesalius.mo and b/locale/pt/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/pt_BR/LC_MESSAGES/invesalius.mo b/locale/pt_BR/LC_MESSAGES/invesalius.mo
index 540eee0..e25ca58 100644
Binary files a/locale/pt_BR/LC_MESSAGES/invesalius.mo and b/locale/pt_BR/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/ro/LC_MESSAGES/invesalius.mo b/locale/ro/LC_MESSAGES/invesalius.mo
index 61e3633..6738c6f 100644
Binary files a/locale/ro/LC_MESSAGES/invesalius.mo and b/locale/ro/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/ru/LC_MESSAGES/invesalius.mo b/locale/ru/LC_MESSAGES/invesalius.mo
index 54fa6ba..6a1b2f1 100644
Binary files a/locale/ru/LC_MESSAGES/invesalius.mo and b/locale/ru/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/sr/LC_MESSAGES/invesalius.mo b/locale/sr/LC_MESSAGES/invesalius.mo
index 666c9c3..0546865 100644
Binary files a/locale/sr/LC_MESSAGES/invesalius.mo and b/locale/sr/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/tr_TR/LC_MESSAGES/invesalius.mo b/locale/tr_TR/LC_MESSAGES/invesalius.mo
index fdc1ddd..bd67366 100644
Binary files a/locale/tr_TR/LC_MESSAGES/invesalius.mo and b/locale/tr_TR/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/ur_PK/LC_MESSAGES/invesalius.mo b/locale/ur_PK/LC_MESSAGES/invesalius.mo
new file mode 100644
index 0000000..1bde23f
Binary files /dev/null and b/locale/ur_PK/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/zh_CN/LC_MESSAGES/invesalius.mo b/locale/zh_CN/LC_MESSAGES/invesalius.mo
new file mode 100644
index 0000000..02298ce
Binary files /dev/null and b/locale/zh_CN/LC_MESSAGES/invesalius.mo differ
diff --git a/locale/zh_TW/LC_MESSAGES/invesalius.mo b/locale/zh_TW/LC_MESSAGES/invesalius.mo
index 87f8bb0..03d1f16 100644
Binary files a/locale/zh_TW/LC_MESSAGES/invesalius.mo and b/locale/zh_TW/LC_MESSAGES/invesalius.mo differ
diff --git a/navigation/mtc_files/CalibrationFiles/BumbleBee_8090380.calib b/navigation/mtc_files/CalibrationFiles/BumbleBee_8090380.calib
new file mode 100644
index 0000000..c11abba
Binary files /dev/null and b/navigation/mtc_files/CalibrationFiles/BumbleBee_8090380.calib differ
diff --git a/navigation/mtc_files/CalibrationFiles/_README.txt b/navigation/mtc_files/CalibrationFiles/_README.txt
new file mode 100644
index 0000000..17efcf3
--- /dev/null
+++ b/navigation/mtc_files/CalibrationFiles/_README.txt
@@ -0,0 +1 @@
+This folder contains all the calibration files for the installed MicronTrackers
\ No newline at end of file
diff --git a/navigation/mtc_files/Markers/1Probe b/navigation/mtc_files/Markers/1Probe
new file mode 100644
index 0000000..a505490
--- /dev/null
+++ b/navigation/mtc_files/Markers/1Probe
@@ -0,0 +1,39 @@
+
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=1Probe
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-61.602408326043872
+EndPos(0,1)=4.2184025144074082e-016
+EndPos(0,2)=-4.556586682229099e-016
+EndPos(1,0)=61.602408326043872
+EndPos(1,1)=-9.6115500328270063e-017
+EndPos(1,2)=-1.1391466705572748e-016
+
+[Facet1V2]
+EndPos(0,0)=-61.59657019736504
+EndPos(0,1)=11.949604571287503
+EndPos(0,2)=1.1391466705572748e-016
+EndPos(1,0)=-61.602408326043872
+EndPos(1,1)=4.2184025144074082e-016
+EndPos(1,2)=-4.556586682229099e-016
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=145.66478105979206
+R0,0=-8.4560706371216821e-002
+R1,0=-0.52109081782374
+R2,0=0.84930197604725266
+S1=-13.147426563284974
+R0,1=4.5008904130328986e-002
+R1,1=-0.85348236485506712
+R2,1=-0.5191743940434248
+S2=9.0630880541399712
+R0,2=0.99540126857813949
+R1,2=-5.6756022725552024e-003
+R2,2=9.5624798310161907e-002
diff --git a/navigation/mtc_files/Markers/1b b/navigation/mtc_files/Markers/1b
new file mode 100644
index 0000000..5470171
--- /dev/null
+++ b/navigation/mtc_files/Markers/1b
@@ -0,0 +1,38 @@
+
+[Marker]
+FacetsCount=1
+Name=1b
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-13.977391161539257
+EndPos(0,1)=1.2440742880315269e-015
+EndPos(0,2)=-9.6300745155986073e-015
+EndPos(1,0)=13.977391161539257
+EndPos(1,1)=1.2515682934477468e-015
+EndPos(1,2)=-9.6789243286821155e-015
+
+[Facet1V2]
+EndPos(0,0)=13.977391161539257
+EndPos(0,1)=1.2515682934477468e-015
+EndPos(0,2)=-9.6789243286821155e-015
+EndPos(1,0)=14.019670530273789
+EndPos(1,1)=15.245637552880362
+EndPos(1,2)=-9.7055696812731187e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/2Coil b/navigation/mtc_files/Markers/2Coil
new file mode 100644
index 0000000..cabcc35
--- /dev/null
+++ b/navigation/mtc_files/Markers/2Coil
@@ -0,0 +1,39 @@
+
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=2Coil
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-8.9266116684264851
+EndPos(0,1)=-7.9898502660127542e-016
+EndPos(0,2)=1.0214990704373533e-015
+EndPos(1,0)=8.9266116684264833
+EndPos(1,1)=-6.360897244681129e-016
+EndPos(1,2)=2.6438799470143262e-015
+
+[Facet1V2]
+EndPos(0,0)=8.9266116684264833
+EndPos(0,1)=-6.360897244681129e-016
+EndPos(0,2)=2.6438799470143262e-015
+EndPos(1,0)=9.0134937152069554
+EndPos(1,1)=-12.059011297429047
+EndPos(1,2)=3.6653790174516793e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.20000000000000079
+R0,0=0.96592582628906842
+R1,0=-1.457167719820518e-016
+R2,0=-0.25881904510252007
+S1=-14.79999999999999
+R0,1=7.9979483404574392e-002
+R1,1=0.95105651629515409
+R2,1=0.29848749562898386
+S2=99.400000000000091
+R0,2=0.24615153938604106
+R1,2=-0.30901699437494573
+R2,2=0.91865005134999966
diff --git a/navigation/mtc_files/Markers/2b b/navigation/mtc_files/Markers/2b
new file mode 100644
index 0000000..fea1785
--- /dev/null
+++ b/navigation/mtc_files/Markers/2b
@@ -0,0 +1,38 @@
+
+[Marker]
+FacetsCount=1
+Name=2b
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-13.9690559296461
+EndPos(0,1)=-9.08090028293946e-017
+EndPos(0,2)=3.7518297647387081e-015
+EndPos(1,0)=13.969055929646105
+EndPos(1,1)=-1.1456717217429434e-016
+EndPos(1,2)=3.7783785761971358e-015
+
+[Facet1V2]
+EndPos(0,0)=-13.924452046559736
+EndPos(0,1)=-15.196209648340083
+EndPos(0,2)=3.7349350665378906e-015
+EndPos(1,0)=-13.9690559296461
+EndPos(1,1)=-9.08090028293946e-017
+EndPos(1,2)=3.7518297647387081e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/3Coil b/navigation/mtc_files/Markers/3Coil
new file mode 100644
index 0000000..2701cb1
--- /dev/null
+++ b/navigation/mtc_files/Markers/3Coil
@@ -0,0 +1,39 @@
+
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=3Coil
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-8.9434442564413246
+EndPos(0,1)=-6.1153268241647966e-016
+EndPos(0,2)=3.4944724709513123e-016
+EndPos(1,0)=8.9434442564413299
+EndPos(1,1)=-8.8089826871897666e-016
+EndPos(1,2)=-4.6592966279350834e-016
+
+[Facet1V2]
+EndPos(0,0)=-8.9439343674574907
+EndPos(0,1)=11.937904678416533
+EndPos(0,2)=-5.2417087064269685e-016
+EndPos(1,0)=-8.9434442564413246
+EndPos(1,1)=-6.1153268241647966e-016
+EndPos(1,2)=3.4944724709513123e-016
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.80000000000000182
+R0,0=0.9563047559630351
+R1,0=1.8041124150158794e-016
+R2,0=-0.29237170472273794
+S1=47.299999999999962
+R0,1=9.0347825433700193e-002
+R1,1=0.95105651629515331
+R2,1=0.29551442139416562
+S2=42.399999999999991
+R0,2=0.27806201495688238
+R1,2=-0.30901699437494834
+R2,2=0.90949986972269081
diff --git a/navigation/mtc_files/Markers/4Coil b/navigation/mtc_files/Markers/4Coil
new file mode 100644
index 0000000..e808654
--- /dev/null
+++ b/navigation/mtc_files/Markers/4Coil
@@ -0,0 +1,39 @@
+
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=4Coil
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-8.9585812958876883
+EndPos(0,1)=-4.8569430893988515e-016
+EndPos(0,2)=2.3154142102162125e-015
+EndPos(1,0)=8.95858129588769
+EndPos(1,1)=-1.2210192124187057e-016
+EndPos(1,2)=4.6308284204324244e-016
+
+[Facet1V2]
+EndPos(0,0)=8.95858129588769
+EndPos(0,1)=-1.2210192124187057e-016
+EndPos(0,2)=4.6308284204324244e-016
+EndPos(1,0)=8.8914854228233384
+EndPos(1,1)=11.981845264775341
+EndPos(1,2)=3.4731213153243185e-016
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=-0.40000000000000141
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=10.700000000000001
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=110.09999999999999
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/5Ref b/navigation/mtc_files/Markers/5Ref
new file mode 100644
index 0000000..8c548cb
--- /dev/null
+++ b/navigation/mtc_files/Markers/5Ref
@@ -0,0 +1,38 @@
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=5Ref
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-8.9120676333490003
+EndPos(0,1)=2.3980817331903383e-016
+EndPos(0,2)=-1.2505552149377763e-015
+EndPos(1,0)=8.9120676333490003
+EndPos(1,1)=2.6645352591003756e-017
+EndPos(1,2)=0.
+
+[Facet1V2]
+EndPos(0,0)=-8.9951734202602971
+EndPos(0,1)=-12.045839883319603
+EndPos(0,2)=-4.5474735088646413e-016
+EndPos(1,0)=-8.9120676333490003
+EndPos(1,1)=2.3980817331903383e-016
+EndPos(1,2)=-1.2505552149377763e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/COOLCARD b/navigation/mtc_files/Markers/COOLCARD
new file mode 100644
index 0000000..7045f9d
--- /dev/null
+++ b/navigation/mtc_files/Markers/COOLCARD
@@ -0,0 +1,37 @@
+[Marker]
+FacetsCount=1
+Name=COOLCARD
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-31.763129600371474
+EndPos(0,1)=-6.4066430885648868e-016
+EndPos(0,2)=1.9712913472123418e-015
+EndPos(1,0)=31.763129600371467
+EndPos(1,1)=-6.4440270518456277e-016
+EndPos(1,2)=1.9656972001890368e-015
+
+[Facet1V2]
+EndPos(0,0)=-31.746690593113094
+EndPos(0,1)=25.423398067377672
+EndPos(0,2)=1.9712913472123418e-015
+EndPos(1,0)=-31.763129600371474
+EndPos(1,1)=-6.4066430885648868e-016
+EndPos(1,2)=1.9712913472123418e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/Pointer Template b/navigation/mtc_files/Markers/Pointer Template
new file mode 100644
index 0000000..ab716bf
--- /dev/null
+++ b/navigation/mtc_files/Markers/Pointer Template	
@@ -0,0 +1,39 @@
+
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=Pointer Template
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-8.9079792482800304
+EndPos(0,1)=4.7658354227811601e-016
+EndPos(0,2)=-3.8126683382249281e-015
+EndPos(1,0)=8.9079792482800322
+EndPos(1,1)=-3.754900636130611e-016
+EndPos(1,2)=4.6214161675453676e-016
+
+[Facet1V2]
+EndPos(0,0)=8.9079792482800322
+EndPos(0,1)=-3.754900636130611e-016
+EndPos(0,2)=4.6214161675453676e-016
+EndPos(1,0)=8.97037014055695
+EndPos(1,1)=-11.854493390526288
+EndPos(1,2)=-5.1990931884885378e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/Ref b/navigation/mtc_files/Markers/Ref
new file mode 100644
index 0000000..9635d4c
--- /dev/null
+++ b/navigation/mtc_files/Markers/Ref
@@ -0,0 +1,39 @@
+
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=Ref
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-8.9120676333490003
+EndPos(0,1)=2.3980817331903383e-016
+EndPos(0,2)=-1.2505552149377763e-015
+EndPos(1,0)=8.9120676333490003
+EndPos(1,1)=2.6645352591003756e-017
+EndPos(1,2)=0.
+
+[Facet1V2]
+EndPos(0,0)=-8.9951734202602971
+EndPos(0,1)=-12.045839883319603
+EndPos(0,2)=-4.5474735088646413e-016
+EndPos(1,0)=-8.9120676333490003
+EndPos(1,1)=2.3980817331903383e-016
+EndPos(1,2)=-1.2505552149377763e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/TTblock b/navigation/mtc_files/Markers/TTblock
new file mode 100644
index 0000000..7833730
--- /dev/null
+++ b/navigation/mtc_files/Markers/TTblock
@@ -0,0 +1,37 @@
+[Marker]
+FacetsCount=1
+Name=TTblock
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-44.89806848621749
+EndPos(0,1)=1.5829351718288365e-017
+EndPos(0,2)=-2.4650420593630429e-015
+EndPos(1,0)=44.898068486217483
+EndPos(1,1)=8.5012292344588403e-016
+EndPos(1,2)=-2.4138677168217271e-015
+
+[Facet1V2]
+EndPos(0,0)=-0.25683199956524938
+EndPos(0,1)=42.807497943328485
+EndPos(0,2)=-8.1564930877711453e-003
+EndPos(1,0)=0.23846937714486499
+EndPos(1,1)=-42.932871913619174
+EndPos(1,2)=-8.1564930877712043e-003
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/a b/navigation/mtc_files/Markers/a
new file mode 100644
index 0000000..45c9a89
--- /dev/null
+++ b/navigation/mtc_files/Markers/a
@@ -0,0 +1,37 @@
+[Marker]
+FacetsCount=1
+Name=a
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-32.971498168704073
+EndPos(0,1)=2.5755541490385065e-016
+EndPos(0,2)=1.6979881553090628e-016
+EndPos(1,0)=32.971498168704088
+EndPos(1,1)=3.2816886463184776e-016
+EndPos(1,2)=4.4082384801292978e-017
+
+[Facet1V2]
+EndPos(0,0)=-32.975185360462866
+EndPos(0,1)=46.723702252369826
+EndPos(0,2)=-8.9797450521152372e-018
+EndPos(1,0)=-32.971498168704073
+EndPos(1,1)=2.5755541490385065e-016
+EndPos(1,2)=1.6979881553090628e-016
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/coil b/navigation/mtc_files/Markers/coil
new file mode 100644
index 0000000..577e445
--- /dev/null
+++ b/navigation/mtc_files/Markers/coil
@@ -0,0 +1,38 @@
+
+[Marker]
+FacetsCount=1
+Name=coil
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-70.299927206216339
+EndPos(0,1)=1.1368683772161603e-016
+EndPos(0,2)=1.3642420526593924e-015
+EndPos(1,0)=70.299927206216339
+EndPos(1,1)=-1.1368683772161603e-016
+EndPos(1,2)=6.8212102632969619e-016
+
+[Facet1V2]
+EndPos(0,0)=-69.651993385067129
+EndPos(0,1)=-65.744122964094188
+EndPos(0,2)=3.410605131648481e-016
+EndPos(1,0)=-70.299927206216339
+EndPos(1,1)=1.1368683772161603e-016
+EndPos(1,2)=1.3642420526593924e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/navigation/mtc_files/Markers/probe b/navigation/mtc_files/Markers/probe
new file mode 100644
index 0000000..7562b53
--- /dev/null
+++ b/navigation/mtc_files/Markers/probe
@@ -0,0 +1,39 @@
+
+[Marker]
+FacetsCount=1
+SliderControlledXpointsCount=0
+Name=probe
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-61.602408326043872
+EndPos(0,1)=4.2184025144074082e-016
+EndPos(0,2)=-4.556586682229099e-016
+EndPos(1,0)=61.602408326043872
+EndPos(1,1)=-9.6115500328270063e-017
+EndPos(1,2)=-1.1391466705572748e-016
+
+[Facet1V2]
+EndPos(0,0)=-61.59657019736504
+EndPos(0,1)=11.949604571287503
+EndPos(0,2)=1.1391466705572748e-016
+EndPos(1,0)=-61.602408326043872
+EndPos(1,1)=4.2184025144074082e-016
+EndPos(1,2)=-4.556586682229099e-016
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=145.66478105979206
+R0,0=-8.4560706371216821e-002
+R1,0=-0.52109081782374
+R2,0=0.84930197604725266
+S1=-13.147426563284974
+R0,1=4.5008904130328986e-002
+R1,1=-0.85348236485506712
+R2,1=-0.5191743940434248
+S2=9.0630880541399712
+R0,2=0.99540126857813949
+R1,2=-5.6756022725552024e-003
+R2,2=9.5624798310161907e-002
diff --git a/navigation/mtc_files/Markers/sptr b/navigation/mtc_files/Markers/sptr
new file mode 100644
index 0000000..065e71c
--- /dev/null
+++ b/navigation/mtc_files/Markers/sptr
@@ -0,0 +1,38 @@
+
+[Marker]
+FacetsCount=1
+Name=sptr
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-52.19791804784397
+EndPos(0,1)=1.2304185897405721e-016
+EndPos(0,2)=6.9721287355505385e-016
+EndPos(1,0)=52.19791804784397
+EndPos(1,1)=-7.4104692177650016e-017
+EndPos(1,2)=5.9481366254593747e-016
+
+[Facet1V2]
+EndPos(0,0)=-52.224959539439432
+EndPos(0,1)=11.532261461857525
+EndPos(0,2)=6.9918899867979109e-016
+EndPos(1,0)=-52.19791804784397
+EndPos(1,1)=1.2304185897405721e-016
+EndPos(1,2)=6.9721287355505385e-016
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=132.5915439593966
+R0,0=-3.3573683844187456e-002
+R1,0=-0.99175827123861893
+R2,0=0.12364602372465228
+S1=-3.8041069565099583
+R0,1=-3.9209531312008813e-002
+R1,1=-0.12231349340138305
+R2,1=-0.9917167045009595
+S2=-0.29142356239092942
+R0,2=0.99866682152128394
+R1,2=-3.8143685738751404e-002
+R2,2=-3.4779862432738673e-002
diff --git a/navigation/mtc_files/Markers/try4 b/navigation/mtc_files/Markers/try4
new file mode 100644
index 0000000..dd8df61
--- /dev/null
+++ b/navigation/mtc_files/Markers/try4
@@ -0,0 +1,38 @@
+
+[Marker]
+FacetsCount=1
+Name=try4
+
+[Facet1]
+VectorsCount=2
+
+[Facet1V1]
+EndPos(0,0)=-57.030279071976651
+EndPos(0,1)=-1.7053025658242405e-016
+EndPos(0,2)=-3.1832314562052489e-015
+EndPos(1,0)=57.030279071976658
+EndPos(1,1)=1.7053025658242405e-016
+EndPos(1,2)=-1.8189894035458565e-015
+
+[Facet1V2]
+EndPos(0,0)=-56.190229598357341
+EndPos(0,1)=93.77396683857414
+EndPos(0,2)=0.
+EndPos(1,0)=-57.030279071976651
+EndPos(1,1)=-1.7053025658242405e-016
+EndPos(1,2)=-3.1832314562052489e-015
+
+[Tooltip2MarkerXf]
+Scale=1.
+S0=0.
+R0,0=1.
+R1,0=0.
+R2,0=0.
+S1=0.
+R0,1=0.
+R1,1=1.
+R2,1=0.
+S2=0.
+R0,2=0.
+R1,2=0.
+R2,2=1.
diff --git a/po/ca.po b/po/ca.po
index 7cec2a2..9d52ee6 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -11,10 +11,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Catalan (http://www.transifex.com/projects/p/invesalius3/language/ca/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Catalan (http://www.transifex.com/invesalius/invesalius3/language/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,6 +24,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Mida de la imatge: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Espaiat: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Ubicació: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s Fet amb InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Imatge"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Os"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Auto-reproducció"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -39,7 +77,7 @@ msgstr ""
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr " Desactivat"
 
@@ -55,11 +93,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Esquerra"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Dreta"
 
@@ -99,382 +137,511 @@ msgstr "Salta 4 per cada 5 porcions"
 msgid "Skip 5 for each 6 slices"
 msgstr "Salta 5 per cada 6 porcions"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Predeterminat "
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Matís"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturació"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Desert"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Arc de Sant Martí"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Oceà"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Gris Invers"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Os"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Màscara %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Dibuixa"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Esborra"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Llindar blanc i negre"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Baixa"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Mitjana"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Alta"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Òptim"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Superfície %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdomen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Cervell"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Predeterminat"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Emfisema "
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Laringe "
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Fetge "
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Pulmó - Suau"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Pulmó - Dur "
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastí "
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manual"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pelvis "
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Sinus"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vasculatura - Dur "
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vasculatura - Soft "
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Front"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Enrere"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Superior"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Inferior"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isomètric"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Vies aèries"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Vies aèries II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Blanc i negre"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Ossos + pell"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Ossos + Pell II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Brillant"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Brillant II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Llapis"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Tou + pell "
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Tou + Pell II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Tou + Pell III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Tou"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Estàndard"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vascular "
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vascular II "
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vascular III "
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vascular IV "
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Tall pla "
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Sense títol"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Corregeix la inclinació del pòrtic aplicant els graus per sota de"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Lineal"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Angular "
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Axial"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronal "
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagital "
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Màscares"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Mesures "
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Mesura la distància"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Mesura l'angle"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nom"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Màscara"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volum (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Transparència"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Ubicació"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Tipus"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Valor"
 
@@ -486,175 +653,255 @@ msgstr "Dades"
 msgid "Load data"
 msgstr ""
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Selecciona la regió d'interès"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configura la superfície 3D"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Exporta dades"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Utilitza el sistema de navegació"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Tall axial "
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Tall coronal "
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Tall sagital "
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volum"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Nom de l'ajust "
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Desa l'actuació dels rajos preestablerta"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Eines"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "El Valor serà aplicat."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "El Valor no serà aplicat."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Carregant fitxers DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Obre Projecte d'InVesalius 3..."
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Tria una carpeta DICOM:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Desa projecte com ... "
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "projecte InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr ""
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "El projecte %s s'ha modificat. Desa els canvis?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nou nom de la màscara: "
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Nom de la màscara que es crea "
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Llindar preestablert: "
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Personalitzat"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s no existeix."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Si us plau, dona més d'un arxiu DICOM per a la reconstrucció 3D"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -663,352 +910,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License) versió 2 "
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Desa l'actuació dels rajos preestablerta com :"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Nou nom de superfície: "
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Nom de la superfície que serà creada"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Màscara de referència: "
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Qualitat de la superfície: "
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Emplena els forats"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Manté la regió més gran"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Imatge BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Imatge JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Imatge PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Document PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "fitxer POV-Ray "
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Imatge TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "Sense nom"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Mida de la imatge: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Espaiat: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Ubicació: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s Fet amb InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Imatge"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Imatge %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Auto-reproducció"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Panell de Dades"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Vista prèvia de les dades mèdiques que seran reconstruïdes"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Importa DICOM ... Ctrl + I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Quant a..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Fitxer"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "Ajuda"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Preparat"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Desa el projecte InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Amplia"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Ampliació de la selecció"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Gira"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Mou"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Contrasta"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Desplaça les porcions"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Intersecció de la creu de porcions"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Amaga panell de tasques "
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Oculta el text "
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Mostra panell de tasques "
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Mostra text"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Generant visualització multiplanar ..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Base de dades InVesalius "
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Nom del pacient "
@@ -1057,10 +1561,6 @@ msgstr "Nombre d'Accés "
 msgid "Referring physician"
 msgstr "Metge de referència"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Base de dades InVesalius "
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1093,7 +1593,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1109,174 +1609,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Selecció d'idioma "
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Selecciona l'idioma d'interfície d'usuari/a"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Teixits Tous"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Esmalt (Adult)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Esmalt (Nen) "
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Os compacte (Adult)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Os compacte (Nen)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Os Esponjós (Adults)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Os Esponjós (Nen)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Teixit muscular (Adult)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Teixit muscular (Nen)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Teixit gras (Adult)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Teixit gras (Nen)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Teixits de la pell (Adult)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Teixits de la pell (Nen) "
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1296,15 +1848,23 @@ msgstr "Exporta superfície 3D"
 msgid "Export 3D surface..."
 msgstr "Exporta superfície 3D"
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Desa superfície 3D com ..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "visible abans d'exportar-la."
 
@@ -1313,11 +1873,11 @@ msgid "Testing..."
 msgstr "En proves"
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1328,325 +1888,424 @@ msgstr "Obre un projecte existent de InVesalius..."
 msgid "Open an existing project..."
 msgstr "Obre un projecte existent"
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr ""
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Crea la màscara per a la segmentació de tall i edició"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Crea nova màscara"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Sobreescriure última superfície"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Propietats de la màscara "
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Conjunt predefinit o llindar manual"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Tria tipus de raspall, mida o l'operació:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Cercle"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Quadrat"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Rang del llindar del Raspall:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Crea superfícies 3D basades en una màscara"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "El següent pas"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Propietats de la superfície"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Opcions avançades"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Selecciona automàticament la major regió desconnectada i crea una nova superfície"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Divideix totes les superfícies desconnectades"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Selecciona les regions d'interès ..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Transparència:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Delma la resolució:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Iteracions suaus:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Mesura distàncies"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Mesura"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Afegeix anotacions de text "
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2322,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/cs.po b/po/cs.po
index 9504063..fb653dd 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,17 +6,17 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
+# fri, 2011,2015,2017
 # fri, 2011,2015
-# fri, 2011,2015
-# fri, 2015
+# fri, 2015,2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Czech (http://www.transifex.com/projects/p/invesalius3/language/cs/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/invesalius/invesalius3/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -26,22 +26,60 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Velikost obrázku: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Rozložení: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Umístění: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nVytvořeno s InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Obrázek"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Kost"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Automatické přehrávání"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
-msgstr ""
+msgstr "Hodnota: %-6d"
 
 #: clut_raycasting.py:536
 #, python-format
 msgid "Alpha: %-.3f"
-msgstr ""
+msgstr "Alfa: %-.3f"
 
 #: constants.py:32
 #, python-format
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr " Vypnuto"
 
@@ -57,11 +95,11 @@ msgstr "Křišťálové oči"
 msgid "Interlaced"
 msgstr "Prokládáno"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Vlevo"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Vpravo"
 
@@ -71,7 +109,7 @@ msgstr "Drážďany"
 
 #: constants.py:51
 msgid "Checkboard"
-msgstr ""
+msgstr "Šachovnice"
 
 #: constants.py:52
 msgid "Anaglyph"
@@ -101,382 +139,511 @@ msgstr "Přeskočit 4 pro všech 5 řezů"
 msgid "Skip 5 for each 6 slices"
 msgstr "Přeskočit 5 pro všech 6 řezů"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Výchozí "
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Odstín"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Nasycení"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Poušť"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Duha"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Oceán"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Obrácená šedá"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Kost"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Maska %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Kreslit"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Smazat"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Prahová hodnota"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Nízký"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Střední"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Vysoký"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Nejlepší"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Povrch %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Břicho"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr "Zadní jamka mozku"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Mozek"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Výchozí"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Rozedma"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr "Ischemie - tvrdá bez kontrastu"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr "Ischemie - měkká bez kontrastu"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Hrtan"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Játra"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Plíce - měkké"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Plíce - tvrdé"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mezihrudí"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Příručka"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pánev"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Dutina"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Cévy - tvrdé"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Cévy - měkké"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
-msgstr ""
+msgstr "Obrys"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Předek"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Zadek"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Nahoře"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Dole"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Rovnoměrný"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Dýchací cesty"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Dýchací cesty II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Černá a bílá"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Kost a kůže"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Kost a kůže II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr "Tmavá kost"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Lesklý"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Lesklý II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr "Zlatá kost"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr "Vysoký kontrast"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr "Nízký kontrast"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr "Měkká na bílé"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr "Střední kontrast"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
-msgstr ""
+msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr "Bez stínování"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Tužka"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr "Červená a bílá"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr "Kůže na modré"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr "Kůže na modré II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Měkká a kůže"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Měkká a kůže II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Měkká a kůže III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr "Měkká na modré"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Měkká"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Obvyklý"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Cévní"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Cévní II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Cévní III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Cévní IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr "Žlutá kost"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Rovina řezu"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr "Vybrat sledovač:"
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr "Claron MicronTracker"
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr "Polhemus FASTRAK"
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr "Polhemus ISOTRAK II"
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr "Polhemus PATRIOT"
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr "Ladit sledovač"
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr "Odpojit sledovač"
+
+#: constants.py:679
+msgid "Static ref."
+msgstr "Trvalý odkaz"
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr "Dynamický odkaz"
+
+#: constants.py:689
+msgid "LEI"
+msgstr "LEI"
+
+#: constants.py:690
+msgid "REI"
+msgstr "REI"
+
+#: constants.py:691
+msgid "NAI"
+msgstr "NAI"
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Vybrat v obrázku levé ucho"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Vybrat v obrázku pravé ucho"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "Vybrat v obrázku nasion"
+
+#: constants.py:701
+msgid "LET"
+msgstr "LET"
+
+#: constants.py:702
+msgid "RET"
+msgstr "RET"
+
+#: constants.py:703
+msgid "NAT"
+msgstr "NAT"
+
+#: constants.py:704
+msgid "SET"
+msgstr "SET"
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr "Vybrat levé ucho pomocí prostorového sledovače"
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr "Vybrat pravé ucho pomocí prostorového sledovače"
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr "Vybrat nasion pomocí prostorového sledovače"
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr "Ukázat v obrázku souřadnice sady"
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr "Nahrává se soubor %d z %d..."
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Bez názvu"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Změnit naklonění nosné konstrukce o níže uvedený počet stupňů"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Přímý"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Úhlový"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "Trojrozměrný"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Osový"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Věnčitý"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Předozadní"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Masky"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr "Trojrozměrné povrchy"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Měření"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "Vytvořit nové měření"
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "Odstranit měření"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "Zdvojit měření"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Změřit vzdálenost"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Změřit úhel"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "Vytvořit novou masku"
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "Odstranit masku"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "Zdvojit masku"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Název"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Maska"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "Vytvořit nový povrch"
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Odstranit povrch"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Zdvojit povrch"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "Zavést soubor s povrchem do InVesalius"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr "Nový povrch"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Objem (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Oblast (mm²)"
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Průhlednost"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Místo"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Typ"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Hodnota"
 
@@ -488,529 +655,866 @@ msgstr "Data"
 msgid "Load data"
 msgstr "Nahrát data"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Zvolte zájmovou oblast"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Nastavit trojrozměrný povrch"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Vyvést data"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Použít systém pro pohyb"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr "Systém pro pohyb"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Osový řez"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Věnčitý řez"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Předozadní řez"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Objem"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Název přednastavení"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Uložit přednastavení"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Nástroje"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Hodnota se použije."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "Hodnota se nepoužije."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
-msgstr ""
+msgstr "InVesalius běží na 32-bitovém operačním systému nebo má nedostatek paměti. \nPokud chcete pracovat s trojrozměrnými povrchy nebo vykreslit objem, \ndoporučuje se zmenšit rozlišení lékařských obrázků."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
-msgstr ""
+msgstr "Procento původního rozlišení"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Nahrávají se soubory DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Otevřít projekt InVesalius 3"
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Vybrat složku s DICOM:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Vybrat složku s TIFF, BMP, JPG nebo PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Zavést soubor Analyze 7.5"
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "Zavést soubor NIFTi 1"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "Zavést soubor PAR/REC"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "Zavést soubor s povrchem"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Uložit projekt jako..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "Projekt InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "Uložit značky jako..."
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr "Soubory se značkami (*.mks)|*.mks"
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "Nahrát značky"
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
-msgstr ""
+msgstr "Je dostupná nová verze programu InVesalius. Chcete nyní otevřít stránku pro stahování?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
-msgstr ""
+msgstr "Aktualizace InVesalius"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "Projekt %s byl změněn.\nUložit změny?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
-msgstr ""
+msgstr "%s je prázdná složka."
+
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "Ve vybrané složce nejsou žádné soubory Bitmap, JPEG, PNG nebo TIFF."
 
-#: dialogs.py:466
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
+msgstr "Ve vybrané složce nejsou žádné soubory DICOM."
+
+#: dialogs.py:635
+msgid "Invalid file."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "Varování! InVesalius má omezenou podporu pro formát Analyze.\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr "Řezy mohou být špatně natočeny a funkce nemusí pracovat správně."
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
-msgstr ""
+msgstr "K vytvoření povrchu je potřeba maska."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
-msgstr ""
+msgstr "Pro odstranění nebyla vybrána žádná maska."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
-msgstr ""
+msgstr "Pro odstranění nebyl vybrán žádný povrch."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
-msgstr ""
+msgstr "Pro odstranění nebylo vybráno žádné měření."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
-msgstr ""
+msgstr "Pro zdvojení nebyla vybrána žádná maska."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
-msgstr ""
+msgstr "Pro zdvojení nebyl vybrán žádný povrch."
+
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr "Výchozí jsou neplatné. Vyberte šest souřadnic."
 
-#: dialogs.py:581
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr "Nevybráno žádné sledovací zařízení"
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr "není nainstalováno."
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr "odpojeno."
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr "není připojeno."
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr "Soubor TXT je neplatný"
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr "Nevybrána žádná data"
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr "Opravdu chcete smazat všechny značky?"
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr "Upravit ID značky"
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nový název masky:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Název masky, která se má vytvořit"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Přednastavení prahu:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Vlastní"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s neexistuje."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Poskytněte, prosím, pro trojrozměrné opětné sestrojení více než jeden soubor DICOM"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr ""
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
 " InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
 "\n"
 " Contact: invesalius at cti.gov.br"
-msgstr ""
+msgstr "InVesalius le lékařský zobrazovací program pro 3D rekonstrukce. Používá sled obrázkových souborů 2D DICOM pořízených skenery CT nebo MRI. InVesalius umožňuje vyvedení trojrozměrných objemů nebo povrchů jako souborů síť bodů na vytvoření hmotných modelů stavby pacientova těla pomocí přidaných additive výrobních technik (trojrozměrný tisk). Program je vyvíjen Střediskem pro informační technologie Renata Archera (Center for Information Technology Renato Archer (CTI)), Národní radou  [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License) Verze 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Uložit přednastavení s vrhem paprsků jako:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Název nového povrchu"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Název povrchu, který se má vytvořit"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Srovnávací maska:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Jakost povrchu:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
-msgstr "Vyplnit díry"
+msgstr "Vyplnit otvory"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Zachovat největší oblast"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Obrázek BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Obrázek JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Obrázek PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Postskriptový dokument"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "Soubor POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Obrázek TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr "Volby pro vytvoření povrchu"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr "Vytvoření povrchu"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr "Volby pro vytvoření povrchu"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr "Postup pro vytvoření povrchu"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr "Volby"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr "Úhel:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr "Největší vzdálenost:"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr "Nejmenší váha"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
-msgstr ""
+msgstr "Č. kroku:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
-msgstr ""
+msgstr "Vyhlazování dle souvislosti"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr "Binární"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
-msgstr ""
+msgstr "Není možné použít výchozí způsob, protože maska byla upravena."
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr "Metoda:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr "Metoda"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr "Gaussova směrodatná odchylka (sigma)"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr "Předěl"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr "Booleánské operace"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr "Sjednocení"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr "Rozdíl"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr "Průnik"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
-msgstr ""
+msgstr "Výhradní rozpojení"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr "Maska 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr "Operace"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr "Maska 2"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "bez názvu"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr "Znovunatočení obrázku"
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Velikost obrázku: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Rozložení: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Umístění: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "Použít"
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "Úhel X"
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Úhel Y"
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Úhel Z"
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr "Vytvořit projekt z bitmapy"
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "Název projektu:"
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr "Natočení řezů:"
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr "Sagitální (předozadní)"
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr "Rozestupy (mm):"
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nVytvořeno s InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr "Všechny soubory s bitmapami musí mít\nstejnou velikost šířky a výšky."
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Obrázek"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr "2D - skutečný řez"
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr "3D - všechny řezy"
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr "Propojitelnost 2D"
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "Natočení"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr "Propojitelnost 3D"
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Použít WW&WL"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr "Výchylka"
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr "Min:"
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2306
+msgid "Max:"
+msgstr "Max:"
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr "Násobič"
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr "Opakování"
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "Parametry"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr "Vybrat části masky"
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr "Cílový název masky"
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr "Rostoucí oblast"
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr "Dynamicky"
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr "Důvěra"
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr "Ořezat masku"
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr "Osový:"
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr " - "
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr "Sagitální (předozadní):"
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr "Věnčitý:"
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr "Největší velikost otvoru"
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr "objemových prvků (voxel)"
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr "bez názvu"
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr "%d obrázků"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Obrázek %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Automatické přehrávání"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Datový panel"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Náhled na lékařská data, která se mají opět sestrojit"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr "Náhled na bitmapu, která se má opět sestrojit"
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr "Získat DICOM z PACS"
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr "V současnosti pracuje pohybový režim pouze v operačním systému Windows"
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "Vyplnit otvory automaticky"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr "Analyze 7.5"
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr "NIfTI 1"
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr "PAR/REC"
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Zavést DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr "Zavést jiné soubory..."
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr "Otevřít projekt...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr "Uložit projekt\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr "Zavřít projekt"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr "Ukončit\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr "Zpět\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr "Znovu\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr "Uklidit masku\tCtrl+Shift+A"
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "Vyplnit otvory ručně"
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr "Odstranit části"
+
+#: frame.py:802
+msgid "Select parts"
+msgstr "Vybrat části"
+
+#: frame.py:807
+msgid "Crop"
+msgstr "Ořezat"
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr "Ruční členění"
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr "Vpravo - vlevo"
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr "Dřívější - pozdější"
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr "Nahoře - dole"
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr "Z vpravo-vlevo na dřívější-pozdější"
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr "Z vpravo-vlevo na nahoře-dole"
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr "Z dřívější-pozdější na nahoře-dole"
+
+#: frame.py:832
+msgid "Flip"
+msgstr "Převrátit"
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr "Vyměnit osy"
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr "Znovunatočit obrázek\tCtrl+Shift+R"
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr "Členění"
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr "Pozměněné řezy"
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr "Nastavení..."
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr "Pohybový režim"
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr "První kroky..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "O programu..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Soubor"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr "Úpravy"
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr "Pohled"
+
+#: frame.py:913
+msgid "Mode"
+msgstr "Režim"
+
+#: frame.py:914
 msgid "Help"
 msgstr "Nápověda"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Připraven"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr "Zavést soubory DICOM\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr "Otevřít projekt InVesalius 3..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Uložit projekt InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Zvětšit"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Zvětšit výběr"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Otočit"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Pohybovat"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Kontrast"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Projíždět řezy"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Křížový průsečík řezů"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Skrýt panel s úkoly"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Skrýt text"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Ukázat panel s úkoly"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Ukázat text"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr "Zpět"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr "Znovu"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Vytváří se vícerovinné znázornění..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr "Zavést"
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "Cesta"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr "Výška x šířka"
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Databáze InVesalius"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Pacientovo jméno"
@@ -1059,10 +1563,6 @@ msgstr "Přístupové číslo"
 msgid "Referring physician"
 msgstr "Přidělený lékař"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Databáze InVesalius"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr "Slovo"
@@ -1095,7 +1595,7 @@ msgstr "Stav"
 msgid "Add"
 msgstr "Přidat"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr "Odstranit"
 
@@ -1111,174 +1611,226 @@ msgstr "OK"
 msgid "error"
 msgstr "Chyba"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Výběr jazyka"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Vyberte jazyk uživatelského rozhraní"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr "Provádí se rozbor vybraných oblastí..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr "Rozdělují se odpojené oblasti..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr "Nastavení"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr "Znázornění"
+msgid "2D Visualization"
+msgstr "Dvojrozměrné znázornění"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "Trojrozměrné znázornění"
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr "Jazyk"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr "Povrch"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr "Interpolace"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
-msgstr ""
+msgstr "Vykreslení objemu"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr "Zpracování"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr "GPU (pouze videokarty NVidia)"
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr "Řezy"
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr "Pozměněno"
+
+#: preferences.py:159
+msgid "Yes"
+msgstr "Ano"
+
+#: preferences.py:159
+msgid "No"
+msgstr "Ne"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr "Nastavení jazyka se použijí\npři příštím spuštění programu InVesalius."
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Měkké tkáně"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Zubní sklovina (dospělý)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Zubní sklovina (dítě)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Pevná kost (dospělý)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Pevná kost (dítě)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Houbovitá kost (dospělý)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Houbovitá kost (dítě)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Svalová tkáň (dospělý)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Svalová tkáň (dítě)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Tuková tkáň (dospělý)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Tuková tkáň (dítě)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Kožní tkáň (dospělý)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Kožní tkáň (dítě)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr "Rozdíl"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr "Normální"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr "PrůměrIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr "Nakreslit obrys MaxIP"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr "Nakreslit obrys MIDA"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr "Šířka okna a úroveň"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr "Nepravá barva"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr "Typ promítání"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr "Popředí"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr "Pozadí"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr "Používá se předěl..."
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "Vyplnit otvor"
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr "Vyplňuje se otvor..."
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr "Odstranit část"
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr "Odstraňuje se část..."
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr "Člení se..."
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "Formát souboru nerozpoznán v InVesalius"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr "Chyba při zavádění souboru s povrchem"
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr "InVesalius se nepodařilo zavést tento povrch"
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr "Vytváří se trojrozměrný povrch..."
 
@@ -1298,15 +1850,23 @@ msgstr "Vyvést trojrozměrný povrch"
 msgid "Export 3D surface..."
 msgstr "Vyvést trojrozměrný povrch..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Uložit trojrozměrný povrch jako..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr "Musíte vytvořit trojrozměrný povrch a tento "
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "před jeho vyvedením udělat viditelným."
 
@@ -1315,12 +1875,12 @@ msgid "Testing..."
 msgstr "Zkouška..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr "Vyberte soubory DICOM, které se mají opět sestrojit"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr "Vyberte soubory DICOM, Analyze, NIfTI nebo REC/PAR, které se mají opět sestrojit"
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr "Zavést obrázky DICOM..."
+msgid "Import medical images..."
+msgstr "Zavést lékařské obrazy..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1330,325 +1890,424 @@ msgstr "Otevřít stávající projekt InVesalius..."
 msgid "Open an existing project..."
 msgstr "Otevřít stávající projekt..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr "Vybrat výchozí a pohybovat se"
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "Neuropohyb"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "Další nástroje"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr "Obnovit kameru v objemu"
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr "Kamera objemu"
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr "Povolit vnější spouštěč pro vytváření značek"
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr "Vnější spouštěč"
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr "Vybrat sledovací zařízení"
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr "Vybrat pohybový odkazový režim"
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr "FRE:"
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr "Chyba zapsání výchozího"
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr "Spustit pohyb"
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr "Pohybovat se"
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr "Nastavuje se sledovač..."
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr "Zastavit neuropohyb"
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr "Spustit neuropohyb"
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr "Vytvořit značku"
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "Uložit"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "Nahrát"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "Skrýt"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "Smazat vše"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "Upravit ID"
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Vytvořit masku pro rozčlenění řezů a úpravy"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Vytvořit novou masku"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr "Vytvořit povrch"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Přepsat poslední povrch"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Vlastnosti masky"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr "Ruční úprava"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Nastavit přednastavenou nebo ruční hodnotu prahu:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "vybrat štětec, velikost nebo funkci:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Kruh"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Čtverec"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Prahová hodnota štětce:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr "Přepsat masku"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr "Použít WW&WL"
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr "Roztáhnout předěl k 3D"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Vytvořit trojrozměrný povrch založený na masce"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr "Vytvořit nový trojrozměrný povrch"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Další krok"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Vlastnosti povrchu"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Pokročilé volby"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Vybrat automaticky největší odpojenou oblast a vytvořit nový povrch"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr "Vybrat největší povrch"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr "Vybrat automaticky odpojené oblasti a vytvořit jeden nový povrch na oblast"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Oddělit všechny odpojené povrchy"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr "Vložit ručně jádra zájmových oblastí a vytvořit jeden nový povrch"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Vybrat zájmovou oblast..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Průhlednost:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Desetinné rozlišení:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Jemná opakování:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Změřit vzdálenosti"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Změřit"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Přidat textové poznámky"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr "Odpojuje se sledovač..."
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr "Počet řezů.použitých k poskládání znázornění."
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr "Řídí ostrost obrysu. Čím větší je hodnota, tím ostřejší je obrys."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr "Obrácené pořadí"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
-msgstr ""
+msgstr "Je-li zaškrtnuto, řezy pro složení znázornění leží přes sebe namísto ve vzestupném pořadí v sestupném pořadí."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr "Počet řezů"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr "Ostrost"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr "AL"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr "RA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr "PR"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr "LP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr "LA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr "AR"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr "RP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr "PL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr "TL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr "RT"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr "BR"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr "LB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr "LT"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr "TR"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr "RB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr "BL"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr "TA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr "PT"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr "BP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr "AB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr "AT"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr "TP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr "PB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr "BA"
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1665,11 +2324,5 @@ msgstr "BA"
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/de.po b/po/de.po
index f726802..e09d966 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,14 +6,16 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
+# Silvério Santos, 2015,2017
+# Silvério Santos, 2015,2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: German (http://www.transifex.com/projects/p/invesalius3/language/de/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: German (http://www.transifex.com/invesalius/invesalius3/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,56 +25,94 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Bildformat: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Rastermaß: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Ort: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nErstellt mit InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Bild"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Knochen"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Auto-play"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
-msgstr ""
+msgstr "Wert: %-6d"
 
 #: clut_raycasting.py:536
 #, python-format
 msgid "Alpha: %-.3f"
-msgstr ""
+msgstr "Alpha: %-.3f"
 
 #: constants.py:32
 #, python-format
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr " Aus"
 
 #: constants.py:45
 msgid "Red-blue"
-msgstr ""
+msgstr "Rot-blau"
 
 #: constants.py:46
 msgid "CristalEyes"
-msgstr ""
+msgstr "CristalEyes"
 
 #: constants.py:47
 msgid "Interlaced"
-msgstr ""
+msgstr "Verschachtelt"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Links"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Rechts"
 
 #: constants.py:50
 msgid "Dresden"
-msgstr ""
+msgstr "Dresden"
 
 #: constants.py:51
 msgid "Checkboard"
-msgstr ""
+msgstr "Checkboard"
 
 #: constants.py:52
 msgid "Anaglyph"
-msgstr ""
+msgstr "Anaglyph"
 
 #: constants.py:105
 msgid "Keep all slices"
@@ -98,382 +138,511 @@ msgstr "Überspringe 4 alle 5 Schnitte"
 msgid "Skip 5 for each 6 slices"
 msgstr "Überspringe 5 alle 6 Schnitte"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Standard"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Farbschattierung"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Sättigung"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Wüste"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Regenbogen"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Ozean"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Invertiert Grau"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Knochen"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Maske %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Zeichne"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Lösche"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Grenzwert"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Niedrig"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Mittel"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Hoch"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Optimal"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Oberfläche %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdomen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
-msgstr ""
+msgstr "Gehirn posterior fossa"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Gehirn"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Standard"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Emphysem"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
-msgstr ""
+msgstr "Blutleere - hart, kontrastlos"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
-msgstr ""
+msgstr "Blutleere - weich, mit Kontrast"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Larynx"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Leber"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Lunge - weich"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Lunge - hart"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastinum"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Handbuch"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Becken"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Sinus"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Gefässe - hart"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Gefässe - hart"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
-msgstr ""
+msgstr "Umriss"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Vorn"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Hinten"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Oben"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Unten"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isometrisch"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Luftwege"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Luftwege II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Schwarz & Weiss"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Knochen und Haut"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Knochen und Haut II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
-msgstr ""
+msgstr "Dunkler Knochen"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Glänzend"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Glänzend II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
-msgstr ""
+msgstr "Goldener Knochen"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
-msgstr ""
+msgstr "Hoher Kontrast"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
-msgstr ""
+msgstr "Niedriger Kontrast"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
-msgstr ""
+msgstr "Weich auf weiss"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
-msgstr ""
+msgstr "Mittlerer Kontrast"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
-msgstr ""
+msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
-msgstr ""
+msgstr "ohne Schattierung"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Stift"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
-msgstr ""
+msgstr "Rot auf weiss"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
-msgstr ""
+msgstr "Haut auf blau"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
-msgstr ""
+msgstr "Haut auf blau II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Weich und Haut"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Weich und Haut II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Weich und Haut III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
-msgstr ""
+msgstr "Weich auf blau"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Weich"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Standard"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vasculär"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vasculär II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vasculär III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vasculär IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
-msgstr ""
+msgstr "Gelber Knochen"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Schnittebene"
 
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
+#: constants.py:671
+msgid "Select tracker:"
+msgstr "Tracker auswählen:"
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr "Claron MicronTracker"
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr "Polhemus FASTRAK"
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr "Polhemus ISOTRAK II"
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr "Polhemus PATRIOT"
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr "Tracker debuggen"
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr "Verbindung zu Tracker trennen"
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Linkes Ohr im Bild auswählen"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Rechtes Ohr im Bild auswählen"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Ubenannt"
+#: constants.py:704
+msgid "SET"
+msgstr ""
 
-#: control.py:559
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
+#, python-format
+msgid "Loading file %d of %d ..."
+msgstr "Lade Datei %d von %d ..."
+
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Ändere die Gantry-Neigung um untenstehende Gradzahl"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Linearen"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Schrägkugellager"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Axialer"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronarer"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagittaler"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Masken"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
-msgstr ""
+msgstr "3D Oberflächen"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Maßnahme"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "Neues Maß erzeugen"
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "Maß entfernen"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "Maß verdoppeln"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Messe Abstände"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Messe Winkel"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "Neue Maske erzeugen"
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "Maske entfernen"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "Maske verdoppeln"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Name"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Maske"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "Neue Oberfläche erzeugen"
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Oberfläche entfernen"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Oberfläche verdoppeln"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "Eine Oberflächendatei importieren"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
-msgstr ""
+msgstr "Neue Oberfläche"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volumen (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Bereich (mm²)"
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Transparenz"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Ort"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Typ"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Wert"
 
@@ -483,530 +652,867 @@ msgstr "Daten"
 
 #: default_tasks.py:244 default_tasks.py:250
 msgid "Load data"
-msgstr ""
+msgstr "Daten laden"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Wähle die gewünsche Region (ROI)"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Konfiguriere die 3D-Oberfläche"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Datenexport"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
 msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Axialer Schnitt"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Coronarer Schnitt"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Sagittaler Schnitt"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volumen"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Voreinstellungsname"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Speichern der Voreinstellung"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Werkzeuge"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Wert wird angewendet"
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "Wert wird nicht angewendet"
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
-msgstr ""
+msgstr "InVesalius läuft auf einem 32-bit Betriebbsystem oder hat nicht genug Speicher.\nWenn Sie mit 3D Oberflächen oder Körperrendering arbeiten wollen,\nist es empfohlen die Auflösung der medizinischen Bilder zu verringern."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
-msgstr ""
+msgstr "Prozentualer Anteil der ursprünglichen Auflösung"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Lade DICOM-Dateien"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Öffnen eines InVesalius 3 Projekts"
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Wähle einen DICOM Ordner:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Wähle einen Ordner mit TIFF, BMP, JPG oder PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Analyze 7.5 Datei importieren"
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "NIFTi 1 Datei importieren"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "PAR/REC Datei importieren"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "Oberflächendatei importieren"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Speichern des Projekts unter..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "InVesalius Projekt (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "Markierungen speichern unter..."
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr "Markierungsdateien (*.mks)|*.mks"
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "Markierungen laden"
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
-msgstr ""
+msgstr "Es ist eine neue Version von InVesalius verfügbar. Möchten Sie die Download-Webseite öffnen?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
-msgstr ""
+msgstr "Invesalius Aktualisierung"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "Das Projekt %s wurde geändert.\nÄnderungen speichern ?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
+msgstr "%s ist ein leeres Verzeichnis"
+
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
+msgstr "Es gibt keine DICOM-Dateien im ausgewählten Verzeichnis"
+
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr "Ungültige Datei"
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "Achtung: InVesalius unterstützt das Analyze Format nur eingeschränkt.\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
-msgstr ""
+msgstr "Es wird eine Maske zum Erzeugen der Oberfläche benötigt."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
-msgstr ""
+msgstr "Es wurde keine Maske zum Löschen ausgewählt."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
-msgstr ""
+msgstr "Es wurde keine Oberfläche zum Löschen ausgewählt."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
-msgstr ""
+msgstr "Kein Maß zum Entfernen ausgewählt."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
-msgstr ""
+msgstr "Es wurde keine Maske zum Vervielfältigen ausgewählt."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
+msgstr "Es wurde keine Obefläche zum Vervielfältigen ausgewählt."
+
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
 msgstr ""
 
-#: dialogs.py:581
-msgid "New mask name:"
+#: dialogs.py:754
+msgid "No tracking device selected"
 msgstr ""
 
-#: dialogs.py:585
-msgid "Name the mask to be created"
+#: dialogs.py:756
+msgid " is not installed."
+msgstr "ist nicht installiert."
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr "getrennt."
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr "ist nicht verbunden."
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr "Die TXT Datei ist ungültig."
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr "Keine Daten ausgewählt"
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
 msgstr ""
 
-#: dialogs.py:592
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr "Markierungs ID bearbeiten"
+
+#: dialogs.py:857
+msgid "New mask name:"
+msgstr "Neuer Maskenname:"
+
+#: dialogs.py:861
+msgid "Name the mask to be created"
+msgstr "Name der zu erzeugenden Maske"
+
+#: dialogs.py:868
 msgid "Threshold preset:"
-msgstr ""
+msgstr "Schwellwertvorgabe:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Spezifisch"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s existiert nicht."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
-msgstr ""
+msgstr "Bitte stellen Sie mehr als eine DICOM-Datei für die 3D-Rekonstruktion zur Verfügung"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
 " InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
 "\n"
 " Contact: invesalius at cti.gov.br"
-msgstr ""
+msgstr "InVesalius ist ein Programm zur medizinischen Bildgebung mit 3D Wiedergabe. Es verwendet 2D DICOM Bilddateien eines CTs oder MRTs. InVesalius unterstützt den Export von 3D Körpern oder Oberflächen als Meshdateien, um physische Modelle der Patientenanatomie mittels Additive Manufacturing (3D Drucken) zu erstellen. Die Software wird vom Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and dem brasilianischen [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License) Version 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Speichere die Raycasting-Voreinstellung als:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Neuer Oberflächename"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Name der zu erstellenden Oberfläche"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Referenzmaske"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Oberflächenqualität"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Fülle Löcher"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Behalte die größte Region"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "BMP-Bild"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "JPG-Bild"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "PNG-Bild"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Postskriptdokument"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "POV-Ray-Datei"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "TIFF-Bild"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
-msgstr ""
+msgstr "Oberflächenerzeugungsoptionen"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
-msgstr ""
+msgstr "Oberflächenerstellung"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
-msgstr ""
+msgstr "Oberflächenerstellungsoptionen"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
-msgstr ""
+msgstr "Oberflächenerstellungverfahren"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
-msgstr ""
+msgstr "Optionen"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
-msgstr ""
+msgstr "Winkel:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
-msgstr ""
+msgstr "Maximaler Abstand:"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
-msgstr ""
+msgstr "Minimales Gewicht:"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
-msgstr ""
+msgstr "N. Schritte:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
-msgstr ""
+msgstr "Umgebungsangepasste Weichzeichnung"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
-msgstr ""
+msgstr "Binär"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
-msgstr ""
+msgstr "Es ist unmöglich die Vorgabemethode anzuwenden da die Maske bearbeitet wurde."
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
-msgstr ""
+msgstr "Verfahren:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
-msgstr ""
+msgstr "Verfahren"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
-msgstr ""
+msgstr "Gaussche Summe"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
-msgstr ""
+msgstr "Wendepunkt"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
-msgstr ""
+msgstr "Boolesche Operationen"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
-msgstr ""
+msgstr "Schnittmenge"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
-msgstr ""
+msgstr "Differenz"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
-msgstr ""
+msgstr "Schnittmenge"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
-msgstr ""
+msgstr "Exklusive Disjunktion"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
-msgstr ""
+msgstr "Maske 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
-msgstr ""
+msgstr "Vorgang"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
+msgstr "Maske 2"
+
+#: dialogs.py:1870
+msgid "Image reorientation"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "unbenannt"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Bildformat: %d x %d"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Rastermaß: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Ort: %.2f"
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "Anwenden"
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "X Winkel"
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Y Winkel"
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Z Winkel"
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "Projektname:"
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr "Rastermaß (mm):"
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nErstellt mit InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Bild"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr "2D Verbindung"
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "Ausrichtung"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr "3D Verbindung"
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Nutze WW&WL"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr "Abweichung"
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr "Min:"
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr "Max:"
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr "Multiplikator"
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr "Durchläufe"
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "Parameter"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr "Maskenteile auswählen"
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr "Dynamisch"
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr "Voxel"
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr "unbenannt"
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
-msgstr ""
+msgstr "%d Bilder"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Bild %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Auto-play"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Datenpanel"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Vorschau der zu rekonstruierenden medizinischen Daten"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
+msgstr "Hole DICOM von PACS"
+
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "Löcher automatisch füllen"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Import DICOM...\tStrg+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
-msgstr ""
+msgstr "Andere dateien importieren..."
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
-msgstr ""
+msgstr "Projekt öffnen...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
-msgstr ""
+msgstr "Projekt speichern\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
-msgstr ""
+msgstr "Projekt schließen"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
-msgstr ""
+msgstr "Verlassen\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
-msgstr ""
+msgstr "Rückgängig\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
-msgstr ""
+msgstr "Wiederholen\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
+msgstr "Maske leeren\tCtrl+Shift+A"
+
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "Löcher manuell füllen"
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr "Teile entfernen"
+
+#: frame.py:802
+msgid "Select parts"
+msgstr "Teile auswählen"
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr "Rechts - Links"
+
+#: frame.py:824
+msgid "Anterior - Posterior"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr "Oben - Unten"
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr "Achsen tauschen"
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
+msgstr "Voreinstellungen..."
+
+#: frame.py:887
+msgid "Navigation mode"
 msgstr ""
 
-#: frame.py:689
+#: frame.py:896
 msgid "Getting started..."
-msgstr ""
+msgstr "Loslegen..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Über"
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Datei"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
+msgstr "Bearbeiten"
+
+#: frame.py:909
+msgid "View"
+msgstr "Ansicht"
+
+#: frame.py:913
+msgid "Mode"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:914
 msgid "Help"
 msgstr "Hilfe"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Fertig"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
-msgstr ""
+msgstr "DICOM Dateien importieren...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
-msgstr ""
+msgstr "InVesalius Projekt öffnen..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Speichere InVesalius-Projekt"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Vergrößern"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Auswahl vergrößern"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Rotieren"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Bewegen"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Kontrast"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
-msgstr ""
+msgstr "Schnitte scrollen"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
-msgstr ""
+msgstr "Schnittflächen von Schnitten"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Arbeitsleiste verstecken"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Verstecke Text"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Zeige Arbeitsleiste"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Zeige Text"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
-msgstr ""
+msgstr "Rückgängig"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
-msgstr ""
+msgstr "Wiederholen"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Generieren multiplanare Visualisierung"
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
-msgstr ""
+msgstr "Importieren"
+
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "Pfad"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr "Breite x Höhe"
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "InVesalius-Datenbank"
 
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
@@ -1056,228 +1562,276 @@ msgstr "Zugriffsnummer"
 msgid "Referring physician"
 msgstr "Zuweisender Arzt"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "InVesalius-Datenbank"
-
 #: import_network_panel.py:497
 msgid "Word"
-msgstr ""
+msgstr "Wort"
 
 #: import_network_panel.py:504
 msgid "Search"
-msgstr ""
+msgstr "Suche"
 
 #: import_network_panel.py:663
 msgid "Active"
-msgstr ""
+msgstr "Aktiv"
 
 #: import_network_panel.py:664
 msgid "Host"
-msgstr ""
+msgstr "Host"
 
 #: import_network_panel.py:665
 msgid "Port"
-msgstr ""
+msgstr "Port"
 
 #: import_network_panel.py:666
 msgid "AETitle"
-msgstr ""
+msgstr "AE Titel"
 
 #: import_network_panel.py:667
 msgid "Status"
-msgstr ""
+msgstr "Status"
 
 #: import_network_panel.py:694
 msgid "Add"
-msgstr ""
+msgstr "Hinzufügen"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
-msgstr ""
+msgstr "Entfernen"
 
 #: import_network_panel.py:696
 msgid "Check status"
-msgstr ""
+msgstr "Status prüfen"
 
 #: import_network_panel.py:769
 msgid "ok"
-msgstr ""
+msgstr "OK"
 
 #: import_network_panel.py:771
 msgid "error"
-msgstr ""
+msgstr "Fehler"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Sprachauswahl"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Wähle die Sprache der Oberfläche"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
-msgstr ""
+msgstr "Analysiere ausgewählte Bereiche..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
-msgstr ""
+msgstr "Trenne nicht zusammenhängende Oberflächen..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
-msgstr ""
+msgstr "Voreinstellungen..."
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr ""
+msgid "2D Visualization"
+msgstr "2D Anzeige"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "3D Anzeige"
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
-msgstr ""
+msgstr "Sprache"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
-msgstr ""
+msgstr "Oberfläche"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
-msgstr ""
+msgstr "Interpolation "
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
-msgstr ""
+msgstr "Körperrendering"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
-msgstr ""
+msgstr "Rendering"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
+msgstr "GPU (Nur NVidia Grafikkarten)"
+
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:159
+msgid "Yes"
+msgstr "Ja"
+
+#: preferences.py:159
+msgid "No"
+msgstr "Nein"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
-msgstr ""
+msgstr "Spracheinstellungen werden beim \nnächsten Start von InVesalius angewendet"
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Weichteile"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Glasur (Erwachsener)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Glasur (Kind)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Kompakter Knochen (Erwachsener)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Kompakter Knochen (Kind)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Spongiöser Knochen (Erwachsener)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Spongiöser Knochen (Kind)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Muskelgewebe (Erwachsener)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Muskelgewebe (Kind)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Fettgewebe (Erwachsener)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Fettgewebe (Kind)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Hautgewebe (Erwachsener)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Hautgewebe (Kind)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
-msgstr ""
+msgstr "Diff"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
-msgstr ""
+msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
-msgstr ""
+msgstr "Normal"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
-msgstr ""
+msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
-msgstr ""
+msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
-msgstr ""
+msgstr "MeanIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
-msgstr ""
+msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
-msgstr ""
+msgstr "MaxIP Umriss"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
-msgstr ""
+msgstr "MIDA Umriss"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
-msgstr ""
+msgstr "Fensterbreite und -ebene"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
-msgstr ""
+msgstr "Pseudofarbe"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
-msgstr ""
+msgstr "Projektionsart"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
-msgstr ""
+msgstr "Vordergrund"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
-msgstr ""
+msgstr "Hintergrund"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
+msgstr "Wendepunkt wird angewendet..."
+
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "Loch füllen"
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr "Fülle Loch ..."
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr "Teil entfernen"
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr "Entferne Teil ..."
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr "Segmentiere ..."
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "Dateiformat wurde nicht von InVesalius erkannt"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr "InVesalius konnte die Oberfläche nicht importieren"
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
-msgstr ""
+msgstr "Erzeuge 3D Oberfläche..."
 
 #: task_exporter.py:109
 msgid "Export InVesalius screen to an image file"
@@ -1295,29 +1849,37 @@ msgstr "Export der 3D-Oberfläche"
 msgid "Export 3D surface..."
 msgstr "Export der 3D-Oberfläche..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Speichern der 3D-Oberfläche"
 
-#: task_exporter.py:339
-msgid "You need to create a surface and make it "
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:343
+msgid "You need to create a surface and make it "
+msgstr "Sie müssen eine Oberfläche erzeugen und sie machen"
+
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "vor dem Export sichtbar machen."
 
 #: task_generic.py:65
 msgid "Testing..."
-msgstr ""
+msgstr "Prüfe..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr ""
+msgid "Import medical images..."
+msgstr "Medizinische Bilder importieren ..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1327,325 +1889,424 @@ msgstr "Öffne ein existierendes InVesalius-Projekt..."
 msgid "Open an existing project..."
 msgstr "Öffne ein existierendes Projekt..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "Neuronavigation"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "Sonderwerkzeuge"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr "Externer Auslöser"
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr "Trackinggerät auswählen"
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "Speichern"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "Laden"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "Verstecken"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "Alles löschen"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "ID bearbeiten"
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Erstelle eine Maske für die Schnittsegmentierung und -bearbeitung"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Erstelle eine neue Maske"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
-msgstr ""
+msgstr "Oberfläche erzeugen"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Überschreibe letzte Oberfläche"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Maskeneigenschaften"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
-msgstr ""
+msgstr "Manuelle bearbeitung"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Setze voreingestellten oder manuellen Schwellenwert:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Wähle Pinseltyp, -größe oder -funktion"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Kreis"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Quadrat"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Pinselschwellenwert:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
-msgstr ""
-
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
+msgstr "Maske überschreiben"
 
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
-msgstr ""
+msgstr "Wendepunkt zu 3D erweitern"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Erstelle 3D-Oberfläche basierend auf einer Maske"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
-msgstr ""
+msgstr "Erzeuge neue 3D Oberfläche"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Nächster Schritt"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Oberflächeneingenschaften"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Erweiterte Optionen"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Wähle automatisch den größten nicht zusammenhängenden Bereich aus und erstelle eine neue Oberfläche"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
-msgstr ""
+msgstr "Größte Oberfläche auswählen"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
-msgstr ""
+msgstr "Wähle automatisch nicht zusammenhängende Bereiche aus und erstelle eine neue Oberfläche pro Bereich"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Trenne alle nicht zusammenhängende Oberflächen"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
-msgstr ""
+msgstr "Manuelles Einsetzen von Markierungen in interessante Bereiche und Erzeugen einer neuen Oberfläche"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Wähle einen interessante Bereich aus (ROI)"
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Transparenz:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Dezimale Auflösung"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Weiche Iterationen"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Messe Abstände"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Messen"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Füge Textkommentare hinzu"
 
-#: viewer_slice.py:66
-msgid "Number of slices used to compound the visualization."
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:78
+msgid "Number of slices used to compound the visualization."
+msgstr "Anzahl der Schnitte um eine Ansicht zusammenzustellen."
+
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
-msgstr ""
+msgstr "Steuert die Schärfe des Umrisses. Je höher der Wert, desto schärfer der Umriss."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
-msgstr ""
+msgstr "Umgekehrte Reihenfolge"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
-msgstr ""
+msgstr "Wenn aktiviert werden die Schnitte in absteigender statt in aufsteigender Reihenfolge angeordnet um die Ansicht zusammenzustellen."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
-msgstr ""
+msgstr "Anzahl der Schnitte"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
-msgstr ""
+msgstr "Schärfe"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
-msgstr ""
+msgstr "AL"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
-msgstr ""
+msgstr "RA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
-msgstr ""
+msgstr "PR"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
-msgstr ""
+msgstr "LP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
-msgstr ""
+msgstr "LA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
-msgstr ""
+msgstr "AR"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
-msgstr ""
+msgstr "RP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
-msgstr ""
+msgstr "PL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
-msgstr ""
+msgstr "TL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
-msgstr ""
+msgstr "RT"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
-msgstr ""
+msgstr "BR"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
-msgstr ""
+msgstr "LB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
-msgstr ""
+msgstr "LT"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
-msgstr ""
+msgstr "TR"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
-msgstr ""
+msgstr "RB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
-msgstr ""
+msgstr "BL"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
-msgstr ""
+msgstr "TA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
-msgstr ""
+msgstr "PT"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
-msgstr ""
+msgstr "BP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
-msgstr ""
+msgstr "AB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
-msgstr ""
+msgstr "AT"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
-msgstr ""
+msgstr "TP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
-msgstr ""
+msgstr "PB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
+msgstr "BA"
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1662,11 +2323,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/el.po b/po/el.po
index f02e22d..93431aa 100644
--- a/po/el.po
+++ b/po/el.po
@@ -10,10 +10,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Greek (http://www.transifex.com/projects/p/invesalius3/language/el/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Greek (http://www.transifex.com/invesalius/invesalius3/language/el/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,6 +23,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Μέγεθος εικόνας: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr ""
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Εικόνα"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Οστό"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr ""
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -38,7 +76,7 @@ msgstr ""
 msgid "M %d"
 msgstr "Μ %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr ""
 
@@ -54,11 +92,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Αριστερά"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Δεξιά"
 
@@ -98,382 +136,511 @@ msgstr ""
 msgid "Skip 5 for each 6 slices"
 msgstr ""
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Προεπιλογή"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Απόχρωση"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Κορεσμός"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Έρημος"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Ουράνιο τόξο"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Ωκεανός"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr ""
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Οστό"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Μάσκα %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Σχεδίαση"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Διαγραφή"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Όριο"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Χαμηλό"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Μεσαίο"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Ψηλό"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Βέλτιστο *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Επιφάνεια %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr ""
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Εγκέφαλος"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Προεπιλογή"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Εμφύσημα"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr ""
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Ήπαρ"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr ""
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr ""
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr ""
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Εγχειρίδιο"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Πύελος"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr ""
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr ""
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr ""
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Μπροστά"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Πίσω"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Πάνω"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Κάτω"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Ισομετρικό"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Αεραγωγοί"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Αεραγωγοί II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Μαύρο & Άσπρο"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr ""
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr ""
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr ""
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr ""
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr ""
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr ""
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr ""
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr ""
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr ""
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr ""
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr ""
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr ""
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr ""
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr ""
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr ""
 
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
+#: constants.py:703
+msgid "NAT"
 msgstr ""
 
-#: control.py:559
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
+#, python-format
+msgid "Loading file %d of %d ..."
+msgstr ""
+
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr ""
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr ""
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr ""
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr ""
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Αξονική"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Οριζόντια"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Τοξοειδής"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr ""
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Μέτρηση"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr ""
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr ""
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Όνομα"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Μάσκα"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Όγκος (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Διαφάνεια"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr ""
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Τύπος"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Τιμή"
 
@@ -485,175 +652,255 @@ msgstr "Δεδομένα"
 msgid "Load data"
 msgstr ""
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Επιλέξτε την περιοχή ενδιαφέροντος"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Ρυθμιση της 3D επιφάνειας"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Εξαγωγή δεδομένων"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
 msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Αξονική τομή"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Οριζόντια τομή"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Τοξοειδής τομή"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Όγκος"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Προκαθορισμένο όνομα"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr ""
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Εργαλεία"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Η τιμή θα εφαρμοστεί."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr ""
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Φόρτωση αρχείων DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr ""
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Επιλέξτε ένα φάκελο DICOM:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Αποθήκευση project ως..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr ""
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr ""
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "Το project %s έχει τροποποιηθεί.\n Αποθήκευση αλλαγών;"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr ""
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr ""
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr ""
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr ""
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "Το %s δεν υπάρχει."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr ""
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -662,352 +909,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (Γενική Άδεια Δημόσιας Χρήσης) έκδοση 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr ""
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Νέο όνομα επιφάνειας:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Ονόμασε την επιφάνεια που θα δημιουργηθεί"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr ""
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Ποιότητα αναγλύφου:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Γέμισμα οπών"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Διατήρηση μέγιστης περιοχής"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Εικόνα BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Εικόνα JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Εικόνα PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Έγγραφο PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "Αρχείο POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Εικόνα TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "ανώνυμο"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Μέγεθος εικόνας: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
 msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
 msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
 msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Εικόνα"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Εικόνα %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Πάνελ δεδομένων"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Προεπισκόπηση ιατρικών δεδομένων που θα ανακατασκευαστούν"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr ""
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Σχετικά ..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Αρχείο"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "Βοήθεια"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Έτοιμο"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr ""
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Εστίαση"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Εστίαση βασιζόμενη σε επιλογή"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Περιστροφή"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Μετακίνηση"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr ""
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr ""
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr ""
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr ""
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Απόκρυψη κειμένου"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr ""
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Εμφάνιση κείμενου"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Παραγωγή πολυεπίπεδης οπτικοποίηση..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr ""
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Όνομα ασθενούς "
@@ -1056,10 +1560,6 @@ msgstr ""
 msgid "Referring physician"
 msgstr ""
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1092,7 +1592,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1108,174 +1608,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Επιλογή γλώσσας"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Επιλέξτε γλώσσα εφαρμογής"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Μαλακός ιστός"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr ""
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr ""
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr ""
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr ""
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr ""
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr ""
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr ""
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr ""
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr ""
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr ""
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr ""
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr ""
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1295,15 +1847,23 @@ msgstr "Εξαγωγή 3D ανάγλυφου"
 msgid "Export 3D surface..."
 msgstr "Εξαγωγή 3D ανάγλυφου..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Αποθήκευση 3D ανάγλυφου ως..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr ""
 
@@ -1312,11 +1872,11 @@ msgid "Testing..."
 msgstr ""
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1327,325 +1887,424 @@ msgstr "Ανοίξτε ένα υπάρχον InVesalius project..."
 msgid "Open an existing project..."
 msgstr "Ανοίξτε ένα υπάρχον project ..."
 
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
 msgstr ""
 
 #: task_slice.py:86
+msgid "Create mask for slice segmentation and editing"
+msgstr ""
+
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Δημιουργία νέας μάσκας"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Αντικατάσταση τελευταίου ανάγλυφου"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Ιδιότητες μάσκας "
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr ""
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr ""
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Κύκλος"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Τετράγωνο"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Οριο φάσματοϛ βούρτσαϛ"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Δημιουργία 3D αναγλύφου βασισμένο σε μια μάσκα"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Επόμενο βήμα"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Ιδιότητες ανάγλυφου"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Προχωρημένες επιλογές"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Αυτόματα επέλεξε μέγιστη ασύνδετη περιοχή και δημιουργησε νέα επιφάνεια"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Διαχώρισε όλεςτις ασύνδετες επιφάνειες"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Επιλέξτε περιοχές ενδιαφέροντος..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Διαφάνεια:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Μείωση ανάλυσης:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Εξομάλυνση επαναλήψεων:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Μέτρηση αποστάσεων"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Μέτρηση"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Προσθήκη σχολιασμού κειμένου"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1662,11 +2321,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/en.po b/po/en.po
index dab59c9..4a873cd 100644
--- a/po/en.po
+++ b/po/en.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
+"POT-Creation-Date: 2017-03-27 11:03-0300\n"
 "PO-Revision-Date: 2010-11-30 02:42+0000\n"
 "Last-Translator: Invesalius team <invesalius at cti.gov.br>\n"
 "Language-Team: InVesalius Team <invesalius at cti.gov.br>\n"
@@ -22,6 +22,46 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:49
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Image size: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:50
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Spacing: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:51
+#, python-format
+msgid "Location: %.2f"
+msgstr "Location: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:53
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr ""
+"%s %s\n"
+"Made in InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:189 dicom_preview_panel.py:190 frame.py:793
+msgid "Image"
+msgstr "Image"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:478 dialogs.py:827 dialogs.py:840
+#: dicom_preview_panel.py:676 dicom_preview_panel.py:677 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Bone"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:744
+msgid "Auto-play"
+msgstr "Auto-play"
+
 #: clut_raycasting.py:535
 #, fuzzy, python-format
 msgid "Value: %-6d"
@@ -37,7 +77,7 @@ msgstr ""
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:415 constants.py:417
 msgid " Off"
 msgstr " Off"
 
@@ -53,11 +93,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:354
 msgid "Left"
 msgstr "Left"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:353
 msgid "Right"
 msgstr "Right"
 
@@ -97,399 +137,492 @@ msgstr "Skip 4 for each 5 slices"
 msgid "Skip 5 for each 6 slices"
 msgstr "Skip 5 for each 6 slices"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Default "
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Hue"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturation"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Desert"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Rainbow"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Ocean"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Inverse Gray"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Bone"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Mask %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Draw"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:66 task_slice.py:853 task_surface.py:44
 msgid "Erase"
 msgstr "Erase"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:447 dialogs.py:2514 task_surface.py:44
 msgid "Threshold"
 msgstr "Threshold"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Low"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Medium"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "High"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Optimal *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Surface %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdomen"
 
-#: constants.py:284
+#: constants.py:303
 #, fuzzy
 msgid "Brain posterior fossa"
 msgstr "Brain Posterior Fossa"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Brain"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:480 dialogs.py:1490 dialogs.py:1493
+#: dialogs.py:1501 dialogs.py:1576 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Default"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Emphysema"
 
-#: constants.py:288
+#: constants.py:307
 #, fuzzy
 msgid "Ischemia - Hard, non contrast"
 msgstr "Ischemia - Hard Non Contrast"
 
-#: constants.py:289
+#: constants.py:308
 #, fuzzy
 msgid "Ischemia - Soft, non contrast"
 msgstr "Ischemia - Soft Non Contrast"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Larynx"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Liver"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Lung - Soft"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Lung - Hard"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastinum"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:481 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manual"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pelvis"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Sinus"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vasculature - Hard"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vasculature - Soft"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:349
 msgid "Front"
 msgstr "Front"
 
-#: constants.py:310
+#: constants.py:350
 msgid "Back"
 msgstr "Back"
 
-#: constants.py:311
+#: constants.py:351
 msgid "Top"
 msgstr "Top"
 
-#: constants.py:312
+#: constants.py:352
 msgid "Bottom"
 msgstr "Bottom"
 
-#: constants.py:315
+#: constants.py:355
 msgid "Isometric"
 msgstr "Isometric"
 
-#: constants.py:326
+#: constants.py:362
 msgid "Airways"
 msgstr "Airways"
 
-#: constants.py:327
+#: constants.py:363
 msgid "Airways II"
 msgstr "Airways II"
 
-#: constants.py:328
+#: constants.py:364
 msgid "Black & White"
 msgstr "Black & White"
 
-#: constants.py:329
+#: constants.py:365
 msgid "Bone + Skin"
 msgstr "Bone + Skin"
 
-#: constants.py:330
+#: constants.py:366
 msgid "Bone + Skin II"
 msgstr "Bone + Skin II"
 
-#: constants.py:331
+#: constants.py:367
 #, fuzzy
 msgid "Dark bone"
 msgstr "Dark Bone"
 
-#: constants.py:332
+#: constants.py:368
 msgid "Glossy"
 msgstr "Glossy"
 
-#: constants.py:333
+#: constants.py:369
 msgid "Glossy II"
 msgstr "Glossy II"
 
-#: constants.py:334
+#: constants.py:370
 #, fuzzy
 msgid "Gold bone"
 msgstr "Gold Bone"
 
-#: constants.py:335
+#: constants.py:371
 #, fuzzy
 msgid "High contrast"
 msgstr "High Contrast"
 
-#: constants.py:336
+#: constants.py:372
 #, fuzzy
 msgid "Low contrast"
 msgstr "Low Contrast"
 
-#: constants.py:337 constants.py:345
+#: constants.py:373 constants.py:381
 #, fuzzy
 msgid "Soft on white"
 msgstr "Soft on White"
 
-#: constants.py:338
+#: constants.py:374
 #, fuzzy
 msgid "Mid contrast"
 msgstr "Mid Contrast"
 
-#: constants.py:339
+#: constants.py:375
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:376
 #, fuzzy
 msgid "No shading"
 msgstr "No Shading"
 
-#: constants.py:341
+#: constants.py:377
 msgid "Pencil"
 msgstr "Pencil"
 
-#: constants.py:342
+#: constants.py:378
 #, fuzzy
 msgid "Red on white"
 msgstr "Red on White"
 
-#: constants.py:343
+#: constants.py:379
 #, fuzzy
 msgid "Skin on blue"
 msgstr "Skin On Blue"
 
-#: constants.py:344
+#: constants.py:380
 #, fuzzy
 msgid "Skin on blue II"
 msgstr "Skin On Blue II"
 
-#: constants.py:346
+#: constants.py:382
 msgid "Soft + Skin"
 msgstr "Soft + Skin"
 
-#: constants.py:347
+#: constants.py:383
 msgid "Soft + Skin II"
 msgstr "Soft + Skin II"
 
-#: constants.py:348
+#: constants.py:384
 msgid "Soft + Skin III"
 msgstr "Soft + Skin III"
 
-#: constants.py:349
+#: constants.py:385
 #, fuzzy
 msgid "Soft on blue"
 msgstr "Soft On Blue"
 
-#: constants.py:350
+#: constants.py:386
 msgid "Soft"
 msgstr "Soft"
 
-#: constants.py:351
+#: constants.py:387
 msgid "Standard"
 msgstr "Standard"
 
-#: constants.py:352
+#: constants.py:388
 msgid "Vascular"
 msgstr "Vascular"
 
-#: constants.py:353
+#: constants.py:389
 msgid "Vascular II"
 msgstr "Vascular II"
 
-#: constants.py:354
+#: constants.py:390
 msgid "Vascular III"
 msgstr "Vascular III"
 
-#: constants.py:355
+#: constants.py:391
 msgid "Vascular IV"
 msgstr "Vascular IV"
 
-#: constants.py:356
+#: constants.py:392
 #, fuzzy
 msgid "Yellow bone"
 msgstr "Yellow Bone"
 
-#: constants.py:382 volume.py:642
+#: constants.py:418 volume.py:647
 msgid "Cut plane"
 msgstr "Cut plane"
 
-#: control.py:304
+#: constants.py:653
+#, fuzzy
+msgid "Select tracker:"
+msgstr "Select largest part"
+
+#: constants.py:653
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:654
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:654
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:655
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:655
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:656
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:661
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:661
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:671
+msgid "LEI"
+msgstr ""
+
+#: constants.py:672
+msgid "REI"
+msgstr ""
+
+#: constants.py:673
+msgid "NAI"
+msgstr ""
+
+#: constants.py:675
+#, fuzzy
+msgid "Select left ear in image"
+msgstr "Select largest part"
+
+#: constants.py:676
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:677
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:679
+#, fuzzy
+msgid "LET"
+msgstr "L"
+
+#: constants.py:680
+#, fuzzy
+msgid "RET"
+msgstr "R"
+
+#: constants.py:681
+#, fuzzy
+msgid "NAT"
+msgstr "A"
+
+#: constants.py:682
+msgid "SET"
+msgstr ""
+
+#: constants.py:684
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:685
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:686
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:687
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:382
 #, fuzzy, python-format
 msgid "Loading file %d of %d ..."
 msgstr "Loading file %d of %d"
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Untitled"
-
-#: control.py:559
+#: control.py:818
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Fix gantry tilt applying the degrees below"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Linear"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Angular"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:1912 dialogs.py:2063 dialogs.py:2082
+#: measures.py:22
 msgid "Axial"
 msgstr "Axial"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:1912 dialogs.py:2063 dialogs.py:2083
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronal"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagittal"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Masks"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 #, fuzzy
 msgid "3D surfaces"
 msgstr "3D Surfaces"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Measures"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:186 frame.py:1328
 msgid "Measure distance"
 msgstr "Measure distance"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:189 frame.py:1334
 msgid "Measure angle"
 msgstr "Measure angle"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:446 data_notebook.py:771 data_notebook.py:1035
+#: data_notebook.py:1232
 msgid "Name"
 msgstr "Name"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:510 frame.py:780
 msgid "Mask"
 msgstr "Mask"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:635 task_surface.py:141
 #, fuzzy
 msgid "New surface"
 msgstr "New surface name:"
 
-#: data_notebook.py:765
+#: data_notebook.py:772
 msgid "Volume (mm³)"
 msgstr "Volume (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:773
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:774
 msgid "Transparency"
 msgstr "Transparency"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1036
 msgid "Location"
 msgstr "Location"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1037 data_notebook.py:1233 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Type"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1038 data_notebook.py:1234
 msgid "Value"
 msgstr "Value"
 
@@ -502,59 +635,60 @@ msgstr "Data"
 msgid "Load data"
 msgstr "Export data"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Select region of interest"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configure 3D surface"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Export data"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
+#: default_tasks.py:254
+#, fuzzy
+msgid "Navigation system"
 msgstr "Utilize navigation system"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Axial slice"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Coronal slice"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Sagittal slice"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volume"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Preset name"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Save raycasting preset"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:854
 msgid "Tools"
 msgstr "Tools"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Value will be applied."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "Value will not be applied."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient "
 "memory. \n"
@@ -562,47 +696,74 @@ msgid ""
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 #, fuzzy
 msgid "Percentage of original resolution"
 msgstr "Decimate resolution:"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Loading DICOM files"
 
-#: dialogs.py:215
+#: dialogs.py:230
 msgid "Open InVesalius 3 project..."
 msgstr "Open InVesalius 3 project..."
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:268
 msgid "Choose a DICOM folder:"
 msgstr "Choose a DICOM folder:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:309
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:341
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:347
+#, fuzzy
+msgid "Import NIFTi 1 file"
+msgstr "Import DICOM files..."
+
+#: dialogs.py:350
+#, fuzzy
+msgid "Import PAR/REC file"
+msgstr "Import DICOM files..."
+
+#: dialogs.py:382 frame.py:692
 msgid "Save project as..."
 msgstr "Save project as..."
 
-#: dialogs.py:315
+#: dialogs.py:385
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "InVesalius project (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:414
+#, fuzzy
+msgid "Save markers as..."
+msgstr "Save project as..."
+
+#: dialogs.py:417
+msgid "Markers (*.txt)|*.txt"
+msgstr ""
+
+#: dialogs.py:445
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:510 utils.py:377
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:511 utils.py:378
 #, fuzzy
 msgid "Invesalius Update"
 msgstr "InVesalius start"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:569 dialogs.py:946 dialogs.py:971
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
@@ -611,79 +772,125 @@ msgstr ""
 "The project %s has been modified.\n"
 "Save changes?"
 
-#: dialogs.py:453
+#: dialogs.py:583
 #, fuzzy, python-format
 msgid "%s is an empty folder."
 msgstr "%s is an empty directory."
 
-#: dialogs.py:466
+#: dialogs.py:598
+#, fuzzy
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "There are no DICOM files in the selected directory."
+
+#: dialogs.py:600
 #, fuzzy
 msgid "There are no DICOM files in the selected folder."
 msgstr "There are no DICOM files in the selected directory."
 
-#: dialogs.py:477
+#: dialogs.py:613
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:614
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:626
 #, fuzzy
 msgid "A mask is needed to create a surface."
 msgstr "There is no mask of reference to create a surface."
 
-#: dialogs.py:488
+#: dialogs.py:637
 #, fuzzy
 msgid "No mask was selected for removal."
 msgstr "No masks were selected for removal."
 
-#: dialogs.py:499
+#: dialogs.py:648
 #, fuzzy
 msgid "No surface was selected for removal."
 msgstr "No surfaces were selected for removal."
 
-#: dialogs.py:511
+#: dialogs.py:660
 #, fuzzy
 msgid "No measure was selected for removal."
 msgstr "No measures were selected for removal."
 
-#: dialogs.py:522
+#: dialogs.py:671
 #, fuzzy
 msgid "No mask was selected for duplication."
 msgstr "No masks were selected for duplication."
 
-#: dialogs.py:535
+#: dialogs.py:684
 #, fuzzy
 msgid "No surface was selected for duplication."
 msgstr "No surfaces were selected for duplication."
 
-#: dialogs.py:581
+#: dialogs.py:697
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:719
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:721
+#, fuzzy
+msgid " is not installed."
+msgstr "%s does not exist."
+
+#: dialogs.py:723
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:725
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:739
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:751
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:763
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:810
 msgid "New mask name:"
 msgstr "New mask name:"
 
-#: dialogs.py:585
+#: dialogs.py:814
 msgid "Name the mask to be created"
 msgstr "Name the mask to be created"
 
-#: dialogs.py:592
+#: dialogs.py:821
 msgid "Threshold preset:"
 msgstr "Threshold preset:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:908 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:536 task_slice.py:538
+#: task_slice.py:550 task_slice.py:552 task_slice.py:595 task_slice.py:598
 msgid "Custom"
 msgstr "Custom"
 
-#: dialogs.py:694
+#: dialogs.py:923
 #, python-format
 msgid "%s does not exist."
 msgstr "%s does not exist."
 
-#: dialogs.py:705
+#: dialogs.py:934
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Please, provide more than one DICOM file for 3D reconstruction"
 
-#: dialogs.py:766
+#: dialogs.py:995
 #, fuzzy
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr "(c) 2007-2010 Renato Archer Information Technology Centre"
 
-#: dialogs.py:767
+#: dialogs.py:996
 #, fuzzy
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a "
@@ -706,202 +913,337 @@ msgstr ""
 "creating physical models of a patient's anatomy using rapid prototyping "
 "technologies."
 
-#: dialogs.py:775
+#: dialogs.py:1004
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License) version 2"
 
-#: dialogs.py:812
+#: dialogs.py:1044
 msgid "Save raycasting preset as:"
 msgstr "Save raycasting preset as:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1087 dialogs.py:1345
 msgid "New surface name:"
 msgstr "New surface name:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1091 dialogs.py:1349
 msgid "Name the surface to be created"
 msgstr "Name the surface to be created"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1098 dialogs.py:1356
 msgid "Mask of reference:"
 msgstr "Mask of reference:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1116 dialogs.py:1374
 msgid "Surface quality:"
 msgstr "Surface quality:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1145 dialogs.py:1402 styles.py:1668
 msgid "Fill holes"
 msgstr "Fill holes"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1148 dialogs.py:1405
 msgid "Keep largest region"
 msgstr "Keep largest region"
 
-#: dialogs.py:954
+#: dialogs.py:1188
 msgid "BMP image"
 msgstr "BMP image"
 
-#: dialogs.py:955
+#: dialogs.py:1189
 msgid "JPG image"
 msgstr "JPG image"
 
-#: dialogs.py:956
+#: dialogs.py:1190
 msgid "PNG image"
 msgstr "PNG image"
 
-#: dialogs.py:957
+#: dialogs.py:1191
 msgid "PostScript document"
 msgstr "PostScript document"
 
-#: dialogs.py:958
+#: dialogs.py:1192
 msgid "POV-Ray file"
 msgstr "POV-Ray file"
 
-#: dialogs.py:959
+#: dialogs.py:1193
 msgid "TIFF image"
 msgstr "TIFF image"
 
-#: dialogs.py:1004
+#: dialogs.py:1238
 #, fuzzy
 msgid "Surface generation options"
 msgstr "Surface properties"
 
-#: dialogs.py:1034
+#: dialogs.py:1268
 #, fuzzy
 msgid "Surface creation"
 msgstr "Surface properties"
 
-#: dialogs.py:1061
+#: dialogs.py:1295
 #, fuzzy
 msgid "Surface creation options"
 msgstr "Surface properties"
 
-#: dialogs.py:1067
+#: dialogs.py:1301
 #, fuzzy
 msgid "Surface creation method"
 msgstr "Surface properties"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1450 frame.py:856
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1466
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1468
 #, fuzzy
 msgid "Max. distance:"
 msgstr "Measure distance"
 
-#: dialogs.py:1235
+#: dialogs.py:1470
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1472
 #, fuzzy
 msgid "N. steps:"
 msgstr "Next step"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1491 dialogs.py:1527 dialogs.py:1572
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1492
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1510
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1513
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1642 dialogs.py:2550
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1665
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1687 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1728 frame.py:753
 #, fuzzy
 msgid "Boolean operations"
 msgstr "Smooth iterations:"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1751 slice_.py:1314
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1752
 #, fuzzy
 msgid "Difference"
 msgstr "Mask of reference:"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1753 slice_.py:1316
 #, fuzzy
 msgid "Intersection"
 msgstr "Institution"
 
-#: dialogs.py:1516
+#: dialogs.py:1754
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1775
 #, fuzzy
 msgid "Mask 1"
 msgstr "Mask"
 
-#: dialogs.py:1539
+#: dialogs.py:1777
 #, fuzzy
 msgid "Operation"
 msgstr "Saturation"
 
-#: dialogs.py:1541
+#: dialogs.py:1779
 #, fuzzy
 msgid "Mask 2"
 msgstr "Mask"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "unnamed"
+#: dialogs.py:1808
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Image size: %d x %d"
+#: dialogs.py:1820
+msgid "Apply"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1824
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1828
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1832
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1881
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:1908
+#, fuzzy
+msgid "Project name:"
+msgstr "Preset name"
+
+#: dialogs.py:1911
+#, fuzzy
+msgid "Slices orientation:"
+msgstr "Slices' cross intersection"
+
+#: dialogs.py:1912 dialogs.py:2063 dialogs.py:2084
+#, fuzzy
+msgid "Sagital"
+msgstr "Sagittal"
+
+#: dialogs.py:1916
+#, fuzzy
+msgid "Spacing (mm):"
 msgstr "Spacing: %.2f"
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Location: %.2f"
+#: dialogs.py:1931
+msgid "X:"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1936
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:1940
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2018
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
 msgstr ""
-"%s %s\n"
-"Made in InVesalius"
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Image"
+#: dialogs.py:2031
+#, fuzzy
+msgid "2D - Actual slice"
+msgstr "Axial slice"
+
+#: dialogs.py:2032
+#, fuzzy
+msgid "3D - All slices"
+msgstr "Keep all slices"
+
+#: dialogs.py:2057
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2066
+#, fuzzy
+msgid "Orientation"
+msgstr "Saturation"
+
+#: dialogs.py:2103
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2170 dialogs.py:2223 task_slice.py:872
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2188
+#, fuzzy
+msgid "Deviation"
+msgstr "Saturation"
+
+#: dialogs.py:2190
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2193
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2246
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2249
+#, fuzzy
+msgid "Iterations"
+msgstr "Saturation"
+
+#: dialogs.py:2327 dialogs.py:2541 dialogs.py:2795
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2385
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2413
+#, fuzzy
+msgid "Target mask name"
+msgstr "New mask name:"
+
+#: dialogs.py:2467 frame.py:784 styles.py:2017
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2514
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2514
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2654
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2695
+#, fuzzy
+msgid "Axial:"
+msgstr "Axial"
+
+#: dialogs.py:2697 dialogs.py:2707 dialogs.py:2717
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2705
+#, fuzzy
+msgid "Sagital:"
+msgstr "Sagittal"
+
+#: dialogs.py:2715
+#, fuzzy
+msgid "Coronal:"
+msgstr "Coronal"
+
+#: dialogs.py:2806
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2808
+msgid "voxels"
+msgstr ""
 
 #: dicom_preview_panel.py:409
 #, fuzzy, python-format
@@ -913,166 +1255,231 @@ msgstr "%d Images"
 msgid "Image %d"
 msgstr "Image %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Auto-play"
-
-#: frame.py:164
+#: frame.py:171
 msgid "Data panel"
 msgstr "Data panel"
 
-#: frame.py:171
+#: frame.py:177
 msgid "Preview medical data to be reconstructed"
 msgstr "Preview medical data to be reconstructed"
 
-#: frame.py:177
+#: frame.py:183
+#, fuzzy
+msgid "Preview bitmap to be reconstructed"
+msgstr "Preview medical data to be reconstructed"
+
+#: frame.py:189
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:603 frame.py:764
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:679
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:680
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:681
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:687
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Import DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:689
 #, fuzzy
 msgid "Import other files..."
 msgstr "Import DICOM files..."
 
-#: frame.py:583
+#: frame.py:690
 #, fuzzy
 msgid "Open project...\tCtrl+O"
 msgstr "Open Project...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:691
 #, fuzzy
 msgid "Save project\tCtrl+S"
 msgstr "Save Project\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:693
 #, fuzzy
 msgid "Close project"
 msgstr "Close Project"
 
-#: frame.py:595
+#: frame.py:702
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:733 frame.py:743
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:738 frame.py:744
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:756
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:761
+#, fuzzy
+msgid "Fill holes manually"
+msgstr "Fill holes"
+
+#: frame.py:769 styles.py:1765
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:772
+#, fuzzy
+msgid "Select parts"
+msgstr "Getting selected parts"
+
+#: frame.py:777
+msgid "Crop"
+msgstr ""
+
+#: frame.py:787
+#, fuzzy
+msgid "Segmentation"
+msgstr "Saturation"
+
+#: frame.py:791
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:799
+#, fuzzy
+msgid "Interpolated slices"
+msgstr "Scroll slices"
+
+#: frame.py:836
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:840
 #, fuzzy
 msgid "Getting started..."
 msgstr "Getting Started..."
 
-#: frame.py:692
+#: frame.py:843
 msgid "About..."
 msgstr "About..."
 
-#: frame.py:700
+#: frame.py:851
 msgid "File"
 msgstr "File"
 
-#: frame.py:701
+#: frame.py:852
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:853
+msgid "View"
+msgstr ""
+
+#: frame.py:857
 msgid "Help"
 msgstr "Help"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:985 surface.py:383 surface.py:775 surface.py:776
 msgid "Ready"
 msgstr "Ready"
 
-#: frame.py:969
+#: frame.py:1137
 #, fuzzy
 msgid "Import DICOM files...\tCtrl+I"
 msgstr "Import DICOM...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1146
 #, fuzzy
 msgid "Open InVesalius project..."
 msgstr "Open InVesalius 3 project..."
 
-#: frame.py:984
+#: frame.py:1152
 msgid "Save InVesalius project"
 msgstr "Save InVesalius project"
 
-#: frame.py:1130
+#: frame.py:1298
 msgid "Zoom"
 msgstr "Zoom"
 
-#: frame.py:1136
+#: frame.py:1304
 msgid "Zoom based on selection"
 msgstr "Zoom based on selection"
 
-#: frame.py:1142
+#: frame.py:1310
 msgid "Rotate"
 msgstr "Rotate"
 
-#: frame.py:1148
+#: frame.py:1316
 msgid "Move"
 msgstr "Move"
 
-#: frame.py:1154
+#: frame.py:1322
 msgid "Constrast"
 msgstr "Constrast"
 
-#: frame.py:1312
+#: frame.py:1480
 msgid "Scroll slices"
 msgstr "Scroll slices"
 
-#: frame.py:1318
+#: frame.py:1486
 msgid "Slices' cross intersection"
 msgstr "Slices' cross intersection"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1655 frame.py:1727 frame.py:1906
 msgid "Hide task panel"
 msgstr "Hide task panel"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1661 frame.py:1749 frame.py:1928
 msgid "Hide text"
 msgstr "Hide text"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1733 frame.py:1912
 msgid "Show task panel"
 msgstr "Show task panel"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1743 frame.py:1922
 msgid "Show text"
 msgstr "Show text"
 
-#: frame.py:1657
+#: frame.py:1824
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1831
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Generating multiplanar visualization..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "InVesalius Database"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Patient name"
@@ -1121,10 +1528,6 @@ msgstr "Accession Number"
 msgid "Referring physician"
 msgstr "Referring physician"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "InVesalius Database"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1157,7 +1560,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:563
 msgid "Remove"
 msgstr ""
 
@@ -1173,15 +1576,15 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Language selection"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Choose user interface language"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:142
 msgid "Analysing selected regions..."
 msgstr ""
 
@@ -1190,165 +1593,210 @@ msgstr ""
 msgid "Splitting disconnected regions..."
 msgstr "Splitting disconected parts"
 
-#: preferences.py:18
+#: preferences.py:17
 #, fuzzy
 msgid "Preferences"
 msgstr "Mask of reference:"
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 #, fuzzy
 msgid "Language"
 msgstr "Language selection"
 
-#: preferences.py:95
+#: preferences.py:102
 #, fuzzy
 msgid "Surface"
 msgstr "Surface %d"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 #, fuzzy
 msgid "Volume rendering"
 msgstr "Gender"
 
-#: preferences.py:109
+#: preferences.py:116
 #, fuzzy
 msgid "Rendering"
 msgstr "Gender"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+#, fuzzy
+msgid "Slices"
+msgstr "Scroll slices"
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Soft Tissue"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Enamel (Adult)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Enamel (Child)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Compact Bone (Adult)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Compact Bone (Child)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Spongial Bone (Adult)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Spongial Bone (Child)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Muscle Tissue (Adult)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Muscle Tissue (Child)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Fat Tissue (Adult)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Fat Tissue (Child)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Skin Tissue (Adult)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Skin Tissue (Child)"
 
-#: slice_.py:1245
+#: slice_.py:1315
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1317
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 #, fuzzy
 msgid "Window width and level"
 msgstr "Window Width and Level"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 #, fuzzy
 msgid "Pseudo color"
 msgstr "Pseudo Colour"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:67 task_slice.py:851
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:68 task_slice.py:852
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:868
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1669
+#, fuzzy
+msgid "Fill hole"
+msgstr "Fill holes"
+
+#: styles.py:1670
+#, fuzzy
+msgid "Filling hole ..."
+msgstr "Fill holes"
+
+#: styles.py:1766
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1767
+#, fuzzy
+msgid "Removing part ..."
+msgstr "Getting Started..."
+
+#: styles.py:2018
+#, fuzzy
+msgid "Segmenting ..."
+msgstr "Testing..."
+
+#: surface.py:444 surface.py:535 surface.py:553 surface.py:591 surface.py:620
+#: surface.py:642 surface.py:661 surface.py:675 surface.py:692
 #, fuzzy
 msgid "Creating 3D surface..."
 msgstr "Generating 3D surface..."
@@ -1369,16 +1817,16 @@ msgstr "Export 3D surface"
 msgid "Export 3D surface..."
 msgstr "Export 3D surface..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Save 3D surface as..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
 #, fuzzy
 msgid "You need to create a surface and make it "
 msgstr "You need to create a surface and make "
 
-#: task_exporter.py:340
+#: task_exporter.py:337
 msgid "visible before exporting it."
 msgstr "visible before exporting it."
 
@@ -1388,13 +1836,12 @@ msgstr "Testing..."
 
 #: task_importer.py:67
 #, fuzzy
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr "Select DICOM or Analyze files to be reconstructed"
 
 #: task_importer.py:68
-#, fuzzy
-msgid "Import DICOM images..."
-msgstr "Import DICOM files..."
+msgid "Import medical images..."
+msgstr "Import medical images..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1404,97 +1851,184 @@ msgstr "Open an existing InVesalius project..."
 msgid "Open an existing project..."
 msgstr "Open an existing project..."
 
-#: task_slice.py:85
+#: task_navigator.py:63
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:128
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:137
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:146
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:147
+#, fuzzy
+msgid "Volume camera"
+msgstr "Volume"
+
+#: task_navigator.py:153
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:154
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:213
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:221
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:255
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:258
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:266
+#, fuzzy
+msgid "Start navigation"
+msgstr "Saturation"
+
+#: task_navigator.py:267
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:462
+#, fuzzy
+msgid "Stop neuronavigation"
+msgstr "Saturation"
+
+#: task_navigator.py:491
+#, fuzzy
+msgid "Start neuronavigation"
+msgstr "Saturation"
+
+#: task_navigator.py:539
+#, fuzzy
+msgid "Create marker"
+msgstr "Create new mask"
+
+#: task_navigator.py:548
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:551
+#, fuzzy
+msgid "Load"
+msgstr "Export data"
+
+#: task_navigator.py:554
+#, fuzzy
+msgid "Hide"
+msgstr "Hide text"
+
+#: task_navigator.py:566
+msgid "Delete all markers"
+msgstr ""
+
+#: task_navigator.py:608
+msgid "Edit ID"
+msgstr ""
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Create mask for slice segmentation and editing"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Create new mask"
 
-#: task_slice.py:116
+#: task_slice.py:117
 #, fuzzy
 msgid "Create surface"
 msgstr "Save surface"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Overwrite last surface"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Mask properties"
 
-#: task_slice.py:274
+#: task_slice.py:275
 #, fuzzy
 msgid "Manual edition"
 msgstr "Language selection"
 
-#: task_slice.py:422
+#: task_slice.py:420
 msgid "Set predefined or manual threshold:"
 msgstr "Set predefined or manual threshold:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:650 task_slice.py:814
 msgid "Choose brush type, size or operation:"
 msgstr "Choose brush type, size or operation:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:656 task_slice.py:820
 msgid "Circle"
 msgstr "Circle"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:660 task_slice.py:824
 msgid "Square"
 msgstr "Square"
 
-#: task_slice.py:703
+#: task_slice.py:701
 msgid "Brush threshold range:"
 msgstr "Brush threshold range:"
 
-#: task_slice.py:873
+#: task_slice.py:871
 #, fuzzy
 msgid "Overwrite mask"
 msgstr "Overwrite last surface"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:881
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Create 3D surface based on a mask"
 
-#: task_surface.py:88
+#: task_surface.py:89
 #, fuzzy
 msgid "Create new 3D surface"
 msgstr "Save surface"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Next step"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Surface properties"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Advanced options"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid "Automatically select largest disconnected region and create new surface"
 msgstr ""
 "Automatically select largest disconnected region and create new surface"
 
-#: task_surface.py:275
+#: task_surface.py:276
 #, fuzzy
 msgid "Select largest surface"
 msgstr "Select largest part"
 
-#: task_surface.py:283
+#: task_surface.py:284
 #, fuzzy
 msgid ""
 "Automatically select disconnected regions and create a new surface per region"
@@ -1502,21 +2036,21 @@ msgstr ""
 "Automatically select disconnected regions and create one new surface per "
 "region"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Split all disconnected surfaces"
 
-#: task_surface.py:292
+#: task_surface.py:293
 #, fuzzy
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 "Manually insert seeds of regions of interest and create one new surface"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Select regions of interest..."
 
-#: task_surface.py:429
+#: task_surface.py:430
 msgid "Transparency:"
 msgstr "Transparency:"
 
@@ -1528,236 +2062,243 @@ msgstr "Decimate resolution:"
 msgid "Smooth iterations:"
 msgstr "Smooth iterations:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Measure distances"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Measure"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Add text annotations"
 
-#: viewer_slice.py:66
+#: viewer_slice.py:68
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:77
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:85
 #, fuzzy
 msgid "Inverted order"
 msgstr "Inverse Gray"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:86
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:92
 #, fuzzy
 msgid "Number of slices"
 msgstr "Scroll slices"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:93
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:704 viewer_slice.py:708 viewer_slice.py:761
+#: viewer_slice.py:763 viewer_slice.py:775 viewer_slice.py:784
+#: viewer_slice.py:793 viewer_slice.py:802 viewer_slice.py:813
+#: viewer_slice.py:822 viewer_slice.py:831 viewer_slice.py:840
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:704 viewer_slice.py:708 viewer_slice.py:761
+#: viewer_slice.py:763 viewer_slice.py:775 viewer_slice.py:784
+#: viewer_slice.py:793 viewer_slice.py:802 viewer_slice.py:813
+#: viewer_slice.py:822 viewer_slice.py:831 viewer_slice.py:840
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:704 viewer_slice.py:706 viewer_slice.py:761
+#: viewer_slice.py:765 viewer_slice.py:775 viewer_slice.py:784
+#: viewer_slice.py:793 viewer_slice.py:802 viewer_slice.py:851
+#: viewer_slice.py:860 viewer_slice.py:869 viewer_slice.py:878
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:704 viewer_slice.py:706 viewer_slice.py:761
+#: viewer_slice.py:765 viewer_slice.py:775 viewer_slice.py:784
+#: viewer_slice.py:793 viewer_slice.py:802 viewer_slice.py:851
+#: viewer_slice.py:860 viewer_slice.py:869 viewer_slice.py:878
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:706 viewer_slice.py:708 viewer_slice.py:763
+#: viewer_slice.py:765 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831 viewer_slice.py:840 viewer_slice.py:851
+#: viewer_slice.py:860 viewer_slice.py:869 viewer_slice.py:878
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:706 viewer_slice.py:708 viewer_slice.py:763
+#: viewer_slice.py:765 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831 viewer_slice.py:840 viewer_slice.py:851
+#: viewer_slice.py:860 viewer_slice.py:869 viewer_slice.py:878
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:778 viewer_slice.py:787 viewer_slice.py:796
+#: viewer_slice.py:805
 #, fuzzy
 msgid "AL"
 msgstr "L"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:778 viewer_slice.py:787 viewer_slice.py:796
+#: viewer_slice.py:805
 #, fuzzy
 msgid "RA"
 msgstr "R"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:778 viewer_slice.py:787 viewer_slice.py:796
+#: viewer_slice.py:805
 #, fuzzy
 msgid "PR"
 msgstr "R"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:778 viewer_slice.py:787 viewer_slice.py:796
+#: viewer_slice.py:805
 #, fuzzy
 msgid "LP"
 msgstr "L"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:781 viewer_slice.py:790 viewer_slice.py:799
+#: viewer_slice.py:808
 #, fuzzy
 msgid "LA"
 msgstr "L"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:781 viewer_slice.py:790 viewer_slice.py:799
+#: viewer_slice.py:808
 #, fuzzy
 msgid "AR"
 msgstr "R"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:781 viewer_slice.py:790 viewer_slice.py:799
+#: viewer_slice.py:808
 #, fuzzy
 msgid "RP"
 msgstr "R"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:781 viewer_slice.py:790 viewer_slice.py:799
+#: viewer_slice.py:808
 #, fuzzy
 msgid "PL"
 msgstr "L"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:834
+#: viewer_slice.py:843
 #, fuzzy
 msgid "TL"
 msgstr "L"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:834
+#: viewer_slice.py:843
 #, fuzzy
 msgid "RT"
 msgstr "R"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:834
+#: viewer_slice.py:843
 #, fuzzy
 msgid "BR"
 msgstr "R"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:834
+#: viewer_slice.py:843
 #, fuzzy
 msgid "LB"
 msgstr "L"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:819 viewer_slice.py:828 viewer_slice.py:837
+#: viewer_slice.py:846
 #, fuzzy
 msgid "LT"
 msgstr "L"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:819 viewer_slice.py:828 viewer_slice.py:837
+#: viewer_slice.py:846
 #, fuzzy
 msgid "TR"
 msgstr "R"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:819 viewer_slice.py:828 viewer_slice.py:837
+#: viewer_slice.py:846
 #, fuzzy
 msgid "RB"
 msgstr "R"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:819 viewer_slice.py:828 viewer_slice.py:837
+#: viewer_slice.py:846
 #, fuzzy
 msgid "BL"
 msgstr "L"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:872
+#: viewer_slice.py:881
 #, fuzzy
 msgid "TA"
 msgstr "A"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:872
+#: viewer_slice.py:881
 #, fuzzy
 msgid "PT"
 msgstr "P"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:872
+#: viewer_slice.py:881
 #, fuzzy
 msgid "BP"
 msgstr "P"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:872
+#: viewer_slice.py:881
 #, fuzzy
 msgid "AB"
 msgstr "A"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:857 viewer_slice.py:866 viewer_slice.py:875
+#: viewer_slice.py:884
 #, fuzzy
 msgid "AT"
 msgstr "A"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:857 viewer_slice.py:866 viewer_slice.py:875
+#: viewer_slice.py:884
 #, fuzzy
 msgid "TP"
 msgstr "P"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:857 viewer_slice.py:866 viewer_slice.py:875
+#: viewer_slice.py:884
 #, fuzzy
 msgid "PB"
 msgstr "P"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:857 viewer_slice.py:866 viewer_slice.py:875
+#: viewer_slice.py:884
 #, fuzzy
 msgid "BA"
 msgstr "A"
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "unnamed"
+#~ msgstr "unnamed"
+
+#, fuzzy
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1775,9 +2316,6 @@ msgstr "A"
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
 #~ msgid "InVesalius 3 - New surface"
 #~ msgstr "InVesalius 3 - New surface"
 
diff --git a/po/es.po b/po/es.po
index 5fbec58..9ee77f1 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,15 +8,17 @@
 # Translators:
 # Alicia Perez <artema91 at hotmail.com>, 2011
 # InVesalius <invesalius at cti.gov.br>, 2015
-# Mario Moreno <marioregino at gmail.com>, 2015
+# Mario Moreno <marioregino at gmail.com>, 2015,2017
+# Santiago Castro <bryant at montevideo.com.uy>, 2017
+# tfmoraes <totonixsame at gmail.com>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/invesalius3/language/es/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:17+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/invesalius/invesalius3/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -26,6 +28,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Tamaño de la imagen: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Espaciado: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Ubicación: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nHecho en InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Imagen"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Hueso"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Reproducir"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -41,7 +81,7 @@ msgstr "Alfa: %-.3f"
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr "Apagado"
 
@@ -57,11 +97,11 @@ msgstr "CristalEyes"
 msgid "Interlaced"
 msgstr "Entrelazado"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Izquierda"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Derecha"
 
@@ -101,382 +141,511 @@ msgstr "Pasar 4 por cada 5 rebanadas"
 msgid "Skip 5 for each 6 slices"
 msgstr "Pasar 5 por cada 6 rebanadas"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Estándar"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Matiz"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturación"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Desierto"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Arco Iris"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Océano"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Gray Inverso"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Hueso"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Máscara %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Dibujar"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Borrar"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Umbral"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Baja"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Media"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Alta"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Óptima *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Superficie %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdomen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr "Fosa cerebral posterior"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Cerebro"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Predeterminado"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Enfisema"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr "Isquemia - Dura, sin contraste"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr "Isquemia - Suave, sin contraste"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Laringe"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Hígado"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Pulmón - Suave"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Pulmón - Duro"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastino"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manual"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pelvis"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Seno"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vasos sanguíneos mas densos"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vasos sanguíneos menos densos"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr "Contorno"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Frente"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Volver"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Arriba"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Abajo"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isométrica"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Vías Respiratorias"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Vías Respiratorias II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Blanco y Negro"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Hueso + Piel"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Hueso + Piel II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr "Hueso oscuro"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Brillo"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Brillo II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr "Hueso dorado"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr "Contraste alto"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr "Contraste bajo"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr "Blando sobre blanco"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr "Contraste medio"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr "Sin sombra"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Lápiz"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr "Rojo sobre blanco"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr "Piel sobre azul"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr "Piel sobre azul II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Blando + Piel"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Blando + Piel II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Blando + Piel III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr "Blando sobre azul"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Blando"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Estándar"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vascular"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vascular II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vascular III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vascular IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr "Hueso amarillo"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Plano de corte"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr "Seleccionar rastreador:"
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr "Claron MicronTracker"
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr "Polhemus FASTRAK"
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr "Polhemus ISOTRAK II"
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr "Polhemus PATRIOT"
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr "Depurar rastreador"
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr "Desconectar rastreador"
+
+#: constants.py:679
+msgid "Static ref."
+msgstr "Referencia estática"
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr "Referencia dinámica"
+
+#: constants.py:689
+msgid "LEI"
+msgstr "IOI"
+
+#: constants.py:690
+msgid "REI"
+msgstr "IOD"
+
+#: constants.py:691
+msgid "NAI"
+msgstr "IN"
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Seleccionar la oreja izquierda en la imagen"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Seleccionar la oreja derecha en la imagen"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "Seleccionar el nasion en la imagen"
+
+#: constants.py:701
+msgid "LET"
+msgstr "OIR"
+
+#: constants.py:702
+msgid "RET"
+msgstr "ODR"
+
+#: constants.py:703
+msgid "NAT"
+msgstr "NAR"
+
+#: constants.py:704
+msgid "SET"
+msgstr "SET"
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr "Seleccionar la oreja izquierda con el rastreador espacial"
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr "Seleccionar la oreja derecha con el rastreador espacial"
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr "Seleccionar el nasion con el rastreador espacial"
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr "Mostrar sistema de coordenadas en la imagen"
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr "Cargando archivo %d de %d ..."
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Sin Título"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Arreglar la inclinación (gantry tilt) con la aplicación de los grados abajo"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Lineal"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Angular"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Axial"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronal"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagital"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Máscaras"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr "Superficies 3D"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Medidas"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "Crear una nueva medición"
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "Remover medida"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "Duplicar medida"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Medir distancia"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Medir ángulo"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "Crear una nueva mascara"
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "Remover máscara"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "Duplicar máscara"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nombre"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Máscara"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "Crear una nueva superficie"
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Remover superficie"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Duplicar superficie"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "Importar archivo de superficie a InVesalius"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr "Nueva superficie"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volumen (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Área (mm²)"
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Transparencia"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Ubicación"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Tipo"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Valor"
 
@@ -488,529 +657,866 @@ msgstr "Datos"
 msgid "Load data"
 msgstr "Cargar los datos"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Elegir la región de interés"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configurar la superficie 3D"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Exportar los datos"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Usar sistema de navegación"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr "Sistema de navegación"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Corte Axial"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Corte Coronal"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Corte Sagital"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volumen"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Nombre del preajuste"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Guardar el preajuste de raycasting"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Herramientas"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Valor se aplicará."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "Valor no se aplicará."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr "InVesalius se ejecuta en un sistema operativo de 32-bits o no tiene suficiente memoria. \nSi quieres trabajar con superficies 3D o renderización de volumen, \nse recomienda reducir la resolución de las imágenes médicas."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr "Porcentaje de la resolución original"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Cargando archivos DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Abrir proyecto del InVesalius 3..."
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr "Abrir archivo Analyze"
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Elegir un directorio DICOM"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Escoger una carpeta con TIFF, BMP, JPG o PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Importar archivo Analyze 7.5"
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "Importar archivo NIFTi 1"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "Importar archivo PAR/REC"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "Importar archivo de superficie"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Guardar proyecto como..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "Proyecto InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "Guardar marcadores como..."
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr "Archivos marcadores (*.mks)|*.mks"
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "Cargar marcadores"
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr "Una nueva versión de InVesalius está disponible. ¿Desea abrir el sitio web de descarga?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr "Actualización de InVesalius"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "El proyecto %s ha sido cambiado.\nGuardar cambios?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr "%s es un directorio vacío."
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "No hay archivos Bitmap, JPEG, PNG o TIFF en la carpeta seleccionada."
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr "No hay archivos DICOM en el directorio seleccionado."
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr "Archivo inválido"
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "Advertencia! InVesalius tiene apoyo limitado al formato Analyze\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr "Las rebanadas pueden estar mal orientadas y algunas funciones podrían no funcionar apropiadamente"
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr "Se requiere una máscara para crear la superficie."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr "No hay máscaras seleccionadas para eliminar."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr "No hay superficies seleccionadas para eliminar."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr "No hay medidas seleccionadas para eliminar."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr "No hay máscaras seleccionadas para duplicación."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr "No hay superficies seleccionadas para duplicación."
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr "Marcadores fiduciarios inválidos. Seleciona seis coordenadas."
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr "Dispositivo rastreador no seleccionado"
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr "no está instalado."
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr "desconectado."
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr "no está conectado."
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr "El archivo TXT es invalido."
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr "No hay datos seleccionados"
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr "¿Realmente desea eliminar todos los marcadores?"
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr "Editar ID del marcador"
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nombre de la nueva máscara:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Nombre de la máscara que se va crear"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Umbral:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
-msgstr "Costumbre"
+msgstr "Personalizado"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s no existe."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Elija más de un archivo DICOM para la reconstrucción en 3D"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr ""
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr "(c) 2007-2017 Centro de Tecnología de la Información Renato Archer - CTI"
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
 " InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
 "\n"
 " Contact: invesalius at cti.gov.br"
-msgstr ""
+msgstr "InVesalius es un programa para la reconstrucción 3D de imágenes médicas. Utiliza una secuencia de archivos 2D de imagen DICOM adquiridos mediante TAC o IRM. InVesalius permite exportar volúmenes 3D o superficies como archivos de mallas para crear modelos físicos de la anatomia del paciente usando tecnologías de manufactura aditiva (impresión 3D). El programa es desarrollado por el Centro de Tecnología de la información Renato Archer (CTI), el Consejo Nacional de Desarrollo Cientí [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License) versión 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Guardar preajuste de raycasting como:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Nombre de la nueva superficie:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Nombre de la superficie creada"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Máscara de referencia:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Calidad de la superficie:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Llenar los agujeros"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Mantener la mayor región"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Imagen BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Imagen JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Imagen PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Documento PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "Archivo POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Imagen TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr "Opciones de generación de superficie"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr "Creación de superficie"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr "Opciones de creación de superficie"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr "Método de creación de superficie"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr "Opciones"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr "Ángulo"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr "Distancia máxima:"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr "Peso mínimo:"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr "Número de pasos:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr "Suavización sensible al contexto"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr "Binario"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr "No es posible usar el método predeterminado porque la máscara fue editada."
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr "Método:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr "Método"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr "Sigma gaussiana"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr "Watershed"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr "Operaciones booleanas"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr "Unión"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr "Diferencia"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr "Intersección"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr "Disyunción exclusiva"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr "Máscara 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr "Operación"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr "Máscara 2"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "sin_nombre"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr "Reorientación de imagen"
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Tamaño de la imagen: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr "Vecino más próximo"
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Espaciamiento: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr "Trilineal"
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Ubicación: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr "Tricúbica"
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr "Lanczos (experimental)"
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "Aplicar"
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "Ángulo X"
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Ángulo Y"
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Ángulo Z"
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr "Método de interpolación"
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr "Crear proyecto de un bitmap"
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "Nombre del proyecto:"
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr "Orientación de rebanadas:"
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr "Sagital"
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr "Espaciamiento (mm)"
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nHecho en InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr "Todos los archivos bitmaps deben tener\nel mismo tamaño de alto y ancho."
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Imagen"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr "2D - Rebanada real"
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr "3D - Todas las rebanadas"
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr "Conectividad 2D"
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "Orientación"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr "Conectividad 3D"
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Usar WW&WL"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr "Desviación"
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr "Mín:"
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr "Máx:"
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr "Multiplicador"
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr "Iteraciones"
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "Parámetros"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr "Seleccionar las partes de la máscara"
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr "Nombre de máscara de destino"
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr "Región creciendo"
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr "Dinámica"
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr "Confianza"
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr "Cortar mascara"
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr "Axial:"
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr " -"
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr "Sagital:"
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr "Coronal:"
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr "Máximo tamaño de hoyo"
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr "voxels"
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr "sin nombrar"
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr "%d imágenes "
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Imagen %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Jugar"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Panel de datos"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Vista previa de los datos médicos que van a ser reconstruidos"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr "Vista previa del bitmap a ser reconstruido"
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr "Recuperar DICOM desde PACS"
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr "Actualmente el modo de navegación solo está disponible en Windows"
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "Llenar hoyos automáticamente"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr "Analyze 7.5"
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr "NIfTI 1"
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr "PAR/REC"
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Importar DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr "Importar otros archivos..."
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr "Abrir proyecto...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr "Guardar proyecto... \tCtrl+O"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr "Cerrar proyecto"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr "Salir\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr "Deshacer\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr "Rehacer\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr "Limpiar máscara\tCtrl+Shift+A"
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "Llenar hoyos manualmente"
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr "Remover partes"
+
+#: frame.py:802
+msgid "Select parts"
+msgstr "Seleccionar partes"
+
+#: frame.py:807
+msgid "Crop"
+msgstr "Cortar"
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr "Segmentación manual"
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr "Derecha - Izquierda"
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr "Anterior - Posterior"
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr "Superior - Inferior"
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr "De Derecha-Izquierda a Anterior-Posterior"
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr "De Derecha-Izquierda a Superior-Inferior"
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr "De Anterior-Posterior a Superior-Inferior"
+
+#: frame.py:832
+msgid "Flip"
+msgstr "Voltear"
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr "Intercambiar ejes"
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr "Reorientar imagen\tCtrl+Shift+R"
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr "Segmentación"
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr "Rebanadas interpoladas"
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr "Preferencias..."
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr "Modo de navegación"
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr "Cómo empezar..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Acerca de..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Archivo"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr "Editar"
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr "Vista"
+
+#: frame.py:913
+msgid "Mode"
+msgstr "Modo"
+
+#: frame.py:914
 msgid "Help"
 msgstr "Ayuda"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Listo"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr "Importar archivos DICOM...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr "Abrir proyecto de InVesalius..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Guardar proyecto InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Zoom"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Zoom basado en la selección"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Rotar"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Mover"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Contraste"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Cambiar la rebanada"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Cruce para intersección de rebanadas"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Ocultar el panel de tareas"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Ocultar texto"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Mostrar el panel de tareas"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Mostrar texto"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr "Deshacer"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr "Rehacer"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Generación de visualización multiplanar"
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr "Importar"
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "Localización"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr "Ancho x Alto"
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Base de datos del InVesalius"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Nombre del paciente"
@@ -1059,10 +1565,6 @@ msgstr "Número de adhesión"
 msgid "Referring physician"
 msgstr "Médico"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Base de datos del InVesalius"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr "Palabra"
@@ -1095,7 +1597,7 @@ msgstr "Estado"
 msgid "Add"
 msgstr "Agregar"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr "Remover"
 
@@ -1111,174 +1613,226 @@ msgstr "ok"
 msgid "error"
 msgstr "error"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Selección de idioma"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Elegir idioma de la interfaz del usuario"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr "Analizando las regiones seleccionadas..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr "Separando las regiones desconectadas..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr "Preferencias"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr "Visualización"
+msgid "2D Visualization"
+msgstr "Visualización 2D"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "Visualización 3D"
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr "Lenguaje"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr "Superficie"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr "Interpolación"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr "Renderización de volumen"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr "Renderizado"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr "GPU (Solo para tarjetas gráficas NVidia)"
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr "Rebanadas"
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr "Interpolado"
+
+#: preferences.py:159
+msgid "Yes"
+msgstr "Sí"
+
+#: preferences.py:159
+msgid "No"
+msgstr "No"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr "Los ajustes de idioma se aplicarán\nla próxima vez que se inicie InVesalius."
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Tejidos Blandos"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Esmalte (Adulto)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Esmalte (Niño)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Hueso Compacto (Adulto)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Hueso Compacto (Niño)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Hueso Esponjoso (Adulto)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Hueso Esponjoso (Niño)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Tejido Muscular (Adulto)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Tejido Muscular (Niño)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Tejido Graso (Adulto)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Tejido Graso (Niño)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Tejido Epitelial (Adulto)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Tejido Epitelial (Niño)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr "Dif"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr "Normal"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr "MeanIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr "Contorno MaxIP"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr "Contorno MIDA"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr "Brillo y contraste"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr "Pseudo color"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr "Tipo de proyección"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr "Primer plano"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr "Fondo"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr "Aplicando watershed..."
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "Llenar hoyo"
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr "Llenando hoyo..."
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr "Remover parte"
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr "Removiendo parte..."
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr "Segmentando..."
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "Formato de archivo no reconocido por InVesalius"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr "Error al importar superficie"
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr "InVesalius no fue capaz de importar ésta superficie"
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr "Creando superficie 3D..."
 
@@ -1298,15 +1852,23 @@ msgstr "Exportar superficie 3D..."
 msgid "Export 3D surface..."
 msgstr "Exportar superficie 3D..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Guardar superficie 3D como..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr "InVesalius no fue capaz de guardar ésta superficie"
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr "Error al guardar superfície"
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr "Es necesario crear una superficie y hacerla"
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "visible antes de exportarla."
 
@@ -1315,12 +1877,12 @@ msgid "Testing..."
 msgstr "Probando..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr "Seleccionar archivos DICOM a ser reconstruidos"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr "Seleccionar archivos DICOM, Analyze, NifTI o REC/PAR para ser reconstruidos"
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr "Importar imágenes DICOM..."
+msgid "Import medical images..."
+msgstr "Importar imágenes médicas..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1330,325 +1892,424 @@ msgstr "Abrir un proyecto InVesalius existente..."
 msgid "Open an existing project..."
 msgstr "Abrir un proyecto existente..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr "Seleccionar marcadores fiduciarios y navegar"
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "Neuronavegación"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "Herramientas extra"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr "Actualizar cámara en volumen"
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr "Cámara de volumen"
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr "Activar disparador externo para crear marcadores"
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr "Disparador externo"
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr "Elegir el dispositivo rastreador"
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr "Elige el modo de referencia de navegación"
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr "ERMF:"
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr "Error de registro de marcadores fiduciarios"
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr "Comenzar navegación"
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr "Navegar"
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr "Configurando rastreador..."
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr "Detener neuronavegación"
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr "Iniciar neuronavegación"
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr "Crear marcador"
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "Guardar"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "Cargar"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "Ocultar"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "Eliminar todo"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "Editar ID"
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Crear máscara para segmentación y edición de rebanada"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Crear nueva máscara"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr "Crear superficie"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Sobrescribir última superficie"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Propriedades de la máscara"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr "Edición manual"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Seleccione umbral:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Tipo, tamaño o funcionamiento del pincel:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Círculo"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Cuadrado"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Serie de umbrales del pincel:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr "Sobrescribir la máscara"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr "Usar WW&WL"
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr "Expandir watershed en 3D"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Crear superficies 3D basado en una máscara"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr "Crear una nueva superficie 3D"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Paso siguiente"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Propiedades de la superficie"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Opciones avanzadas"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Seleccionar automáticamente la mayor región desconexa y crear una nueva superficie"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr "Seleccionar la superficie más grande"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr "Seleccionar automáticamente las regiones desconectadas y crear una nueva superficie por cada región"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Separar todas las superficies de desconexión"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr "Insertar manualmente las semillas en las regiones de interés y crear una nueva superficie"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Elegir las regiones de interés"
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Transparencia:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Resolución de decimación:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Iteraciones de suavización"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Realizar mediciones"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Medir"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Añadir anotaciones de texto"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr "Desconectando rastreador..."
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr "Número de rebanadas usadas para generar la visualización."
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr "Controla la nitidez del contorno. Cuanto mayor sea el parametro, más nitido será el contorno."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr "Orden invertido"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr "Si se selecciona, las rebanadas son acomodadas en orden descendente para generar la visualización en lugar de en orden ascendente."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr "Numero de rebanada"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr "Nitidez"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "D"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "I"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "S"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "I"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr "AI"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr "DA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr "PD"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr "IP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr "IA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr "AD"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr "DP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr "PI"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr "SI"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr "DS"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr "ID"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr "II"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr "IS"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr "SD"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr "DI"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr "II"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr "SA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr "PS"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr "IP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr "AI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr "AS"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr "SP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr "PI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr "IA"
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr "InVesalius no fue capaz de exportar ésta foto"
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr "Error al exportar foto"
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1665,11 +2326,5 @@ msgstr "IA"
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/fa.po b/po/fa.po
index b6bda55..d65357b 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -7,14 +7,15 @@
 # Translators:
 # Translators:
 # Seyed Mohammad Hosseini <PersianPolaris at Gmail.com>, 2011
+# Seyed Mohammad Hosseini <PersianPolaris at Gmail.com>, 2011
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Persian (http://www.transifex.com/projects/p/invesalius3/language/fa/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/invesalius/invesalius3/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,6 +25,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr ""
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr ""
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "تصویر"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr ""
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr ""
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -39,7 +78,7 @@ msgstr ""
 msgid "M %d"
 msgstr ""
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr "خاموش"
 
@@ -55,11 +94,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "چپ"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "راست"
 
@@ -99,382 +138,511 @@ msgstr ""
 msgid "Skip 5 for each 6 slices"
 msgstr ""
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "پیش فرض"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr ""
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr ""
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr ""
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr ""
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "اقیانوس"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr ""
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr ""
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr ""
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "ترسيم"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "پاک کردن"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr ""
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr ""
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "متوسط"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "زیاد"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr ""
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr ""
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr ""
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr ""
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "پیش فرض"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr ""
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr ""
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr ""
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr ""
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr ""
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr ""
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "دستی"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr ""
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr ""
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr ""
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr ""
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "جلو"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "پشت"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "بالا"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "پایین"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "ايزومتري"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "مسيرهاي هوایی"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "مسيرهاي هوایی II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "سیاه و سفید"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr ""
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr ""
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr ""
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr ""
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "مداد"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr ""
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr ""
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr ""
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "نرم"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr ""
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr ""
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr ""
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr ""
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr ""
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr ""
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "بدون عنوان"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr ""
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr ""
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "زاویه ای"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "محوری"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr ""
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr ""
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr ""
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "اندازه گیری ها"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "اندازه گیری فاصله"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr ""
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "نام"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr ""
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr ""
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "شفافیت"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "موقعيت"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "نوع"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "مقدار"
 
@@ -486,175 +654,255 @@ msgstr "اطلاعات"
 msgid "Load data"
 msgstr ""
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr ""
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr ""
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "استخراج اطلاعات"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
 msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr ""
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr ""
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr ""
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "حجم"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr ""
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr ""
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "ابزار"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr ""
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr ""
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr ""
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr ""
 
-#: dialogs.py:243
-msgid "Open Analyze file"
+#: dialogs.py:275
+msgid "Choose a DICOM folder:"
 msgstr ""
 
-#: dialogs.py:281
-msgid "Choose a DICOM folder:"
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
 msgstr ""
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "ذخیره پروژه به عنوان..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr ""
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr ""
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr ""
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr ""
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr ""
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr ""
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "اختصاصي"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr ""
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr ""
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -663,352 +911,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr ""
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr ""
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr ""
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr ""
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr ""
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr ""
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr ""
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr ""
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "BMP تصوير"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "JPG تصوير"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "PNG تصوير"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr ""
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr ""
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "TIFF تصوير"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "بدون نام گذاري"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
 msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
 msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
 msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
 msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "تصویر"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr ""
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "صفحه ي اطلاعات"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr ""
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr ""
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "درباره..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "فايل"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "راهنما"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "آماده"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr ""
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "بزرگ نمايي"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr ""
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "چرخش"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "حرکت"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr ""
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr ""
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr ""
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr ""
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "پنهان کردن متن"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr ""
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "نمایش متن"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr ""
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr ""
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr ""
@@ -1057,10 +1562,6 @@ msgstr ""
 msgid "Referring physician"
 msgstr ""
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1093,7 +1594,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1109,174 +1610,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr ""
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr ""
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
+msgstr ""
+
+#: preferences.py:42
+msgid "3D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr ""
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr ""
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr ""
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr ""
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr ""
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr ""
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr ""
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr ""
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr ""
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr ""
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr ""
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr ""
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr ""
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1296,15 +1849,23 @@ msgstr "استخراج سطح سه بعدي"
 msgid "Export 3D surface..."
 msgstr "استخراج سطح سه بعدي ..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "ذخيره ي سطح سه بعدي به عنوان .."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr ""
 
@@ -1313,11 +1874,11 @@ msgid "Testing..."
 msgstr "تست کردن ..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1328,325 +1889,424 @@ msgstr ""
 msgid "Open an existing project..."
 msgstr ""
 
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
 msgstr ""
 
 #: task_slice.py:86
+msgid "Create mask for slice segmentation and editing"
+msgstr ""
+
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr ""
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "آیا می خواهید که روی آخرین سطح"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr ""
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr ""
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr ""
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "دايره"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "مربع"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr ""
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr ""
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "قدم بعدي"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr ""
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "گزینه های پیشرفته"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr ""
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr ""
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr ""
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "شفافیت :"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr ""
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr ""
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "اندازه گیری فاصله"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "اندازه گیری"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "اضافه کردن متن حاشیه نویسی"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2323,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/fr.po b/po/fr.po
index 0363c7e..385d630 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,14 +7,15 @@
 # Translators:
 # Translators:
 # InVesalius <invesalius at cti.gov.br>, 2015
+# Mathieu Malaterre <mathieu.malaterre at gmail.com>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-08 14:06+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: French (http://www.transifex.com/projects/p/invesalius3/language/fr/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/invesalius/invesalius3/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,6 +25,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Taille de l'image : %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Espacement : %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Localisation : %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nCréé avec InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Image"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Os"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Lecture"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -32,20 +71,20 @@ msgstr "Valeur: %-6d"
 #: clut_raycasting.py:536
 #, python-format
 msgid "Alpha: %-.3f"
-msgstr ""
+msgstr "Alpha: %-.3f"
 
 #: constants.py:32
 #, python-format
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr " Désactivé"
 
 #: constants.py:45
 msgid "Red-blue"
-msgstr ""
+msgstr "Rouge-beu"
 
 #: constants.py:46
 msgid "CristalEyes"
@@ -53,13 +92,13 @@ msgstr ""
 
 #: constants.py:47
 msgid "Interlaced"
-msgstr ""
+msgstr "Entrelacé"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Gauche"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Droite"
 
@@ -69,7 +108,7 @@ msgstr ""
 
 #: constants.py:51
 msgid "Checkboard"
-msgstr ""
+msgstr "Damier"
 
 #: constants.py:52
 msgid "Anaglyph"
@@ -99,382 +138,511 @@ msgstr "Passer 4 pour chacune des 5 coupes"
 msgid "Skip 5 for each 6 slices"
 msgstr "Passer 5 pour chacune des 6 coupes"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Défaut"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Teinte"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturation"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Désert"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Arc-en-ciel"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Océan"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Niveaux de gris inversés"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Os"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Masque %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Dessiner"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Effacer"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Seuil"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Faible"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Moyen"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Élevé"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Optimal *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Surface %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdomen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Cerveau"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Défaut"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Emphysème"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Larynx"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Foie"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Poumon - Faible"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Poumon - Élevé"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Médiastin"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manuel"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Bassin"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Sinus"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vascularisation - Élevé"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vascularisation - Faible"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
-msgstr ""
+msgstr "Contour"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Avant"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Arrière"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Haut"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Bas"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isométrique"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Voies Respiratoires"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Voies Respiratoires II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Noir & Blanc"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Os + Peau"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Os + Peau II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
-msgstr ""
+msgstr "Os Sombre"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Brillant"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Brillant II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
-msgstr ""
+msgstr "Os Or"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
-msgstr ""
+msgstr "Teinte élevée"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
-msgstr ""
+msgstr "Teinte faible"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
-msgstr ""
+msgstr "Doux blanc"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Crayon"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
-msgstr ""
+msgstr "Rouge sur blanc"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
-msgstr ""
+msgstr "Peau sur bleu"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
-msgstr ""
+msgstr "Peau sur bleu 2"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Mou + Peau"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Mou + Peau II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Mou + Peau III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Mou"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Standard"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vasculaire"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vasculaire II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vasculaire III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vasculaire IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
-msgstr ""
+msgstr "Os Jaune"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Plan de coupe"
 
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Choisir oreille gauche sur l'image"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Choisir oreille droite sur l'image"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr "LET"
+
+#: constants.py:702
+msgid "RET"
+msgstr "RET"
+
+#: constants.py:703
+msgid "NAT"
+msgstr "NAT"
+
+#: constants.py:704
+msgid "SET"
+msgstr "SET"
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr "Choisir oreille gauche avec"
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Sans titre"
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
 
-#: control.py:559
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
+#, python-format
+msgid "Loading file %d of %d ..."
+msgstr "Chargement fichier %d de %d ..."
+
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Corriger le « gantry tilt » en appliquant les degrés ci-dessous"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Linéaire"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Angulaire"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Axiale"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronale"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagittale"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Masques"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
-msgstr ""
+msgstr "Surfaces 3D"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Mesures"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "Créer une nouvelle mesure"
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "Suprimer mesure"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "Dupliquer mesure"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Mesurer les distances"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Mesurer les angles"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "Créer nouveau masque"
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "Supprimer masque"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "Dupliquer masque"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nom"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Masque"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "Créer une nouvelle surface"
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Supprimer surface"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Dupliquer surface"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "Importer une surface dans InVesalius"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
-msgstr ""
+msgstr "Nouvelle surface"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volume (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Aire (mm²)"
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Transparence"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Localisation"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Type"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Valeur"
 
@@ -484,177 +652,257 @@ msgstr "Donnée"
 
 #: default_tasks.py:244 default_tasks.py:250
 msgid "Load data"
-msgstr ""
+msgstr "Chargement donnée"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Sélectionner une zone d'intérêt"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configurer la surface 3D"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Exporter les données"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Utiliser système de navigation"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr "Système de navigation"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Coupe axiale"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Coupe coronale"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Coupe sagittale"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volume"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Nom du préréglage"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Enregistrer le préréglage du raycasting"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Outils"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "La valeur sera appliquée."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "La valeur ne sera pas appliquée."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
-msgstr ""
+msgstr "InVesalius fonctionne sur un système d'exploitation 32-bit ou a peu de resource mémoire. \nSi vous voulez travaillez avec des surfaces 3D ou des rendus volumiques, \nil est recommendé de réduire la résolution des images médicales"
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
-msgstr ""
+msgstr "Pourcentage de la résolution originale"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Chargement des fichiers DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Ouvrir un projet InVesalius 3..."
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Choisir un dossier DICOM :"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Choisir un répertoire avec TIFF,BMP,JPG ou PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Importer fichier Analyze 7.5"
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "Importer fichier NIFTi 1"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "Importer fichier PAR/REC"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "Importer fichier surface"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Enregistrer le projet sous..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "Projet InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "Sauvegarder marqueurs en tant que..."
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "Charger marqueurs"
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
-msgstr ""
+msgstr "Une nouvelle version d'InVesalius est disponible. Voulez vous ouvrier le site wen pour la téléchargement maintenant?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
-msgstr ""
+msgstr "Mise à jour InVesalius"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "Le projet %s a été modifié.\nEnregistrer les modifications ?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
-msgstr ""
+msgstr "%s est un répértoire vide."
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "Il n'y a ni fichiers Bitmap, JPEG, PNG ou TIFF dans le répertoire séléctionné."
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
+msgstr "Il n'y a pas de fichier DICOM dans le répertoire séléctionné."
+
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr "Fichier invalide."
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "Avertissement! InVesalius a un support limité du forma Analyze.\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nom de la nouvelle masque:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Nom de la nouvelle masque à créer"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Préréglage seuil"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Personnalisé"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s n'existe pas."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Fournir plus d'un fichier DICOM pour la reconstruction 3D"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -663,352 +911,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License) version 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Enregistrer le préréglage du raycasting sous :"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Nom de la nouvelle surface:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Nom de la nouvelle surface à créer"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Masque de référence:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Qualité de la surface:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Replir les trous"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Garder la plus grande région"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Image BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Image JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Image PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Document PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "Fichier POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Image TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "sans_nom"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Taille de l'image : %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Espacement : %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Localisation : %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nCréé avec InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Image"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Image %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Lecture"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Panneau de données"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Prévisualiser les données médicales à reconstruire"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Importer des fichiers DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "À propos..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Fichier"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "Aide"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Prêt"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Enregistrer le projet InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Zoom"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Zoom sur la sélection"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Rotation"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Déplacement"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Contraste"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Changer couches"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Croix pour traverser les couches"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Masquer le panneau de données"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Cacher le texte"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Montrer le panneau de données"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Montrer le texte"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Génération d'une visualisation sur plans multiples..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Base de données InVesalius"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Nom du patient"
@@ -1057,10 +1562,6 @@ msgstr "Numéro d'accession"
 msgid "Referring physician"
 msgstr "Médecin traitant"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Base de données InVesalius"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1093,7 +1594,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1109,174 +1610,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Sélection de la langue"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Choisir la langue de l'interface utilisateur"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Tissu mou"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Émail (adulte)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Émail (enfant)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Os compact (adulte)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Os compact (adulte)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Os spongieux (adulte)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Os spongieux (enfant)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Tissu musculaire (adulte)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Tissu musculaire (enfant)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Tissu adipeux (adulte)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Tissu adipeux (enfant)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Tissu épithélial (adulte)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Tissu épithélial (enfant)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1296,15 +1849,23 @@ msgstr "Exporter la surface 3D"
 msgid "Export 3D surface..."
 msgstr "Exporter la surface 3D..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Enregistrer la surface 3D sous..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "visible avant de l'exporter."
 
@@ -1313,11 +1874,11 @@ msgid "Testing..."
 msgstr "Expérimentation..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1328,325 +1889,424 @@ msgstr "Ouvrir un projet InVesalius existant..."
 msgid "Open an existing project..."
 msgstr "Ouvrir un projet existant..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr ""
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Créer un masque pour segmentation et édition de couche"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Créer un nouveau masque"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Écraser la dernière surface"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Propriétés du masque"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Choisir un seuil prédéfini ou manuel :"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Choisir le type, la taille ou l'opération de la brosse"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Cercle"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Carré"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Seuil de la brosse :"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Création d'une surface 3D basée sur un masque"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Étape suivante"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Propriétés de la surface"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Outils avancés"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Électionner automatiquement plus grande déconnecter región et créer une nouvelle surface"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Split toutes les surfaces déconnecter"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Sélectionner zones d'intérêt"
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Transparence:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Résolution de la décimation:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Itérations de lissage:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Mesurer les distances"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Mesurer"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Ajouter des annotations"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "D"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "G"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "H"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2323,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/it.po b/po/it.po
index 083bc1b..a602d37 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6,17 +6,20 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
+# Angelo Pucillo <energyoip at yahoo.it>, 2017
 # Annalisa Manenti <manentinabs88 at yahoo.it>, 2015
 # Bruno Bottazzini <bottazzinibruno at gmail.com>, 2011
 # InVesalius <invesalius at cti.gov.br>, 2015
+# Nikolas Lamber <nikolas_lam at yahoo.it>, 2017
+# tfmoraes <totonixsame at gmail.com>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Italian (http://www.transifex.com/projects/p/invesalius3/language/it/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:20+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Italian (http://www.transifex.com/invesalius/invesalius3/language/it/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -26,10 +29,48 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Dimensione immagine: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Spaziatura: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Posizione: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nFatto con InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Immagine"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Osso"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Auto-play"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
-msgstr "Value: %-6d"
+msgstr "Valore: %-6d"
 
 #: clut_raycasting.py:536
 #, python-format
@@ -41,7 +82,7 @@ msgstr "Alpha: %-.3f"
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr "Off"
 
@@ -57,11 +98,11 @@ msgstr "CristalEyes"
 msgid "Interlaced"
 msgstr "Interlacciato"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Sinistro"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Destro"
 
@@ -101,382 +142,511 @@ msgstr "Saltare 4 strati ogni 5"
 msgid "Skip 5 for each 6 slices"
 msgstr "Saltare 5 strati ogni 6"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Predefinito"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Colore"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturazione"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Deserto"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Arcobaleno"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Oceano"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Grigi invertiti"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Osso"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Maschera %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Disegnare"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Cancellare"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Soglia"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Basso"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Medio"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Alto"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Ottimale *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Superfice %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Addome"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr "Fossa cranica posteriore"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Cervello"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Predefinito"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Enfisema"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr "Ischemia - Tessuto duro, senza contrasto"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr "Ischemia - Tessuto molle, senza contrasto"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Laringe"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Fegato"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Polmone - Molle"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Polmone - Duro"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastino"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manuale"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pelvico"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Seno"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vascolare - Duro"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vascolare - Molle"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr "Contorno"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Frontale"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Posteriore"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Superiore"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Inferiore"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isometrico"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Vie aeree"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Vie aeree II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Bianco e nero"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Osso + pelle"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Osso + pelle II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr "Osso scuro"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Lucido"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Lucido II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr "Osso dorato"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr "Alto contrasto"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr "Basso contrasto"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr "Tessuto molle su bianco"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr "Medio contrasto"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr "Senza ombreggiatura"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Matita"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr "Rosso su bianco"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr "Pelle su blu"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr "Pelle su blu II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Tessuto Molle + pelle"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Tessuto Molle + pelle II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Tessuto Molle + pelle III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr "Tessuto Molle su blu"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Tessuto Molle"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Normale"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vascolare"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vascolare II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vascolare III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vascolare IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr "Osso midollare"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Piano di taglio"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr "Selezionare tracker:"
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr "Claron MicronTracker"
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr "Polhemus FASTRAK"
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr "Polhemus ISOTRAK II"
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr "Polhemus PATRIOT"
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr "Debug tracker"
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr "Disconnettere tracker"
+
+#: constants.py:679
+msgid "Static ref."
+msgstr "Rif. statico"
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr "Rif. dinamico"
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Seleziona l'orecchio sinistro nell'immagine"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Seleziona l'orecchio destro nell'immagine"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "Seleziona nasion nell'immagine"
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr "Selezionare l'orecchio sinistro con lo spatial tracker"
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr "Seleziona l'orecchio destro con lo spatial tracker"
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr "Seleziona nasion con tracker spaziale"
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr "Mostra coordinate nell'immagine"
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr "Caricamento file %d di %d"
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Senza titolo"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Impostare angolo di inclinazione"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Lineare"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Angolare"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Assiale"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronale"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagittale"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Maschere"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr "Superfici 3D"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Misure"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "Crea nuova misura"
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "Rimuovi misura"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "Duplica misura"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Misura distanza"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Misura angolo"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "Crea nuova maschera"
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "Rimuovi maschera"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "Duplica maschera"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nome"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Maschera"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "Crea nuova superficie"
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Rimuovi superficie"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Duplica superficie"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "Importa file superficie in InVesalius"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr "Nuova superficie"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volume (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Area (mm²)"
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Trasparenza"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Posizione"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Tipo"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Valore"
 
@@ -488,529 +658,866 @@ msgstr "Dati"
 msgid "Load data"
 msgstr "Carica dati"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
-msgstr "Selezionare l'area interessata"
+msgstr "Seleziona l'area interessata"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configura la superfice 3D"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Esporta dati"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Utilizza il sistema di navigazione"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr "Sistema di navigazione"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Strato assiale"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Strato coronale"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Strato sagittale"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volume"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Nome predefinito"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Salvare proiezione predefinita"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Strumenti"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "I valori verranno applicati"
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "I valori non verranno applicati"
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr "InVesalius è in esecuzione su un sistema operativo 32-bit oppure la memoria è insufficiente.\nSe voui lavorare con superfici 3D o rendering volumetrico, raccomandiamo di ridurre la risoluzione delle immagini mediche"
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr "Percentuale della risoluzione originale"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Caricamento files DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
-msgstr "Apertura progetto InVesalius 3"
-
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr "Apri file Analyze"
+msgstr "Apertura progetto InVesalius 3 ..."
 
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Selzionare una cartella DICOM:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Scegli una cartella con TIFF, BMP, JPG o PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Importa file del tipo Analyze 7.5"
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "Importa file del tipo  NIFTi 1"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "Importa file  PAR/REC"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "Importa file superficie"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
-msgstr "Salvare il progetto come..."
+msgstr "Salva il progetto come..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "Progetto InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "Salva i markers come ..."
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "Carica markers"
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr "Una nuova versione di InVesalius è disponibile. Vuoi aprire il sito di download e aggiornarla adesso?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr "Invesalius Update"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "Il progetto %s è stato modificato. \nSalvare le modifiche?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr "%s è una cartella vuota"
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "Non c'è nessun file di tipo  Bitmap, JPEG, PNG or TIFF nella cartella selezionata"
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr "Non ci sono files DICOM nella cartella selzionata"
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "Attenzione! InVesalius fornisce un supporto limitato per il formato Analyze.\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr "Le Slices possono essere orientate erroneamente e le funzioni potrebbero non funzionare correttamente"
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr "Una maschera di riferimento è necessaria per creare la superficie"
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr "Non sono state selezionate maschere da rimuovere"
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr "Non sono state selezionate superfici da rimuovere"
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr "Non sono state selezionate misure da rimuovere"
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr "Non sono state selezionate maschere da duplicare"
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr "Non sono state selezionate superfici da duplicare"
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr "Riferimenti invalidi. Seleziona sei coordinate."
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr "Nessun dispositivo di tracking selezionato "
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr "Non installato"
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr "disconnesso"
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr "non è connesso"
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr "Il file TXT non e' valido"
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr "Nessun dato selezionato"
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr "Vuoi davvero eliminare tutti i riferimenti?"
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr "Modifica il marker ID"
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nome nuova maschera:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Assegnare un nome alla maschera da creare"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Soglia predefinita:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Personalizzato"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s non esiste."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Prego, fornire più di un file DICOM per la ricostruzione 3D"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr ""
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
 " InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
 "\n"
 " Contact: invesalius at cti.gov.br"
-msgstr ""
+msgstr "InVesalius e' un programma di medical imaging per ricostruzioni 3D. Usa una sequenza di file immagini 2D DICOM acquisite con scansioni CT o MRI. InVesalius consente di esportare exporting volumi 3D o superfici come mesh files per creare modelli fisici di parti anatomiche di pazienti tramite l'impiego di tecnologie additive  (stampa3D). Il software e' stato sviluppato dal \"Center for Information Technology Renato Archer (CTI)\", \"National Council for Scientific and Technological [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "Licenza GNU GPL (Licenza Generica Pubblica) versione 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Salvare proiezione predefinita come:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Nome nuova superfice"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Nome della superfice da creare"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Maschera di riferimento"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Qualità superfice"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Riempimento fori"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Mantieni la regione più ampia"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Immagine BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Immagine JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Immagine PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Documento PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "File POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Immagine TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr "Opzioni di generazione superficie"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr "Generazione superficie"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr "Opzioni di creazione superficie"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr "Metodi di generazione superficie"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr "Opzioni"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr "Angolo:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr "Distanza max:"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr "Peso min:"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr "Numero di steps:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr "Smoothing sensibile al contesto"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr "Binario"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr "Non è possibile usare il metodo Predefinito perchè la maschera è stata modificata"
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr "Metodo:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr "Metodo"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr "Sigma della Gaussiana"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr "Watershed"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr "Operazioni booleane"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr "Unione"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr "Differenza"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr "Intersezione"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr "Disgiunzione esclusiva"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr "Maschera 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr "Operazione"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr "Maschera 2"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "senza nome"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr "riorientamento dell'immagine"
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Dimensione immagine: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Spaziatura: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Posizione: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "Applica"
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "Angolo X"
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Angolo Y"
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Angolo Z"
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr "Metodo di interpolazione"
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr "Crea progetto da una bitmap"
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "Nome del progetto:"
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr "Orientamento delle slices"
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr "Sagittale"
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr "Spaziatura (mm);"
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nFatto con InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr "Tutti i files bitmap devono avere le stesse\ndimensioni in larghezza e in altezza"
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Immagine"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr "2D- Slice attuale"
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr "3D - Tutte le slices"
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr "Connettivita' 2D"
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "Orientamento"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr "Connettivita' 3D"
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Considera luminosità e contrasto"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr "Deviazione"
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr "Min:"
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr "Max:"
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr "Moltilplicatore"
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr "Iterazioni"
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "Parametri"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr "Seleziona parti maschera"
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr "Nomer target maschera"
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr "Dinamico"
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr "Taglia maschera"
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr "Assiale:"
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr "-"
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr "Sagittale:"
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr "Coronale:"
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr "Massima dimensione del foro"
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr "voxels"
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr "senza nome"
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr "%d immagini"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Immagine %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Auto-play"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Pannello dati"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Anteprima dati medici da ricostruire"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr "Anteprima bitmap da ripristinare"
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr "Recupera DICOM da PACS"
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr "Attualmente la modalità Navigazione funziona solo sotto Windows"
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "Riempi i fori automaticamente"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr "Analyze 7.5"
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr "NIfTI 1"
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr "PAR/REC"
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Importare DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr "Importa altri file"
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr "Apri progetto...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr "Salva progetto\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr "Chiudi progetto"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
-msgstr "Uscire\tCtrl+Q"
+msgstr "Esci\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr "Undo\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr "Redo\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
-msgstr "Pulire maschera\tCtrl+Shift+A"
+msgstr "Pulisci maschera\tCtrl+Shift+A"
+
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "Riempi i fori manualmente"
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr "Rimuovi parti"
+
+#: frame.py:802
+msgid "Select parts"
+msgstr "Seleziona parti"
+
+#: frame.py:807
+msgid "Crop"
+msgstr "Taglia"
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr "Segmentazione manuale"
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr "Destra - Sinistra"
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr "Anteriore - Posteriore"
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr "Alto - Basso"
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr "Da Destra-Sinistra a Anteriore-Posteriore"
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr "Da Destra-Sinistra a Alto-Basso"
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr "Da Anteriore-Posteriore a Alto-Basso"
+
+#: frame.py:832
+msgid "Flip"
+msgstr "Capovolgi"
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr "Scambia assi"
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr "Riorienta immagine⇥Ctrl+Shift+R"
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr "Segmentazione"
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr "Strati interpolati"
 
-#: frame.py:685
+#: frame.py:883
 msgid "Preferences..."
 msgstr "Preferenze"
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr "Modalità Navigazione"
+
+#: frame.py:896
 msgid "Getting started..."
-msgstr "Linee guida"
+msgstr "Per iniziare ..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Informazioni"
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "File"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr "Modifica"
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr "Vista"
+
+#: frame.py:913
+msgid "Mode"
+msgstr "Modalità"
+
+#: frame.py:914
 msgid "Help"
 msgstr "Aiuto"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Pronto"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr "Importa file DICOM...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr "Apri progetto InVesalius..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Salva progetto InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Ingrandimento"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
-msgstr "Ingrandimento sulla selezione"
+msgstr "Ingrandimento su selezione"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
-msgstr "Ruotare"
+msgstr "Ruota"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
-msgstr "Muovere"
+msgstr "Sposta"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Contrasto"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
-msgstr "Spostare strati"
+msgstr "Scorri strati"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Intersezione strati"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
-msgstr "Nascondere pannello di controllo"
+msgstr "Nascondi pannello di controllo"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
-msgstr "Nascondere testo"
+msgstr "Nascondi testo"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
-msgstr "Mostrare pannello di controllo"
+msgstr "Mostra pannello di controllo"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
-msgstr "Mostrare testo"
+msgstr "Mostra testo"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr "Undo"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr "Redo"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Generando la vista multiplanare..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr "Importa"
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "Percorso"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr "Larghezza x Altezza"
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Database InVesalius"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Nome paziente"
@@ -1059,10 +1566,6 @@ msgstr "Numero accesso"
 msgid "Referring physician"
 msgstr "Medico di riferimento"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Database InVesalius"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr "Parola"
@@ -1081,7 +1584,7 @@ msgstr "Host"
 
 #: import_network_panel.py:665
 msgid "Port"
-msgstr "Port"
+msgstr "Porta"
 
 #: import_network_panel.py:666
 msgid "AETitle"
@@ -1089,19 +1592,19 @@ msgstr "AETitolo"
 
 #: import_network_panel.py:667
 msgid "Status"
-msgstr "Status"
+msgstr "Stato"
 
 #: import_network_panel.py:694
 msgid "Add"
 msgstr "Aggiungi"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr "Rimuovi"
 
 #: import_network_panel.py:696
 msgid "Check status"
-msgstr "Controlla status"
+msgstr "Controlla stato"
 
 #: import_network_panel.py:769
 msgid "ok"
@@ -1111,174 +1614,226 @@ msgstr "Ok"
 msgid "error"
 msgstr "Errore"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Selezione lingua"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Selezionare la lingua dell'interfaccia"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr "Analizzando le regioni selezionate..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr "Suddivisione regioni sconnesse..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr "Preferenze"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr "Visualizzazione"
+msgid "2D Visualization"
+msgstr "Vista 2D"
+
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "Vista 3D"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr "Lingua"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr "Superficie"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr "Interpolazione"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr "Rendering volumetrico"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr "Rendering"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr "GPU (solo schede video NVidia)"
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr "Slices"
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr "Interpolati"
+
+#: preferences.py:159
+msgid "Yes"
+msgstr "Si"
+
+#: preferences.py:159
+msgid "No"
+msgstr "No"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr "Le impostazioni di lingua verranno applicate\nal prossimo avvio di InVesalius."
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Tessuto molle"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Smalto (Adulto)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Smalto (Bambino)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Osso compatto (Adulto)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Osso compatto (Bambino)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Osso spugnoso (Adulto)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Osso spugnoso (Bambino)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Tessuto muscolare (Adulto)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Tessuto muscolare (Bambino)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Tessuto grasso (Adulto)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Tessuto grasso (Bambino)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Pelle (Adulto)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Pelle (Bambino)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr "Diff"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr "Normale"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr "MedioIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr "Contorno MaxIP"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr "Contorno MIDA"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr "Luminosità e contrasto"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr "Pseudo colore"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr "Tipo di proiezione"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr "Primo piano"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr "Secondo piano"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr "Applicando watershed ..."
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "Riempi fori"
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr "Riempendo fori ..."
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr "RImuovere parti"
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr "Rimuovendo parti ..."
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr "Segmentazione ..."
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "Formato file non riconosciuto da InVesalius"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr "Errore importazione superficie"
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr "Invesalius non è riuscito ad importare questa superficie"
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr "Generazione di superficie 3D..."
 
@@ -1298,15 +1853,23 @@ msgstr "Esportazione superfice 3D"
 msgid "Export 3D surface..."
 msgstr "Esportazione superfice 3D..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Salva superfice 3D come..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr "Devi creare una superfice e modificarla"
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "visibile prima di esportarla"
 
@@ -1315,12 +1878,12 @@ msgid "Testing..."
 msgstr "Prova..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr "Seleziona i files DICOM da ricostruire"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr "Selezionare i files DICOM, Analyze, NIfTI o REC/PAR da essere ricostruiti"
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr "Importa immagini DICOM ..."
+msgid "Import medical images..."
+msgstr "Importa immagini mediche ..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1330,325 +1893,424 @@ msgstr "Apri un progetto InVesalius esistente..."
 msgid "Open an existing project..."
 msgstr "Apri un progetto esistente..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr "Seleziona riferimenti e naviga"
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "Neuronavigazione"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "Tools extra"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr "Abilita trigger esterno per creare i markers"
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr "Trigger esterno"
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr "Scegli il dispositivo di tracking"
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr "FRE:"
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr "Errore registrazione riferimento"
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr "Avvia navigazione"
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr "Naviga"
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr "Configurazione tracker ..."
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr "Arresta neuronavigazione"
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr "Avvia neuronavigazione"
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr "Crea marker"
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "Salva"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "Carica"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "Nascondi"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "Elimina tutto"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "Modifica ID"
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Creare una maschera per la creazione e modifica degli strati"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Creare una nuova maschera"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr "Crea una superficie"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Sovrascrivere ultima superfice"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Proprietà maschera"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr "Edizione manulae"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Impostare soglia predefinita o soglia manuale"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Selezionare tipo, grandezza o operazione pennello:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Cerchio"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Quadrato"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Soglia range pennello"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr "Sovrascrivi maschera"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr "Considera luminosità e contrasto"
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr "Espandi watershed al 3D"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Creare superfice 3D basata su maschera"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr "Crea nuova superficie 3D"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Prossimo passo"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Proprietà superfice"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Opzioni avanzate"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Seleziona automaticamente l'area disconnessa più grande e creare nuova superfice"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr "Seleziona la superficie maggiore"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr "Seleziona automaticamente aree disconnessee crea una nuova superfice per ogni regione"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Dividere tutte le superfici disconnesse"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr "Inserire manualmente i punti delle regioni di interesse e creare una nuova superfice"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Selezionare aree di interesse..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Trasparenza:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Risoluzione decimale:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Iterazione di smoothing"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Misura distanze"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Misura"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Aggiungere note di testo"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr "Disconnessione tracker ..."
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr "Numero di strati utilizzati per comporre la visualizzazione"
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr "Controlla la nitidezza del contorno. Maggiore è il valore, maggiore è la nitidezza del contorno"
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr "Ordine invertito"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr "Se selezionati, gli strati per comporre la visualizzazione sono attraversati in ordine discendente, e non ascendente."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr "Numero di strati"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr "Nitidezza"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "Dx"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "Sx"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "S"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "I"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr "ASx"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr "DxA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr "PDx"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr "SxP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr "SxA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr "ADx"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr "DxP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr "PSx"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr "SSx"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr "DxS"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr "IDx"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr "SxI"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr "SxS"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr "SDx"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr "DxS"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr "ISx"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr "SA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr "PS"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr "IP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr "AI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr "AS"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr "SP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr "PI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr "IA"
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1665,11 +2327,5 @@ msgstr "IA"
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/ja.po b/po/ja.po
index eb37502..5fd1e81 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,15 +6,19 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
-# ysotsu <y-sotsu at umin.ac.jp>, 2015
+# Maki Sugimoto, 2017
+# Maki Sugimoto, 2017
+# Yohei Sotsuka <y-sotsu at umin.ac.jp>, 2015,2017
+# Yoshihiro Sato <yoshihiro_sato at zaccoz.net>, 2017
+# Yohei Sotsuka <y-sotsu at umin.ac.jp>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/invesalius3/language/ja/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Japanese (http://www.transifex.com/invesalius/invesalius3/language/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,1629 +28,2288 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "画像サイズ: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "間隔: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "場所: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nMade in InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "画像"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "骨"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "自動再生"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
-msgstr "Value: %-6d"
+msgstr "値: %-6d"
 
 #: clut_raycasting.py:536
 #, python-format
 msgid "Alpha: %-.3f"
-msgstr ""
+msgstr "アルファ: %-.3f"
 
 #: constants.py:32
 #, python-format
 msgid "M %d"
-msgstr ""
+msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
-msgstr ""
+msgstr "オフ"
 
 #: constants.py:45
 msgid "Red-blue"
-msgstr ""
+msgstr "赤-青"
 
 #: constants.py:46
 msgid "CristalEyes"
-msgstr ""
+msgstr "クリスタルアイ"
 
 #: constants.py:47
 msgid "Interlaced"
-msgstr ""
+msgstr "インターレース"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "左"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "右"
 
 #: constants.py:50
 msgid "Dresden"
-msgstr ""
+msgstr "ドレスデン"
 
 #: constants.py:51
 msgid "Checkboard"
-msgstr ""
+msgstr "チェックボード"
 
 #: constants.py:52
 msgid "Anaglyph"
-msgstr ""
+msgstr "アナグリフ"
 
 #: constants.py:105
 msgid "Keep all slices"
-msgstr ""
+msgstr "全スライスを維持"
 
 #: constants.py:105
 msgid "Skip 1 for each 2 slices"
-msgstr ""
+msgstr "2枚ごとに1枚間引く"
 
 #: constants.py:106
 msgid "Skip 2 for each 3 slices"
-msgstr ""
+msgstr "3枚ごとに2枚間引く"
 
 #: constants.py:106
 msgid "Skip 3 for each 4 slices"
-msgstr ""
+msgstr "4枚ごとに3枚間引く"
 
 #: constants.py:107
 msgid "Skip 4 for each 5 slices"
-msgstr ""
+msgstr "5枚ごとに4枚間引く"
 
 #: constants.py:107
 msgid "Skip 5 for each 6 slices"
-msgstr ""
+msgstr "6枚ごとに5枚間引く"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
-msgstr ""
+msgstr "初期値"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
-msgstr ""
+msgstr "色調"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
-msgstr ""
+msgstr "彩度"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
-msgstr ""
+msgstr "デザート"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
-msgstr ""
+msgstr "レインボウ"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
-msgstr ""
+msgstr "オーシャン"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
-msgstr ""
+msgstr "グレイを反転"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr ""
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
-msgstr ""
+msgstr "マスク %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
-msgstr ""
+msgstr "描画"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
-msgstr ""
+msgstr "消去"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
-msgstr ""
+msgstr "しきい値法"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
-msgstr ""
+msgstr "低"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
-msgstr ""
+msgstr "中"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
-msgstr ""
+msgstr "高"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
-msgstr ""
+msgstr "最適 *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
-msgstr ""
+msgstr "サーフェス %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
-msgstr ""
+msgstr "腹部"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
-msgstr ""
+msgstr "脳後方窩"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
-msgstr ""
+msgstr "脳"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
-msgstr ""
+msgstr "初期値"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
-msgstr ""
+msgstr "肺気腫"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
-msgstr ""
+msgstr "虚血-硬、コントラストなし"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
-msgstr ""
+msgstr "虚血-軟、コントラストなし"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
-msgstr ""
+msgstr "喉頭"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
-msgstr ""
+msgstr "肝"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
-msgstr ""
+msgstr "肺 - 軟"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
-msgstr ""
+msgstr "肺 - 硬"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
-msgstr ""
+msgstr "縦隔"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
-msgstr ""
+msgstr "手動"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
-msgstr ""
+msgstr "骨盤"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
-msgstr ""
+msgstr "洞"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
-msgstr ""
+msgstr "血管 - 硬"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
-msgstr ""
+msgstr "血管 - 軟"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
-msgstr ""
+msgstr "輪郭"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
-msgstr ""
+msgstr "フロント"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
-msgstr ""
+msgstr "バック"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
-msgstr ""
+msgstr "トップ"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
-msgstr ""
+msgstr "ボトム"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
-msgstr ""
+msgstr "アイソメ (等角)"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
-msgstr ""
+msgstr "気道"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
-msgstr ""
+msgstr "気道 II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
-msgstr ""
+msgstr "白黒"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
-msgstr ""
+msgstr "骨 + 皮膚"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
-msgstr ""
+msgstr "骨 + 皮膚 II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
-msgstr ""
+msgstr "暗色の骨"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
-msgstr ""
+msgstr "光沢"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
-msgstr ""
+msgstr "光沢 II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
-msgstr ""
+msgstr "金色の骨"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
-msgstr ""
+msgstr "コントラスト高"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
-msgstr ""
+msgstr "コントラスト低"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
-msgstr ""
+msgstr "白地に軟"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
-msgstr ""
+msgstr "コントラスト中"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
-msgstr ""
+msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
-msgstr ""
+msgstr "シェーディングなし"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
-msgstr ""
+msgstr "鉛筆画風"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
-msgstr ""
+msgstr "白地に赤色"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
-msgstr ""
+msgstr "青色の皮膚"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
-msgstr ""
+msgstr "青色の皮膚 II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
-msgstr ""
+msgstr "軟部組織 + 皮膚"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
-msgstr ""
+msgstr "軟部組織 + 皮膚 II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
-msgstr ""
+msgstr "軟部組織 + 皮膚 III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
-msgstr ""
+msgstr "青色の軟部組織"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
-msgstr ""
+msgstr "軟部組織"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
-msgstr ""
+msgstr "標準"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
-msgstr ""
+msgstr "血管"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
-msgstr ""
+msgstr "血管 II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
-msgstr ""
+msgstr "血管 III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
-msgstr ""
+msgstr "血管 IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
-msgstr ""
+msgstr "黄色の骨"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
-msgstr ""
+msgstr "切断面"
+
+#: constants.py:671
+msgid "Select tracker:"
+msgstr "トラッカーを選択:"
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr "Claron MicronTracker"
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr "Polhemus FASTRAK"
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr "Polhemus ISOTRAK II"
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr "Polhemus PATRIOT"
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr "トラッカーをデバッグ"
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr "トラッカーを切断"
+
+#: constants.py:679
+msgid "Static ref."
+msgstr "静的 ref."
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr "動的 ref."
+
+#: constants.py:689
+msgid "LEI"
+msgstr "LEI"
+
+#: constants.py:690
+msgid "REI"
+msgstr "REI"
+
+#: constants.py:691
+msgid "NAI"
+msgstr "NAI"
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "画像の左耳を選択"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "画像の右耳を選択"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "画像の鼻根点を選択"
+
+#: constants.py:701
+msgid "LET"
+msgstr "LET"
+
+#: constants.py:702
+msgid "RET"
+msgstr "RET"
+
+#: constants.py:703
+msgid "NAT"
+msgstr "NAT"
+
+#: constants.py:704
+msgid "SET"
+msgstr "SET"
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr "スペシャルトラッカーで左耳を選択"
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr "スペシャルトラッカーで右耳を選択"
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr "スペシャルトラッカーで鼻根点を選択"
 
-#: control.py:304
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr "画像に設定した座標を表示"
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
-msgstr ""
-
-#: control.py:421
-msgid "Untitled"
-msgstr ""
+msgstr "%d 中 %d ファイルを読み込み中..."
 
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
-msgstr ""
+msgstr "次の度数を適用してガントリの傾きを修正"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
-msgstr ""
+msgstr "線長"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
-msgstr ""
+msgstr "角度"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
-msgstr ""
+msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
-msgstr ""
+msgstr "軸位"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
-msgstr ""
+msgstr "冠状"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
-msgstr ""
+msgstr "矢状"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
-msgstr ""
+msgstr "マスク"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
-msgstr ""
+msgstr "3Dサーフェス"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
-msgstr ""
+msgstr "測定結果"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "新しい測定結果を作成"
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "測定結果を除去"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "測定結果を複写"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
-msgstr ""
+msgstr "長さ測定"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
-msgstr ""
+msgstr "角度測定"
+
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "新しいマスクを作成"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "マスクを除去"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "マスクを複写"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
-msgstr ""
+msgstr "名前"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
-msgstr ""
+msgstr "マスク"
+
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "新しいサーフェスを作成"
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "サーフェスを除去"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "サーフェスを複写"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "サーフェスファイルを読み込む"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
-msgstr ""
+msgstr "新しいサーフェス"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
-msgstr ""
+msgstr "容積 (mm³)"
+
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "面積 (mm²)"
 
-#: data_notebook.py:766
+#: data_notebook.py:805
 msgid "Transparency"
-msgstr ""
+msgstr "透明度"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
-msgstr ""
+msgstr "場所"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
-msgstr ""
+msgstr "タイプ"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
-msgstr ""
+msgstr "値"
 
 #: default_tasks.py:151
 msgid "Data"
-msgstr ""
+msgstr "データ"
 
 #: default_tasks.py:244 default_tasks.py:250
 msgid "Load data"
-msgstr ""
+msgstr "データ読み込み"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
-msgstr ""
+msgstr "ROIの選択"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
-msgstr ""
+msgstr "3Dサーフェスの設定"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
-msgstr ""
+msgstr "データ書き出し"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr ""
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr "ナビゲーションシステム"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
-msgstr ""
+msgstr "軸位断"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
-msgstr ""
+msgstr "冠状断"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
-msgstr ""
+msgstr "矢状断"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
-msgstr ""
+msgstr "ボリューム"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
-msgstr ""
+msgstr "プリセット名"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
-msgstr ""
+msgstr "レイキャストのプリセットを保存"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
-msgstr ""
+msgstr "ツール"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
-msgstr ""
+msgstr "値を適用する."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
-msgstr ""
+msgstr "値を適用しない."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
-msgstr ""
+msgstr "InVesaliusは32ビットOSで動作しているか、メモリが不足しています.サーフェスまたはボリュームレンダリングを行う場合は、医用画像の解像度を下げることを推奨します."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
-msgstr ""
+msgstr "元画像の解像度比"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
-msgstr ""
+msgstr "DICOMファイルを読み込み中"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
-msgstr ""
-
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
+msgstr "InVesalius 3プロジェクトを開く..."
 
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
-msgstr ""
+msgstr "DICOMフォルダを選択:"
+
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "TIFF、BMP、JPG、PNGフォルダを選択:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Analyze 7.5ファイル読み込み"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "NIFTi 1ファイル読み込み"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "PAR/RECファイル読み込み"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "サーフェスファイル読み込み"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
-msgstr ""
+msgstr "名前を付けてプロジェクトを保存..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
-msgstr ""
+msgstr "InVesaliusプロジェクト (*.inv3)|*.inv3"
+
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "名前を付けてマーカーを保存..."
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr "マーカーファイル (*.mks)|*.mks"
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "マーカー読み込み"
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
-msgstr ""
+msgstr "InVesaliusの新しいバージョンが利用可能です.今すぐダウンロードサイトを開きますか?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
-msgstr ""
+msgstr "InVesaliusをアップデート"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
-msgstr ""
+msgstr "プロジェクト %s は変更されています.\n上書き保存しますか?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
-msgstr ""
+msgstr "%s は空のフォルダです."
+
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "選択されたフォルダにBMP、JPG、PNG、TIFF画像はありません."
 
-#: dialogs.py:466
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
-msgstr ""
+msgstr "選択したフォルダにDICOMファイルはありません."
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr "無効なファイルです."
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "警告! InVesaliusはAnalyze形式の一部しかサポートしていません.\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr "スライスの向きが正しくない可能性があり、機能が正しく動作しないかもしれません。"
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
-msgstr ""
+msgstr "サーフェスを作成するにはマスクが必要です."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
-msgstr ""
+msgstr "除去されたマスクはありません."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
-msgstr ""
+msgstr "除去されたサーフェスはありません."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
-msgstr ""
+msgstr "除去された計測結果はありません."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
-msgstr ""
+msgstr "重複したマスクはありません."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
-msgstr ""
+msgstr "重複したサーフェスはありません."
+
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr "基準は無効です.6つの座標を選択してください."
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr "トラッキングデバイスが未選択"
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr "はインストールされていません."
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr "切断されています."
 
-#: dialogs.py:581
+#: dialogs.py:760
+msgid " is not connected."
+msgstr "は接続されていません."
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr "TXTファイルは無効です."
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr "データが未選択"
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr "本当にすべてのマーカーを削除しますか?"
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr "マーカーIDを編集"
+
+#: dialogs.py:857
 msgid "New mask name:"
-msgstr ""
+msgstr "新しいマスク名:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
-msgstr ""
+msgstr "作成されたマスクの名前"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
-msgstr ""
+msgstr "しきい値のプリセット:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
-msgstr ""
+msgstr "カスタム"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
-msgstr ""
+msgstr "%s は存在しません."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
-msgstr ""
+msgstr "3D再構成には複数のDICOMファイルが必要です"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr ""
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
 " InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
 "\n"
 " Contact: invesalius at cti.gov.br"
-msgstr ""
+msgstr "InVesaliusはCTやMRIで撮像した2DのDICOMファイルを3D再構成する医用画像解析プログラムです.InVesaliusでは3Dのボリュームやサーフェスをメッシュファイルとして書き出し、付加製造技術 (3Dプリント) を使って、患者の解剖学的物理モデルを作成できます. このソフトウェアはヘナト・アーシェル情報技術研究所 (CTI) 、国家科学技術開発審議会 (CNPq) 、ブラジル保健省によって開発されました.\n\nInVesaliusは研究目的でのみ利用可能です.ヘナト・アーシェル情報技術研究所は本ソフトウェアの使用で生じた損害について責任を負いません.\n\n連絡先: invesalius at cti.gov.br"
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
-msgstr ""
+msgstr "GNU GPL (General Public License) version 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
-msgstr ""
+msgstr "名前を付けてレイキャストのプリセットを保存:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
-msgstr ""
+msgstr "新しいサーフェス名:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
-msgstr ""
+msgstr "作成するサーフェスの名前を付ける"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
-msgstr ""
+msgstr "参照マスク:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
-msgstr ""
+msgstr "表面精度"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
-msgstr ""
+msgstr "穴埋め"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
-msgstr ""
+msgstr "最大領域を保存"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
-msgstr ""
+msgstr "BMP画像"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
-msgstr ""
+msgstr "JPG画像"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
-msgstr ""
+msgstr "PNG画像"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
-msgstr ""
+msgstr "PostScriptファイル"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
-msgstr ""
+msgstr "POV-Rayファイル"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
-msgstr ""
+msgstr "TIFF画像"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
-msgstr ""
+msgstr "サーフェス作成オプション"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
-msgstr ""
+msgstr "サーフェスを作成"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
-msgstr ""
+msgstr "サーフェス作成オプション"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
-msgstr ""
+msgstr "サーフェス作成方法"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
-msgstr ""
+msgstr "オプション"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
-msgstr ""
+msgstr "角度:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
-msgstr ""
+msgstr "最大:距離"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
-msgstr ""
+msgstr "最小ウェイト:"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
-msgstr ""
+msgstr "段数:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
-msgstr ""
+msgstr "コンテキスト認識スムージング"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
-msgstr ""
+msgstr "バイナリ"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
-msgstr ""
+msgstr "マスクが編集されたため、初期設定は利用できません."
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
-msgstr ""
+msgstr "メソッド:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
-msgstr ""
+msgstr "メソッド"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
-msgstr ""
+msgstr "ガウスシグマ"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
-msgstr ""
+msgstr "ウォーターシェッド"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
-msgstr ""
+msgstr "ブーリアン演算"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
-msgstr ""
+msgstr "和"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
-msgstr ""
+msgstr "差"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
-msgstr ""
+msgstr "積"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
-msgstr ""
+msgstr "排他的論理和"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
-msgstr ""
+msgstr "マスク 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
-msgstr ""
+msgstr "オペレーション"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
+msgstr "マスク 2"
+
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr "画像の向き変更"
+
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
+#: dialogs.py:1885
+msgid "Trilinear"
 msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
+#: dialogs.py:1886
+msgid "Tricubic"
 msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
 msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "適用する"
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "X角"
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Y角"
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Z角"
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
 msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr "ビットマップからプロジェクト作成"
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "プロジェクト名:"
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr "スライスの向き:"
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr "矢状断"
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr "間隔 (mm):"
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr ""
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr "すべてのビットマップの高さと幅は\n同じでなければなりません."
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr ""
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr "2D - 現在のスライス"
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr "3D - すべてのスライス"
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr "2D接続性"
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "向き"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr "3D接続性"
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "WWとWLを考慮"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr "偏差"
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr "最小:"
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr "最大:"
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr "乗数"
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr "反復"
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "パラメータ"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr "マスクされたパーツを選択"
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr "ターゲットのマスク名"
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr "リージョングローイング"
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr "ダイナミック"
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr "秘密"
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr "マスクを裁断"
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr "軸位:"
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr "-"
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr "矢状:"
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr "冠状:"
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr "最大の穴のサイズ"
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr "ボクセル"
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr "名称未設定"
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
-msgstr ""
+msgstr "%d 画像"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
-msgstr ""
-
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
+msgstr "画像 %d"
 
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
-msgstr ""
+msgstr "データパネル"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
-msgstr ""
+msgstr "再構成する医用画像をプレビュー"
+
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr "再構成されたビットマップをプレビュー"
 
-#: frame.py:177
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
-msgstr ""
+msgstr "PACSからDICOMをリトリーブ"
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr "ナビゲーションモードは現在、ウィンドウ上でのみ動作しています"
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "自動で穴埋め"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr "Analyze 7.5"
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr "NIfTI 1"
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr "PAR/REC"
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
-msgstr ""
+msgstr "DICOM読み込み...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
-msgstr ""
+msgstr "その他のファイル形式の読み込み..."
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
-msgstr ""
+msgstr "プロジェクトを開く...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
-msgstr ""
+msgstr "プロジェクトを保存\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
-msgstr ""
+msgstr "プロジェクトを閉じる"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
-msgstr ""
+msgstr "終了\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
-msgstr ""
+msgstr "アンドゥ\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
-msgstr ""
+msgstr "リドゥ\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
-msgstr ""
+msgstr "マスクを消去\tCtrl+Shift+A"
+
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "手動で穴埋め"
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr "パーツを除去"
+
+#: frame.py:802
+msgid "Select parts"
+msgstr "パーツを選択"
+
+#: frame.py:807
+msgid "Crop"
+msgstr "裁断"
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr "手動による領域分割"
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr "右方 - 左方"
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr "前方 - 後方"
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr "トップ - ボトム"
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr "右方-左方から前方-後方へ"
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr "右方-左方からトップ-ボトムへ"
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr "前方-後方からトップ-ボトムへ"
+
+#: frame.py:832
+msgid "Flip"
+msgstr "フリップ"
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr "軸位を入れ替え"
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr "画像の向き変更\tCtrl+Shift+R"
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr "領域分割"
 
-#: frame.py:685
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr "補間されたスライス"
+
+#: frame.py:883
 msgid "Preferences..."
-msgstr ""
+msgstr "設定..."
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr "ナビゲーションモード"
+
+#: frame.py:896
 msgid "Getting started..."
-msgstr ""
+msgstr "はじめに..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
-msgstr ""
+msgstr "InVesaliusについて..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
-msgstr ""
+msgstr "ファイル"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
-msgstr ""
+msgstr "編集"
+
+#: frame.py:909
+msgid "View"
+msgstr "ビュー"
 
-#: frame.py:706
+#: frame.py:913
+msgid "Mode"
+msgstr "モード"
+
+#: frame.py:914
 msgid "Help"
-msgstr ""
+msgstr "ヘルプ"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
-msgstr ""
+msgstr "Ready"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
-msgstr ""
+msgstr "DICOMファイルの読み込み...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
-msgstr ""
+msgstr "InVesaliusプロジェクトを開く..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
-msgstr ""
+msgstr "InVesaliusプロジェクトを保存"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
-msgstr ""
+msgstr "拡大"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
-msgstr ""
+msgstr "エリアを選択して拡大"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
-msgstr ""
+msgstr "回転"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
-msgstr ""
+msgstr "移動"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
-msgstr ""
+msgstr "WL調整"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
-msgstr ""
+msgstr "スライスをスクロール"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
-msgstr ""
+msgstr "クロスライン"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
-msgstr ""
+msgstr "タスクパネルを非表示"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
-msgstr ""
+msgstr "文字を隠す"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
-msgstr ""
+msgstr "タスクパネルを表示"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
-msgstr ""
+msgstr "文字を表示"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
-msgstr ""
+msgstr "アンドゥ"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
-msgstr ""
+msgstr "リドゥ"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
-msgstr ""
+msgstr "MPR画像を生成中..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
-msgstr ""
+msgstr "読み込み"
+
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "パス"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr "幅 x 高さ"
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "InVesaliusデータベース"
 
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
-msgstr ""
+msgstr "患者名"
 
 #: import_network_panel.py:240 import_panel.py:225
 msgid "Patient ID"
-msgstr ""
+msgstr "患者ID"
 
 #: import_network_panel.py:241 import_panel.py:226
 msgid "Age"
-msgstr ""
+msgstr "年齢"
 
 #: import_network_panel.py:242 import_panel.py:227
 msgid "Gender"
-msgstr ""
+msgstr "性別"
 
 #: import_network_panel.py:243 import_panel.py:228
 msgid "Study description"
-msgstr ""
+msgstr "スタディの説明"
 
 #: import_network_panel.py:244 import_panel.py:229
 msgid "Modality"
-msgstr ""
+msgstr "モダリティ"
 
 #: import_network_panel.py:245 import_panel.py:230
 msgid "Date acquired"
-msgstr ""
+msgstr "取得日"
 
 #: import_network_panel.py:246 import_panel.py:231
 msgid "# Images"
-msgstr ""
+msgstr "# 画像"
 
 #: import_network_panel.py:247 import_panel.py:232
 msgid "Institution"
-msgstr ""
+msgstr "施設"
 
 #: import_network_panel.py:248 import_panel.py:233
 msgid "Date of birth"
-msgstr ""
+msgstr "生年月日"
 
 #: import_network_panel.py:249 import_panel.py:234
 msgid "Accession Number"
-msgstr ""
+msgstr "受付番号"
 
 #: import_network_panel.py:250 import_panel.py:235
 msgid "Referring physician"
-msgstr ""
-
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
+msgstr "依頼医師"
 
 #: import_network_panel.py:497
 msgid "Word"
-msgstr ""
+msgstr "単語"
 
 #: import_network_panel.py:504
 msgid "Search"
-msgstr ""
+msgstr "検索"
 
 #: import_network_panel.py:663
 msgid "Active"
-msgstr ""
+msgstr "アクティブ"
 
 #: import_network_panel.py:664
 msgid "Host"
-msgstr ""
+msgstr "ホスト"
 
 #: import_network_panel.py:665
 msgid "Port"
-msgstr ""
+msgstr "ポート"
 
 #: import_network_panel.py:666
 msgid "AETitle"
-msgstr ""
+msgstr "AEタイトル"
 
 #: import_network_panel.py:667
 msgid "Status"
-msgstr ""
+msgstr "状況"
 
 #: import_network_panel.py:694
 msgid "Add"
-msgstr ""
+msgstr "追加"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
-msgstr ""
+msgstr "除去"
 
 #: import_network_panel.py:696
 msgid "Check status"
-msgstr ""
+msgstr "状況確認"
 
 #: import_network_panel.py:769
 msgid "ok"
-msgstr ""
+msgstr "ok"
 
 #: import_network_panel.py:771
 msgid "error"
-msgstr ""
+msgstr "エラー"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
-msgstr ""
+msgstr "言語を選択"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
-msgstr ""
+msgstr "表示言語を選択"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
-msgstr ""
+msgstr "選択された領域を分析中..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
-msgstr ""
+msgstr "切断された領域を分割中..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
-msgstr ""
+msgstr "プリファレンス"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr ""
+msgid "2D Visualization"
+msgstr "2Dを可視化"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "3Dを可視化"
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
-msgstr ""
+msgstr "言語"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
-msgstr ""
+msgstr "サーフェス"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
-msgstr ""
+msgstr "補間"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
-msgstr ""
+msgstr "ボリュームレンダリング"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
-msgstr ""
+msgstr "レンダリング"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
-msgstr ""
+msgstr "GPU利用 (NVIDIA製ビデオカードのみ)"
+
+#: preferences.py:152
+msgid "Slices"
+msgstr "スライス"
 
-#: preferences.py:150
+#: preferences.py:155
+msgid "Interpolated "
+msgstr "補間された"
+
+#: preferences.py:159
+msgid "Yes"
+msgstr "はい"
+
+#: preferences.py:159
+msgid "No"
+msgstr "いいえ"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
-msgstr ""
+msgstr "言語設定が変更されました \n次回起動時に反映されます."
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
-msgstr ""
+msgstr "軟部組織"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
-msgstr ""
+msgstr "歯のエナメル質 (成人)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
-msgstr ""
+msgstr "歯のエナメル質 (小児)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
-msgstr ""
+msgstr "緻密骨 (成人)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
-msgstr ""
+msgstr "緻密骨 (小児)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
-msgstr ""
+msgstr "海綿骨 (成人)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
-msgstr ""
+msgstr "海綿骨 (小児)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
-msgstr ""
+msgstr "筋組織 (成人)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
-msgstr ""
+msgstr "筋組織 (小児)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
-msgstr ""
+msgstr "脂肪組織 (成人)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
-msgstr ""
+msgstr "脂肪組織 (小児)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
-msgstr ""
+msgstr "上皮組織 (成人)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
-msgstr ""
+msgstr "上皮組織 (小児)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
-msgstr ""
+msgstr "差"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
-msgstr ""
+msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
-msgstr ""
+msgstr "Normal"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
-msgstr ""
+msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
-msgstr ""
+msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
-msgstr ""
+msgstr "MeanIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
-msgstr ""
+msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
-msgstr ""
+msgstr "MaxIP輪郭抽出"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
-msgstr ""
+msgstr "MIDA輪郭抽出"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
-msgstr ""
+msgstr "ウィンドウ幅とレベル"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
-msgstr ""
+msgstr "疑似カラー"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
-msgstr ""
+msgstr "投影方法"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
-msgstr ""
+msgstr "前景"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
-msgstr ""
+msgstr "背景"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
-msgstr ""
+msgstr "ウォーターシェッドを適用中..."
+
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "穴埋め"
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr "穴埋め中..."
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr "パートを除去"
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr "パートを除去中..."
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr "領域分割中..."
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "InVesaliusで認識されないファイル形式"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr "サーフェス読み込みエラー"
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr "このサーフェスは読み込めませんでした"
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
-msgstr ""
+msgstr "サーフェスを作成中..."
 
 #: task_exporter.py:109
 msgid "Export InVesalius screen to an image file"
-msgstr ""
+msgstr "スクリーンを画像ファイルに書き出す"
 
 #: task_exporter.py:111
 msgid "Export picture..."
-msgstr ""
+msgstr "画像を書き出す..."
 
 #: task_exporter.py:122
 msgid "Export 3D surface"
-msgstr ""
+msgstr "サーフェス書き出し"
 
 #: task_exporter.py:123
 msgid "Export 3D surface..."
-msgstr ""
+msgstr "サーフェスを書き出す..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
+msgstr "名前を付けてサーフェスを保存..."
+
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
 msgstr ""
 
-#: task_exporter.py:339
-msgid "You need to create a surface and make it "
+#: task_exporter.py:337
+msgid "Error saving surface"
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:343
+msgid "You need to create a surface and make it "
+msgstr "サーフェスを作成してから作成する必要があります"
+
+#: task_exporter.py:344
 msgid "visible before exporting it."
-msgstr ""
+msgstr "書き出す前に表示します."
 
 #: task_generic.py:65
 msgid "Testing..."
-msgstr ""
+msgstr "検査中..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr ""
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr "再構成するDICOM、Analyze、NIfTI、REC/PARファイルを選択してください"
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr ""
+msgid "Import medical images..."
+msgstr "医用画像を読み込む..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
-msgstr ""
+msgstr "既存のInVesaliusプロジェクトを開く..."
 
 #: task_importer.py:88
 msgid "Open an existing project..."
-msgstr ""
+msgstr "プロジェクトを開く..."
 
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
-msgstr ""
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr "基準点を選択してナビゲート"
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "ニューロナビゲーション"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "別のツール"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr "ボリュームのカメラを更新"
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr "ボリュームカメラ"
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr "マーカーを作成する外部トリガーを有効にする"
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr "外部トリガー"
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr "トラッキングデバイスを選択"
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr "ナビゲーション参照モードを選択"
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr "FRE:"
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr "基準点の登録エラー"
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr "ナビゲーションを開始"
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr "ナビゲート"
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr "トラッカーの設定中..."
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr "ニューロナビゲーションを停止"
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr "ニューロナビゲーションを開始"
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr "マーカーを作成"
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "保存"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "読み込み"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "非表示"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "すべてを削除"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "ID編集"
 
 #: task_slice.py:86
+msgid "Create mask for slice segmentation and editing"
+msgstr "スライスの領域分割と編集用のマスクを作成"
+
+#: task_slice.py:87
 msgid "Create new mask"
-msgstr ""
+msgstr "新しいマスクを作成"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
-msgstr ""
+msgstr "サーフェスを作成"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
-msgstr ""
+msgstr "最後に作成したサーフェスを上書き"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
-msgstr ""
+msgstr "マスクの設定"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
-msgstr ""
+msgstr "手動で編集"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
-msgstr ""
+msgstr "定義済みまたは手動によるしきい値設定:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
-msgstr ""
+msgstr "ブラシのタイプ、サイズ、操作を選択"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
-msgstr ""
+msgstr "円形"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
-msgstr ""
+msgstr "正方形"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
-msgstr ""
+msgstr "ブラシを適用するしきい値範囲:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
-msgstr ""
-
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
+msgstr "マスクを上書き"
 
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
-msgstr ""
+msgstr "ウォーターシェッドを3Dに拡張"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
-msgstr ""
+msgstr "マスクを基にサーフェス作成"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
-msgstr ""
+msgstr "新しいサーフェスを作成"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
-msgstr ""
+msgstr "次のステップ"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
-msgstr ""
+msgstr "サーフェスのプロパティ"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
-msgstr ""
+msgstr "高度なオプション"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
-msgstr ""
+msgstr "最大切断領域を自動選択して新しいサーフェスを作成"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
-msgstr ""
+msgstr "最大領域のサーフェスを選択"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
-msgstr ""
+msgstr "切断された領域を自動選択して領域ごとに新しいサーフェスを作成"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
-msgstr ""
+msgstr "切断されたサーフェスをすべて分割"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
-msgstr ""
+msgstr "ROIのシーズを手動挿入して新しいサーフェスを作成"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
-msgstr ""
+msgstr "ROIを選択..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
-msgstr ""
+msgstr "透明度:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
-msgstr ""
+msgstr "間引かれた解像度:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
-msgstr ""
+msgstr "滑らかな反復:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
-msgstr ""
+msgstr "長さ測定"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
-msgstr ""
+msgstr "測定"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
-msgstr ""
+msgstr "注釈を追加"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr "トラッカーの接続解除中..."
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
-msgstr ""
+msgstr "可視化合成に使用されるスライス数."
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
-msgstr ""
+msgstr "輪郭のシャープネスをコントロールします。 値が大きいほど輪郭が鮮明になります."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
-msgstr ""
+msgstr "逆順にする"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
-msgstr ""
+msgstr "チェックすると、スライスは昇順ではなく降順にトラバースされ、可視化合成されます."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
-msgstr ""
+msgstr "スライス数"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
-msgstr ""
+msgstr "シャープネス"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
-msgstr ""
+msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
-msgstr ""
+msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
-msgstr ""
+msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
-msgstr ""
+msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
-msgstr ""
+msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
-msgstr ""
+msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
-msgstr ""
+msgstr "AL"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
-msgstr ""
+msgstr "RA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
-msgstr ""
+msgstr "PR"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
-msgstr ""
+msgstr "LP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
-msgstr ""
+msgstr "LA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
-msgstr ""
+msgstr "AR"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
-msgstr ""
+msgstr "RP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
-msgstr ""
+msgstr "PL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
-msgstr ""
+msgstr "TL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
-msgstr ""
+msgstr "RT"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
-msgstr ""
+msgstr "BR"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
-msgstr ""
+msgstr "LB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
-msgstr ""
+msgstr "LT"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
-msgstr ""
+msgstr "TR"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
-msgstr ""
+msgstr "RB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
-msgstr ""
+msgstr "BL"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
-msgstr ""
+msgstr "TA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
-msgstr ""
+msgstr "PT"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
-msgstr ""
+msgstr "BP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
-msgstr ""
+msgstr "AB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
-msgstr ""
+msgstr "AT"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
-msgstr ""
+msgstr "TP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
-msgstr ""
+msgstr "PB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
+msgstr "BA"
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2326,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/ko.po b/po/ko.po
index ce9c0b0..fc1f6c0 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -6,14 +6,15 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
+# jangblue <jangblue at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Korean (http://www.transifex.com/projects/p/invesalius3/language/ko/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Korean (http://www.transifex.com/invesalius/invesalius3/language/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,28 +24,66 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "화상크기: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "간격: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "위치: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\n인베쌀리우스 제작"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "이미지"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "골"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "자동실행"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
-msgstr ""
+msgstr "값: %-6d"
 
 #: clut_raycasting.py:536
 #, python-format
 msgid "Alpha: %-.3f"
-msgstr ""
+msgstr "알파: %-.3f"
 
 #: constants.py:32
 #, python-format
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
-msgstr "차단"
+msgstr "끄기"
 
 #: constants.py:45
 msgid "Red-blue"
-msgstr ""
+msgstr "적-청"
 
 #: constants.py:46
 msgid "CristalEyes"
@@ -52,13 +91,13 @@ msgstr ""
 
 #: constants.py:47
 msgid "Interlaced"
-msgstr ""
+msgstr "격자형"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "좌"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "우"
 
@@ -72,588 +111,797 @@ msgstr ""
 
 #: constants.py:52
 msgid "Anaglyph"
-msgstr ""
+msgstr "입체 사진"
 
 #: constants.py:105
 msgid "Keep all slices"
-msgstr "슬라이스 전부 보존"
+msgstr "모든 슬라이스 유지"
 
 #: constants.py:105
 msgid "Skip 1 for each 2 slices"
-msgstr "2슬라이스마다 1개 뛰여넘기"
+msgstr "2슬라이스마다 1개 생략"
 
 #: constants.py:106
 msgid "Skip 2 for each 3 slices"
-msgstr "3슬라이스마다 2개 뛰여넘기"
+msgstr "3슬라이스마다 2개 생략"
 
 #: constants.py:106
 msgid "Skip 3 for each 4 slices"
-msgstr "4슬라이스마다 3개 뛰여넘기"
+msgstr "4슬라이스마다 3개 생략"
 
 #: constants.py:107
 msgid "Skip 4 for each 5 slices"
-msgstr "5슬라이스마다 4개 뛰여넘기"
+msgstr "5슬라이스마다 4개 생략"
 
 #: constants.py:107
 msgid "Skip 5 for each 6 slices"
-msgstr "6슬라이스마다 5개 뛰여넘기"
+msgstr "6슬라이스마다 5개 생략"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
-msgstr "기정"
+msgstr "기본값"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
-msgstr "색채"
+msgstr "색상"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "채도"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "사막"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "무지개"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "대양"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
-msgstr "회색반전"
-
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "골격"
+msgstr "회색 반전"
 
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "마스크 %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "그리기"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "지우기"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
-msgstr "림계값"
+msgstr "임계값"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
-msgstr "낮은"
+msgstr "저"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
-msgstr "중간"
+msgstr "중"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
-msgstr "높은"
+msgstr "고"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
-msgstr "최량의"
+msgstr "최적"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "표면 %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "복부"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
-msgstr ""
+msgstr "뇌 후와"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
-msgstr "뇌수"
+msgstr "뇌"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
-msgstr "기정"
+msgstr "기본값"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
-msgstr "식로"
+msgstr "기종"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
-msgstr ""
+msgstr "허혈 - 강, 비 대조"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
-msgstr ""
+msgstr "허혈 - 약, 비 대조"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "후두"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "간"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
-msgstr "페 - 약"
+msgstr "폐 - 약"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
-msgstr "페 - 강"
+msgstr "폐 - 강"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
-msgstr "격막"
+msgstr "종격"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "수동"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "골반"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
-msgstr "오목이"
+msgstr "동"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
-msgstr "막관구조 - 강"
+msgstr "맥관 - 강"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
-msgstr "막관구조 - 약"
+msgstr "맥관 - 약"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
-msgstr ""
+msgstr "외형"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
-msgstr "앞"
+msgstr "전방"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
-msgstr "뒤"
+msgstr "후방"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "상"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "하"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
-msgstr "등척성의"
+msgstr "등척성"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
-msgstr "숨길"
+msgstr "기도"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
-msgstr "숨길 II"
+msgstr "기도 II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "흑백"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "골격 + 피부"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "골격 + 피부 II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "광택"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "광택 II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
-msgstr ""
+msgstr "강 대조"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
-msgstr ""
+msgstr "저 대조"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
-msgstr ""
+msgstr "중 대조"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "연필"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "연함 + 피부"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "연함 + 피부 II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "연함 + 피부 III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "부드러움"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
-msgstr "포준"
+msgstr "표준"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
-msgstr "혈관"
+msgstr "맥관"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
-msgstr "혈관 II"
+msgstr "맥관 II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
-msgstr "혈관 III"
+msgstr "맥관 III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
-msgstr "혈관 IV"
+msgstr "맥관 IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
-msgstr "자름면"
+msgstr "절단면"
 
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "제목없음"
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
 
-#: control.py:559
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
+#, python-format
+msgid "Loading file %d of %d ..."
+msgstr "파일 읽는 중 %d / %d ..."
+
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "아래 등급을 적용하여 뼈대경사를 고정"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "선형"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "안각의"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3차원"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "축성방향"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "두정방향"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "시상방향"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "마스크"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
-msgstr ""
+msgstr "3차원 면"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "측정"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "측정거리"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "측정각도"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "이름"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "마스크"
 
-#: data_notebook.py:628 task_surface.py:140
-msgid "New surface"
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
+msgid "New surface"
+msgstr "새 면"
+
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "체적 (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "투명도"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "위치"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "형태"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "값"
 
 #: default_tasks.py:151
 msgid "Data"
-msgstr "자료"
+msgstr "데이터"
 
 #: default_tasks.py:244 default_tasks.py:250
 msgid "Load data"
-msgstr ""
+msgstr "데이터 읽기"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
-msgstr "관심령역 선택"
+msgstr "관심 영역 선택"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
-msgstr "3차원 표면구성"
+msgstr "3차원 면 구성"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
-msgstr "자료 반출"
+msgstr "데이터 내보내기"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "이동체계를 리용"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
-msgstr "축성슬라이스"
+msgstr "수평 단면"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
-msgstr "두정슬라이스"
+msgstr "전두 단면"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
-msgstr "시상슬라이스"
+msgstr "시상 단면"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "공간"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "미리설정 이름"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "광선주사 미리설정값 보관"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "도구"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "값이 적용됩니다."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "값이 적용되지 않습니다."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
-msgstr "DICOM파일 로딩"
+msgstr "DICOM 파일 로딩 중"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
-msgstr "인베쌀리우스3 프로젝트 열기 ..."
+msgstr "InVesalius 3 프로젝트 열기 ..."
 
-#: dialogs.py:243
-msgid "Open Analyze file"
+#: dialogs.py:275
+msgid "Choose a DICOM folder:"
+msgstr "DICOM 폴더 선택"
+
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
 msgstr ""
 
-#: dialogs.py:281
-msgid "Choose a DICOM folder:"
-msgstr "DICOM등록부 선택:"
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
-msgstr "새 이름으로 프로젝트 보관 ..."
+msgstr "다른 이름으로 프로젝트 저장 ..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
-msgstr "인베쌀리우스 프로젝트 (*.inv3)|*.inv3"
+msgstr "InVesalius 프로젝트 (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
-msgstr ""
+msgstr "새 버전의 InVesalius가 나왔습니다. 다운로드 할 웹 사이트를 열겠습니까?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
-msgstr ""
+msgstr "InVesalius 업데이트"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
-msgstr "%s의 프로젝트 변경되였습니다. \n보관하시겠습니까?"
+msgstr "프로젝트 %s 이(가) 변경되었습니다.\n저장하시겠습니까?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
+msgstr "%s 은(는) 빈 폴더입니다."
+
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
+msgstr "선택한 폴더에는 DICOM 파일이 없습니다."
+
+#: dialogs.py:635
+msgid "Invalid file."
 msgstr ""
 
-#: dialogs.py:477
-msgid "A mask is needed to create a surface."
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:661
+msgid "A mask is needed to create a surface."
+msgstr "면을 생성하려면 마스크가 필요합니다."
+
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "새 마스크 이름:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "생성하려는 마스크에 이름을 지정"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "림계값 예상"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "관례"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s가 존재하지 않습니다."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "3차원재생성을 위해 한개이상의 DICOM파일들을 제공하십시요."
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -662,352 +910,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License) 버젼 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "광선주사초기설정값을 보관:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "새 표면이름:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "생성하려는 표면이름지정"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "참조마스크"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "표면품질"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "구멍 채우기"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "가장큰 령역 유지"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "BMP 화상"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "JPG 화상"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "PNG 화상"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "PostScript 문서"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "POV-RAY 파일"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "TIFF 화상"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "이름없는"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "화상크기: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "간격: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "위치: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\n인베쌀리우스 제작"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "이미지"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "이미지 %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "자동실행"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "자료패널"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "재생성되는 의학자료 미리보기"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "DICOM 입력 ...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "시스템에 대하여 ..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "파일"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "도움말"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "대기"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "인베쌀리우스 프로젝트보관"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "확대"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "선택된 부분확대"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "회전"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "이동"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "대조도"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "슬라이스 스크롤"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "슬라이스 교차공통부분"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "과제패널 숨기기"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "본문 숨기기"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "과제패널 보이기"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "본문 보이기"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "다중평면시각화 생성중 ..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "인베쌀리우스 자료기지"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "환자이름"
@@ -1056,10 +1561,6 @@ msgstr "가입번호"
 msgid "Referring physician"
 msgstr "련계내과의사"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "인베쌀리우스 자료기지"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1092,7 +1593,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1108,174 +1609,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "언어선택"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "사용자대면부언어를 선택"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
+msgstr ""
+
+#: preferences.py:42
+msgid "3D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "부드러운 조직"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "에나멜질 (어른)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "에나멜질 (미성년자)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "치밀골격 (어른)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "치밀골격 (미성년자)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "성긴골격 (어른)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "성긴 골격 (미성년자)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "근육조직 (어른)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "근육조직 (미성년자)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "지방조직 (어른)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "지방조직 (미성년자)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "피부조직 (어른)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "피부조직 (미성년자)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1295,15 +1848,23 @@ msgstr "3차원 표면 반출"
 msgid "Export 3D surface..."
 msgstr "3차원 표면 반출 ..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "3차원 표면으로 보관하기 ..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "그것을 반출하기전에 시각화하기"
 
@@ -1312,11 +1873,11 @@ msgid "Testing..."
 msgstr "테스트중 ..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1327,325 +1888,424 @@ msgstr "존재하는 인베쌀리우스 프로젝트 열기 ..."
 msgid "Open an existing project..."
 msgstr "존재하는 프로젝트 열기 ..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr ""
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "슬라이스 토막화 및 편집을 위한 마스크창조"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "새 마스크창조"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "이전표면을 덧쓰기"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "마스크 속성"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "미리정의된 혹은 수동림계값 설정"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "붓형태, 크기, 동작을 선택:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "원"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "정방혁"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "붓림계범위"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "마스크에 기초한 3차원표면 창조"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "다음 단계"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "표면 속성"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "개선된 옵션"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "자동적으로 가장 큰 비련결령역을 선택하고 새 표면 창조"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "모든 비련결된 표면들을 가르기"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "관심령역선택 ..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "투명도"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "10분의1 해상도낮추기"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "부드럽게 반복:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "측정거리"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "측정"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "텍스트 주해 추가"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1662,11 +2322,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/ms.po b/po/ms.po
index 4c94b55..eccb238 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -10,10 +10,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Malay (http://www.transifex.com/projects/p/invesalius3/language/ms/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Malay (http://www.transifex.com/invesalius/invesalius3/language/ms/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,6 +23,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr ""
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr ""
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr ""
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Tulang"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr ""
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -38,7 +76,7 @@ msgstr ""
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr "Padam"
 
@@ -54,11 +92,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Kiri"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Kanan"
 
@@ -98,382 +136,511 @@ msgstr "Langkau 4 untuk setiap 5 kepingan"
 msgid "Skip 5 for each 6 slices"
 msgstr "Langkau 5 untuk setiap 6 kepingan"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Mungkir"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Corak"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Penepuan"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Gurun"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Pelangi"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Lautan"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Kelabu songsang"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Tulang"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Topeng %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Lukis"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Padam"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Ambang"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Rendah"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Sederhana"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Tinggi"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Optimum"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr " %d permukaan"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdomen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Otak"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Mungkir"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Emphysema"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Halkum"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Hati"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Paru-paru-Lembut"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Paru-paru-Keras"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr ""
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manual"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Tulang Punggung"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Rongga"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vasculature - Keras"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vasculature - Lembut"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Hadapan"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Kembali"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Atas"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Bawah"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isometrik"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr ""
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr ""
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Hitam & Putih"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Tulang & Kulit"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Tulang & Kulit II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Gilap"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Gilap II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Pensil"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Lembut + Kulit"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Lembut + Kulit II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Lembut + Kulit III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Lembut"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Tahap"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Pembuluh"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Pembuluh II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Pembuluh III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Pembuluh IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Satah Pemotong"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Tanpa Tajuk"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Baiki kemiringan gantri menggunakan darjah-darjah di bawah"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "lurus"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Bersudut"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Paksi"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Korona"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagital"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Topeng"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Ukuran"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Jarak Ukuran"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Sudut Ukuran"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nama"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Topeng"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Isipadu (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Lut Sinaran"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Lokasi"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Jenis"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Nilai"
 
@@ -485,175 +652,255 @@ msgstr "Data"
 msgid "Load data"
 msgstr ""
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Pilih Rantau Kepentingan"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "konfigurasi Permukaan 3D"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Eksport data"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Konfigurasi Permukaan 3D"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Kepingan paksi"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Kepingan korona"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr ""
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr ""
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr ""
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr ""
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr ""
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr ""
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr ""
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr ""
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr ""
 
-#: dialogs.py:243
-msgid "Open Analyze file"
+#: dialogs.py:275
+msgid "Choose a DICOM folder:"
 msgstr ""
 
-#: dialogs.py:281
-msgid "Choose a DICOM folder:"
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
 msgstr ""
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr ""
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr ""
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr ""
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr ""
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr ""
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr ""
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr ""
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "ukuran"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr ""
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr ""
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -662,352 +909,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr ""
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr ""
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr ""
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr ""
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr ""
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr ""
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr ""
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr ""
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr ""
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr ""
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr ""
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr ""
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr ""
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr ""
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
+#: dialogs.py:1870
+msgid "Image reorientation"
 msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
 msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
 msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
 msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
 msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
 msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr ""
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr ""
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr ""
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr ""
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr ""
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr ""
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr ""
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr ""
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr ""
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr ""
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr ""
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr ""
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr ""
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr ""
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr ""
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr ""
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr ""
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr ""
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr ""
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr ""
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr ""
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr ""
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr ""
@@ -1056,10 +1560,6 @@ msgstr ""
 msgid "Referring physician"
 msgstr ""
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1092,7 +1592,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1108,174 +1608,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr ""
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr ""
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr ""
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr ""
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr ""
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr ""
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr ""
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr ""
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr ""
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr ""
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr ""
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr ""
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr ""
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr ""
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr ""
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1295,15 +1847,23 @@ msgstr ""
 msgid "Export 3D surface..."
 msgstr ""
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr ""
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr ""
 
@@ -1312,11 +1872,11 @@ msgid "Testing..."
 msgstr ""
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1327,325 +1887,424 @@ msgstr ""
 msgid "Open an existing project..."
 msgstr ""
 
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
 msgstr ""
 
 #: task_slice.py:86
+msgid "Create mask for slice segmentation and editing"
+msgstr ""
+
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr ""
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr ""
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr ""
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr ""
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr ""
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr ""
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr ""
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr ""
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr ""
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr ""
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr ""
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr ""
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr ""
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr ""
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr ""
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr ""
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr ""
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr ""
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr ""
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr ""
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr ""
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1662,11 +2321,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/nl.po b/po/nl.po
index 150a6de..8f28c0e 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,10 +10,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Dutch (http://www.transifex.com/projects/p/invesalius3/language/nl/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Dutch (http://www.transifex.com/invesalius/invesalius3/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,6 +23,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr ""
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr ""
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr ""
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr ""
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr ""
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -38,7 +76,7 @@ msgstr ""
 msgid "M %d"
 msgstr ""
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr ""
 
@@ -54,11 +92,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr ""
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr ""
 
@@ -98,382 +136,511 @@ msgstr ""
 msgid "Skip 5 for each 6 slices"
 msgstr ""
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr ""
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr ""
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr ""
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr ""
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr ""
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr ""
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr ""
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr ""
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr ""
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr ""
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr ""
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr ""
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr ""
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr ""
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr ""
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr ""
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr ""
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr ""
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr ""
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr ""
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr ""
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr ""
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr ""
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr ""
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr ""
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr ""
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr ""
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr ""
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr ""
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr ""
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr ""
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr ""
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr ""
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr ""
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr ""
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr ""
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr ""
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr ""
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr ""
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr ""
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr ""
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr ""
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr ""
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr ""
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr ""
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr ""
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr ""
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr ""
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr ""
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr ""
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr ""
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr ""
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr ""
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr ""
 
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
+#: constants.py:674
+msgid "Disconnect tracker"
 msgstr ""
 
-#: control.py:559
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
+#, python-format
+msgid "Loading file %d of %d ..."
+msgstr ""
+
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr ""
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr ""
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr ""
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr ""
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr ""
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr ""
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr ""
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr ""
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr ""
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr ""
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr ""
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr ""
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr ""
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr ""
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr ""
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr ""
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr ""
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr ""
 
@@ -485,175 +652,255 @@ msgstr ""
 msgid "Load data"
 msgstr ""
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr ""
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr ""
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr ""
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
 msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr ""
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr ""
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr ""
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr ""
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr ""
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr ""
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr ""
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr ""
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr ""
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr ""
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr ""
 
-#: dialogs.py:243
-msgid "Open Analyze file"
+#: dialogs.py:275
+msgid "Choose a DICOM folder:"
 msgstr ""
 
-#: dialogs.py:281
-msgid "Choose a DICOM folder:"
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
 msgstr ""
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr ""
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr ""
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr ""
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr ""
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr ""
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr ""
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr ""
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr ""
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr ""
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr ""
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -662,352 +909,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr ""
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr ""
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr ""
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr ""
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr ""
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr ""
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr ""
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr ""
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr ""
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr ""
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr ""
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr ""
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr ""
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr ""
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
+#: dialogs.py:1870
+msgid "Image reorientation"
 msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
 msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
 msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
 msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
 msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
 msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr ""
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr ""
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr ""
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr ""
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr ""
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr ""
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr ""
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr ""
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr ""
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr ""
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr ""
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr ""
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr ""
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr ""
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr ""
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr ""
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr ""
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr ""
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr ""
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr ""
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr ""
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr ""
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr ""
@@ -1056,10 +1560,6 @@ msgstr ""
 msgid "Referring physician"
 msgstr ""
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1092,7 +1592,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1108,174 +1608,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr ""
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr ""
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr ""
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr ""
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr ""
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr ""
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr ""
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr ""
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr ""
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr ""
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr ""
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr ""
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr ""
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr ""
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr ""
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1295,15 +1847,23 @@ msgstr ""
 msgid "Export 3D surface..."
 msgstr ""
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr ""
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr ""
 
@@ -1312,11 +1872,11 @@ msgid "Testing..."
 msgstr ""
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1327,325 +1887,424 @@ msgstr ""
 msgid "Open an existing project..."
 msgstr ""
 
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
 msgstr ""
 
 #: task_slice.py:86
+msgid "Create mask for slice segmentation and editing"
+msgstr ""
+
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr ""
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr ""
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr ""
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr ""
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr ""
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr ""
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr ""
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr ""
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr ""
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr ""
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr ""
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr ""
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr ""
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr ""
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr ""
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr ""
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr ""
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr ""
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr ""
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr ""
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr ""
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1662,11 +2321,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/pt.po b/po/pt.po
index 1e562dd..c0111a0 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,15 +7,15 @@
 # Translators:
 # Translators:
 # bolligerneto <bolligerneto at yahoo.com.br>, 2011
-# InVesalius <invesalius at cti.gov.br>, 2015
+# InVesalius <invesalius at cti.gov.br>, 2015,2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-09 12:10+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Portuguese (http://www.transifex.com/projects/p/invesalius3/language/pt/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Portuguese (http://www.transifex.com/invesalius/invesalius3/language/pt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -25,6 +25,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Tamanho da imagem: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Espaçamento: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Localização: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nCriado com InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Imagem"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Osso"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Reproduzir"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -40,7 +78,7 @@ msgstr "Alfa: %-.3f"
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr "Desactivado"
 
@@ -56,11 +94,11 @@ msgstr "CristalEyes"
 msgid "Interlaced"
 msgstr "Entrelaçado"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Esquerda"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Direita"
 
@@ -100,382 +138,511 @@ msgstr "Desprezar 4 de cada 5 cortes"
 msgid "Skip 5 for each 6 slices"
 msgstr "Desprezar 5 de cada 6 cortes"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Predeterminado"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Matiz"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturação"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Deserto"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Arco-íris"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Oceano"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Cinzento invertido"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Osso"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Máscara %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Desenhar"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Apagar"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Limiar"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Baixa"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Média"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Alta"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Óptima *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Superfície %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdómen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr "Fossa posterior do cérebro"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Cérebro"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Predeterminado"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Enfisema"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr "Isquemia - Densidade alta, sem contraste"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr "Isquemia - Densidade baixa, sem contraste"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Laringe"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Fígado"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Pulmão - Densidade Alta"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Pulmão - Densidade Baixa"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastino"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manual"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pelve"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Seio"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vasos - Densidade Alta"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vasos - Densidade Baixa"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr "Contorno"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Anterior"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Posterior"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Superior"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Inferior"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isométrica"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Vias Aéreas"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Vias Aéreas II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Preto e Branco"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Osso + Pele"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Osso + Pele II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr "Osso escuro"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Brilhante"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Brilhante II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr "Osso dourado"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr "Contraste alto"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr "Contraste baixo"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr "Densidade baixa sobre fundo branco"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr "Contraste médio"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr "Sem sombreamento"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Lápis"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr "Vermelho sobre fundo branco"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr "Pele sobre fundo azul"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr "Pele sobre fundo azul II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Densidade baixa + Pele"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Densidade baixa + Pele II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Densidade baixa + Pele III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr "Densidade baixa sobre fundo azul"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Densidade baixa"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Padrão"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vascular"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vascular II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vascular III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vascular IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr "Osso amarelo"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Plano de corte"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr "NAI"
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Selecionar orelha esquerda na imagem"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Selecionar orelha direita na imagem"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "Selecionar osso nasal na imagem"
+
+#: constants.py:701
+msgid "LET"
+msgstr "OER"
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr "A carregar ficheiro %d de %d ..."
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Sem título"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Corrigir inclinação (\"gantry tilt\") aplicando o valor angular abaixo"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Linear"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Angular"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "Em três dimensões"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Axial"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronal"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagital"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Máscaras"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr "Superfícies em três dimensões"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Medidas"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Medir distância"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Medir ângulo"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nome"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Máscara"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr "Superfície nova"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volume (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Transparência"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Localização"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Tipo"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Valor"
 
@@ -487,175 +654,255 @@ msgstr "Dados"
 msgid "Load data"
 msgstr "Carregar dados"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Seleccionar região de interesse"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configurar superfície em três dimensões"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Exportar dados"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Utilizar sistema de navegação"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Corte axial"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Corte coronal"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Corte sagital"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volume"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Nome da configuração prévia"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Guardar a configuração prévia de \"raycasting\""
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Ferramentas"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Aplicar-se-á o valor."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "Não se aplicará o valor."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr "Está-se a executar o InVesalius em sistema operacional de 32 bits\nou não há memória suficiente disponível. Se desejas trabalhar com superfícies 3D\nou renderização volumétrica, recomenda-se diminuir a resolução das imagens médicas."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr "Porcentagem da resolução original"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "A carregar ficheiros DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Abrir projecto do InVesalius 3..."
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr "Abrir ficheiro do Analyze"
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Escolher um directório DICOM:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Guardar projecto como..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "Projecto do InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr "Uma nova versão do InVesalius está disponível. Gostarias de abrir a página para descarregé-la?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr "Actualização do InVesalius"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "O projecto %s foi modificado.\nGuardar com as alterações?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr "%s é um directório vazio."
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr "Não há ficheiros DICOM no directório seleccionado."
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr "Uma máscara é necessária para se criar uma superfície."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr "Nenhuma máscara foi seleccionada para remoção."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr "Nenhuma superfície foi seleccionada para remoção."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr "Nenhuma medida foi seleccionada para remoção."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr "Nenhuma máscara foi seleccionada para duplicação."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr "Nenhuma superfície foi seleccionada para duplicação."
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nome da máscara nova:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Nomear a máscara a se criar"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Configuração prévia de limiar:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Personalizado"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s não existe."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Favor fornecer mais de um ficheiro DICOM para reconstrução em três dimensões"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr "(r) 2007-2015 Centro de Tecnologia da Informação Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -664,352 +911,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr "O InVesalius é um programa para reconstrução 3D de \nimagens médicas a partir de uma sequência de imagens \nDICOM 2D, obtidas com equipamentos de TC ou RM. O InVesalius permite a exportação de volumes 3D ou superfícies para a criação de modelos físicos da anatomia de um paciente utilizando as tecnologias de manufatura aditiva (impressão 3D). Este software é desenvolvido pelo Centro de Tecnologia da Informação Renato Archer (CTI), Conselho Nacional de Desenvolvimento Científico e  [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "Licença GNU GPL (Licença Pública Geral) versão 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Guardar a definição prévia de \"raycasting\" como:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Nome da superfície nova:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Nomear a superfície a se criar"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Máscara de referência:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Qualidade da superfície:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Preencher lacunas"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Manter a região máxima"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Imagem no formato BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Imagem no formato JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Imagem no formato PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Documento PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "Ficheiro POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Imagem no formato TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr "Opções de geração da superfície"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr "Criação da superfície"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr "Opções de criação da superfície"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr "Método de criação da superfície"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr "Opções"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr "Ângulo:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr "Distância máxima:"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr "Peso mínimo:"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr "Número de passos:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr "Suavização sensível ao contexto"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr "Binário"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr "Não se pode utilizar o método Padrão porque a máscara foi editada."
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr "Método:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr "Método"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr "Sigma da gaussiana"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr "Watershed"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr "Operações booleanas"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr "União"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr "Diferença"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr "Intersecção"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr "Disjunção exclusiva"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr "Máscara 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr "Operação"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr "Máscara 2"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "inominado"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Tamanho da imagem: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Espaçamento: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Localização: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nCriado com InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Imagem"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Considerar brilho e contraste"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr "%d imagens"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Imagem %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Reproduzir"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Painel de dados"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Visão prévia dos dados médicos a serem reconstruídos"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr "Recuperar DICOM a partir de PACS"
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Importar DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr "Importar outros ficheiros..."
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr "Abrir projecto...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr "Guardar projecto\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr "Fechar projecto"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr "Sair\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr "Desfazer\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr "Refazer\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr "Limpar máscara\tCtrl+Shift+A"
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr "Preferências..."
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr "Primeiros passos..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Acerca de..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Ficheiro"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr "Editar"
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "Ajuda"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Pronto"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr "Importar ficheiros DICOM...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr "Abrir projecto do InVesalius..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Guardar projecto do InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Zoom"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Zoom baseado na selecção"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Rodar"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Mover"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Contraste"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Alterar cortes"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Cruz para intersecção de cortes"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Esconder barra de tarefas"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Esconder texto"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Mostrar barra de tarefas"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Mostrar texto"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr "Desfazer"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr "Refazer"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "A gerar visão em planos múltiplos..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr "Importar"
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Base de dados do InVesalius"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Nome do paciente"
@@ -1058,10 +1562,6 @@ msgstr "Número de acesso"
 msgid "Referring physician"
 msgstr "Médico solicitante"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Base de dados do InVesalius"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr "Palavra"
@@ -1094,7 +1594,7 @@ msgstr "Status"
 msgid "Add"
 msgstr "Adicionar"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr "Remover"
 
@@ -1110,174 +1610,226 @@ msgstr "ok"
 msgid "error"
 msgstr "erro"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Selecção de idioma"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Seleccionar o idioma da interface do utilizador"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr "A analisar regiões seleccionadas..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr "A separar regiões desconexas..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr "Preferências"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr "Visualização"
+msgid "2D Visualization"
+msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr "Idioma"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr "Superfície"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr "Interpolação"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr "Renderização de volume"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr "Renderização"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr "GPU (apenas para placas NVidia"
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr "Aplicar-se-ão as configurações de idioma\nna próxima iniciação do InVesalius"
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Tecidos moles"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Esmalte (Adulto)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Esmalte (Criança)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Osso Compacto (Adulto)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Osso Compacto (Criança)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Osso Esponjoso (Adulto)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Osso Esponjoso (Criança)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Tecido Muscular (Adulto)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Tecido Muscular (Criança)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Tecido Adiposo (Adulto)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Tecido Adiposo (Criança)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Tecido Epitelial (Adulto)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Tecido Epitelial (Criança)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr "Diff"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr "Normal"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr "MeanIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr "Contorno MaxIP"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr "Contorno MIDA"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr "Largura e nível da janela"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr "Pseudo Cor"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr "Tipo de projeção"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr "Objecto"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr "Fundo"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr "Aplicando watershed ..."
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr "A gerar superfície em três dimensões..."
 
@@ -1297,15 +1849,23 @@ msgstr "Exportar superfície em três dimensões"
 msgid "Export 3D surface..."
 msgstr "Exportar superfície em três dimensões..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Guardar superfície em três dimensões como..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr "É necessário criar uma superfície e fazê-la "
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "visível antes de exportá-la."
 
@@ -1314,12 +1874,12 @@ msgid "Testing..."
 msgstr "A experimentar..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr "Selecione arquivos DICOM para serem reconstruídos"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr "Importar DICOM...\tCtrl+I"
+msgid "Import medical images..."
+msgstr ""
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1329,325 +1889,424 @@ msgstr "Abrir um projecto existente do InVesalius..."
 msgid "Open an existing project..."
 msgstr "Abrir um projecto existente..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr ""
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Criar máscara para segmentação e edição de cortes"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Criar máscara nova"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr "Criar superfície"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Sobrescrever a última superfície"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Propriedades da máscara"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr "Edição manual"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Configurar limiar pré-definido ou manual:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Escolher tipo, tamanho ou operação do pincel:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Círculo"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Quadrado"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Limiar do pincel:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr "Sobrescrever máscara"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr "Considerar brilho e contraste"
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr "Expandir watershed para 3D"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Criar superfície em três dimensões com base em uma máscara"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr "Criar nova superfície em três dimensões"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Próximo passo"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Propriedades da superfície"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Opções avançadas"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Seleccionar automaticamente a região desconexa máxima e criar superfície nova"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr "Seleccionar a superfície máxima"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr "Seleccionar automaticamente regiões desconexas e criar uma superfície nova por região"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Separar todas as superfícies desconexas"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr "Inserir manualmente sementes nas regiões de interesse e criar uma superfície nova"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Seleccionar regiões de interesse..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Transparência:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Resolução de decimação:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Iterações de suavização:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Medir distâncias"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Medir"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Adicionar notas em texto"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr "Número de fatias usadas para compor a visualização"
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr "Controla a nitidez do contorno. Quanto maior o valor, maior a nitidez do contorno."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr "Ordem invertida"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr "Se selecionado, as fatias são percorridas em ordem decrescente para compor a visualização em vez de ordem crescente."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr "Número de fatias"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr "Nitidez"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "D"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "E"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "S"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "I"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr "AE"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr "DA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr "PD"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr "EP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr "EA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr "AD"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr "DP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr "PE"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr "SE"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr "DS"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr "ID"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr "EI"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr "ES"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr "SD"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr "DI"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr "IE"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr "SA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr "PS"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr "IP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr "AI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr "AS"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr "SP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr "PI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr "IA"
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1664,11 +2323,5 @@ msgstr "IA"
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index aadaefd..6520b77 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,15 +6,17 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
+# InVesalius <invesalius at cti.gov.br>, 2017
 # tfmoraes <totonixsame at gmail.com>, 2015
+# tfmoraes <totonixsame at gmail.com>, 2015,2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-09 12:07+0000\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:09+0000\n"
 "Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/invesalius3/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/invesalius/invesalius3/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,6 +26,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Tamanho da imagem: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Espaçamento: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Localização: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\n Criado com InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Imagem"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Osso"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Reproduzir"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -39,7 +79,7 @@ msgstr "Alfa: %-.3f"
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr " Desabilitado"
 
@@ -55,11 +95,11 @@ msgstr "CristalEyes"
 msgid "Interlaced"
 msgstr "Entrelaçado"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Esquerda"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Direita"
 
@@ -99,382 +139,511 @@ msgstr "Pular 4 a cada 5 fatias"
 msgid "Skip 5 for each 6 slices"
 msgstr "Pular 5 a cada 6 fatias"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Padrão "
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Matiz"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturação"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Deserto"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Arco-íris"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Oceano"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Cinza invertido"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Osso"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Máscara %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Desenhar"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Apagar"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Limiar"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Baixa"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Média"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Alta"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Ótima *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Superfície %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdômen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr "Fossa cerebral posterior"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Cérebro"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Padrão"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Enfisema"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr "Isquemia - Sem contraste, tecidos duros"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr "Isquemia - Sem contraste, tecidos moles"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Laringe"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Fígado"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Pulmão - Mole"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Pulmão - Duro"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastino"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manual"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pélvis"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Seio"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vasculatura - Duro"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vasculatura - Mole"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr "Contorno"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Frente"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Atrás"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Topo"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Base"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isométrica"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Vias aéreas"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Vias aéreas II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Preto e branco"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Osso + Pele"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Osso + Pele II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr "Osso escuro"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Brilhante"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Brilhante II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr "Osso dourado"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr "Contraste alto"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr "Contraste baixo"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr "Mole sobre branco"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr "Contraste médio"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr "Sem sombreamento"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Lápis"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr "Vermelho sobre branco"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr "Pele sobre azul"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr "Pele sobre azul II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Mole + Pele"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Mole + Pele II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Mole + Pele III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr "Mole sobre azul"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Mole"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Padrão"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vascular"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vascular II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vascular III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vascular IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr "Osso amarelo"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Plano de corte"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr "Selecione o rastreador:"
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr "Claron MicronTracker"
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr "Polhemus FASTRAK"
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr "Polhemus ISOTRAK II"
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr "Polhemus PATRIOT"
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr "Depurar rastreador"
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr "Desconectar rastreador"
+
+#: constants.py:679
+msgid "Static ref."
+msgstr "Ref. estática"
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr "Ref. dinâmica"
+
+#: constants.py:689
+msgid "LEI"
+msgstr "OEI"
+
+#: constants.py:690
+msgid "REI"
+msgstr "ODI"
+
+#: constants.py:691
+msgid "NAI"
+msgstr "NAI"
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Selecionar orelha esquerda na imagem"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Selecionar orelha direita na imagem"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "Selecionar naso na imagem"
+
+#: constants.py:701
+msgid "LET"
+msgstr "OER"
+
+#: constants.py:702
+msgid "RET"
+msgstr "ODR"
+
+#: constants.py:703
+msgid "NAT"
+msgstr "NAR"
+
+#: constants.py:704
+msgid "SET"
+msgstr "SET"
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr "Selecionar orelha esquerda com o rastreador"
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr "Selecionar orelha direita com o rastreador"
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr "Selecionar naso com o rastreador"
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr "Exibir coordenadas setadas na imagem"
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr "Carregando arquivo %d de %d ..."
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Sem título"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Corrigir inclinação (gantry tilt) aplicando o seguinte valor"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Linear"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Angular"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Axial"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronal"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagital"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Máscaras"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr "Superfícies 3D"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Medições"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "Criar nova medida"
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "Remover medida"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "Duplicar medida"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Medir distância"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Medir ângulo"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "Criar nova máscara"
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "Remover máscara"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "Duplicar máscara"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nome"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Máscara"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "Criar nova superfície"
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Remover superfície"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Duplicar superfície"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "Importar um arquivo de superfície no InVesalius"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr "Nova superfície"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volume (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Área (mm²)"
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Transparência"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Local"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Tipo"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Valor"
 
@@ -486,175 +655,255 @@ msgstr "Dados"
 msgid "Load data"
 msgstr "Carregue os dados"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Selecione a região de interesse"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configure a superfície 3D"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Exporte os dados"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Sistema de neuronavegação"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr "Sistema de navegação"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Fatia axial"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Fatia coronal"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Fatia sagital"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Volume"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Nome do pré-ajuste"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Salvar pré-ajuste de raycasting"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Ferramentas"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "O valor será aplicado."
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "O valor não será aplicado."
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr "O InVesalius está sendo executado sobre um sistema operacional de 32 bits\nou não dispõe de memória suficiente. Se você deseja trabalhar com superfícies 3D\nou renderização volumétrica, recomenda-se diminuir a resolução das imagens médicas."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr "Porcentagem da resolução original"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Carregando arquivos DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Abrir projeto do InVesalius 3"
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr "Abrir arquivo Analyze"
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Selecione uma pasta DICOM:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Selecionar uma pasta com TIFF, BMP, JPG ou PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Importar arquivo Analyze 7.5"
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "Importar arquivo NIFTi 1"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "Importar arquivo PAR/REC"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "Importar arquivo superfície"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Salvar projeto como..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "Projeto do InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "Salvar marcadores como..."
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr "Arquivo de marcador (*.mks)|*.mks"
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "Carregar marcadores"
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr "Uma nova versão do InVesalius está disponível. Você gostaria de abrir a página de download?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr "Atualização do InVesalius"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "O projeto %s foi modificado.\n Deseja salvar as alterações?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr "%s é uma pasta vazia."
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "Não existem arquivos Bitmap, JPEG, PNG ou TIFF  na pasta selecionada."
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr "Não há arquivos DICOM na pasta selecionada."
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr "Arquivo inválido."
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "Atenção! InVesalius tem suporte limitado ao formato Analyze.\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr "Fatias podem estar orientadas erroneamente e a função pode não ser executada corretamente."
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr "É necessário ter uma máscara para criar uma superfície."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr "Nenhuma máscara foi selecionada para remoção."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr "Nenhuma superfície foi selecionada para remoção."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr "Nenhum medida foi selecionada para remoção."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr "Nenhuma máscara foi selecionada para duplicação."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr "Nenhuma superície foi selecionada para duplicação."
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr "Fiduciais estão inválidos. Selecionar seis coordenadas."
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr "Dispositivo de rastreamento não selecionado."
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr "não está instalado."
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr "desconectado."
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr "não está conectado."
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr "O TXT não é válido."
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr "Dado não selecionado"
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr "Você realmente gostaria de apagar todos os marcadores?"
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr "Editar ID do marcador"
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nome da nova máscara:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Nome da máscara a ser criada"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Pré-ajuste de limiar:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Personalizado"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s não existe."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "São necessários mais arquivos DICOM para a reconstrução 3D."
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr "(c) 2007-2015 Centro de Tecnologia da Informação Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr "(c) 2007-2017 Centro de Tecnologia da Informação Renato Archer - CTI"
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -663,352 +912,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr "O InVesalius é um programa para reconstrução 3D de \nimagens médicas a partir de uma sequência de imagens \nDICOM 2D, obtidas com equipamentos de TC ou RM. O InVesalius permite a exportação de volumes 3D ou superfícies para a criação de modelos físicos da anatomia de um paciente utilizando as tecnologias de manufatura aditiva (impressão 3D). Este software é desenvolvido pelo Centro de Tecnologia da Informação Renato Archer (CTI), Conselho Nacional de Desenvolvimento Científico e  [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (Licença Pública Geral) versão 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Salvar pré-ajuste de raycasting como:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Nome da nova superfície:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Nome da superfície a ser criada"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Máscara de referência:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Qualidade da superfície:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Preencher buracos"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Manter maior região"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Imagem BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Imagem JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Imagem PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Documento PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "Arquivo POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Imagem TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr "Opções de geração de superfície"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr "Criação de superfície"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr "Opções de criação de superfície"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr "Método de criação de superfície"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr "Opções"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr "Ângulo"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr "Distância máxima"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr "Peso mínimo"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr "Número de passos"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr "Suavização sensível ao contexto"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr "Binário"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr "Não é possível usar o método Padrão porque a máscara foi editada."
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr "Método"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr "Método"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr "Sigma da gaussiana"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr "Watershed"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr "Operações booleanas"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr "União"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr "Diferença"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr "Intersecção"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr "Disjunção exclusiva"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr "Máscara 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr "Operação"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr "Máscara 2"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "sem_nome"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr "Reorientação da imagem"
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Tamanho da imagem: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr "Vizinho mais próximo"
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Espaçamento: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr "Trilinear"
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Localização: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr "Tricúbica"
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr "Lanczos (experimental)"
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "Aplicar"
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "Ângulo X"
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Ângulo Y"
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Ângulo Z"
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr "Método de interpolação"
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr "Criar projeto a partir de bitmap"
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "Nome do projeto:"
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr "Orientação das fatias:"
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr "Sagital"
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr "Espaçamento (mm)"
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\n Criado com InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr "Todos os arquivos bitmap devem\nter as mesmas dimensões."
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Imagem"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr "2D - Fatia atual"
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr "3D - Todas as fatias"
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr "Conectividade 2D"
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "Orientação"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr "Conectividade 3D"
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Considerar brilho e contraste"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr "Desvio"
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr "Min:"
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr "Max:"
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr "Multiplicador"
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr "Iteração"
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "Parâmetro"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr "javascript:;Selecionar partes da máscara"
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr "Nome da máscara resultante"
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr "Crescimento de região"
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr "Dinâmico"
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr "Confidência"
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr "Cortar máscara"
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr "Axial:"
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr "-"
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr "Sagital:"
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr "Coronal:"
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr "Tamanho máximo do buraco"
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr "voxels"
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr "unnamed"
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr "%d imagens"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Imagem %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Reproduzir"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Painel de dados"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Visualizar os dados a reconstruir"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr "Pré-visualizar bitmap que serão reconstruídos"
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr "Recuperar DICOM a partir de PACS"
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr "Atualmente o modo de navegação pode ser executado somente em sistema operacional Windows."
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "Fechar buracos automaticamente"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr "Analyze 7.5"
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr "NIfTI 1"
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr "PAR/REC"
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Importar DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr "Importar outros arquivos..."
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr "Abrir projeto...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr "Salvar projeto\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr "Fechar projeto"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr "Sair\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr "Desfazer\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr "Refazer\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr "Limpar máscara\tCtrl+Shift+A"
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "Fechar buracos manualmente"
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr "Remover partes"
+
+#: frame.py:802
+msgid "Select parts"
+msgstr "Selecionar partes"
+
+#: frame.py:807
+msgid "Crop"
+msgstr "Cortar"
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr "Segmentação manual"
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr "Direita - Esquerda"
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr "Anterior - Posterior"
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr "Superior - Inferior"
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr "Da Direita para Anterior-Posterior"
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr "Da Direita-Esquerda para Superior-Inferior"
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr "Da Anterior-Posterior para Superior-Inferior"
+
+#: frame.py:832
+msgid "Flip"
+msgstr "Espelhar"
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr "Trocar eixos"
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr "Reorientar imagem\tCtrl+Shift+R"
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr "Segmentação"
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr "Fatias interpoladas"
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr "Preferências..."
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr "Modo navegação"
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr "Primeiros passos..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Sobre..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Arquivo"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr "Editar"
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr "Visualizar"
+
+#: frame.py:913
+msgid "Mode"
+msgstr "Modo"
+
+#: frame.py:914
 msgid "Help"
 msgstr "Ajuda"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Pronto"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr "Importar arquivos DICOM...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr "Abrir projeto InVesalius..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Salvar projeto InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Zoom"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Zoom baseado na seleção"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Rotacionar"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Mover"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Contraste"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Alterar fatias"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Cruz de interseção de fatias"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Esconder barra de tarefas"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Esconder texto"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Exibir barra de tarefas"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Exibir texto"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr "Desfazer"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr "Refazer"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Gerando visualização multiplanar..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr "Importar"
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "Caminho"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr "Largura x Altura"
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Banco de dados InVesalius"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Nome do paciente"
@@ -1057,10 +1563,6 @@ msgstr "Número de acesso"
 msgid "Referring physician"
 msgstr "Médico"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Banco de dados InVesalius"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr "Termo"
@@ -1093,7 +1595,7 @@ msgstr "Status"
 msgid "Add"
 msgstr "Adicionar"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr "Remover"
 
@@ -1109,174 +1611,226 @@ msgstr "OK"
 msgid "error"
 msgstr "Erro"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Seleção de idioma"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Selecione o idioma"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr "Analisando regiões selecionadas..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr "Separando regiões desconexas..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr "Preferências"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr "Visualização"
+msgid "2D Visualization"
+msgstr "Visualização 2D"
+
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "Visualização 3D"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr "Idioma"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr "Superfície"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr "Interpolação "
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr "Renderização volumétrica"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr "Renderização"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr "GPU (Somente em placas de vídeo NVidia)"
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr "Fatias"
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr "Interpolada"
+
+#: preferences.py:159
+msgid "Yes"
+msgstr "Sim"
+
+#: preferences.py:159
+msgid "No"
+msgstr "Não"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr "Configurações de idioma terão efeito \nna próxima vez em que o InVesalius iniciar."
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Tecidos moles"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Esmalte (Adulto)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Esmalte (Criança)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Osso compacto (Adulto)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Osso compacto (Criança)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Osso esponjoso (Adulto)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Osso esponjoso (Criança)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Tecido muscular (Adulto)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Tecido muscular (Criança)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Tecido gorduroso (Adulto)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Tecido gorduroso (Criança)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Tecido epitelial (Adulto)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Tecido epitelial (Criança)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr "Diff"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr "Normal"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr "MeanIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr "Contorno MaxIP"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr "Contorno MIDA"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr "Brilho e contraste"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr "Pseudo cor"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr "Tipo de projeção"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr "Objeto"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr "Fundo"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr "Aplicando watershed ..."
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "Fechar buraco"
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr "Fechando buraco ..."
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr "Remover parte"
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr "Removendo parte ..."
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr "Segmentando ..."
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "Formato de arquivo não suportado pelo InVesalius"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr "Erro ao importar superfície"
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr "InVesalius não pode importar essa superfície"
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr "Criando superfície 3D..."
 
@@ -1296,15 +1850,23 @@ msgstr "Exportar superfície 3D"
 msgid "Export 3D surface..."
 msgstr "Exportar superfície 3D..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Salvar superfície 3D como..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr "Não foi possível salvar a superfície"
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr "Erro ao salvar superfície"
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr "É necessário criar uma superfície e torná-la "
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "visível antes de exportá-la."
 
@@ -1313,12 +1875,12 @@ msgid "Testing..."
 msgstr "Testando..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr "Selecione arquivos DICOM para serem reconstruídos"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr "Selecionar arquivos DICOM, Analyze, NIfTI ou REC/PAR para serem reconstruídos"
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr "Importar imagens DICOM"
+msgid "Import medical images..."
+msgstr "Importar imagens médicas..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1328,325 +1890,424 @@ msgstr "Abrir um projeto InVesalius existente..."
 msgid "Open an existing project..."
 msgstr "Abrir um projeto existente..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr "Selecionar fiduciais e navegar"
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "Neuronavegação"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "Ferramentas extras"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr "Atualizar câmera no volume"
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr "Câmera do volume"
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr "Habilitar trigger externo para criação de marcadores"
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr "Trigger externo"
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr "Selecionar dispositivo de rastreamento"
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr "Selecionar modo de referência para navegação"
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr "FRE"
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr "Erro de registro fiducial"
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr "Iniciar navegação"
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr "Navegar"
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr "Configurando rastreador ..."
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr "Parar neuronavegação"
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr "Iniciar neuronavegação"
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr "Criar marcador"
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "Salvar"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "Carregar"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "Ocultar"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "Deletar tudo"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "Editar ID"
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Criar máscara para segmentação e edição de fatia"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Nome da nova máscara:"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr "Criar superfície"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Sobrescrever anterior"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Propriedades da máscara"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr "Edição manual"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Selecione ou edite o valor do limiar:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Tipo, tamanho e operação do pincel:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Círculo"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Quadrado"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Limiar do pincel:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr "Sobrescrever máscara"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr "Considerar brilho e contraste"
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr "Expandir watershed para 3D"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Criar superfície 3D baseada em máscara"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr "Criar nova superfície 3D"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Próximo passo"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Propriedades da superfície"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Opções avançadas"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Seleção automática de maior região desconexa e criação de nova superfície"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr "Separar maior superfície"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr "Seleção automática de regiões desconexas e criação de superfícies correspondentes"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Separar todas regiões desconexas"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr "Selecionar manualmente regiões de interesse por meio de sementes e criar uma nova superfície"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Selecionar regiões de interesse..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Transparência:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Resolução de decimação:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Iterações de suavização:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Medir distâncias"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Medição"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Adicionar anotações"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr "Desconectando rastreador ..."
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr "Número de fatias usadas para compor a visualização"
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr "Controla a nitidez do contorno. Quanto maior o valor, maior a nítidez do contorno."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr "Ordem invertida"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr "Se selecionado, as fatias são percorridas em ordem decrescente para compor a visualização em vez de ordem crescente."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr "Número de fatias"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr "Nitidez"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "D"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "E"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "S"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "I"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr "AE"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr "DA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr "PD"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr "EP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr "EA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr "AD"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr "DP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr "PE"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr "SE"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr "DS"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr "ID"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr "EI"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr "ES"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr "SD"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr "DI"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr "IE"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr "SA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr "PS"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr "IP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr "AI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr "AS"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr "SP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr "PI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr "IA"
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr "InVesalius não pode exportar essa figura"
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr "Erro ao exportar superfície"
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2324,5 @@ msgstr "IA"
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/ro.po b/po/ro.po
index 1abb2ef..3cce932 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,15 +6,16 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
+# Dan <dan_vlad at yahoo.com>, 2017
 # Florin Putura <puturaflorin at yahoo.com>, 2011
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Romanian (http://www.transifex.com/projects/p/invesalius3/language/ro/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Romanian (http://www.transifex.com/invesalius/invesalius3/language/ro/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,28 +25,66 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Dimensiunea imaginii: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Spațiere: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Locație: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nRealizat in InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Imagine"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Os"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Auto-redare"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
-msgstr ""
+msgstr "Valoare: %-6d"
 
 #: clut_raycasting.py:536
 #, python-format
 msgid "Alpha: %-.3f"
-msgstr ""
+msgstr "Alpha: %-.3f"
 
 #: constants.py:32
 #, python-format
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
-msgstr "Închis"
+msgstr "Închidere"
 
 #: constants.py:45
 msgid "Red-blue"
-msgstr ""
+msgstr "Rosu-albastru"
 
 #: constants.py:46
 msgid "CristalEyes"
@@ -55,11 +94,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Stânga"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Dreapta"
 
@@ -77,11 +116,11 @@ msgstr ""
 
 #: constants.py:105
 msgid "Keep all slices"
-msgstr "Păstrează toate feliile"
+msgstr "Păstrează toate sectiunile"
 
 #: constants.py:105
 msgid "Skip 1 for each 2 slices"
-msgstr "Treci la 1 pentru fiecare 2 felii"
+msgstr "Treci la 1 pentru fiecare 2 sectiuni"
 
 #: constants.py:106
 msgid "Skip 2 for each 3 slices"
@@ -99,382 +138,511 @@ msgstr "Treci la 4 pentru fiecare 5 felii"
 msgid "Skip 5 for each 6 slices"
 msgstr "Treci la 5 pentru fiecare 6 felii"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Implicit"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Nuanţa"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Saturație"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Deșert"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Curcubeu"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Ocean"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Inverseaza gri"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Os"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Mască %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Desenează"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Șterge"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Prag"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Mic"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Mediu"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Mare"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Optimă *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Suprafață %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Abdomen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
-msgstr ""
+msgstr "Fosa cerebrala posterioara"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Craniu"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Implicit"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Emfizemul pulmonar"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Laringe"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Ficat"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Plămân - Moale"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Plămân - Tare"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediastin"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manual"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pelvis"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Sinus"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vascularizare - Puternică"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vascularizare - Slabă"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "În față"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "În spate"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Deasupra"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Dedesupt"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "Isometric"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Căi respiratorii"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Căi respiratorii II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Alb și Negru"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Os + Piele"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Os + Piele II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Lucios"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Lucios II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Creion"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Estompat + Înveliș"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Estompat + Înveliș II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Estompat + Înveliș III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Estompat"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Standard"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vascular"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vascular II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vascular III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vascular IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Tăiere plan"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Selectati urechea stanga in imagine"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Selectati urechea dreapta in imagine"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "Selectati piramida nazala in imagine"
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Nedenumit"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Fixează scheletul înclinării aplicând gradele specificate mai jos"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Linear"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "Unghiular"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Axial"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Coronal"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagital"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Măști"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Măsuri"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Măsurare distanță"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Masurare unghi"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "Nume"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Mască"
 
-#: data_notebook.py:628 task_surface.py:140
-msgid "New surface"
+#: data_notebook.py:615
+msgid "Create a new surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Sterge suprafata"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Copiaza suprafata"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
+msgid "New surface"
+msgstr "Suprafata noua"
+
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Volum (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Arie (mm²)"
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Transparență"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Locație"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Tip"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Valoare"
 
@@ -484,177 +652,257 @@ msgstr "Dată"
 
 #: default_tasks.py:244 default_tasks.py:250
 msgid "Load data"
-msgstr ""
+msgstr "Incarcare date"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "Selectează regiune de interes"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "Configurare suprafață 3D"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Export date"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Utilizare sistemul de navigație"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Felie axială"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Felie coronală"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Felie sagitală"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "olum"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Nume presetat"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Salvează presetare pentru distribuția razei"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Unelte"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Valoare va fi aplicată"
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "Valoare nu va fi aplicată"
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
-msgstr ""
+msgstr "InVesalius ruleaza pe un sistem de operare pe 32 de biti sau nu are suficienta memorie. \nDaca doriti sa lucrati cu suprafete 3D sau sa executati generari tridimensionale, \neste recomandat sa reduceti rezolutia imaginilor medicale."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
-msgstr ""
+msgstr "Procent din rezolutia initiala"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "Încarcă fișierele DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "Deschide proiectul InVesalius 3:"
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Alege un fișier DICOM:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Alegeti un director care contine fisiere tip TIFF, BMP, JPG sau PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Salvează proiectul ca..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "Proiect InVesalius (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
-msgstr ""
+msgstr "O versiune noua a InVesalius este disponibila. Doriti sa accesati acum site-ul de descarcare?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
-msgstr ""
+msgstr "Actualizare Invesalius"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "Proiectul %s a fost modificat.⏎\nSalvezi schimbările?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
-msgstr ""
+msgstr "%s nu contine fisiere."
+
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "Nu exista fisiere tip Bitmap, JPEG, PNG sau TIFF in directorul selectat."
 
-#: dialogs.py:466
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
+msgstr "Nu exista fisiere tip DICOM in directorul selectat."
+
+#: dialogs.py:635
+msgid "Invalid file."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr "Sectiunile pot fi gresit orientate si functiile vor genera rezultate incorecte."
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
-msgstr ""
+msgstr "Nicio suprafata nu a fost selectata pentru stergere."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
-msgstr ""
+msgstr "Nicio dimensiune nu a fost selectata pentru stergere."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Nume pentru masca nouă:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Denumiți masca care va fi creată"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Prag prestabilit:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Obișnuit"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s nu există."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "Vă rugăam să ne furnizați mai mult de un fișier DICOM pentru reconstrucția 3D"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -663,352 +911,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (General Public License - Licență Publică Generală) versiunea 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Salvează presetare pentru distribuția razei ca:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Nume pentru suprafața nouă:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Denumiți suprafața care va fi creată"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Masca de referinţă:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Calitatea suprafeței:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Umple spațiile goale"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "Pastrează ceam mai mare regiune"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "Imagine BPM"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "Imagine JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "Imagine PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Document PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "Fișier POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "Imagine TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
-msgstr ""
+msgstr "Optiuni generare suprafata"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
-msgstr ""
+msgstr "Creare suprafata"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
-msgstr ""
+msgstr "Optiuni creare suprafata"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
-msgstr ""
+msgstr "Modalitate creare suprafata"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
-msgstr ""
+msgstr "Optiuni"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
-msgstr ""
+msgstr "Unghi:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
-msgstr ""
+msgstr "Metoda:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
-msgstr ""
+msgstr "Metoda"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
-msgstr ""
+msgstr "Diferenta"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
-msgstr ""
+msgstr "Intersectie"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "nenumit"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Mărimea imaginii: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Spațiere: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Locație: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "Aplica"
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "Unghi X"
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Unghi Y"
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Unghi Z"
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr "Creaza proiect din bitmap"
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "Nume proiect:"
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr "Sagital"
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s⏎ \nRealizat de InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Imagine"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr "2D - Sectiune actuala"
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr "3D - Toate sectiunile"
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "Orientare"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "Parametri"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr "Axial:"
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr "Sagital:"
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr "Coronal:"
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Imagine %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Auto-redare"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Panou date"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Previzualizare date medicale care trebuie reconstruite"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "Umple gaurile automat"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "Importă DICOM...»Ctrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
-msgstr ""
+msgstr "Importa alt tip de fisiere"
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
-msgstr ""
+msgstr "Deschide proiect ...\tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
-msgstr ""
+msgstr "Salveaza proiect\tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
-msgstr ""
+msgstr "Inchide proiect"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
-msgstr ""
+msgstr "Iesire\tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
-msgstr ""
+msgstr "Anuleaza\tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
-msgstr ""
+msgstr "Reexecuta\tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "Umple gauri manual"
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr "Sectiuni interpolate"
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Despre..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Fișier"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
+msgstr "Editare"
+
+#: frame.py:909
+msgid "View"
+msgstr "Vizualizare"
+
+#: frame.py:913
+msgid "Mode"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:914
 msgid "Help"
 msgstr "Ajutor"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Gata"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
-msgstr ""
+msgstr "Importa imagini DICOM ...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
-msgstr ""
+msgstr "Deschide proiect InVesalius ..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "Salvează proiect InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Zoom"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Zoom pe baza selecției"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Rotește"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Mișcă"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Contrast"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Derulare felii"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Felii interesectate în cruce"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Ascunde panou de activitate"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Ascunde text"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Arată panou de activitate"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Arată text"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
-msgstr ""
+msgstr "Anulare"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
-msgstr ""
+msgstr "Reexecuta"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Generează vizualizare multiplan..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
+msgstr "Importa"
+
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "Cale"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
 msgstr ""
 
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "Baza de date InVesalius"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Nume pacient"
@@ -1057,21 +1562,17 @@ msgstr "Număr de aderare"
 msgid "Referring physician"
 msgstr "Medicul care a făcut trimiterea"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "Baza de date InVesalius"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
 
 #: import_network_panel.py:504
 msgid "Search"
-msgstr ""
+msgstr "Cauta"
 
 #: import_network_panel.py:663
 msgid "Active"
-msgstr ""
+msgstr "Activ"
 
 #: import_network_panel.py:664
 msgid "Host"
@@ -1079,7 +1580,7 @@ msgstr ""
 
 #: import_network_panel.py:665
 msgid "Port"
-msgstr ""
+msgstr "Port"
 
 #: import_network_panel.py:666
 msgid "AETitle"
@@ -1091,11 +1592,11 @@ msgstr ""
 
 #: import_network_panel.py:694
 msgid "Add"
-msgstr ""
+msgstr "Adauga"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
-msgstr ""
+msgstr "Sterge"
 
 #: import_network_panel.py:696
 msgid "Check status"
@@ -1103,183 +1604,235 @@ msgstr ""
 
 #: import_network_panel.py:769
 msgid "ok"
-msgstr ""
+msgstr "ok"
 
 #: import_network_panel.py:771
 msgid "error"
-msgstr ""
+msgstr "eroare"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Selectare limbă"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Alegere limba pentru interfață utilizator"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
-msgstr ""
+msgstr "Preferinte"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr ""
+msgid "2D Visualization"
+msgstr "Vizualizare 2D"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "Vizualizare 3D"
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
-msgstr ""
+msgstr "Suprafata"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
-msgstr ""
+msgstr "Interpolare"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
+msgstr "GPU (numai pentru placa video NVidia)"
+
+#: preferences.py:152
+msgid "Slices"
+msgstr "Sectiuni"
+
+#: preferences.py:155
+msgid "Interpolated "
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:159
+msgid "Yes"
+msgstr "Da"
+
+#: preferences.py:159
+msgid "No"
+msgstr "Nu"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Țesut estompat"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Smalț (Adult)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Smalț (Copil)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Os Compact (Adult)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Os Compact (Copil)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Os Spongios (Adult)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Os Spongios (Copil)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Țesut Muscular (Adult)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Țesut Muscular (Copil)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Țesut gras (Adult)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Țesut Tissue (Child)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Țesut Piele (Adult)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Țesut Piele (Copil)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
-msgstr ""
+msgstr "Normal"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
-msgstr ""
+msgstr "Fundal"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
-msgid "Creating 3D surface..."
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "Umple gaura ..."
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
 msgstr ""
 
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "Formatul de fisier nu este recunoscut de InVesalius"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
+msgid "Creating 3D surface..."
+msgstr "Creare suprafata 3D"
+
 #: task_exporter.py:109
 msgid "Export InVesalius screen to an image file"
 msgstr "Exportă ecranul InVesalius ca imagine către un fișier"
@@ -1296,15 +1849,23 @@ msgstr "Exportă suprafață 3D"
 msgid "Export 3D surface..."
 msgstr "Exportă suprafață 3D..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "Salvează suprafața 3D ca..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "vizibili înainte să faceți exportul."
 
@@ -1313,12 +1874,12 @@ msgid "Testing..."
 msgstr "Testare..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr ""
+msgid "Import medical images..."
+msgstr "Import imagini medicale ..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1328,325 +1889,424 @@ msgstr "Deschide un proiect InVesalius existent..."
 msgid "Open an existing project..."
 msgstr "Deschide un proiect existent..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "Neuronavigatie"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "Instrumente suplimentare"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr "Incepere navigatie"
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr "Navigatie"
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr "Finalizare neuronavigatie"
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr "Initiere neuronavigatie"
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "Salvare"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "Incarcare"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "Ascunde"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "Sterge tot"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "Editeaza ID"
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Creează mască pentru segmentarea feliilor și pentru editare"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Creează o nouă mască"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
-msgstr ""
+msgstr "Creaza suprafata"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Suprascrie ultima suprafață"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Proprietațile măștii"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
-msgstr ""
+msgstr "Editare manuala"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Selectare prag predefinit sau manual:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Alege tipul pensulei, mărime sau operație:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Cerc"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Pătrat"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Intervalul pragurilor pensulei:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Creeare suprafață 3D pe baza măștii"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
-msgstr ""
+msgstr "Creare suprafata 3D noua"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Următorul pas"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Proprietăți suprafață"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Opțiuni avansate"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "Alege automat cea mai mare regiune întreruptă și creează o suprafață nouă "
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
-msgstr ""
+msgstr "Selecteaza cea mai intinsa suprafata"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Desparte toate suprafețele întrerupte"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "Selectează regiunile de interes..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Transparență:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Reducere rezoluție:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Repetări omogene:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Măsurare distanțe"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Măsură"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Adaugă adnotări de text"
 
-#: viewer_slice.py:66
-msgid "Number of slices used to compound the visualization."
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:78
+msgid "Number of slices used to compound the visualization."
+msgstr "Numarul sectiunilor care compun vizualizarea"
+
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
-msgstr ""
+msgstr "Controlul preciziei conturului. Cu cat valoarea este mai mare cu atat conturul va fi mai exact"
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
-msgstr ""
+msgstr "Inverseaza ordinea"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
-msgstr ""
+msgstr "Numar sectiuni"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
-msgstr ""
+msgstr "Claritate"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
-msgstr ""
+msgstr "PS"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
-msgstr ""
+msgstr "AI"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2323,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/ru.po b/po/ru.po
index 6de5e74..4e53d1e 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,16 +6,21 @@
 # Thiago Franco de Morais <totonixsame at gmail.com>
 # Translators:
 # Translators:
+# Albert, 2017
+# Albert, 2017
 # DCamer <dcamer at mail.ru>, 2011
 # DCamer <dcamer at mail.ru>, 2011
+# Kensey Okinawa <felix.raneman at gmail.com>, 2017
+# Василий Шишкин <shishkinvb at mail.ru>, 2017
+# Василий Шишкин <shishkinvb at mail.ru>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/invesalius3/language/ru/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Russian (http://www.transifex.com/invesalius/invesalius3/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -25,1629 +30,2288 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Размер изображения: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Промежуток: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Расположение: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nСоздано в InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Изображение"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Кость"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Автовоспроизведение"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
-msgstr ""
+msgstr "Значение: %-6d"
 
 #: clut_raycasting.py:536
 #, python-format
 msgid "Alpha: %-.3f"
-msgstr ""
+msgstr "Альфа: %-.3f"
 
 #: constants.py:32
 #, python-format
 msgid "M %d"
 msgstr "М %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr " Выключить"
 
 #: constants.py:45
 msgid "Red-blue"
-msgstr ""
+msgstr "Красный-синий"
 
 #: constants.py:46
 msgid "CristalEyes"
-msgstr ""
+msgstr "Кристальные глаза"
 
 #: constants.py:47
 msgid "Interlaced"
-msgstr ""
+msgstr "Чересстрочный"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Слева"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Справа"
 
 #: constants.py:50
 msgid "Dresden"
-msgstr ""
+msgstr "Дрезден"
 
 #: constants.py:51
 msgid "Checkboard"
-msgstr ""
+msgstr "Шашки"
 
 #: constants.py:52
 msgid "Anaglyph"
-msgstr ""
+msgstr "Анаглиф"
 
 #: constants.py:105
 msgid "Keep all slices"
-msgstr "Сохранить все части"
+msgstr "Сохранить все срезы"
 
 #: constants.py:105
 msgid "Skip 1 for each 2 slices"
-msgstr "Пропустить 1 для каждых 2 частей"
+msgstr "Пропустить 1 для каждого из 2 срезов"
 
 #: constants.py:106
 msgid "Skip 2 for each 3 slices"
-msgstr "Пропустить 2 для каждых 3 частей"
+msgstr "Пропустить 2 для каждого из 3 срезов"
 
 #: constants.py:106
 msgid "Skip 3 for each 4 slices"
-msgstr "Пропустить 3 для каждых 4 частей"
+msgstr "Пропустить 3 для каждого из 4 срезов"
 
 #: constants.py:107
 msgid "Skip 4 for each 5 slices"
-msgstr "Пропустить 4 для каждых 5 частей"
+msgstr "Пропустить 4 для каждого из 5 срезов"
 
 #: constants.py:107
 msgid "Skip 5 for each 6 slices"
-msgstr "Пропустить 5 для каждых 6 частей"
+msgstr "Пропустить 5 для каждого из 6 срезов"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "По умолчанию "
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Оттенок"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Насыщенность"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Пустыня"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Радуга"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Океан"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Инверсия серого"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Кость"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Маска %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Нарисовать"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Стереть"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Порог"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Низкий"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Средний"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Высокий"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Оптимальный *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Поверхность %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
-msgstr "Живот"
+msgstr "Брюшная полость"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
-msgstr ""
+msgstr "Задняя черепная ямка"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Мозг"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "По умолчанию"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Эмфизема"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
-msgstr ""
+msgstr "Ишемия - Жесткий, неконтрастный"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
-msgstr ""
+msgstr "Ишемия - Мягкий, неконтрастный"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Гортань"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Печень"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Легкие - Мягкие"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Легкие - Твердые"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Средостение"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Вручную"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Таз"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Синус"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Сосудистая - Жесткая"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Сосудистая - Мягкая"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
-msgstr ""
+msgstr "Контур"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Спереди"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Сзади"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
-msgstr "Сверху"
+msgstr "Верх"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
-msgstr "Снизу"
+msgstr "Низ"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
-msgstr "Изометрия"
+msgstr "Изометрический"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Дыхательные пути"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Дыхательные пути II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Черно-белый"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
-msgstr "Кости + Кожа"
+msgstr "Кость + Кожа"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
-msgstr "Кости + Кожа II"
+msgstr "Кость + Кожа II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
-msgstr ""
+msgstr "Тёмная кость"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Глянец"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Глянец II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
-msgstr ""
+msgstr "Золотая кость"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
-msgstr ""
+msgstr "Высокий контраст"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
-msgstr ""
+msgstr "Низкий контраст"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
-msgstr ""
+msgstr "Мягкое на белом"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
-msgstr ""
+msgstr "Средний контраст"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
-msgstr ""
+msgstr "MIP-текстурирование"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
-msgstr ""
+msgstr "Без теней"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Карандаш"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
-msgstr ""
+msgstr "Красный на белом"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
-msgstr ""
+msgstr "Кожа на синем"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
-msgstr ""
+msgstr "Кожа на синем II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Мягкая + Кожа"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Мягкая + Кожа II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Мягкая + Кожа III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
-msgstr ""
+msgstr "Мягкий на синем"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Мягкая"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Стандартный"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Сосудистая"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Сосудистая II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Сосудистая III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Сосудистая IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
-msgstr ""
+msgstr "Желтая кость"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Вырезать плоскость"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr "Выбрать трекер:"
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr "Claron MicronTracker"
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr "Polhemus FASTRAK"
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr "Polhemus ISOTRAK II"
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr "Polhemus PATRIOT"
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr "Отладка трекера"
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr "Отключить трекер"
+
+#: constants.py:679
+msgid "Static ref."
+msgstr "Статический реф."
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr "Динамический реф."
+
+#: constants.py:689
+msgid "LEI"
+msgstr "LEI"
+
+#: constants.py:690
+msgid "REI"
+msgstr "REI"
+
+#: constants.py:691
+msgid "NAI"
+msgstr "NAI"
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr "Выберите левое ухо на изображении"
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr "Выберите правое ухо на изображении"
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr "Выберите назион на изображении"
+
+#: constants.py:701
+msgid "LET"
+msgstr "LET"
+
+#: constants.py:702
+msgid "RET"
+msgstr "RET"
+
+#: constants.py:703
+msgid "NAT"
+msgstr "NAT"
+
+#: constants.py:704
+msgid "SET"
+msgstr "SET"
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr "Выберите левое ухо пространственным трекером"
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr "Выберите правое ухо пространственным трекером"
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr "Выберите назион пространственным трекером "
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr "Показать выбранные координаты на изображении"
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
-msgstr ""
-
-#: control.py:421
-msgid "Untitled"
-msgstr "Безымянный"
+msgstr "Загрузка файла %d из %d ..."
 
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
-msgstr "Исправить наклона Гентри для градусов"
+msgstr "Исправить наклон Гентри на нижеуказанное количество градусов"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "Линейно"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "На угол"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "На ось"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Коронально"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Сагиттально"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Маски"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
-msgstr ""
+msgstr "3D поверхности"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
-msgstr "Меры"
+msgstr "Измерения"
+
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr "Создать новую мерку"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr "Удалить мерку"
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr "Создать дубликат мерки"
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Измерение расстояния"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Измерение угла"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr "Создать новую маску"
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr "Удалить маску"
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr "Создать дубликат маски"
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
-msgstr ""
+msgstr "Имя"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
-msgstr ""
+msgstr "Маска"
+
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr "Создать новую поверхность"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr "Удалить поверхность"
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr "Создать дубликат поверхности"
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr "Импортировать файл поверхности в InVesalius"
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
-msgstr ""
+msgstr "Новая поверхность"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
-msgstr ""
+msgstr "Объем (мм³)"
+
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr "Площадь (мм²)"
 
-#: data_notebook.py:766
+#: data_notebook.py:805
 msgid "Transparency"
-msgstr ""
+msgstr "Прозрачность"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
-msgstr ""
+msgstr "Расположение"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
-msgstr ""
+msgstr "Тип"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
-msgstr ""
+msgstr "Значение"
 
 #: default_tasks.py:151
 msgid "Data"
-msgstr ""
+msgstr "Данные"
 
 #: default_tasks.py:244 default_tasks.py:250
 msgid "Load data"
-msgstr ""
+msgstr "Загрузить данные"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
-msgstr ""
+msgstr "Выберите зону интереса"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
-msgstr ""
+msgstr "Править 3D поверхность"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
-msgstr ""
+msgstr "Экспортировать данные"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr ""
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr "Навигационная система"
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
-msgstr ""
+msgstr "Аксиальный срез"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
-msgstr ""
+msgstr "Фронтальный срез"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
-msgstr ""
+msgstr "Саггитальный срез"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
-msgstr ""
+msgstr "Объем"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
-msgstr ""
+msgstr "Имя шаблона"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
-msgstr ""
+msgstr "Сохранить предустановленный рейкастинг"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
-msgstr ""
+msgstr "Инструменты"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
-msgstr ""
+msgstr "Значение будет применено"
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
-msgstr ""
+msgstr "Значение не будет применено"
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
-msgstr ""
+msgstr "InVesalius работает на 32-битной операционной системе, или имеется недостаток оперативной памяти.\nЕсли Вы хотите работать с 3D поверхностями или объемным рендерингом,\nрекомендуется уменьшить разрешение медицинских снимков."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
-msgstr ""
+msgstr "Процент от исходного разрешения"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
-msgstr ""
+msgstr "Идет загрузка файлов DICOM"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
-msgstr ""
-
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
+msgstr "Открыть проект InVesalius3..."
 
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
-msgstr ""
+msgstr "Выберите папку DICOM:"
+
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr "Выберите папку с файлами TIFF, BMP, JPG или PNG:"
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr "Импортировать файл Analyze 7.5"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr "Импортировать файл NIFTi 1"
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr "Импортировать файл PAR/REC"
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr "Импортировать файл поверхности"
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
-msgstr ""
+msgstr "Сохранить проект как..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
-msgstr ""
+msgstr "Проект InVesalius (*.inv3)|*.inv3"
+
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr "Сохранить маркеры как..."
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr "Файлы маркеров (*.mks)|*.mks"
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr "Загрузить маркеры"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
-msgstr ""
+msgstr "Доступна новая версия InVesalius. Вы хотите открыть страницу загрузки?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
-msgstr ""
+msgstr "Обновление Invesalius"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
-msgstr ""
+msgstr "Проект %s был изменен.\nСохранить изменения?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
-msgstr ""
+msgstr "%s является пустой папкой."
+
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr "В выбранной папке нет файлов Bitmap, JPEG, PNG или TIFF."
 
-#: dialogs.py:466
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
-msgstr ""
+msgstr "В выбранной папке нет DICOM файлов."
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr "Недопустимый файл."
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr "Внимание!  InVesalius имеет ограничения в поддержке формата Analyze.\n"
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr "Срезы могут быть ориентированы неправильно, из-за чего функции могут работать некорректно."
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
-msgstr ""
+msgstr "Для создания поверхности необходима маска."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
-msgstr ""
+msgstr "Не была выбрана маска для удаления."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
-msgstr ""
+msgstr "Не было выбрано поверхности для удаления."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
-msgstr ""
+msgstr "Не было выбрано измерения для удаления."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
-msgstr ""
+msgstr "Не было выбрано маски для дублирования."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
-msgstr ""
+msgstr "Не было выбрано поверхности для дублирования."
+
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr "Реперные точки недействительны. Выберите шесть координат."
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr "Не выбрано трекинг-устройство"
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr "не установлен."
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr "отключено."
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr "не подключено."
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr "Файл TXT недействителен."
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr "Данные не выбраны"
 
-#: dialogs.py:581
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr "Вы уверены что хотите удалить все маркеры?"
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr "Редактировать идентификатор маркера"
+
+#: dialogs.py:857
 msgid "New mask name:"
-msgstr ""
+msgstr "Имя новой маски:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
-msgstr ""
+msgstr "Назовите маску для ее создания."
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
-msgstr ""
+msgstr "Предустановка порогового значения:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
-msgstr "Пользовательские"
+msgstr "Пользовательская"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
-msgstr ""
+msgstr "%s не существует."
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
-msgstr ""
+msgstr "Пожалуйста, предоставьте более одного файла DICOM для 3D реконструкции."
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr ""
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr "(c) 2007-2017 Центр информационных технологий Renato Archer - CTI"
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
 " InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
 "\n"
 " Contact: invesalius at cti.gov.br"
-msgstr ""
+msgstr "InVesalius это медицинская программа визуализации для 3D-реконструкции. Она использует последовательность 2D файлов DICOM, полученных аппаратами КТ или МРТ. InVesalius позволяет экспорт 3D объемов или поверхностей как сетки данных для создания физических анатомических моделей, используя аддитивные технологии (3D печать). Программа разработана Центром информационных технологий Renato Archer (CTI), Национальным советом по научному и технологическому развитию (CNPq) и министерством  [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
-msgstr ""
+msgstr "GNU GPL (Универсальная общественная лицензия) версия 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
-msgstr ""
+msgstr "Сохранить предустановленный рейкастинг как..."
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
-msgstr ""
+msgstr "Имя новой поверхности:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
-msgstr ""
+msgstr "Название поверхности для создания"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
-msgstr ""
+msgstr "Эталонная маска:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
-msgstr ""
+msgstr "Качество поверхности:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
-msgstr ""
+msgstr "Заполнить дыры"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
-msgstr ""
+msgstr "Оставить наибольший регион"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
-msgstr ""
+msgstr "Изображение BMP"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
-msgstr ""
+msgstr "Изображение JPG"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
-msgstr ""
+msgstr "Изображение PNG"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
-msgstr ""
+msgstr "Документ PostScript"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
-msgstr ""
+msgstr "Файл POV-Ray"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
-msgstr ""
+msgstr "Изображение TIFF"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
-msgstr ""
+msgstr "Опции генерации поверхности"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
-msgstr ""
+msgstr "Создание поверхности"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
-msgstr ""
+msgstr "Опции создания поверхности"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
-msgstr ""
+msgstr "Метод создания поверхности"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
-msgstr ""
+msgstr "Опции"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
-msgstr ""
+msgstr "Угол:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
-msgstr ""
+msgstr "Макс. расстояния:"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
-msgstr ""
+msgstr "Мин. вес:"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
-msgstr ""
+msgstr "N. шагов:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
-msgstr ""
+msgstr "Контекстно-зависимое сглаживание"
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
-msgstr ""
+msgstr "Бинарный"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
-msgstr ""
+msgstr "Невозможно использовать метод по умолчанию, так как маска была отредактирована."
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
-msgstr ""
+msgstr "Метод:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
-msgstr ""
+msgstr "Метод"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
-msgstr ""
+msgstr "Гауссова Сигма"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
-msgstr ""
+msgstr "Отграничение"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
-msgstr ""
+msgstr "Булевые операции"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
-msgstr ""
+msgstr "Объединение"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
-msgstr ""
+msgstr "Разница"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
-msgstr ""
+msgstr "Пересечение"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
-msgstr ""
+msgstr "Неравнозначность"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
-msgstr ""
+msgstr "Маска 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
-msgstr ""
+msgstr "Операция"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
-msgstr ""
+msgstr "Маска 2"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr ""
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr "Переориентация изображения"
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
 msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
 msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
 msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
-msgid ""
-"%s %s\n"
-"Made in InVesalius"
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
 msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr ""
+#: dialogs.py:1897
+msgid "Apply"
+msgstr "Применить"
 
-#: dicom_preview_panel.py:409
-#, python-format
-msgid "%d images"
-msgstr ""
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr "Угол X"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
-#, python-format
-msgid "Image %d"
-msgstr ""
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr "Угол Y"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr "Угол Z"
 
-#: frame.py:164
-msgid "Data panel"
+#: dialogs.py:1913
+msgid "Interpolation method:"
 msgstr ""
 
-#: frame.py:171
-msgid "Preview medical data to be reconstructed"
-msgstr ""
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr "Создать проект из битового изображения (bitmap)"
 
-#: frame.py:177
-msgid "Retrieve DICOM from PACS"
-msgstr ""
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr "Имя проекта:"
 
-#: frame.py:580
-msgid "Import DICOM...\tCtrl+I"
-msgstr ""
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr "Ориентация срезов:"
 
-#: frame.py:582
-msgid "Import other files..."
-msgstr ""
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr "Саггитально"
 
-#: frame.py:583
-msgid "Open project...\tCtrl+O"
-msgstr ""
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr "Расстояние (мм):"
 
-#: frame.py:584
-msgid "Save project\tCtrl+S"
-msgstr ""
+#: dialogs.py:2043
+msgid "X:"
+msgstr "X:"
 
-#: frame.py:586
-msgid "Close project"
-msgstr ""
+#: dialogs.py:2048
+msgid "Y:"
+msgstr "Y:"
 
-#: frame.py:595
-msgid "Exit\tCtrl+Q"
-msgstr ""
+#: dialogs.py:2052
+msgid "Z:"
+msgstr "Z:"
 
-#: frame.py:626 frame.py:636
-msgid "Undo\tCtrl+Z"
-msgstr ""
+#: dialogs.py:2131
+msgid ""
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr "Все файлы bitmap  должны иметь одинаковую ширину \n и высоту."
+
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr "2D - Истинный срез"
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr "3D - Все срезы"
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr "Совместимость 2D"
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr "Ориентация"
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr "Совместимость 3D"
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Использовать WW&WL"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr "Отклонение"
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr "Мин:"
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr "Макс:"
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr "Умножение"
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr "Повторы"
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr "Параметры"
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr "Выбрать части маски"
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr "Имя целевой маски"
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr "Наращивание области"
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr "Динамический"
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr "Доверительный"
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr "Обрезать маски"
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr "Аксиально:"
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr "-"
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr "Саггитально"
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr "Фронтальный"
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr "Максимальный размер отверстий"
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr "вокселы"
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr "безымянный"
+
+#: dicom_preview_panel.py:418
+#, python-format
+msgid "%d images"
+msgstr "%d изображений"
+
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
+#, python-format
+msgid "Image %d"
+msgstr "Изображение %d"
+
+#: frame.py:173
+msgid "Data panel"
+msgstr "Панель данных"
+
+#: frame.py:179
+msgid "Preview medical data to be reconstructed"
+msgstr "Предварительный просмотр медицинских данных для реконструкции"
+
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr "Просмотр bitmap для реконструкции"
+
+#: frame.py:191
+msgid "Retrieve DICOM from PACS"
+msgstr "Получить DICOM из PACS"
+
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr "В настоящее время режим Навигации работает только на Windows"
 
-#: frame.py:631 frame.py:637
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr "Автоматическое заполнение отверстий"
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr "Analyze 7.5"
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr "NIfTI 1"
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr "PAR/REC"
+
+#: frame.py:736
+msgid "Import DICOM...\tCtrl+I"
+msgstr "Импортировать DICOM...⇥Ctrl+I"
+
+#: frame.py:738
+msgid "Import other files..."
+msgstr "Импортировать другие файлы..."
+
+#: frame.py:739
+msgid "Open project...\tCtrl+O"
+msgstr "Открыть проект...⇥Ctrl+O"
+
+#: frame.py:740
+msgid "Save project\tCtrl+S"
+msgstr "Сохранить проект⇥Ctrl+S"
+
+#: frame.py:742
+msgid "Close project"
+msgstr "Закрыть проект"
+
+#: frame.py:751
+msgid "Exit\tCtrl+Q"
+msgstr "Выход⇥Ctrl+Q"
+
+#: frame.py:763 frame.py:773
+msgid "Undo\tCtrl+Z"
+msgstr "Отменить⇥Ctrl+Z"
+
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
-msgstr ""
+msgstr "Повторить⇥Ctrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
-msgstr ""
+msgstr "Очистить маску⇥Ctrl+Shift+A"
+
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr "Заполнить отверстия вручную"
 
-#: frame.py:685
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr "Убрать части"
+
+#: frame.py:802
+msgid "Select parts"
+msgstr "Выбрать части"
+
+#: frame.py:807
+msgid "Crop"
+msgstr "Обрезка"
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr "Ручная сегментация"
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr "Право - Лево"
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr "Передний - Задний"
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr "Верх - Низ"
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr "Из Право-Лево в Передний-Задний"
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr "Из Право-Лево в Верх-низ"
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr "Из Передний-Задний в Верх-Низ"
+
+#: frame.py:832
+msgid "Flip"
+msgstr "Вывернуть"
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr "Поменять оси местами"
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr "Переориентировать изображение⇥Ctrl+Shift+R"
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr "Сегментация"
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr "Интерполированные срезы"
+
+#: frame.py:883
 msgid "Preferences..."
-msgstr ""
+msgstr "Параметры..."
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr "Режим Навигации"
+
+#: frame.py:896
 msgid "Getting started..."
-msgstr ""
+msgstr "Приступая к работе..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
-msgstr ""
+msgstr "О программе..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
-msgstr ""
+msgstr "Файл"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
-msgstr ""
+msgstr "Редактировать"
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr "Вид"
+
+#: frame.py:913
+msgid "Mode"
+msgstr "Режим"
+
+#: frame.py:914
 msgid "Help"
-msgstr ""
+msgstr "Помощь"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
-msgstr ""
+msgstr "Готов"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
-msgstr ""
+msgstr "Импортировать файлы DICOM...⇥Ctrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
-msgstr ""
+msgstr "Открыть проект InVesalius..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
-msgstr ""
+msgstr "Сохранить проект InVesalius"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
-msgstr ""
+msgstr "Масштаб"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
-msgstr ""
+msgstr "Масштаб"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
-msgstr ""
+msgstr "Ротировать"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
-msgstr ""
+msgstr "Переместить"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
-msgstr ""
+msgstr "Контраст"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
-msgstr ""
+msgstr "Прокрутка срезов"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
-msgstr ""
+msgstr "Пересечение срезов"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
-msgstr ""
+msgstr "Спрятать панель задач"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
-msgstr ""
+msgstr "Спрятать текст"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
-msgstr ""
+msgstr "Показать панель задач"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
-msgstr ""
+msgstr "Показать текст"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
-msgstr ""
+msgstr "Отменить"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
-msgstr ""
+msgstr "Повторить"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
-msgstr ""
+msgstr "Создание мультипланарной визуализации..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
-msgstr ""
+msgstr "Импорт"
+
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr "Путь"
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr "Ширина x Высота"
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "База данных InVesalius"
 
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
-msgstr ""
+msgstr "Имя пациента"
 
 #: import_network_panel.py:240 import_panel.py:225
 msgid "Patient ID"
-msgstr ""
+msgstr "ID пациента"
 
 #: import_network_panel.py:241 import_panel.py:226
 msgid "Age"
-msgstr ""
+msgstr "Возраст"
 
 #: import_network_panel.py:242 import_panel.py:227
 msgid "Gender"
-msgstr ""
+msgstr "Пол"
 
 #: import_network_panel.py:243 import_panel.py:228
 msgid "Study description"
-msgstr ""
+msgstr "Описание исследования"
 
 #: import_network_panel.py:244 import_panel.py:229
 msgid "Modality"
-msgstr ""
+msgstr "Модальность"
 
 #: import_network_panel.py:245 import_panel.py:230
 msgid "Date acquired"
-msgstr ""
+msgstr "Дата исследования"
 
 #: import_network_panel.py:246 import_panel.py:231
 msgid "# Images"
-msgstr ""
+msgstr "# Изображений"
 
 #: import_network_panel.py:247 import_panel.py:232
 msgid "Institution"
-msgstr ""
+msgstr "Учреждение"
 
 #: import_network_panel.py:248 import_panel.py:233
 msgid "Date of birth"
-msgstr ""
+msgstr "Дата рождения"
 
 #: import_network_panel.py:249 import_panel.py:234
 msgid "Accession Number"
-msgstr ""
+msgstr "Номер добавления"
 
 #: import_network_panel.py:250 import_panel.py:235
 msgid "Referring physician"
-msgstr ""
-
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
+msgstr "Направивший врач"
 
 #: import_network_panel.py:497
 msgid "Word"
-msgstr ""
+msgstr "Слово"
 
 #: import_network_panel.py:504
 msgid "Search"
-msgstr ""
+msgstr "Поиск"
 
 #: import_network_panel.py:663
 msgid "Active"
-msgstr ""
+msgstr "Активный"
 
 #: import_network_panel.py:664
 msgid "Host"
-msgstr ""
+msgstr "Хост"
 
 #: import_network_panel.py:665
 msgid "Port"
-msgstr ""
+msgstr "Порт"
 
 #: import_network_panel.py:666
 msgid "AETitle"
-msgstr ""
+msgstr "Заголовок"
 
 #: import_network_panel.py:667
 msgid "Status"
-msgstr ""
+msgstr "Статус"
 
 #: import_network_panel.py:694
 msgid "Add"
-msgstr ""
+msgstr "Добавить"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
-msgstr ""
+msgstr "Убрать"
 
 #: import_network_panel.py:696
 msgid "Check status"
-msgstr ""
+msgstr "Проверить статус"
 
 #: import_network_panel.py:769
 msgid "ok"
-msgstr ""
+msgstr "ok"
 
 #: import_network_panel.py:771
 msgid "error"
-msgstr ""
+msgstr "ошибка"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
-msgstr ""
+msgstr "Выбор языка"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
-msgstr ""
+msgstr "Выберите язык пользовательского интерфейса"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
-msgstr ""
+msgstr "Анализ выбранных участков..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
-msgstr ""
+msgstr "Разделение несвязанных участков..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
-msgstr ""
+msgstr "Параметры"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr ""
+msgid "2D Visualization"
+msgstr "2D визуализация"
+
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr "3D визуализация"
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:43 preferences.py:190
 msgid "Language"
-msgstr ""
+msgstr "Язык"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
-msgstr ""
+msgstr "Поверхность"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
-msgstr ""
+msgstr "Интерполяция"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
-msgstr ""
+msgstr "Объемный рендеринг"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
-msgstr ""
+msgstr "Рендеринг"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
-msgstr ""
+msgstr "Графический процессор (только видеокарты NVidia)"
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr "Срезы"
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr "Интерполированный"
+
+#: preferences.py:159
+msgid "Yes"
+msgstr "Да"
+
+#: preferences.py:159
+msgid "No"
+msgstr "Нет"
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
-msgstr ""
+msgstr "Языковые параметры будут применены \nпри следующей загрузке InVesalius."
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
-msgstr ""
+msgstr "Мягкие ткани"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
-msgstr ""
+msgstr "Эмаль (Взрослые)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
-msgstr ""
+msgstr "Эмаль (Дети)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
-msgstr ""
+msgstr "Кортикальная кость (Взрослые)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
-msgstr ""
+msgstr "Кортикальная кость (Дети)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
-msgstr ""
+msgstr "Губчатая кость (Взрослые)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
-msgstr ""
+msgstr "Губчатая кость (Дети)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
-msgstr ""
+msgstr "Мышечная ткань (Взрослые)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
-msgstr ""
+msgstr "Мышечная ткань (Дети)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
-msgstr ""
+msgstr "Жировая ткань (Взрослые)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
-msgstr ""
+msgstr "Жировая ткань (Дети)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
-msgstr ""
+msgstr "Кожная ткань (Взрослые)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
-msgstr ""
+msgstr "Кожная ткань (Дети)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
-msgstr ""
+msgstr "Diff"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
-msgstr ""
+msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
-msgstr ""
+msgstr "Нормальный"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
-msgstr ""
+msgstr "МаксIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
-msgstr ""
+msgstr "МинIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
-msgstr ""
+msgstr "СреднийIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
-msgstr ""
+msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
-msgstr ""
+msgstr "Контур МаксIP"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
-msgstr ""
+msgstr "Контур MIDA"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
-msgstr ""
+msgstr "Яркость/контрастность"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
-msgstr ""
+msgstr "Псевдо-цвет"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
-msgstr ""
+msgstr "Тип проекции"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
-msgstr ""
+msgstr "Передний план"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
-msgstr ""
+msgstr "Фон"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
-msgstr ""
+msgstr "Применение отграничения ..."
+
+#: styles.py:1765
+msgid "Fill hole"
+msgstr "Заполнить отверстие"
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr "Заполнение отверстия ..."
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr "Убрать часть"
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr "Убирается часть ..."
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr "Сегментация ..."
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr "InVesalius не может распознать формат файла"
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr "Ошибка при импорте поверхности"
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr "Импорт поверхности в InVesalius завершился неудачно"
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
-msgstr ""
+msgstr "Создание 3D поверхности..."
 
 #: task_exporter.py:109
 msgid "Export InVesalius screen to an image file"
-msgstr ""
+msgstr "Экспорт экрана InVesalius в файл изображения"
 
 #: task_exporter.py:111
 msgid "Export picture..."
-msgstr ""
+msgstr "Экспорт изображения..."
 
 #: task_exporter.py:122
 msgid "Export 3D surface"
-msgstr ""
+msgstr "Экспорт 3D поверхности"
 
 #: task_exporter.py:123
 msgid "Export 3D surface..."
-msgstr ""
+msgstr "Экспорт 3D поверхности..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
+msgstr "Сохранить 3D поверхность как..."
+
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
 msgstr ""
 
-#: task_exporter.py:339
-msgid "You need to create a surface and make it "
+#: task_exporter.py:337
+msgid "Error saving surface"
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:343
+msgid "You need to create a surface and make it "
+msgstr "Необходимо создать поверхность и сделать ее"
+
+#: task_exporter.py:344
 msgid "visible before exporting it."
-msgstr ""
+msgstr "видимой перед тем, как экспортировать."
 
 #: task_generic.py:65
 msgid "Testing..."
-msgstr ""
+msgstr "Проверка..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr ""
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr "Выбрать файлы DICOM, Analyze, NIfTI or REC/PAR для реконструкции"
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr ""
+msgid "Import medical images..."
+msgstr "Импортировать медицинские изображения..."
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
-msgstr ""
+msgstr "Открыть существующий проект InVesalius..."
 
 #: task_importer.py:88
 msgid "Open an existing project..."
-msgstr ""
+msgstr "Открыть существующий проект..."
 
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
-msgstr ""
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr "Выбрать реперные точки и начать навигацию"
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr "Нейронавигация"
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr "Дополнительные инструменты"
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr "Обновить камеру в объеме"
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr "Камера объема"
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr "Включить внешний триггер для создания маркеров"
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr "Внешний триггер"
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr "Выберите трекинг-устройство"
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr "Выбрать способ референтной навигации"
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr "FRE:"
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr "Ошибка регистрации реперных точек"
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr "Начать навигацию"
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr "Навигация"
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr "Конфигурация трекера..."
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr "Остановить нейронавигацию"
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr "Начать нейронавигацию"
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr "Создать маркер"
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr "Сохранить"
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr "Загрузить"
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr "Спрятать"
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr "Удалить все"
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr "Редактировать идентификатор"
 
 #: task_slice.py:86
+msgid "Create mask for slice segmentation and editing"
+msgstr "Создать маску для сегментации и редактирования "
+
+#: task_slice.py:87
 msgid "Create new mask"
-msgstr ""
+msgstr "Создать новую маску"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
-msgstr ""
+msgstr "Создать поверхность"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
-msgstr ""
+msgstr "Перезаписать последнюю поверхность"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
-msgstr ""
+msgstr "Свойства маски"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
-msgstr ""
+msgstr "Ручное редактирование"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
-msgstr ""
+msgstr "Выберите предустановленное или пользовательское пороговое значение:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
-msgstr ""
+msgstr "Выберите тип, размер кисти или операцию:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
-msgstr ""
+msgstr "Круг"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
-msgstr ""
+msgstr "Квадрат"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
-msgstr ""
+msgstr "Диапазон порогового значения кисти:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
-msgstr ""
+msgstr "Перезаписать маску"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
-msgstr ""
+msgstr "Распространить отграничение на 3D"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
-msgstr ""
+msgstr "Создать 3D поверхность на основе маски"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
-msgstr ""
+msgstr "Создать новую 3D поверхность"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
-msgstr ""
+msgstr "Следующий шаг"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
-msgstr ""
+msgstr "Свойства поверхности"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
-msgstr ""
+msgstr "Расширенные опции"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
-msgstr ""
+msgstr "Автоматически выбрать наибольший несвязанный участок и создать новую поверхность"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
-msgstr ""
+msgstr "Выбрать наибольшую поверхность"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
-msgstr ""
+msgstr "Автоматически выбрать несвязанные участки и создать новую поверхность для каждого из участков"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
-msgstr ""
+msgstr "Разделить все несвязанные поверхности"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
-msgstr ""
+msgstr "Вручную выбрать точки участков интереса и создать новую поверхность."
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
-msgstr ""
+msgstr "Выбор области интереса..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
-msgstr ""
+msgstr "Прозрачность:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
-msgstr ""
+msgstr "Разрешение сжатия:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
-msgstr ""
+msgstr "Количество проходов сглаживания:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
-msgstr ""
+msgstr "Измерить расстояния"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
-msgstr ""
+msgstr "Измерить"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
-msgstr ""
+msgstr "Добавить текстовые аннотации"
+
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr "Отключение трекера..."
 
-#: viewer_slice.py:66
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
-msgstr ""
+msgstr "Количество использованных срезов для создания визуализации."
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
-msgstr ""
+msgstr "Контролирует резкость контура. Чем больше значение, тем резче контур."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
-msgstr ""
+msgstr "Обратный порядок"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
-msgstr ""
+msgstr "Если отмечено, для создания визуализации проходка срезов идет в убывающем порядке, вместо возрастающего."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
-msgstr ""
+msgstr "Количество срезов"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
-msgstr ""
+msgstr "Резкость"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
-msgstr ""
+msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
-msgstr ""
+msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
-msgstr ""
+msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
-msgstr ""
+msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
-msgstr ""
+msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
-msgstr ""
+msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
-msgstr ""
+msgstr "AL"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
-msgstr ""
+msgstr "RA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
-msgstr ""
+msgstr "PR"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
-msgstr ""
+msgstr "LP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
-msgstr ""
+msgstr "LA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
-msgstr ""
+msgstr "AR"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
-msgstr ""
+msgstr "RP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
-msgstr ""
+msgstr "PL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
-msgstr ""
+msgstr "TL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
-msgstr ""
+msgstr "RT"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
-msgstr ""
+msgstr "BR"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
-msgstr ""
+msgstr "LB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
-msgstr ""
+msgstr "LT"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
-msgstr ""
+msgstr "TR"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
-msgstr ""
+msgstr "RB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
-msgstr ""
+msgstr "BL"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
-msgstr ""
+msgstr "TA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
-msgstr ""
+msgstr "PT"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
-msgstr ""
+msgstr "BP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
-msgstr ""
+msgstr "AB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
-msgstr ""
+msgstr "AT"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
-msgstr ""
+msgstr "TP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
-msgstr ""
+msgstr "PB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
+msgstr "BA"
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1664,11 +2328,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/sr.po b/po/sr.po
index 101b2dd..4627fc1 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -11,10 +11,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Serbian (http://www.transifex.com/projects/p/invesalius3/language/sr/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Serbian (http://www.transifex.com/invesalius/invesalius3/language/sr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,6 +24,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Величина слике: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Размак: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Место: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nНаправљено у УВесалијусу"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Слика"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "Кост"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr ""
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -39,7 +77,7 @@ msgstr ""
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr ""
 
@@ -55,11 +93,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr ""
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr ""
 
@@ -99,382 +137,511 @@ msgstr "Прескочи 4 за свака 5 исечка"
 msgid "Skip 5 for each 6 slices"
 msgstr "Прескочи 5 за свака 6 исечка"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Основно "
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Нијанса"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Засићеност"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "Пустиња"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Дуга"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Океан"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "Обрнута сива"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "Кост"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Маска %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Исцртај"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Обриши"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Осетљивост"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Мала"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Средња"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Велика"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Оптимално *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Површина %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "Стомак"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Мозак"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Основно"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr ""
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr ""
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr ""
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr ""
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr ""
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr ""
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr ""
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr ""
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr ""
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr ""
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr ""
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr ""
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr ""
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr ""
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr ""
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr ""
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr ""
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr ""
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr ""
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr ""
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr ""
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr ""
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr ""
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr ""
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr ""
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr ""
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr ""
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr ""
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr ""
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr ""
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr ""
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr ""
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr ""
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr ""
 
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
+#: constants.py:679
+msgid "Static ref."
 msgstr ""
 
-#: control.py:559
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
+#, python-format
+msgid "Loading file %d of %d ..."
+msgstr ""
+
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr ""
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr ""
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr ""
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr ""
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr ""
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr ""
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr ""
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr ""
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr ""
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr ""
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr ""
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr ""
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr ""
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr ""
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr ""
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr ""
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr ""
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr ""
 
@@ -486,175 +653,255 @@ msgstr ""
 msgid "Load data"
 msgstr ""
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr ""
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr ""
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr ""
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
 msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr ""
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr ""
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr ""
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr ""
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr ""
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr ""
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr ""
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr ""
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr ""
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr ""
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr ""
 
-#: dialogs.py:243
-msgid "Open Analyze file"
+#: dialogs.py:275
+msgid "Choose a DICOM folder:"
 msgstr ""
 
-#: dialogs.py:281
-msgid "Choose a DICOM folder:"
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
 msgstr ""
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr ""
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr ""
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr ""
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr ""
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr ""
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr ""
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr ""
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr ""
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr ""
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr ""
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -663,352 +910,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr ""
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr ""
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr ""
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr ""
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr ""
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr ""
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr ""
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr ""
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "БМП слика"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "ЈПГ слика"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "ПНГ слика"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "Пост скрипт документ"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr ""
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "ТИФФ слика"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "неименовано"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Величина слике: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Размак: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Место: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nНаправљено у УВесалијусу"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Слика"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Слика %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Панел података"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr ""
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr ""
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "О програму..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Датотека"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "Помоћ"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Спреман"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr ""
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr ""
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr ""
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr ""
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr ""
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr ""
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr ""
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr ""
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr ""
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr ""
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr ""
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr ""
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr ""
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr ""
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Име пацијента"
@@ -1057,10 +1561,6 @@ msgstr ""
 msgid "Referring physician"
 msgstr ""
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1093,7 +1593,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1109,174 +1609,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr ""
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr ""
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr ""
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr ""
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr ""
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr ""
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr ""
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr ""
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr ""
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr ""
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr ""
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr ""
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr ""
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr ""
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr ""
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1296,15 +1848,23 @@ msgstr ""
 msgid "Export 3D surface..."
 msgstr ""
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr ""
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr ""
 
@@ -1313,11 +1873,11 @@ msgid "Testing..."
 msgstr ""
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1328,325 +1888,424 @@ msgstr ""
 msgid "Open an existing project..."
 msgstr ""
 
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
 msgstr ""
 
 #: task_slice.py:86
+msgid "Create mask for slice segmentation and editing"
+msgstr ""
+
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr ""
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr ""
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr ""
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr ""
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr ""
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Круг"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Квадрат"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr ""
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr ""
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr ""
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr ""
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr ""
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr ""
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr ""
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr ""
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Провидност:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr ""
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr ""
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr ""
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr ""
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr ""
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr ""
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2322,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/tr_TR.po b/po/tr_TR.po
index 4bc5965..470ec4d 100644
--- a/po/tr_TR.po
+++ b/po/tr_TR.po
@@ -11,10 +11,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-08 12:24+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/invesalius3/language/tr_TR/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Turkish (Turkey) (http://www.transifex.com/invesalius/invesalius3/language/tr_TR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,6 +24,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "Resim boyutu: %d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr "Aralık: %.2f"
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr "Konum: %.2f"
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nMade in InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "Resim"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "kemik"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "Otomatik oynatma"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -39,7 +77,7 @@ msgstr "Alfa: %-.3f"
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr "Kapalı"
 
@@ -55,11 +93,11 @@ msgstr "Kristal gözler"
 msgid "Interlaced"
 msgstr "Geçmeli"
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "Sol"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "Sağ"
 
@@ -99,382 +137,511 @@ msgstr "5 kesitten 4' ünü atla"
 msgid "Skip 5 for each 6 slices"
 msgstr "6 kesitten 5' ini atla"
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "Varsayılan"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "Renk"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "Doygunluk"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "çöl"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "Gökkuşağı"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "Okyanus"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr "tersine gri"
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "kemik"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "Maske %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "Çizim"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "Sil"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "Eşik"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "Düşük"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "Orta"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "Yüksek"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "Optimal"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "Yüzey %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr "abdomen"
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr "Beyin posterior fossa"
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "Beyin"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "Varsayılan"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr "Amfizem"
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr "İskemi - Sert, kontrast olmayan"
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr "İskemi - Yumuşak, kontrast olmayan"
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "Larinks"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "Karaciğer"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "Akciğer - Yumuşak"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "Akciğer - Sert"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "Mediyastenum"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr "Manüel"
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "Pelvis"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "Sinüs"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr "Vaskülatür - Sert"
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr "Vaskülatür - Yumuşak"
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr "Kontür"
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "Ön"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "Arka"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "Üst"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "Alt"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "izometrik"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr "Solunum Yolları"
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr "Solunum Yolları II"
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "Siyah & Beyaz"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "Kemik + Cilt"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "Kemik + Cilt II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr "Koyu Kemik"
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr "Parlak"
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr "Parlak II"
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr "Altın Kemik"
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr "Yüksek Kontrast"
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr "Düşük Kontrast"
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr "yumuşak beyaz"
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr "Orta Kontrast"
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr "MIP"
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr "Gölgesiz"
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "Kalem"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr "Beyaz üzerine Kırmızı"
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr "Cilt Mavi"
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr "Cilt Mavi II"
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr "Yumuşak + Cilt"
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr "Yumuşak + Cilt II"
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr "Yumuşak + Cilt III"
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr "Yumuşak Mavi"
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr "Yumuşak"
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "Standart"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "Vasküler"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "Vasküler II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "Vasküler III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "Vasküler IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr "Sarı Kemik"
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr "Kesit Düzlemi"
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr "Dosya yüklemesi %d' nin %d' si ..."
 
-#: control.py:421
-msgid "Untitled"
-msgstr "Başlıksız"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr "Aşağıdaki derecelerde eğim uygulayarak düzelt"
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr "lineer"
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr "anguler"
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr "Aksiyal"
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr "Koronal"
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr "Sagittal"
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "Maskeler"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr "3D Yüzeyleri"
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr "Ölçüler"
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr "Mesafeyi Ölç"
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr "Açıyı Ölç"
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "İsim"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "Maske"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr "Yeni yüzey"
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "Hacim (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "Şeffaflık"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr "Lokasyon"
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "Tip"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "Değer"
 
@@ -486,175 +653,255 @@ msgstr "Veri"
 msgid "Load data"
 msgstr "Veriyi yükle"
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "İlgilendiğiniz bölgeyi seçin"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "3D yüzeyi oluştur"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "Veriyi dışa aktar"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr "Navigasyon sistemini kullan"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
+msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "Aksiyel kesit"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "Koronal kesit"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "Sagittal kesit"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "Hacim"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr "Belirlenmiş isim"
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr "Mevcut ışın ayarını koru"
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "Araçlar"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "Değer uygulanacak"
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "Değer uygulanmayacak"
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr "InVasilus 32-işletim sistemi ile çalışıyor veya hafıza yetersiz. 3D arayüzler veya hacim oluşturma araçlarıyla çalışmak istiyorsanız medikal görüntülerin çözünürlüklerini düşürmeniz önerilir."
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr "Orjinal çözünürlüğün yüzdesi"
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "DICOM dosyaları yükleniyor"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "InVasilus 3 proje ... aç"
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr "Analiz dosyasını aç"
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "Bir DICOM dosyası seç:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "Projeyi kaydet ..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "InVesalius projesi (*.inv3)I*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr "InVesalius yeni sürümü mevcut. WEB sayfasından hemen indirmek ister misiniz?"
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr "InVesalius Güncelleştirmesi"
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
-msgstr "Proje %s oranında değiştirildi? Değişiklikler kaydedilsin mi?"
+msgstr "Proje %s oranında değiştirildi. Değişiklikler kaydedilsin mi?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr "%s boş klasör"
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr "Seçilen klasörde DICOM dosyası yoktur."
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr "Yüzey oluşturabilmek için maske gerekmektedir."
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr "Silmek için maske seçilmedi."
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr "Silmek için yüzey seçilmedi."
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr "Silmek için ölçüm seçilmedi."
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr "Dublikasyon için maske seçilmedi."
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr "Kopyalamak için yeterli alan yok."
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr "Yeni maske adı:"
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr "Oluşturulacak maskeye isim verin"
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr "Belirlenmiş eşik:"
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "Uyarlanabilir"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s yok"
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr "3D yapılandırma için lütfen birden fazla DICOM dosyası seçin"
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr "(c) 2007-2015 Bilgi Teknolojileri Merkezi Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
+msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -663,352 +910,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr "İnVesalius 3D yapılandırma için medikal görüntüme programıdır. CT veya MRI görüntüleme ile elde edilen bir dizi 2 boyutlu DICOM görüntüleri kullanır. 3 boyutlu hacim ve yüzeyleri mesh dosyası olarak dışa aktararak ilave imalat teknolojileri kullanımına (3 boyutlu yazıcı) izin verir. Program Renato Archer Bilgi Teknolojileri Merkezi (CTI), Ulusal Bilim ve Teknoloji Geliştirme kurulu (CNPq) ve Brezilya Sağlık Bakanlığı tarafından geliştirilmiştir.\n\n\nInVesalius sadece araştırma a [...]
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (Genel Kamu Lisansı ) sürüm 2"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr "Mevcut ışın atım ayarını kaydet:"
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "Yeni yüzey adı:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "Oluşturulacak yüzeyi isimlendirin"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "Referans maske:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr "Yüzey kalitesi:"
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "Boşlukları doldurun"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "En geniş bölgeyi koru"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "BMP resim"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "JPG resim"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "PNG resim"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "PostScript belge"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "POV-Ray dosya"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "TIFF resim"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr "Yüzey oluşturma seçenekleri"
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr "Yüzey oluşturma"
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr "Yüzey oluşturma seçenekleri"
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr "Yüzey oluşturma yöntemi"
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr "Seçenekler"
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr "Açı:"
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr "Maks. mesafe:"
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr "Min. ağırlık"
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr "N. basamakları:"
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr "İçeriği yumuşatabilmek."
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr "İkili"
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr "Maske işlem gördüğü için varsayılan yöntem kullanılamaz"
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr "Yöntem:"
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr "Yöntem"
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr "Gauss sigma"
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr "Dönüm noktası"
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr "Boolean işlemleri"
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr "Birleşme"
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr "Fark"
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr "Kesişme"
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr "Özel ayrılma"
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr "Maske 1"
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr "İşlem"
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr "Maske 2"
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "İsimsiz"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "Resim boyutu: %d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr "Aralık: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
+msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr "Konum: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
+msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nMade in InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "Resim"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr "Pencere genişliği ve seviyesi kullan"
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr "%d resimler"
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "Resim %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "Otomatik oynatma"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "Veri paneli"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "Oluşturulacak medikal veri önizlemesi"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr "DICOM u PACS dan kurtar"
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "DICOM... içe aktar \tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr "Diğer dosyaları içe aktar..."
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr "Proje ... aç \tCtrl+O"
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr "Projeyi kaydet \tCtrl+S"
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr "Projeyi kapat"
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr "Çıkış \tCtrl+Q"
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr "Geri al \tCtrl+Z"
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr "Baştan yap \tCtrl+Y"
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr "Maskeyi sil \tCtrl+Shift+A"
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr "Tercihler..."
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr "Başlıyor ..."
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "Hakkında..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "Dosya"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr "Düzenle"
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "Yardım"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "Hazır"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr "DICOM dosyaları içe aktar...\tCtrl+I"
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr "InVesalius proje aç..."
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "InVesalius projesi kaydet"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "Büyüt"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "Seçimi Büyüt"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "Döndür"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "Taşı"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "Kontrast"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr "Kesitleri kaydır"
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr "Kesitlerler çapraz kesişmesi"
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "Görev panelini gizle"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "Metni sakla"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "Görev panelini göster"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "Metni göster"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr "Geri al"
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr "yeniden yapmak"
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "Multiplanar görselleştirme oluşturuluyor ..."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr "İçe aktar"
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "InVesalius Veritabanı"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "Hasta adı"
@@ -1057,10 +1561,6 @@ msgstr "Erişim Numarası"
 msgid "Referring physician"
 msgstr "Yönlendiren doktor"
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "InVesalius Veritabanı"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr "Word"
@@ -1093,7 +1593,7 @@ msgstr "Durum"
 msgid "Add"
 msgstr "Ekle"
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr "Kaldır"
 
@@ -1109,174 +1609,226 @@ msgstr "ok"
 msgid "error"
 msgstr "hata"
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "Dil seçimi"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "Kullanıcı arayüz dili seç"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr "Seçili bölgeler analiz ediliyor..."
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr "Bağlantısı kesilmiş bölgeler ayrılıyor..."
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr "Tercihler"
 
 #: preferences.py:41
-msgid "Visualization"
-msgstr "Görüntüleme"
+msgid "2D Visualization"
+msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr "Dil"
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr "Yüzey"
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr "İnterpolasyon"
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr "Hacim render"
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr "Rendering"
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr "GPU (sadece NVidia video kartları)"
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr "InVesalius tekrar başlatıldığında\ndil ayarları uygulanacak."
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "Yumuşak Doku"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "Mine (Erişkin)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "Mine (Çocuk)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "Kompakt Kemik (Erişkin)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "Kompakt Kemik (Çocuk)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "Spongiyoz Kemik (Erişkin)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "Spongiyoz Kemik (Çocuk)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "Kas Dokusu (Erişkin)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "Kas Dokusu (Çocuk)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "Yağ Dokusu (Erişkin)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "Yağ Dokusu (Çocuk)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "Cilt Dokusu (Erişkin)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "Cilt Dokusu (Çocuk)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr "Diff"
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr "XOR"
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr "Normal"
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr "MaxIP"
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr "MinIP"
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr "OrtalamaIP"
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr "MIDA"
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr "MaxIP çerçevesini çiz"
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr "MIDA Çerçevesini çiz"
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr "Pencere genişliği ve seviyesi"
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr "Sözde renk"
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr "Projeksiyon tipi"
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr "Önplan"
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr "Arkaplan"
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr "Set uygulanıyor..."
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr "3D yüzey oluşturuluyor..."
 
@@ -1296,15 +1848,23 @@ msgstr "3D yüzeyi dışa aktar"
 msgid "Export 3D surface..."
 msgstr "3D yüzeyi dışa aktar..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "3D yüzeyi kaydet..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr "Bir yüzey oluşturarak yapmalısınız"
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "dışa aktarmadan görülebilir."
 
@@ -1313,12 +1873,12 @@ msgid "Testing..."
 msgstr "Test ediliyor..."
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr "Yapılandırılacak DICOM dosyaları seç"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
+msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr "DICOM görüntüleri içe aktar..."
+msgid "Import medical images..."
+msgstr ""
 
 #: task_importer.py:87
 msgid "Open an existing InVesalius project..."
@@ -1328,325 +1888,424 @@ msgstr "Mevcut bir InVesalius projesi aç..."
 msgid "Open an existing project..."
 msgstr "Mevcut bir proje aç..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr ""
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "Kesit segmentasyonu ve düzenlemesi için maske oluştur"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "Yeni maske oluştur"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr "Yüzey oluştur"
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "Son yüzeyin üzerine yaz"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "Maske özellikleri"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr "Manuel baskı"
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "Önceden tanımlanmış veya manuel eşiği ayarlayın:"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "Fırça tipi, boyutu veya işlemi seçin:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "Çember"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "Kare"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "Fırça eşik aralığı:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr "Maske üzerine yaz"
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr "Pencere genişliği ve seviyesi kullan"
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr "Dönüm noktasını 3 boyutlu değiştirmek"
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "Maskeye göre 3D yüzey oluştur"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr "Yeni 3D yüzey oluştur"
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "Sonraki aşama"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "Yüzey özellikleri"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "Gelişmiş seçenekler"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "En geniş bağlantısız yüzeyi otomatik olarak seçip yeni yüzey oluştur"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr "En geniş yüzeyi seç"
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr "Bağlantısız bölgeleri otomatk olarak seçip her biri için yeni yüzey oluştur"
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "Tüm bağlantısız yüzeyleri ayır"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr "İlgilenilen alanlara manuel tohumlar ekleyerek yeni yüzey oluştur"
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "İlgilenilen bölgeleri seç..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "Saydamlık:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr "Çözünürlüğü düşür:"
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr "Pürüzsüz tekrarlanmalar:"
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "Mesafeleri ölç"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "Ölçüm"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "Metin açıklamaları ekle"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr "Görüntüyü oluşturmak üzere kullanılan kesit sayısı"
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr "Kontür keskinliğini kontrol eder. Değer attıkça kontür keskinliği artar."
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr "Ters düzen"
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr "eğer seçersek, parçalar alçalarak düzensiz bir şekilde çapraz geçer  bu bileşimin vizüalizasyonu büyüyen sıranın yerine seçer."
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr "Parçaların numarları"
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr "keskinlik"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr "AL"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr "RA"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr "PR"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr "LP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr "LA"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr "AR"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr "RP"
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr "PL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr "TL"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr "RT"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr "BR"
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr "LB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr "LT"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr "TR"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr "RB"
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr "BL"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr "TA"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr "PT"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr "BP"
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr "AB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr "AT"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr "TP"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr "PB"
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr "BA"
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1663,11 +2322,5 @@ msgstr "BA"
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/po/ur_PK.po b/po/ur_PK.po
deleted file mode 100644
index dcf61b7..0000000
--- a/po/ur_PK.po
+++ /dev/null
@@ -1,1672 +0,0 @@
-# InVesalius 3.0 Beta - English
-# Copyright (C) 2007-2009 Centro de Tecnologia da Informação Renato Archer
-# This file is distributed under the same license as the InVesalius package. (GNU General Public License v2)
-# Tatiana Al-Chueyr Pereira Martins <tatiana.alchueyr at gmail.com>
-# Paulo Henrique Junqueira Amorim <paulojamorim at gmail.com>
-# Thiago Franco de Morais <totonixsame at gmail.com>
-# Translators:
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: InVesalius3\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/invesalius3/language/ur_PK/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ur_PK\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-Country: GENERIC\n"
-"X-Poedit-Language: English\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: clut_raycasting.py:535
-#, python-format
-msgid "Value: %-6d"
-msgstr ""
-
-#: clut_raycasting.py:536
-#, python-format
-msgid "Alpha: %-.3f"
-msgstr ""
-
-#: constants.py:32
-#, python-format
-msgid "M %d"
-msgstr ""
-
-#: constants.py:44 constants.py:379 constants.py:381
-msgid " Off"
-msgstr ""
-
-#: constants.py:45
-msgid "Red-blue"
-msgstr ""
-
-#: constants.py:46
-msgid "CristalEyes"
-msgstr ""
-
-#: constants.py:47
-msgid "Interlaced"
-msgstr ""
-
-#: constants.py:48 constants.py:314
-msgid "Left"
-msgstr ""
-
-#: constants.py:49 constants.py:313
-msgid "Right"
-msgstr ""
-
-#: constants.py:50
-msgid "Dresden"
-msgstr ""
-
-#: constants.py:51
-msgid "Checkboard"
-msgstr ""
-
-#: constants.py:52
-msgid "Anaglyph"
-msgstr ""
-
-#: constants.py:105
-msgid "Keep all slices"
-msgstr ""
-
-#: constants.py:105
-msgid "Skip 1 for each 2 slices"
-msgstr ""
-
-#: constants.py:106
-msgid "Skip 2 for each 3 slices"
-msgstr ""
-
-#: constants.py:106
-msgid "Skip 3 for each 4 slices"
-msgstr ""
-
-#: constants.py:107
-msgid "Skip 4 for each 5 slices"
-msgstr ""
-
-#: constants.py:107
-msgid "Skip 5 for each 6 slices"
-msgstr ""
-
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
-msgid "Default "
-msgstr ""
-
-#: constants.py:148
-msgid "Hue"
-msgstr ""
-
-#: constants.py:149
-msgid "Saturation"
-msgstr ""
-
-#: constants.py:150
-msgid "Desert"
-msgstr ""
-
-#: constants.py:151
-msgid "Rainbow"
-msgstr ""
-
-#: constants.py:152
-msgid "Ocean"
-msgstr ""
-
-#: constants.py:153
-msgid "Inverse Gray"
-msgstr ""
-
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr ""
-
-#: constants.py:201
-#, python-format
-msgid "Mask %d"
-msgstr ""
-
-#: constants.py:257 task_surface.py:43
-msgid "Draw"
-msgstr ""
-
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
-msgid "Erase"
-msgstr ""
-
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
-msgid "Threshold"
-msgstr ""
-
-#: constants.py:269 constants.py:274
-msgid "Low"
-msgstr ""
-
-#: constants.py:270 constants.py:274
-msgid "Medium"
-msgstr ""
-
-#: constants.py:271 constants.py:274
-msgid "High"
-msgstr ""
-
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
-msgid "Optimal *"
-msgstr ""
-
-#: constants.py:279
-#, python-format
-msgid "Surface %d"
-msgstr ""
-
-#: constants.py:282
-msgid "Abdomen"
-msgstr ""
-
-#: constants.py:284
-msgid "Brain posterior fossa"
-msgstr ""
-
-#: constants.py:285
-msgid "Brain"
-msgstr ""
-
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
-msgid "Default"
-msgstr ""
-
-#: constants.py:287
-msgid "Emphysema"
-msgstr ""
-
-#: constants.py:288
-msgid "Ischemia - Hard, non contrast"
-msgstr ""
-
-#: constants.py:289
-msgid "Ischemia - Soft, non contrast"
-msgstr ""
-
-#: constants.py:290
-msgid "Larynx"
-msgstr ""
-
-#: constants.py:291
-msgid "Liver"
-msgstr ""
-
-#: constants.py:292
-msgid "Lung - Soft"
-msgstr ""
-
-#: constants.py:293
-msgid "Lung - Hard"
-msgstr ""
-
-#: constants.py:294
-msgid "Mediastinum"
-msgstr ""
-
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
-msgid "Manual"
-msgstr ""
-
-#: constants.py:296
-msgid "Pelvis"
-msgstr ""
-
-#: constants.py:297
-msgid "Sinus"
-msgstr ""
-
-#: constants.py:298
-msgid "Vasculature - Hard"
-msgstr ""
-
-#: constants.py:299
-msgid "Vasculature - Soft"
-msgstr ""
-
-#: constants.py:300
-msgid "Contour"
-msgstr ""
-
-#: constants.py:309
-msgid "Front"
-msgstr ""
-
-#: constants.py:310
-msgid "Back"
-msgstr ""
-
-#: constants.py:311
-msgid "Top"
-msgstr ""
-
-#: constants.py:312
-msgid "Bottom"
-msgstr ""
-
-#: constants.py:315
-msgid "Isometric"
-msgstr ""
-
-#: constants.py:326
-msgid "Airways"
-msgstr ""
-
-#: constants.py:327
-msgid "Airways II"
-msgstr ""
-
-#: constants.py:328
-msgid "Black & White"
-msgstr ""
-
-#: constants.py:329
-msgid "Bone + Skin"
-msgstr ""
-
-#: constants.py:330
-msgid "Bone + Skin II"
-msgstr ""
-
-#: constants.py:331
-msgid "Dark bone"
-msgstr ""
-
-#: constants.py:332
-msgid "Glossy"
-msgstr ""
-
-#: constants.py:333
-msgid "Glossy II"
-msgstr ""
-
-#: constants.py:334
-msgid "Gold bone"
-msgstr ""
-
-#: constants.py:335
-msgid "High contrast"
-msgstr ""
-
-#: constants.py:336
-msgid "Low contrast"
-msgstr ""
-
-#: constants.py:337 constants.py:345
-msgid "Soft on white"
-msgstr ""
-
-#: constants.py:338
-msgid "Mid contrast"
-msgstr ""
-
-#: constants.py:339
-msgid "MIP"
-msgstr ""
-
-#: constants.py:340
-msgid "No shading"
-msgstr ""
-
-#: constants.py:341
-msgid "Pencil"
-msgstr ""
-
-#: constants.py:342
-msgid "Red on white"
-msgstr ""
-
-#: constants.py:343
-msgid "Skin on blue"
-msgstr ""
-
-#: constants.py:344
-msgid "Skin on blue II"
-msgstr ""
-
-#: constants.py:346
-msgid "Soft + Skin"
-msgstr ""
-
-#: constants.py:347
-msgid "Soft + Skin II"
-msgstr ""
-
-#: constants.py:348
-msgid "Soft + Skin III"
-msgstr ""
-
-#: constants.py:349
-msgid "Soft on blue"
-msgstr ""
-
-#: constants.py:350
-msgid "Soft"
-msgstr ""
-
-#: constants.py:351
-msgid "Standard"
-msgstr ""
-
-#: constants.py:352
-msgid "Vascular"
-msgstr ""
-
-#: constants.py:353
-msgid "Vascular II"
-msgstr ""
-
-#: constants.py:354
-msgid "Vascular III"
-msgstr ""
-
-#: constants.py:355
-msgid "Vascular IV"
-msgstr ""
-
-#: constants.py:356
-msgid "Yellow bone"
-msgstr ""
-
-#: constants.py:382 volume.py:642
-msgid "Cut plane"
-msgstr ""
-
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
-msgstr ""
-
-#: control.py:421
-msgid "Untitled"
-msgstr ""
-
-#: control.py:559
-msgid "Fix gantry tilt applying the degrees below"
-msgstr ""
-
-#: data_notebook.py:44 measures.py:14
-msgid "Linear"
-msgstr ""
-
-#: data_notebook.py:45 measures.py:15
-msgid "Angular"
-msgstr ""
-
-#: data_notebook.py:48 measures.py:18
-msgid "3D"
-msgstr ""
-
-#: data_notebook.py:49 measures.py:19
-msgid "Axial"
-msgstr ""
-
-#: data_notebook.py:50 measures.py:20
-msgid "Coronal"
-msgstr ""
-
-#: data_notebook.py:51 measures.py:21
-msgid "Sagittal"
-msgstr ""
-
-#: data_notebook.py:66
-msgid "Masks"
-msgstr ""
-
-#: data_notebook.py:67
-msgid "3D surfaces"
-msgstr ""
-
-#: data_notebook.py:68
-msgid "Measures"
-msgstr ""
-
-#: data_notebook.py:185 frame.py:1160
-msgid "Measure distance"
-msgstr ""
-
-#: data_notebook.py:188 frame.py:1166
-msgid "Measure angle"
-msgstr ""
-
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
-msgid "Name"
-msgstr ""
-
-#: data_notebook.py:503 frame.py:652
-msgid "Mask"
-msgstr ""
-
-#: data_notebook.py:628 task_surface.py:140
-msgid "New surface"
-msgstr ""
-
-#: data_notebook.py:765
-msgid "Volume (mm³)"
-msgstr ""
-
-#: data_notebook.py:766
-msgid "Transparency"
-msgstr ""
-
-#: data_notebook.py:1004
-msgid "Location"
-msgstr ""
-
-#: data_notebook.py:1005 data_notebook.py:1196
-msgid "Type"
-msgstr ""
-
-#: data_notebook.py:1006 data_notebook.py:1197
-msgid "Value"
-msgstr ""
-
-#: default_tasks.py:151
-msgid "Data"
-msgstr ""
-
-#: default_tasks.py:244 default_tasks.py:250
-msgid "Load data"
-msgstr ""
-
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
-msgid "Select region of interest"
-msgstr ""
-
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
-msgid "Configure 3D surface"
-msgstr ""
-
-#: default_tasks.py:247
-msgid "Export data"
-msgstr ""
-
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr ""
-
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
-msgid "Axial slice"
-msgstr ""
-
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
-msgid "Coronal slice"
-msgstr ""
-
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
-msgid "Sagittal slice"
-msgstr ""
-
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
-msgid "Volume"
-msgstr ""
-
-#: default_viewers.py:434
-msgid "Preset name"
-msgstr ""
-
-#: default_viewers.py:437
-msgid "Save raycasting preset"
-msgstr ""
-
-#: default_viewers.py:471 frame.py:702
-msgid "Tools"
-msgstr ""
-
-#: dialogs.py:70
-msgid "Value will be applied."
-msgstr ""
-
-#: dialogs.py:74
-msgid "Value will not be applied."
-msgstr ""
-
-#: dialogs.py:108
-msgid ""
-"InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
-"If you want to work with 3D surfaces or volume rendering, \n"
-"it is recommended to reduce the medical images resolution."
-msgstr ""
-
-#: dialogs.py:122
-msgid "Percentage of original resolution"
-msgstr ""
-
-#: dialogs.py:170
-msgid "Loading DICOM files"
-msgstr ""
-
-#: dialogs.py:215
-msgid "Open InVesalius 3 project..."
-msgstr ""
-
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
-msgid "Choose a DICOM folder:"
-msgstr ""
-
-#: dialogs.py:312 frame.py:585
-msgid "Save project as..."
-msgstr ""
-
-#: dialogs.py:315
-msgid "InVesalius project (*.inv3)|*.inv3"
-msgstr ""
-
-#: dialogs.py:380 utils.py:375
-msgid ""
-"A new version of InVesalius is available. Do you want to open the download "
-"website now?"
-msgstr ""
-
-#: dialogs.py:381 utils.py:376
-msgid "Invesalius Update"
-msgstr ""
-
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
-#, python-format
-msgid ""
-"The project %s has been modified.\n"
-"Save changes?"
-msgstr ""
-
-#: dialogs.py:453
-#, python-format
-msgid "%s is an empty folder."
-msgstr ""
-
-#: dialogs.py:466
-msgid "There are no DICOM files in the selected folder."
-msgstr ""
-
-#: dialogs.py:477
-msgid "A mask is needed to create a surface."
-msgstr ""
-
-#: dialogs.py:488
-msgid "No mask was selected for removal."
-msgstr ""
-
-#: dialogs.py:499
-msgid "No surface was selected for removal."
-msgstr ""
-
-#: dialogs.py:511
-msgid "No measure was selected for removal."
-msgstr ""
-
-#: dialogs.py:522
-msgid "No mask was selected for duplication."
-msgstr ""
-
-#: dialogs.py:535
-msgid "No surface was selected for duplication."
-msgstr ""
-
-#: dialogs.py:581
-msgid "New mask name:"
-msgstr ""
-
-#: dialogs.py:585
-msgid "Name the mask to be created"
-msgstr ""
-
-#: dialogs.py:592
-msgid "Threshold preset:"
-msgstr ""
-
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
-msgid "Custom"
-msgstr ""
-
-#: dialogs.py:694
-#, python-format
-msgid "%s does not exist."
-msgstr ""
-
-#: dialogs.py:705
-msgid "Please, provide more than one DICOM file for 3D reconstruction"
-msgstr ""
-
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr ""
-
-#: dialogs.py:767
-msgid ""
-"InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
-"\n"
-" InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
-"\n"
-" Contact: invesalius at cti.gov.br"
-msgstr ""
-
-#: dialogs.py:775
-msgid "GNU GPL (General Public License) version 2"
-msgstr ""
-
-#: dialogs.py:812
-msgid "Save raycasting preset as:"
-msgstr ""
-
-#: dialogs.py:855 dialogs.py:1110
-msgid "New surface name:"
-msgstr ""
-
-#: dialogs.py:859 dialogs.py:1114
-msgid "Name the surface to be created"
-msgstr ""
-
-#: dialogs.py:866 dialogs.py:1121
-msgid "Mask of reference:"
-msgstr ""
-
-#: dialogs.py:884 dialogs.py:1139
-msgid "Surface quality:"
-msgstr ""
-
-#: dialogs.py:913 dialogs.py:1167
-msgid "Fill holes"
-msgstr ""
-
-#: dialogs.py:916 dialogs.py:1170
-msgid "Keep largest region"
-msgstr ""
-
-#: dialogs.py:954
-msgid "BMP image"
-msgstr ""
-
-#: dialogs.py:955
-msgid "JPG image"
-msgstr ""
-
-#: dialogs.py:956
-msgid "PNG image"
-msgstr ""
-
-#: dialogs.py:957
-msgid "PostScript document"
-msgstr ""
-
-#: dialogs.py:958
-msgid "POV-Ray file"
-msgstr ""
-
-#: dialogs.py:959
-msgid "TIFF image"
-msgstr ""
-
-#: dialogs.py:1004
-msgid "Surface generation options"
-msgstr ""
-
-#: dialogs.py:1034
-msgid "Surface creation"
-msgstr ""
-
-#: dialogs.py:1061
-msgid "Surface creation options"
-msgstr ""
-
-#: dialogs.py:1067
-msgid "Surface creation method"
-msgstr ""
-
-#: dialogs.py:1215 frame.py:705
-msgid "Options"
-msgstr ""
-
-#: dialogs.py:1231
-msgid "Angle:"
-msgstr ""
-
-#: dialogs.py:1233
-msgid "Max. distance:"
-msgstr ""
-
-#: dialogs.py:1235
-msgid "Min. weight:"
-msgstr ""
-
-#: dialogs.py:1237
-msgid "N. steps:"
-msgstr ""
-
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
-msgid "Context aware smoothing"
-msgstr ""
-
-#: dialogs.py:1257
-msgid "Binary"
-msgstr ""
-
-#: dialogs.py:1275
-msgid ""
-"It is not possible to use the Default method because the mask was edited."
-msgstr ""
-
-#: dialogs.py:1278
-msgid "Method:"
-msgstr ""
-
-#: dialogs.py:1407
-msgid "Method"
-msgstr ""
-
-#: dialogs.py:1430
-msgid "Gaussian sigma"
-msgstr ""
-
-#: dialogs.py:1452 task_slice.py:284
-msgid "Watershed"
-msgstr ""
-
-#: dialogs.py:1492 frame.py:646
-msgid "Boolean operations"
-msgstr ""
-
-#: dialogs.py:1513 slice_.py:1244
-msgid "Union"
-msgstr ""
-
-#: dialogs.py:1514
-msgid "Difference"
-msgstr ""
-
-#: dialogs.py:1515 slice_.py:1246
-msgid "Intersection"
-msgstr ""
-
-#: dialogs.py:1516
-msgid "Exclusive disjunction"
-msgstr ""
-
-#: dialogs.py:1537
-msgid "Mask 1"
-msgstr ""
-
-#: dialogs.py:1539
-msgid "Operation"
-msgstr ""
-
-#: dialogs.py:1541
-msgid "Mask 2"
-msgstr ""
-
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr ""
-
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr ""
-
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr ""
-
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr ""
-
-#: dicom_preview_panel.py:53
-#, python-format
-msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr ""
-
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr ""
-
-#: dicom_preview_panel.py:409
-#, python-format
-msgid "%d images"
-msgstr ""
-
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
-#, python-format
-msgid "Image %d"
-msgstr ""
-
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
-
-#: frame.py:164
-msgid "Data panel"
-msgstr ""
-
-#: frame.py:171
-msgid "Preview medical data to be reconstructed"
-msgstr ""
-
-#: frame.py:177
-msgid "Retrieve DICOM from PACS"
-msgstr ""
-
-#: frame.py:580
-msgid "Import DICOM...\tCtrl+I"
-msgstr ""
-
-#: frame.py:582
-msgid "Import other files..."
-msgstr ""
-
-#: frame.py:583
-msgid "Open project...\tCtrl+O"
-msgstr ""
-
-#: frame.py:584
-msgid "Save project\tCtrl+S"
-msgstr ""
-
-#: frame.py:586
-msgid "Close project"
-msgstr ""
-
-#: frame.py:595
-msgid "Exit\tCtrl+Q"
-msgstr ""
-
-#: frame.py:626 frame.py:636
-msgid "Undo\tCtrl+Z"
-msgstr ""
-
-#: frame.py:631 frame.py:637
-msgid "Redo\tCtrl+Y"
-msgstr ""
-
-#: frame.py:649
-msgid "Clean Mask\tCtrl+Shift+A"
-msgstr ""
-
-#: frame.py:685
-msgid "Preferences..."
-msgstr ""
-
-#: frame.py:689
-msgid "Getting started..."
-msgstr ""
-
-#: frame.py:692
-msgid "About..."
-msgstr ""
-
-#: frame.py:700
-msgid "File"
-msgstr ""
-
-#: frame.py:701
-msgid "Edit"
-msgstr ""
-
-#: frame.py:706
-msgid "Help"
-msgstr ""
-
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
-msgid "Ready"
-msgstr ""
-
-#: frame.py:969
-msgid "Import DICOM files...\tCtrl+I"
-msgstr ""
-
-#: frame.py:978
-msgid "Open InVesalius project..."
-msgstr ""
-
-#: frame.py:984
-msgid "Save InVesalius project"
-msgstr ""
-
-#: frame.py:1130
-msgid "Zoom"
-msgstr ""
-
-#: frame.py:1136
-msgid "Zoom based on selection"
-msgstr ""
-
-#: frame.py:1142
-msgid "Rotate"
-msgstr ""
-
-#: frame.py:1148
-msgid "Move"
-msgstr ""
-
-#: frame.py:1154
-msgid "Constrast"
-msgstr ""
-
-#: frame.py:1312
-msgid "Scroll slices"
-msgstr ""
-
-#: frame.py:1318
-msgid "Slices' cross intersection"
-msgstr ""
-
-#: frame.py:1488 frame.py:1560 frame.py:1741
-msgid "Hide task panel"
-msgstr ""
-
-#: frame.py:1494 frame.py:1582 frame.py:1763
-msgid "Hide text"
-msgstr ""
-
-#: frame.py:1566 frame.py:1747
-msgid "Show task panel"
-msgstr ""
-
-#: frame.py:1576 frame.py:1757
-msgid "Show text"
-msgstr ""
-
-#: frame.py:1657
-msgid "Undo"
-msgstr ""
-
-#: frame.py:1664
-msgid "Redo"
-msgstr ""
-
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
-msgid "Generating multiplanar visualization..."
-msgstr ""
-
-#: import_network_panel.py:101 import_panel.py:94
-msgid "Import"
-msgstr ""
-
-#: import_network_panel.py:239 import_panel.py:224
-msgid "Patient name"
-msgstr ""
-
-#: import_network_panel.py:240 import_panel.py:225
-msgid "Patient ID"
-msgstr ""
-
-#: import_network_panel.py:241 import_panel.py:226
-msgid "Age"
-msgstr ""
-
-#: import_network_panel.py:242 import_panel.py:227
-msgid "Gender"
-msgstr ""
-
-#: import_network_panel.py:243 import_panel.py:228
-msgid "Study description"
-msgstr ""
-
-#: import_network_panel.py:244 import_panel.py:229
-msgid "Modality"
-msgstr ""
-
-#: import_network_panel.py:245 import_panel.py:230
-msgid "Date acquired"
-msgstr ""
-
-#: import_network_panel.py:246 import_panel.py:231
-msgid "# Images"
-msgstr ""
-
-#: import_network_panel.py:247 import_panel.py:232
-msgid "Institution"
-msgstr ""
-
-#: import_network_panel.py:248 import_panel.py:233
-msgid "Date of birth"
-msgstr ""
-
-#: import_network_panel.py:249 import_panel.py:234
-msgid "Accession Number"
-msgstr ""
-
-#: import_network_panel.py:250 import_panel.py:235
-msgid "Referring physician"
-msgstr ""
-
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
-
-#: import_network_panel.py:497
-msgid "Word"
-msgstr ""
-
-#: import_network_panel.py:504
-msgid "Search"
-msgstr ""
-
-#: import_network_panel.py:663
-msgid "Active"
-msgstr ""
-
-#: import_network_panel.py:664
-msgid "Host"
-msgstr ""
-
-#: import_network_panel.py:665
-msgid "Port"
-msgstr ""
-
-#: import_network_panel.py:666
-msgid "AETitle"
-msgstr ""
-
-#: import_network_panel.py:667
-msgid "Status"
-msgstr ""
-
-#: import_network_panel.py:694
-msgid "Add"
-msgstr ""
-
-#: import_network_panel.py:695
-msgid "Remove"
-msgstr ""
-
-#: import_network_panel.py:696
-msgid "Check status"
-msgstr ""
-
-#: import_network_panel.py:769
-msgid "ok"
-msgstr ""
-
-#: import_network_panel.py:771
-msgid "error"
-msgstr ""
-
-#: language_dialog.py:78
-msgid "Language selection"
-msgstr ""
-
-#: language_dialog.py:122
-msgid "Choose user interface language"
-msgstr ""
-
-#: polydata_utils.py:139
-msgid "Analysing selected regions..."
-msgstr ""
-
-#: polydata_utils.py:198
-msgid "Splitting disconnected regions..."
-msgstr ""
-
-#: preferences.py:18
-msgid "Preferences"
-msgstr ""
-
-#: preferences.py:41
-msgid "Visualization"
-msgstr ""
-
-#: preferences.py:42 preferences.py:147
-msgid "Language"
-msgstr ""
-
-#: preferences.py:95
-msgid "Surface"
-msgstr ""
-
-#: preferences.py:98
-msgid "Interpolation "
-msgstr ""
-
-#: preferences.py:106
-msgid "Volume rendering"
-msgstr ""
-
-#: preferences.py:109
-msgid "Rendering"
-msgstr ""
-
-#: preferences.py:113
-msgid "GPU (NVidia video cards only)"
-msgstr ""
-
-#: preferences.py:150
-msgid ""
-"Language settings will be applied \n"
-" the next time InVesalius starts."
-msgstr ""
-
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
-msgid "Soft Tissue"
-msgstr ""
-
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
-msgid "Enamel (Adult)"
-msgstr ""
-
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
-msgid "Enamel (Child)"
-msgstr ""
-
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
-msgid "Compact Bone (Adult)"
-msgstr ""
-
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
-msgid "Compact Bone (Child)"
-msgstr ""
-
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
-msgid "Spongial Bone (Adult)"
-msgstr ""
-
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
-msgid "Spongial Bone (Child)"
-msgstr ""
-
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
-msgid "Muscle Tissue (Adult)"
-msgstr ""
-
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
-msgid "Muscle Tissue (Child)"
-msgstr ""
-
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
-msgid "Fat Tissue (Adult)"
-msgstr ""
-
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
-msgid "Fat Tissue (Child)"
-msgstr ""
-
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
-msgid "Skin Tissue (Adult)"
-msgstr ""
-
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
-msgid "Skin Tissue (Child)"
-msgstr ""
-
-#: slice_.py:1245
-msgid "Diff"
-msgstr ""
-
-#: slice_.py:1247
-msgid "XOR"
-msgstr ""
-
-#: slice_menu.py:38
-msgid "Normal"
-msgstr ""
-
-#: slice_menu.py:39
-msgid "MaxIP"
-msgstr ""
-
-#: slice_menu.py:40
-msgid "MinIP"
-msgstr ""
-
-#: slice_menu.py:41
-msgid "MeanIP"
-msgstr ""
-
-#: slice_menu.py:42
-msgid "MIDA"
-msgstr ""
-
-#: slice_menu.py:43
-msgid "Contour MaxIP"
-msgstr ""
-
-#: slice_menu.py:44
-msgid "Contour MIDA"
-msgstr ""
-
-#: slice_menu.py:162
-msgid "Window width and level"
-msgstr ""
-
-#: slice_menu.py:163
-msgid "Pseudo color"
-msgstr ""
-
-#: slice_menu.py:164
-msgid "Projection type"
-msgstr ""
-
-#: styles.py:58 task_slice.py:853
-msgid "Foreground"
-msgstr ""
-
-#: styles.py:59 task_slice.py:854
-msgid "Background"
-msgstr ""
-
-#: styles.py:833
-msgid "Applying watershed ..."
-msgstr ""
-
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
-msgid "Creating 3D surface..."
-msgstr ""
-
-#: task_exporter.py:109
-msgid "Export InVesalius screen to an image file"
-msgstr ""
-
-#: task_exporter.py:111
-msgid "Export picture..."
-msgstr ""
-
-#: task_exporter.py:122
-msgid "Export 3D surface"
-msgstr ""
-
-#: task_exporter.py:123
-msgid "Export 3D surface..."
-msgstr ""
-
-#: task_exporter.py:320
-msgid "Save 3D surface as..."
-msgstr ""
-
-#: task_exporter.py:339
-msgid "You need to create a surface and make it "
-msgstr ""
-
-#: task_exporter.py:340
-msgid "visible before exporting it."
-msgstr ""
-
-#: task_generic.py:65
-msgid "Testing..."
-msgstr ""
-
-#: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr ""
-
-#: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr ""
-
-#: task_importer.py:87
-msgid "Open an existing InVesalius project..."
-msgstr ""
-
-#: task_importer.py:88
-msgid "Open an existing project..."
-msgstr ""
-
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
-msgstr ""
-
-#: task_slice.py:86
-msgid "Create new mask"
-msgstr ""
-
-#: task_slice.py:116
-msgid "Create surface"
-msgstr ""
-
-#: task_slice.py:117
-msgid "Overwrite last surface"
-msgstr ""
-
-#: task_slice.py:266
-msgid "Mask properties"
-msgstr ""
-
-#: task_slice.py:274
-msgid "Manual edition"
-msgstr ""
-
-#: task_slice.py:422
-msgid "Set predefined or manual threshold:"
-msgstr ""
-
-#: task_slice.py:652 task_slice.py:816
-msgid "Choose brush type, size or operation:"
-msgstr ""
-
-#: task_slice.py:658 task_slice.py:822
-msgid "Circle"
-msgstr ""
-
-#: task_slice.py:662 task_slice.py:826
-msgid "Square"
-msgstr ""
-
-#: task_slice.py:703
-msgid "Brush threshold range:"
-msgstr ""
-
-#: task_slice.py:873
-msgid "Overwrite mask"
-msgstr ""
-
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
-msgid "Expand watershed to 3D"
-msgstr ""
-
-#: task_surface.py:87
-msgid "Create 3D surface based on a mask"
-msgstr ""
-
-#: task_surface.py:88
-msgid "Create new 3D surface"
-msgstr ""
-
-#: task_surface.py:108
-msgid "Next step"
-msgstr ""
-
-#: task_surface.py:216
-msgid "Surface properties"
-msgstr ""
-
-#: task_surface.py:222
-msgid "Advanced options"
-msgstr ""
-
-#: task_surface.py:274
-msgid ""
-"Automatically select largest disconnected region and create new surface"
-msgstr ""
-
-#: task_surface.py:275
-msgid "Select largest surface"
-msgstr ""
-
-#: task_surface.py:283
-msgid ""
-"Automatically select disconnected regions and create a new surface per "
-"region"
-msgstr ""
-
-#: task_surface.py:284
-msgid "Split all disconnected surfaces"
-msgstr ""
-
-#: task_surface.py:292
-msgid "Manually insert seeds of regions of interest and create a new surface"
-msgstr ""
-
-#: task_surface.py:293
-msgid "Select regions of interest..."
-msgstr ""
-
-#: task_surface.py:429
-msgid "Transparency:"
-msgstr ""
-
-#: task_surface.py:578
-msgid "Decimate resolution:"
-msgstr ""
-
-#: task_surface.py:588
-msgid "Smooth iterations:"
-msgstr ""
-
-#: task_tools.py:60
-msgid "Measure distances"
-msgstr ""
-
-#: task_tools.py:61
-msgid "Measure"
-msgstr ""
-
-#: task_tools.py:64 task_tools.py:65
-msgid "Add text annotations"
-msgstr ""
-
-#: viewer_slice.py:66
-msgid "Number of slices used to compound the visualization."
-msgstr ""
-
-#: viewer_slice.py:75
-msgid ""
-"Controls the sharpness of the contour. The greater the value, the sharper "
-"the contour."
-msgstr ""
-
-#: viewer_slice.py:83
-msgid "Inverted order"
-msgstr ""
-
-#: viewer_slice.py:84
-msgid ""
-"If checked, the slices are traversed in descending order to compound the "
-"visualization instead of ascending order."
-msgstr ""
-
-#: viewer_slice.py:90
-msgid "Number of slices"
-msgstr ""
-
-#: viewer_slice.py:91
-msgid "Sharpness"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
-msgid "R"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
-msgid "L"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "A"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "P"
-msgstr ""
-
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "T"
-msgstr ""
-
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "B"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "AL"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "RA"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "PR"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "LP"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "LA"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "AR"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "RP"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "PL"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "TL"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "RT"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "BR"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "LB"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "LT"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "TR"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "RB"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "BL"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "TA"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "PT"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "BP"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "AB"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "AT"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "TP"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "PB"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "BA"
-msgstr ""
-
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
-
-#~ msgid "Advanced editing tools"
-#~ msgstr "Advanced editing tools"
-
-#~ msgid "Exit"
-#~ msgstr "Exit"
-
-#~ msgid "Off"
-#~ msgstr " Off"
-
-#~ msgid "Save Project As..."
-#~ msgstr "Save Project As..."
-
-#~ msgid "Open a InVesalius project..."
-#~ msgstr "Open a InVesalius project..."
-
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
-#~ msgid "Image Tiling"
-#~ msgstr "Image Tiling"
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644
index 8681631..0000000
--- a/po/zh_CN.po
+++ /dev/null
@@ -1,1672 +0,0 @@
-# InVesalius 3.0 Beta - English
-# Copyright (C) 2007-2009 Centro de Tecnologia da Informação Renato Archer
-# This file is distributed under the same license as the InVesalius package. (GNU General Public License v2)
-# Tatiana Al-Chueyr Pereira Martins <tatiana.alchueyr at gmail.com>
-# Paulo Henrique Junqueira Amorim <paulojamorim at gmail.com>
-# Thiago Franco de Morais <totonixsame at gmail.com>
-# Translators:
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: InVesalius3\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/invesalius3/language/zh_CN/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Poedit-Country: GENERIC\n"
-"X-Poedit-Language: English\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: clut_raycasting.py:535
-#, python-format
-msgid "Value: %-6d"
-msgstr ""
-
-#: clut_raycasting.py:536
-#, python-format
-msgid "Alpha: %-.3f"
-msgstr ""
-
-#: constants.py:32
-#, python-format
-msgid "M %d"
-msgstr ""
-
-#: constants.py:44 constants.py:379 constants.py:381
-msgid " Off"
-msgstr ""
-
-#: constants.py:45
-msgid "Red-blue"
-msgstr ""
-
-#: constants.py:46
-msgid "CristalEyes"
-msgstr ""
-
-#: constants.py:47
-msgid "Interlaced"
-msgstr ""
-
-#: constants.py:48 constants.py:314
-msgid "Left"
-msgstr ""
-
-#: constants.py:49 constants.py:313
-msgid "Right"
-msgstr ""
-
-#: constants.py:50
-msgid "Dresden"
-msgstr ""
-
-#: constants.py:51
-msgid "Checkboard"
-msgstr ""
-
-#: constants.py:52
-msgid "Anaglyph"
-msgstr ""
-
-#: constants.py:105
-msgid "Keep all slices"
-msgstr ""
-
-#: constants.py:105
-msgid "Skip 1 for each 2 slices"
-msgstr ""
-
-#: constants.py:106
-msgid "Skip 2 for each 3 slices"
-msgstr ""
-
-#: constants.py:106
-msgid "Skip 3 for each 4 slices"
-msgstr ""
-
-#: constants.py:107
-msgid "Skip 4 for each 5 slices"
-msgstr ""
-
-#: constants.py:107
-msgid "Skip 5 for each 6 slices"
-msgstr ""
-
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
-msgid "Default "
-msgstr ""
-
-#: constants.py:148
-msgid "Hue"
-msgstr ""
-
-#: constants.py:149
-msgid "Saturation"
-msgstr ""
-
-#: constants.py:150
-msgid "Desert"
-msgstr ""
-
-#: constants.py:151
-msgid "Rainbow"
-msgstr ""
-
-#: constants.py:152
-msgid "Ocean"
-msgstr ""
-
-#: constants.py:153
-msgid "Inverse Gray"
-msgstr ""
-
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr ""
-
-#: constants.py:201
-#, python-format
-msgid "Mask %d"
-msgstr ""
-
-#: constants.py:257 task_surface.py:43
-msgid "Draw"
-msgstr ""
-
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
-msgid "Erase"
-msgstr ""
-
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
-msgid "Threshold"
-msgstr ""
-
-#: constants.py:269 constants.py:274
-msgid "Low"
-msgstr ""
-
-#: constants.py:270 constants.py:274
-msgid "Medium"
-msgstr ""
-
-#: constants.py:271 constants.py:274
-msgid "High"
-msgstr ""
-
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
-msgid "Optimal *"
-msgstr ""
-
-#: constants.py:279
-#, python-format
-msgid "Surface %d"
-msgstr ""
-
-#: constants.py:282
-msgid "Abdomen"
-msgstr ""
-
-#: constants.py:284
-msgid "Brain posterior fossa"
-msgstr ""
-
-#: constants.py:285
-msgid "Brain"
-msgstr ""
-
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
-msgid "Default"
-msgstr ""
-
-#: constants.py:287
-msgid "Emphysema"
-msgstr ""
-
-#: constants.py:288
-msgid "Ischemia - Hard, non contrast"
-msgstr ""
-
-#: constants.py:289
-msgid "Ischemia - Soft, non contrast"
-msgstr ""
-
-#: constants.py:290
-msgid "Larynx"
-msgstr ""
-
-#: constants.py:291
-msgid "Liver"
-msgstr ""
-
-#: constants.py:292
-msgid "Lung - Soft"
-msgstr ""
-
-#: constants.py:293
-msgid "Lung - Hard"
-msgstr ""
-
-#: constants.py:294
-msgid "Mediastinum"
-msgstr ""
-
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
-msgid "Manual"
-msgstr ""
-
-#: constants.py:296
-msgid "Pelvis"
-msgstr ""
-
-#: constants.py:297
-msgid "Sinus"
-msgstr ""
-
-#: constants.py:298
-msgid "Vasculature - Hard"
-msgstr ""
-
-#: constants.py:299
-msgid "Vasculature - Soft"
-msgstr ""
-
-#: constants.py:300
-msgid "Contour"
-msgstr ""
-
-#: constants.py:309
-msgid "Front"
-msgstr ""
-
-#: constants.py:310
-msgid "Back"
-msgstr ""
-
-#: constants.py:311
-msgid "Top"
-msgstr ""
-
-#: constants.py:312
-msgid "Bottom"
-msgstr ""
-
-#: constants.py:315
-msgid "Isometric"
-msgstr ""
-
-#: constants.py:326
-msgid "Airways"
-msgstr ""
-
-#: constants.py:327
-msgid "Airways II"
-msgstr ""
-
-#: constants.py:328
-msgid "Black & White"
-msgstr ""
-
-#: constants.py:329
-msgid "Bone + Skin"
-msgstr ""
-
-#: constants.py:330
-msgid "Bone + Skin II"
-msgstr ""
-
-#: constants.py:331
-msgid "Dark bone"
-msgstr ""
-
-#: constants.py:332
-msgid "Glossy"
-msgstr ""
-
-#: constants.py:333
-msgid "Glossy II"
-msgstr ""
-
-#: constants.py:334
-msgid "Gold bone"
-msgstr ""
-
-#: constants.py:335
-msgid "High contrast"
-msgstr ""
-
-#: constants.py:336
-msgid "Low contrast"
-msgstr ""
-
-#: constants.py:337 constants.py:345
-msgid "Soft on white"
-msgstr ""
-
-#: constants.py:338
-msgid "Mid contrast"
-msgstr ""
-
-#: constants.py:339
-msgid "MIP"
-msgstr ""
-
-#: constants.py:340
-msgid "No shading"
-msgstr ""
-
-#: constants.py:341
-msgid "Pencil"
-msgstr ""
-
-#: constants.py:342
-msgid "Red on white"
-msgstr ""
-
-#: constants.py:343
-msgid "Skin on blue"
-msgstr ""
-
-#: constants.py:344
-msgid "Skin on blue II"
-msgstr ""
-
-#: constants.py:346
-msgid "Soft + Skin"
-msgstr ""
-
-#: constants.py:347
-msgid "Soft + Skin II"
-msgstr ""
-
-#: constants.py:348
-msgid "Soft + Skin III"
-msgstr ""
-
-#: constants.py:349
-msgid "Soft on blue"
-msgstr ""
-
-#: constants.py:350
-msgid "Soft"
-msgstr ""
-
-#: constants.py:351
-msgid "Standard"
-msgstr ""
-
-#: constants.py:352
-msgid "Vascular"
-msgstr ""
-
-#: constants.py:353
-msgid "Vascular II"
-msgstr ""
-
-#: constants.py:354
-msgid "Vascular III"
-msgstr ""
-
-#: constants.py:355
-msgid "Vascular IV"
-msgstr ""
-
-#: constants.py:356
-msgid "Yellow bone"
-msgstr ""
-
-#: constants.py:382 volume.py:642
-msgid "Cut plane"
-msgstr ""
-
-#: control.py:304
-#, python-format
-msgid "Loading file %d of %d ..."
-msgstr ""
-
-#: control.py:421
-msgid "Untitled"
-msgstr ""
-
-#: control.py:559
-msgid "Fix gantry tilt applying the degrees below"
-msgstr ""
-
-#: data_notebook.py:44 measures.py:14
-msgid "Linear"
-msgstr ""
-
-#: data_notebook.py:45 measures.py:15
-msgid "Angular"
-msgstr ""
-
-#: data_notebook.py:48 measures.py:18
-msgid "3D"
-msgstr ""
-
-#: data_notebook.py:49 measures.py:19
-msgid "Axial"
-msgstr ""
-
-#: data_notebook.py:50 measures.py:20
-msgid "Coronal"
-msgstr ""
-
-#: data_notebook.py:51 measures.py:21
-msgid "Sagittal"
-msgstr ""
-
-#: data_notebook.py:66
-msgid "Masks"
-msgstr ""
-
-#: data_notebook.py:67
-msgid "3D surfaces"
-msgstr ""
-
-#: data_notebook.py:68
-msgid "Measures"
-msgstr ""
-
-#: data_notebook.py:185 frame.py:1160
-msgid "Measure distance"
-msgstr ""
-
-#: data_notebook.py:188 frame.py:1166
-msgid "Measure angle"
-msgstr ""
-
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
-msgid "Name"
-msgstr ""
-
-#: data_notebook.py:503 frame.py:652
-msgid "Mask"
-msgstr ""
-
-#: data_notebook.py:628 task_surface.py:140
-msgid "New surface"
-msgstr ""
-
-#: data_notebook.py:765
-msgid "Volume (mm³)"
-msgstr ""
-
-#: data_notebook.py:766
-msgid "Transparency"
-msgstr ""
-
-#: data_notebook.py:1004
-msgid "Location"
-msgstr ""
-
-#: data_notebook.py:1005 data_notebook.py:1196
-msgid "Type"
-msgstr ""
-
-#: data_notebook.py:1006 data_notebook.py:1197
-msgid "Value"
-msgstr ""
-
-#: default_tasks.py:151
-msgid "Data"
-msgstr ""
-
-#: default_tasks.py:244 default_tasks.py:250
-msgid "Load data"
-msgstr ""
-
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
-msgid "Select region of interest"
-msgstr ""
-
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
-msgid "Configure 3D surface"
-msgstr ""
-
-#: default_tasks.py:247
-msgid "Export data"
-msgstr ""
-
-#: default_tasks.py:253
-msgid "Utilize navigation system"
-msgstr ""
-
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
-msgid "Axial slice"
-msgstr ""
-
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
-msgid "Coronal slice"
-msgstr ""
-
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
-msgid "Sagittal slice"
-msgstr ""
-
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
-msgid "Volume"
-msgstr ""
-
-#: default_viewers.py:434
-msgid "Preset name"
-msgstr ""
-
-#: default_viewers.py:437
-msgid "Save raycasting preset"
-msgstr ""
-
-#: default_viewers.py:471 frame.py:702
-msgid "Tools"
-msgstr ""
-
-#: dialogs.py:70
-msgid "Value will be applied."
-msgstr ""
-
-#: dialogs.py:74
-msgid "Value will not be applied."
-msgstr ""
-
-#: dialogs.py:108
-msgid ""
-"InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
-"If you want to work with 3D surfaces or volume rendering, \n"
-"it is recommended to reduce the medical images resolution."
-msgstr ""
-
-#: dialogs.py:122
-msgid "Percentage of original resolution"
-msgstr ""
-
-#: dialogs.py:170
-msgid "Loading DICOM files"
-msgstr ""
-
-#: dialogs.py:215
-msgid "Open InVesalius 3 project..."
-msgstr ""
-
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
-msgid "Choose a DICOM folder:"
-msgstr ""
-
-#: dialogs.py:312 frame.py:585
-msgid "Save project as..."
-msgstr ""
-
-#: dialogs.py:315
-msgid "InVesalius project (*.inv3)|*.inv3"
-msgstr ""
-
-#: dialogs.py:380 utils.py:375
-msgid ""
-"A new version of InVesalius is available. Do you want to open the download "
-"website now?"
-msgstr ""
-
-#: dialogs.py:381 utils.py:376
-msgid "Invesalius Update"
-msgstr ""
-
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
-#, python-format
-msgid ""
-"The project %s has been modified.\n"
-"Save changes?"
-msgstr ""
-
-#: dialogs.py:453
-#, python-format
-msgid "%s is an empty folder."
-msgstr ""
-
-#: dialogs.py:466
-msgid "There are no DICOM files in the selected folder."
-msgstr ""
-
-#: dialogs.py:477
-msgid "A mask is needed to create a surface."
-msgstr ""
-
-#: dialogs.py:488
-msgid "No mask was selected for removal."
-msgstr ""
-
-#: dialogs.py:499
-msgid "No surface was selected for removal."
-msgstr ""
-
-#: dialogs.py:511
-msgid "No measure was selected for removal."
-msgstr ""
-
-#: dialogs.py:522
-msgid "No mask was selected for duplication."
-msgstr ""
-
-#: dialogs.py:535
-msgid "No surface was selected for duplication."
-msgstr ""
-
-#: dialogs.py:581
-msgid "New mask name:"
-msgstr ""
-
-#: dialogs.py:585
-msgid "Name the mask to be created"
-msgstr ""
-
-#: dialogs.py:592
-msgid "Threshold preset:"
-msgstr ""
-
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
-msgid "Custom"
-msgstr ""
-
-#: dialogs.py:694
-#, python-format
-msgid "%s does not exist."
-msgstr ""
-
-#: dialogs.py:705
-msgid "Please, provide more than one DICOM file for 3D reconstruction"
-msgstr ""
-
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
-msgstr ""
-
-#: dialogs.py:767
-msgid ""
-"InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
-"\n"
-" InVesalius must be used only for research. The Center for Information Technology Renato Archer is not responsible for damages caused by the use of this software.\n"
-"\n"
-" Contact: invesalius at cti.gov.br"
-msgstr ""
-
-#: dialogs.py:775
-msgid "GNU GPL (General Public License) version 2"
-msgstr ""
-
-#: dialogs.py:812
-msgid "Save raycasting preset as:"
-msgstr ""
-
-#: dialogs.py:855 dialogs.py:1110
-msgid "New surface name:"
-msgstr ""
-
-#: dialogs.py:859 dialogs.py:1114
-msgid "Name the surface to be created"
-msgstr ""
-
-#: dialogs.py:866 dialogs.py:1121
-msgid "Mask of reference:"
-msgstr ""
-
-#: dialogs.py:884 dialogs.py:1139
-msgid "Surface quality:"
-msgstr ""
-
-#: dialogs.py:913 dialogs.py:1167
-msgid "Fill holes"
-msgstr ""
-
-#: dialogs.py:916 dialogs.py:1170
-msgid "Keep largest region"
-msgstr ""
-
-#: dialogs.py:954
-msgid "BMP image"
-msgstr ""
-
-#: dialogs.py:955
-msgid "JPG image"
-msgstr ""
-
-#: dialogs.py:956
-msgid "PNG image"
-msgstr ""
-
-#: dialogs.py:957
-msgid "PostScript document"
-msgstr ""
-
-#: dialogs.py:958
-msgid "POV-Ray file"
-msgstr ""
-
-#: dialogs.py:959
-msgid "TIFF image"
-msgstr ""
-
-#: dialogs.py:1004
-msgid "Surface generation options"
-msgstr ""
-
-#: dialogs.py:1034
-msgid "Surface creation"
-msgstr ""
-
-#: dialogs.py:1061
-msgid "Surface creation options"
-msgstr ""
-
-#: dialogs.py:1067
-msgid "Surface creation method"
-msgstr ""
-
-#: dialogs.py:1215 frame.py:705
-msgid "Options"
-msgstr ""
-
-#: dialogs.py:1231
-msgid "Angle:"
-msgstr ""
-
-#: dialogs.py:1233
-msgid "Max. distance:"
-msgstr ""
-
-#: dialogs.py:1235
-msgid "Min. weight:"
-msgstr ""
-
-#: dialogs.py:1237
-msgid "N. steps:"
-msgstr ""
-
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
-msgid "Context aware smoothing"
-msgstr ""
-
-#: dialogs.py:1257
-msgid "Binary"
-msgstr ""
-
-#: dialogs.py:1275
-msgid ""
-"It is not possible to use the Default method because the mask was edited."
-msgstr ""
-
-#: dialogs.py:1278
-msgid "Method:"
-msgstr ""
-
-#: dialogs.py:1407
-msgid "Method"
-msgstr ""
-
-#: dialogs.py:1430
-msgid "Gaussian sigma"
-msgstr ""
-
-#: dialogs.py:1452 task_slice.py:284
-msgid "Watershed"
-msgstr ""
-
-#: dialogs.py:1492 frame.py:646
-msgid "Boolean operations"
-msgstr ""
-
-#: dialogs.py:1513 slice_.py:1244
-msgid "Union"
-msgstr ""
-
-#: dialogs.py:1514
-msgid "Difference"
-msgstr ""
-
-#: dialogs.py:1515 slice_.py:1246
-msgid "Intersection"
-msgstr ""
-
-#: dialogs.py:1516
-msgid "Exclusive disjunction"
-msgstr ""
-
-#: dialogs.py:1537
-msgid "Mask 1"
-msgstr ""
-
-#: dialogs.py:1539
-msgid "Operation"
-msgstr ""
-
-#: dialogs.py:1541
-msgid "Mask 2"
-msgstr ""
-
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr ""
-
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr ""
-
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
-msgstr ""
-
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
-msgstr ""
-
-#: dicom_preview_panel.py:53
-#, python-format
-msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr ""
-
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr ""
-
-#: dicom_preview_panel.py:409
-#, python-format
-msgid "%d images"
-msgstr ""
-
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
-#, python-format
-msgid "Image %d"
-msgstr ""
-
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr ""
-
-#: frame.py:164
-msgid "Data panel"
-msgstr ""
-
-#: frame.py:171
-msgid "Preview medical data to be reconstructed"
-msgstr ""
-
-#: frame.py:177
-msgid "Retrieve DICOM from PACS"
-msgstr ""
-
-#: frame.py:580
-msgid "Import DICOM...\tCtrl+I"
-msgstr ""
-
-#: frame.py:582
-msgid "Import other files..."
-msgstr ""
-
-#: frame.py:583
-msgid "Open project...\tCtrl+O"
-msgstr ""
-
-#: frame.py:584
-msgid "Save project\tCtrl+S"
-msgstr ""
-
-#: frame.py:586
-msgid "Close project"
-msgstr ""
-
-#: frame.py:595
-msgid "Exit\tCtrl+Q"
-msgstr ""
-
-#: frame.py:626 frame.py:636
-msgid "Undo\tCtrl+Z"
-msgstr ""
-
-#: frame.py:631 frame.py:637
-msgid "Redo\tCtrl+Y"
-msgstr ""
-
-#: frame.py:649
-msgid "Clean Mask\tCtrl+Shift+A"
-msgstr ""
-
-#: frame.py:685
-msgid "Preferences..."
-msgstr ""
-
-#: frame.py:689
-msgid "Getting started..."
-msgstr ""
-
-#: frame.py:692
-msgid "About..."
-msgstr ""
-
-#: frame.py:700
-msgid "File"
-msgstr ""
-
-#: frame.py:701
-msgid "Edit"
-msgstr ""
-
-#: frame.py:706
-msgid "Help"
-msgstr ""
-
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
-msgid "Ready"
-msgstr ""
-
-#: frame.py:969
-msgid "Import DICOM files...\tCtrl+I"
-msgstr ""
-
-#: frame.py:978
-msgid "Open InVesalius project..."
-msgstr ""
-
-#: frame.py:984
-msgid "Save InVesalius project"
-msgstr ""
-
-#: frame.py:1130
-msgid "Zoom"
-msgstr ""
-
-#: frame.py:1136
-msgid "Zoom based on selection"
-msgstr ""
-
-#: frame.py:1142
-msgid "Rotate"
-msgstr ""
-
-#: frame.py:1148
-msgid "Move"
-msgstr ""
-
-#: frame.py:1154
-msgid "Constrast"
-msgstr ""
-
-#: frame.py:1312
-msgid "Scroll slices"
-msgstr ""
-
-#: frame.py:1318
-msgid "Slices' cross intersection"
-msgstr ""
-
-#: frame.py:1488 frame.py:1560 frame.py:1741
-msgid "Hide task panel"
-msgstr ""
-
-#: frame.py:1494 frame.py:1582 frame.py:1763
-msgid "Hide text"
-msgstr ""
-
-#: frame.py:1566 frame.py:1747
-msgid "Show task panel"
-msgstr ""
-
-#: frame.py:1576 frame.py:1757
-msgid "Show text"
-msgstr ""
-
-#: frame.py:1657
-msgid "Undo"
-msgstr ""
-
-#: frame.py:1664
-msgid "Redo"
-msgstr ""
-
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
-msgid "Generating multiplanar visualization..."
-msgstr ""
-
-#: import_network_panel.py:101 import_panel.py:94
-msgid "Import"
-msgstr ""
-
-#: import_network_panel.py:239 import_panel.py:224
-msgid "Patient name"
-msgstr ""
-
-#: import_network_panel.py:240 import_panel.py:225
-msgid "Patient ID"
-msgstr ""
-
-#: import_network_panel.py:241 import_panel.py:226
-msgid "Age"
-msgstr ""
-
-#: import_network_panel.py:242 import_panel.py:227
-msgid "Gender"
-msgstr ""
-
-#: import_network_panel.py:243 import_panel.py:228
-msgid "Study description"
-msgstr ""
-
-#: import_network_panel.py:244 import_panel.py:229
-msgid "Modality"
-msgstr ""
-
-#: import_network_panel.py:245 import_panel.py:230
-msgid "Date acquired"
-msgstr ""
-
-#: import_network_panel.py:246 import_panel.py:231
-msgid "# Images"
-msgstr ""
-
-#: import_network_panel.py:247 import_panel.py:232
-msgid "Institution"
-msgstr ""
-
-#: import_network_panel.py:248 import_panel.py:233
-msgid "Date of birth"
-msgstr ""
-
-#: import_network_panel.py:249 import_panel.py:234
-msgid "Accession Number"
-msgstr ""
-
-#: import_network_panel.py:250 import_panel.py:235
-msgid "Referring physician"
-msgstr ""
-
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr ""
-
-#: import_network_panel.py:497
-msgid "Word"
-msgstr ""
-
-#: import_network_panel.py:504
-msgid "Search"
-msgstr ""
-
-#: import_network_panel.py:663
-msgid "Active"
-msgstr ""
-
-#: import_network_panel.py:664
-msgid "Host"
-msgstr ""
-
-#: import_network_panel.py:665
-msgid "Port"
-msgstr ""
-
-#: import_network_panel.py:666
-msgid "AETitle"
-msgstr ""
-
-#: import_network_panel.py:667
-msgid "Status"
-msgstr ""
-
-#: import_network_panel.py:694
-msgid "Add"
-msgstr ""
-
-#: import_network_panel.py:695
-msgid "Remove"
-msgstr ""
-
-#: import_network_panel.py:696
-msgid "Check status"
-msgstr ""
-
-#: import_network_panel.py:769
-msgid "ok"
-msgstr ""
-
-#: import_network_panel.py:771
-msgid "error"
-msgstr ""
-
-#: language_dialog.py:78
-msgid "Language selection"
-msgstr ""
-
-#: language_dialog.py:122
-msgid "Choose user interface language"
-msgstr ""
-
-#: polydata_utils.py:139
-msgid "Analysing selected regions..."
-msgstr ""
-
-#: polydata_utils.py:198
-msgid "Splitting disconnected regions..."
-msgstr ""
-
-#: preferences.py:18
-msgid "Preferences"
-msgstr ""
-
-#: preferences.py:41
-msgid "Visualization"
-msgstr ""
-
-#: preferences.py:42 preferences.py:147
-msgid "Language"
-msgstr ""
-
-#: preferences.py:95
-msgid "Surface"
-msgstr ""
-
-#: preferences.py:98
-msgid "Interpolation "
-msgstr ""
-
-#: preferences.py:106
-msgid "Volume rendering"
-msgstr ""
-
-#: preferences.py:109
-msgid "Rendering"
-msgstr ""
-
-#: preferences.py:113
-msgid "GPU (NVidia video cards only)"
-msgstr ""
-
-#: preferences.py:150
-msgid ""
-"Language settings will be applied \n"
-" the next time InVesalius starts."
-msgstr ""
-
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
-msgid "Soft Tissue"
-msgstr ""
-
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
-msgid "Enamel (Adult)"
-msgstr ""
-
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
-msgid "Enamel (Child)"
-msgstr ""
-
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
-msgid "Compact Bone (Adult)"
-msgstr ""
-
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
-msgid "Compact Bone (Child)"
-msgstr ""
-
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
-msgid "Spongial Bone (Adult)"
-msgstr ""
-
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
-msgid "Spongial Bone (Child)"
-msgstr ""
-
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
-msgid "Muscle Tissue (Adult)"
-msgstr ""
-
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
-msgid "Muscle Tissue (Child)"
-msgstr ""
-
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
-msgid "Fat Tissue (Adult)"
-msgstr ""
-
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
-msgid "Fat Tissue (Child)"
-msgstr ""
-
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
-msgid "Skin Tissue (Adult)"
-msgstr ""
-
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
-msgid "Skin Tissue (Child)"
-msgstr ""
-
-#: slice_.py:1245
-msgid "Diff"
-msgstr ""
-
-#: slice_.py:1247
-msgid "XOR"
-msgstr ""
-
-#: slice_menu.py:38
-msgid "Normal"
-msgstr ""
-
-#: slice_menu.py:39
-msgid "MaxIP"
-msgstr ""
-
-#: slice_menu.py:40
-msgid "MinIP"
-msgstr ""
-
-#: slice_menu.py:41
-msgid "MeanIP"
-msgstr ""
-
-#: slice_menu.py:42
-msgid "MIDA"
-msgstr ""
-
-#: slice_menu.py:43
-msgid "Contour MaxIP"
-msgstr ""
-
-#: slice_menu.py:44
-msgid "Contour MIDA"
-msgstr ""
-
-#: slice_menu.py:162
-msgid "Window width and level"
-msgstr ""
-
-#: slice_menu.py:163
-msgid "Pseudo color"
-msgstr ""
-
-#: slice_menu.py:164
-msgid "Projection type"
-msgstr ""
-
-#: styles.py:58 task_slice.py:853
-msgid "Foreground"
-msgstr ""
-
-#: styles.py:59 task_slice.py:854
-msgid "Background"
-msgstr ""
-
-#: styles.py:833
-msgid "Applying watershed ..."
-msgstr ""
-
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
-msgid "Creating 3D surface..."
-msgstr ""
-
-#: task_exporter.py:109
-msgid "Export InVesalius screen to an image file"
-msgstr ""
-
-#: task_exporter.py:111
-msgid "Export picture..."
-msgstr ""
-
-#: task_exporter.py:122
-msgid "Export 3D surface"
-msgstr ""
-
-#: task_exporter.py:123
-msgid "Export 3D surface..."
-msgstr ""
-
-#: task_exporter.py:320
-msgid "Save 3D surface as..."
-msgstr ""
-
-#: task_exporter.py:339
-msgid "You need to create a surface and make it "
-msgstr ""
-
-#: task_exporter.py:340
-msgid "visible before exporting it."
-msgstr ""
-
-#: task_generic.py:65
-msgid "Testing..."
-msgstr ""
-
-#: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
-msgstr ""
-
-#: task_importer.py:68
-msgid "Import DICOM images..."
-msgstr ""
-
-#: task_importer.py:87
-msgid "Open an existing InVesalius project..."
-msgstr ""
-
-#: task_importer.py:88
-msgid "Open an existing project..."
-msgstr ""
-
-#: task_slice.py:85
-msgid "Create mask for slice segmentation and editing"
-msgstr ""
-
-#: task_slice.py:86
-msgid "Create new mask"
-msgstr ""
-
-#: task_slice.py:116
-msgid "Create surface"
-msgstr ""
-
-#: task_slice.py:117
-msgid "Overwrite last surface"
-msgstr ""
-
-#: task_slice.py:266
-msgid "Mask properties"
-msgstr ""
-
-#: task_slice.py:274
-msgid "Manual edition"
-msgstr ""
-
-#: task_slice.py:422
-msgid "Set predefined or manual threshold:"
-msgstr ""
-
-#: task_slice.py:652 task_slice.py:816
-msgid "Choose brush type, size or operation:"
-msgstr ""
-
-#: task_slice.py:658 task_slice.py:822
-msgid "Circle"
-msgstr ""
-
-#: task_slice.py:662 task_slice.py:826
-msgid "Square"
-msgstr ""
-
-#: task_slice.py:703
-msgid "Brush threshold range:"
-msgstr ""
-
-#: task_slice.py:873
-msgid "Overwrite mask"
-msgstr ""
-
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
-msgid "Expand watershed to 3D"
-msgstr ""
-
-#: task_surface.py:87
-msgid "Create 3D surface based on a mask"
-msgstr ""
-
-#: task_surface.py:88
-msgid "Create new 3D surface"
-msgstr ""
-
-#: task_surface.py:108
-msgid "Next step"
-msgstr ""
-
-#: task_surface.py:216
-msgid "Surface properties"
-msgstr ""
-
-#: task_surface.py:222
-msgid "Advanced options"
-msgstr ""
-
-#: task_surface.py:274
-msgid ""
-"Automatically select largest disconnected region and create new surface"
-msgstr ""
-
-#: task_surface.py:275
-msgid "Select largest surface"
-msgstr ""
-
-#: task_surface.py:283
-msgid ""
-"Automatically select disconnected regions and create a new surface per "
-"region"
-msgstr ""
-
-#: task_surface.py:284
-msgid "Split all disconnected surfaces"
-msgstr ""
-
-#: task_surface.py:292
-msgid "Manually insert seeds of regions of interest and create a new surface"
-msgstr ""
-
-#: task_surface.py:293
-msgid "Select regions of interest..."
-msgstr ""
-
-#: task_surface.py:429
-msgid "Transparency:"
-msgstr ""
-
-#: task_surface.py:578
-msgid "Decimate resolution:"
-msgstr ""
-
-#: task_surface.py:588
-msgid "Smooth iterations:"
-msgstr ""
-
-#: task_tools.py:60
-msgid "Measure distances"
-msgstr ""
-
-#: task_tools.py:61
-msgid "Measure"
-msgstr ""
-
-#: task_tools.py:64 task_tools.py:65
-msgid "Add text annotations"
-msgstr ""
-
-#: viewer_slice.py:66
-msgid "Number of slices used to compound the visualization."
-msgstr ""
-
-#: viewer_slice.py:75
-msgid ""
-"Controls the sharpness of the contour. The greater the value, the sharper "
-"the contour."
-msgstr ""
-
-#: viewer_slice.py:83
-msgid "Inverted order"
-msgstr ""
-
-#: viewer_slice.py:84
-msgid ""
-"If checked, the slices are traversed in descending order to compound the "
-"visualization instead of ascending order."
-msgstr ""
-
-#: viewer_slice.py:90
-msgid "Number of slices"
-msgstr ""
-
-#: viewer_slice.py:91
-msgid "Sharpness"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
-msgid "R"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
-msgid "L"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "A"
-msgstr ""
-
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "P"
-msgstr ""
-
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "T"
-msgstr ""
-
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
-msgid "B"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "AL"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "RA"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "PR"
-msgstr ""
-
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
-msgid "LP"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "LA"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "AR"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "RP"
-msgstr ""
-
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
-msgid "PL"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "TL"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "RT"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "BR"
-msgstr ""
-
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
-msgid "LB"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "LT"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "TR"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "RB"
-msgstr ""
-
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
-msgid "BL"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "TA"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "PT"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "BP"
-msgstr ""
-
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
-msgid "AB"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "AT"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "TP"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "PB"
-msgstr ""
-
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
-msgid "BA"
-msgstr ""
-
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
-
-#~ msgid "Advanced editing tools"
-#~ msgstr "Advanced editing tools"
-
-#~ msgid "Exit"
-#~ msgstr "Exit"
-
-#~ msgid "Off"
-#~ msgstr " Off"
-
-#~ msgid "Save Project As..."
-#~ msgstr "Save Project As..."
-
-#~ msgid "Open a InVesalius project..."
-#~ msgstr "Open a InVesalius project..."
-
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
-#~ msgid "Image Tiling"
-#~ msgstr "Image Tiling"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 47d41db..3953073 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -10,10 +10,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: InVesalius3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-02 13:24-0300\n"
-"PO-Revision-Date: 2015-06-02 16:40+0000\n"
-"Last-Translator: InVesalius <invesalius at cti.gov.br>\n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/invesalius3/language/zh_TW/)\n"
+"POT-Creation-Date: 2017-08-10 08:58-0300\n"
+"PO-Revision-Date: 2017-08-10 12:03+0000\n"
+"Last-Translator: tfmoraes <totonixsame at gmail.com>\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/invesalius/invesalius3/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,6 +23,44 @@ msgstr ""
 "X-Poedit-Language: English\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: bitmap_preview_panel.py:25 dicom_preview_panel.py:58
+#, python-format
+msgid "Image size: %d x %d"
+msgstr "影像尺寸:%d x %d"
+
+#: bitmap_preview_panel.py:26 dicom_preview_panel.py:59
+#, python-format
+msgid "Spacing: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:27 dicom_preview_panel.py:60
+#, python-format
+msgid "Location: %.2f"
+msgstr ""
+
+#: bitmap_preview_panel.py:29 dicom_preview_panel.py:62
+#, python-format
+msgid ""
+"%s %s\n"
+"Made in InVesalius"
+msgstr "%s %s\nMade in InVesalius"
+
+#: bitmap_preview_panel.py:166 bitmap_preview_panel.py:167
+#: dicom_preview_panel.py:198 dicom_preview_panel.py:199 frame.py:838
+msgid "Image"
+msgstr "影像"
+
+#: bitmap_preview_panel.py:442 bitmap_preview_panel.py:443 constants.py:214
+#: constants.py:302 control.py:486 dialogs.py:874 dialogs.py:887
+#: dicom_preview_panel.py:685 dicom_preview_panel.py:686 presets.py:32
+#: presets.py:50 presets.py:106 presets.py:137
+msgid "Bone"
+msgstr "骨骼"
+
+#: bitmap_preview_panel.py:510 dicom_preview_panel.py:753
+msgid "Auto-play"
+msgstr "自動播放"
+
 #: clut_raycasting.py:535
 #, python-format
 msgid "Value: %-6d"
@@ -38,7 +76,7 @@ msgstr ""
 msgid "M %d"
 msgstr "M %d"
 
-#: constants.py:44 constants.py:379 constants.py:381
+#: constants.py:44 constants.py:430 constants.py:432
 msgid " Off"
 msgstr "關閉"
 
@@ -54,11 +92,11 @@ msgstr ""
 msgid "Interlaced"
 msgstr ""
 
-#: constants.py:48 constants.py:314
+#: constants.py:48 constants.py:378
 msgid "Left"
 msgstr "左"
 
-#: constants.py:49 constants.py:313
+#: constants.py:49 constants.py:377
 msgid "Right"
 msgstr "右"
 
@@ -98,382 +136,511 @@ msgstr ""
 msgid "Skip 5 for each 6 slices"
 msgstr ""
 
-#: constants.py:147 slice_menu.py:104 slice_menu.py:111
+#: constants.py:164 slice_menu.py:103 slice_menu.py:110
 msgid "Default "
 msgstr "預設"
 
-#: constants.py:148
+#: constants.py:165
 msgid "Hue"
 msgstr "色調"
 
-#: constants.py:149
+#: constants.py:166
 msgid "Saturation"
 msgstr "飽和"
 
-#: constants.py:150
+#: constants.py:167
 msgid "Desert"
 msgstr "沙漠"
 
-#: constants.py:151
+#: constants.py:168
 msgid "Rainbow"
 msgstr "彩虹"
 
-#: constants.py:152
+#: constants.py:169
 msgid "Ocean"
 msgstr "海洋"
 
-#: constants.py:153
+#: constants.py:170
 msgid "Inverse Gray"
 msgstr ""
 
-#: constants.py:194 constants.py:195 constants.py:283 dialogs.py:598
-#: dialogs.py:611 dicom_preview_panel.py:675 dicom_preview_panel.py:676
-#: presets.py:33 presets.py:51 presets.py:106 presets.py:137
-msgid "Bone"
-msgstr "骨骼"
-
-#: constants.py:201
+#: constants.py:220
 #, python-format
 msgid "Mask %d"
 msgstr "遮罩 %d"
 
-#: constants.py:257 task_surface.py:43
+#: constants.py:276 task_surface.py:44
 msgid "Draw"
 msgstr "繪製"
 
-#: constants.py:257 styles.py:57 task_slice.py:855 task_surface.py:43
+#: constants.py:276 styles.py:65 task_slice.py:867 task_surface.py:44
 msgid "Erase"
 msgstr "擦除"
 
-#: constants.py:257 data_notebook.py:443 task_surface.py:43
+#: constants.py:276 data_notebook.py:457 dialogs.py:2627 frame.py:812
+#: task_surface.py:44
 msgid "Threshold"
 msgstr "閾值"
 
-#: constants.py:269 constants.py:274
+#: constants.py:288 constants.py:293
 msgid "Low"
 msgstr "低"
 
-#: constants.py:270 constants.py:274
+#: constants.py:289 constants.py:293
 msgid "Medium"
 msgstr "中"
 
-#: constants.py:271 constants.py:274
+#: constants.py:290 constants.py:293
 msgid "High"
 msgstr "高"
 
-#: constants.py:272 constants.py:273 constants.py:274 task_slice.py:175
+#: constants.py:291 constants.py:292 constants.py:293 task_slice.py:176
 msgid "Optimal *"
 msgstr "最佳 *"
 
-#: constants.py:279
+#: constants.py:298
 #, python-format
 msgid "Surface %d"
 msgstr "表面 %d"
 
-#: constants.py:282
+#: constants.py:301
 msgid "Abdomen"
 msgstr ""
 
-#: constants.py:284
+#: constants.py:303
 msgid "Brain posterior fossa"
 msgstr ""
 
-#: constants.py:285
+#: constants.py:304
 msgid "Brain"
 msgstr "腦"
 
-#: constants.py:286 control.py:365 dialogs.py:1255 dialogs.py:1258
-#: dialogs.py:1266 dialogs.py:1341 slice_menu.py:61 slice_menu.py:73
+#: constants.py:305 control.py:488 dialogs.py:1552 dialogs.py:1555
+#: dialogs.py:1563 dialogs.py:1638 slice_menu.py:60 slice_menu.py:72
 msgid "Default"
 msgstr "預設"
 
-#: constants.py:287
+#: constants.py:306
 msgid "Emphysema"
 msgstr ""
 
-#: constants.py:288
+#: constants.py:307
 msgid "Ischemia - Hard, non contrast"
 msgstr ""
 
-#: constants.py:289
+#: constants.py:308
 msgid "Ischemia - Soft, non contrast"
 msgstr ""
 
-#: constants.py:290
+#: constants.py:309
 msgid "Larynx"
 msgstr "喉"
 
-#: constants.py:291
+#: constants.py:310
 msgid "Liver"
 msgstr "肝"
 
-#: constants.py:292
+#: constants.py:311
 msgid "Lung - Soft"
 msgstr "肺 - 軟"
 
-#: constants.py:293
+#: constants.py:312
 msgid "Lung - Hard"
 msgstr "肺 - 硬"
 
-#: constants.py:294
+#: constants.py:313
 msgid "Mediastinum"
 msgstr "中隔"
 
-#: constants.py:295 control.py:366 slice_menu.py:68 slice_menu.py:73
+#: constants.py:314 control.py:489 slice_menu.py:67 slice_menu.py:72
 msgid "Manual"
 msgstr ""
 
-#: constants.py:296
+#: constants.py:315
 msgid "Pelvis"
 msgstr "骨盆"
 
-#: constants.py:297
+#: constants.py:316
 msgid "Sinus"
 msgstr "竇"
 
-#: constants.py:298
+#: constants.py:317
 msgid "Vasculature - Hard"
 msgstr ""
 
-#: constants.py:299
+#: constants.py:318
 msgid "Vasculature - Soft"
 msgstr ""
 
-#: constants.py:300
+#: constants.py:319
 msgid "Contour"
 msgstr ""
 
-#: constants.py:309
+#: constants.py:373
 msgid "Front"
 msgstr "前"
 
-#: constants.py:310
+#: constants.py:374
 msgid "Back"
 msgstr "後"
 
-#: constants.py:311
+#: constants.py:375
 msgid "Top"
 msgstr "頂"
 
-#: constants.py:312
+#: constants.py:376
 msgid "Bottom"
 msgstr "底"
 
-#: constants.py:315
+#: constants.py:379
 msgid "Isometric"
 msgstr "等"
 
-#: constants.py:326
+#: constants.py:386
 msgid "Airways"
 msgstr ""
 
-#: constants.py:327
+#: constants.py:387
 msgid "Airways II"
 msgstr ""
 
-#: constants.py:328
+#: constants.py:388
 msgid "Black & White"
 msgstr "黑與白"
 
-#: constants.py:329
+#: constants.py:389
 msgid "Bone + Skin"
 msgstr "骨骼 + 皮膚"
 
-#: constants.py:330
+#: constants.py:390
 msgid "Bone + Skin II"
 msgstr "骨骼 + 皮膚 II"
 
-#: constants.py:331
+#: constants.py:391
 msgid "Dark bone"
 msgstr ""
 
-#: constants.py:332
+#: constants.py:392
 msgid "Glossy"
 msgstr ""
 
-#: constants.py:333
+#: constants.py:393
 msgid "Glossy II"
 msgstr ""
 
-#: constants.py:334
+#: constants.py:394
 msgid "Gold bone"
 msgstr ""
 
-#: constants.py:335
+#: constants.py:395
 msgid "High contrast"
 msgstr ""
 
-#: constants.py:336
+#: constants.py:396
 msgid "Low contrast"
 msgstr ""
 
-#: constants.py:337 constants.py:345
+#: constants.py:397 constants.py:405
 msgid "Soft on white"
 msgstr ""
 
-#: constants.py:338
+#: constants.py:398
 msgid "Mid contrast"
 msgstr ""
 
-#: constants.py:339
+#: constants.py:399
 msgid "MIP"
 msgstr ""
 
-#: constants.py:340
+#: constants.py:400
 msgid "No shading"
 msgstr ""
 
-#: constants.py:341
+#: constants.py:401
 msgid "Pencil"
 msgstr "鉛筆"
 
-#: constants.py:342
+#: constants.py:402
 msgid "Red on white"
 msgstr ""
 
-#: constants.py:343
+#: constants.py:403
 msgid "Skin on blue"
 msgstr ""
 
-#: constants.py:344
+#: constants.py:404
 msgid "Skin on blue II"
 msgstr ""
 
-#: constants.py:346
+#: constants.py:406
 msgid "Soft + Skin"
 msgstr ""
 
-#: constants.py:347
+#: constants.py:407
 msgid "Soft + Skin II"
 msgstr ""
 
-#: constants.py:348
+#: constants.py:408
 msgid "Soft + Skin III"
 msgstr ""
 
-#: constants.py:349
+#: constants.py:409
 msgid "Soft on blue"
 msgstr ""
 
-#: constants.py:350
+#: constants.py:410
 msgid "Soft"
 msgstr ""
 
-#: constants.py:351
+#: constants.py:411
 msgid "Standard"
 msgstr "標準"
 
-#: constants.py:352
+#: constants.py:412
 msgid "Vascular"
 msgstr "血管"
 
-#: constants.py:353
+#: constants.py:413
 msgid "Vascular II"
 msgstr "血管 II"
 
-#: constants.py:354
+#: constants.py:414
 msgid "Vascular III"
 msgstr "血管 III"
 
-#: constants.py:355
+#: constants.py:415
 msgid "Vascular IV"
 msgstr "血管 IV"
 
-#: constants.py:356
+#: constants.py:416
 msgid "Yellow bone"
 msgstr ""
 
-#: constants.py:382 volume.py:642
+#: constants.py:433 volume.py:673
 msgid "Cut plane"
 msgstr ""
 
-#: control.py:304
+#: constants.py:671
+msgid "Select tracker:"
+msgstr ""
+
+#: constants.py:671
+msgid "Claron MicronTracker"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus FASTRAK"
+msgstr ""
+
+#: constants.py:672
+msgid "Polhemus ISOTRAK II"
+msgstr ""
+
+#: constants.py:673
+msgid "Polhemus PATRIOT"
+msgstr ""
+
+#: constants.py:673
+msgid "Debug tracker"
+msgstr ""
+
+#: constants.py:674
+msgid "Disconnect tracker"
+msgstr ""
+
+#: constants.py:679
+msgid "Static ref."
+msgstr ""
+
+#: constants.py:679
+msgid "Dynamic ref."
+msgstr ""
+
+#: constants.py:689
+msgid "LEI"
+msgstr ""
+
+#: constants.py:690
+msgid "REI"
+msgstr ""
+
+#: constants.py:691
+msgid "NAI"
+msgstr ""
+
+#: constants.py:697
+msgid "Select left ear in image"
+msgstr ""
+
+#: constants.py:698
+msgid "Select right ear in image"
+msgstr ""
+
+#: constants.py:699
+msgid "Select nasion in image"
+msgstr ""
+
+#: constants.py:701
+msgid "LET"
+msgstr ""
+
+#: constants.py:702
+msgid "RET"
+msgstr ""
+
+#: constants.py:703
+msgid "NAT"
+msgstr ""
+
+#: constants.py:704
+msgid "SET"
+msgstr ""
+
+#: constants.py:706
+msgid "Select left ear with spatial tracker"
+msgstr ""
+
+#: constants.py:707
+msgid "Select right ear with spatial tracker"
+msgstr ""
+
+#: constants.py:708
+msgid "Select nasion with spatial tracker"
+msgstr ""
+
+#: constants.py:709
+msgid "Show set coordinates in image"
+msgstr ""
+
+#: control.py:388
 #, python-format
 msgid "Loading file %d of %d ..."
 msgstr ""
 
-#: control.py:421
-msgid "Untitled"
-msgstr "無標題"
-
-#: control.py:559
+#: control.py:823
 msgid "Fix gantry tilt applying the degrees below"
 msgstr ""
 
-#: data_notebook.py:44 measures.py:14
+#: data_notebook.py:45 measures.py:17
 msgid "Linear"
 msgstr ""
 
-#: data_notebook.py:45 measures.py:15
+#: data_notebook.py:46 measures.py:18
 msgid "Angular"
 msgstr ""
 
-#: data_notebook.py:48 measures.py:18
+#: data_notebook.py:49 measures.py:21
 msgid "3D"
 msgstr "3D"
 
-#: data_notebook.py:49 measures.py:19
+#: data_notebook.py:50 dialogs.py:2024 dialogs.py:2176 dialogs.py:2195
+#: measures.py:22
 msgid "Axial"
 msgstr ""
 
-#: data_notebook.py:50 measures.py:20
+#: data_notebook.py:51 dialogs.py:2024 dialogs.py:2176 dialogs.py:2196
+#: measures.py:23
 msgid "Coronal"
 msgstr ""
 
-#: data_notebook.py:51 measures.py:21
+#: data_notebook.py:52 measures.py:24
 msgid "Sagittal"
 msgstr ""
 
-#: data_notebook.py:66
+#: data_notebook.py:67
 msgid "Masks"
 msgstr "遮罩"
 
-#: data_notebook.py:67
+#: data_notebook.py:68
 msgid "3D surfaces"
 msgstr ""
 
-#: data_notebook.py:68
+#: data_notebook.py:69
 msgid "Measures"
 msgstr ""
 
-#: data_notebook.py:185 frame.py:1160
+#: data_notebook.py:165
+msgid "Create a new measure"
+msgstr ""
+
+#: data_notebook.py:172
+msgid "Remove measure"
+msgstr ""
+
+#: data_notebook.py:178
+msgid "Duplicate measure"
+msgstr ""
+
+#: data_notebook.py:191 frame.py:1408
 msgid "Measure distance"
 msgstr ""
 
-#: data_notebook.py:188 frame.py:1166
+#: data_notebook.py:194 frame.py:1414
 msgid "Measure angle"
 msgstr ""
 
-#: data_notebook.py:442 data_notebook.py:764 data_notebook.py:1003
-#: data_notebook.py:1195
+#: data_notebook.py:283
+msgid "Create a new mask"
+msgstr ""
+
+#: data_notebook.py:289
+msgid "Remove mask"
+msgstr ""
+
+#: data_notebook.py:295
+msgid "Duplicate mask"
+msgstr ""
+
+#: data_notebook.py:456 data_notebook.py:802 data_notebook.py:1066
+#: data_notebook.py:1263
 msgid "Name"
 msgstr "名稱"
 
-#: data_notebook.py:503 frame.py:652
+#: data_notebook.py:520 frame.py:839
 msgid "Mask"
 msgstr "遮罩"
 
-#: data_notebook.py:628 task_surface.py:140
+#: data_notebook.py:615
+msgid "Create a new surface"
+msgstr ""
+
+#: data_notebook.py:621
+msgid "Remove surface"
+msgstr ""
+
+#: data_notebook.py:627
+msgid "Duplicate surface"
+msgstr ""
+
+#: data_notebook.py:633
+msgid "Import a surface file into InVesalius"
+msgstr ""
+
+#: data_notebook.py:661 task_surface.py:141
 msgid "New surface"
 msgstr ""
 
-#: data_notebook.py:765
+#: data_notebook.py:803
 msgid "Volume (mm³)"
 msgstr "體積 (mm³)"
 
-#: data_notebook.py:766
+#: data_notebook.py:804
+msgid "Area (mm²)"
+msgstr ""
+
+#: data_notebook.py:805
 msgid "Transparency"
 msgstr "透明度"
 
-#: data_notebook.py:1004
+#: data_notebook.py:1067
 msgid "Location"
 msgstr ""
 
-#: data_notebook.py:1005 data_notebook.py:1196
+#: data_notebook.py:1068 data_notebook.py:1264 import_bitmap_panel.py:203
 msgid "Type"
 msgstr "類型"
 
-#: data_notebook.py:1006 data_notebook.py:1197
+#: data_notebook.py:1069 data_notebook.py:1265
 msgid "Value"
 msgstr "值"
 
@@ -485,175 +652,255 @@ msgstr "資料"
 msgid "Load data"
 msgstr ""
 
-#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:279
+#: default_tasks.py:245 default_tasks.py:251 default_tasks.py:280
 msgid "Select region of interest"
 msgstr "選取有興趣的區域"
 
-#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:281
+#: default_tasks.py:246 default_tasks.py:252 default_tasks.py:282
 msgid "Configure 3D surface"
 msgstr "配置 3D 表面"
 
-#: default_tasks.py:247
+#: default_tasks.py:247 default_tasks.py:253
 msgid "Export data"
 msgstr "匯出資料"
 
-#: default_tasks.py:253
-msgid "Utilize navigation system"
+#: default_tasks.py:254 default_tasks.py:324
+msgid "Navigation system"
 msgstr ""
 
-#: default_viewers.py:79 default_viewers.py:168 task_exporter.py:247
+#: default_viewers.py:82 default_viewers.py:171 task_exporter.py:247
 msgid "Axial slice"
 msgstr "中軸切面"
 
-#: default_viewers.py:84 default_viewers.py:174 task_exporter.py:248
+#: default_viewers.py:87 default_viewers.py:177 task_exporter.py:248
 msgid "Coronal slice"
 msgstr "冠狀切面"
 
-#: default_viewers.py:89 default_viewers.py:180 task_exporter.py:249
+#: default_viewers.py:92 default_viewers.py:183 task_exporter.py:249
 msgid "Sagittal slice"
 msgstr "矢狀切面"
 
-#: default_viewers.py:95 default_viewers.py:186 task_exporter.py:250
+#: default_viewers.py:98 default_viewers.py:189 task_exporter.py:250
 msgid "Volume"
 msgstr "立體"
 
-#: default_viewers.py:434
+#: default_viewers.py:437
 msgid "Preset name"
 msgstr ""
 
-#: default_viewers.py:437
+#: default_viewers.py:440
 msgid "Save raycasting preset"
 msgstr ""
 
-#: default_viewers.py:471 frame.py:702
+#: default_viewers.py:473 frame.py:910
 msgid "Tools"
 msgstr "工具"
 
-#: dialogs.py:70
+#: dialogs.py:78
 msgid "Value will be applied."
 msgstr "值將會被套用。"
 
-#: dialogs.py:74
+#: dialogs.py:82
 msgid "Value will not be applied."
 msgstr "值將不會被套用。"
 
-#: dialogs.py:108
+#: dialogs.py:116
 msgid ""
 "InVesalius is running on a 32-bit operating system or has insufficient memory. \n"
 "If you want to work with 3D surfaces or volume rendering, \n"
 "it is recommended to reduce the medical images resolution."
 msgstr ""
 
-#: dialogs.py:122
+#: dialogs.py:130
 msgid "Percentage of original resolution"
 msgstr ""
 
-#: dialogs.py:170
+#: dialogs.py:178
 msgid "Loading DICOM files"
 msgstr "正在載入 DICOM 檔"
 
-#: dialogs.py:215
+#: dialogs.py:237
 msgid "Open InVesalius 3 project..."
 msgstr "開啟 InVesalius 3 專案..."
 
-#: dialogs.py:243
-msgid "Open Analyze file"
-msgstr ""
-
-#: dialogs.py:281
+#: dialogs.py:275
 msgid "Choose a DICOM folder:"
 msgstr "選擇一個 DICOM 資料夾:"
 
-#: dialogs.py:312 frame.py:585
+#: dialogs.py:316
+msgid "Choose a folder with TIFF, BMP, JPG or PNG:"
+msgstr ""
+
+#: dialogs.py:345
+msgid "Import Analyze 7.5 file"
+msgstr ""
+
+#: dialogs.py:351
+msgid "Import NIFTi 1 file"
+msgstr ""
+
+#: dialogs.py:354
+msgid "Import PAR/REC file"
+msgstr ""
+
+#: dialogs.py:386
+msgid "Import surface file"
+msgstr ""
+
+#: dialogs.py:414 frame.py:741
 msgid "Save project as..."
 msgstr "另存專案為..."
 
-#: dialogs.py:315
+#: dialogs.py:417
 msgid "InVesalius project (*.inv3)|*.inv3"
 msgstr "InVesalius 專案 (*.inv3)|*.inv3"
 
-#: dialogs.py:380 utils.py:375
+#: dialogs.py:446
+msgid "Save markers as..."
+msgstr ""
+
+#: dialogs.py:449 dialogs.py:480
+msgid "Markers files (*.mks)|*.mks"
+msgstr ""
+
+#: dialogs.py:477
+msgid "Load markers"
+msgstr ""
+
+#: dialogs.py:543 utils.py:379
 msgid ""
 "A new version of InVesalius is available. Do you want to open the download "
 "website now?"
 msgstr ""
 
-#: dialogs.py:381 utils.py:376
+#: dialogs.py:544 utils.py:380
 msgid "Invesalius Update"
 msgstr ""
 
-#: dialogs.py:439 dialogs.py:717 dialogs.py:742
+#: dialogs.py:602 dialogs.py:993 dialogs.py:1018
 #, python-format
 msgid ""
 "The project %s has been modified.\n"
 "Save changes?"
 msgstr "專案 %s 已經被修改過。\n要儲存變更嗎?"
 
-#: dialogs.py:453
+#: dialogs.py:616
 #, python-format
 msgid "%s is an empty folder."
 msgstr ""
 
-#: dialogs.py:466
+#: dialogs.py:631
+msgid "There are no Bitmap, JPEG, PNG or TIFF files in the selected folder."
+msgstr ""
+
+#: dialogs.py:633
 msgid "There are no DICOM files in the selected folder."
 msgstr ""
 
-#: dialogs.py:477
+#: dialogs.py:635
+msgid "Invalid file."
+msgstr ""
+
+#: dialogs.py:648
+msgid "Warning! InVesalius has limited support to Analyze format.\n"
+msgstr ""
+
+#: dialogs.py:649
+msgid "Slices may be wrongly oriented and functions may not work properly."
+msgstr ""
+
+#: dialogs.py:661
 msgid "A mask is needed to create a surface."
 msgstr ""
 
-#: dialogs.py:488
+#: dialogs.py:672
 msgid "No mask was selected for removal."
 msgstr ""
 
-#: dialogs.py:499
+#: dialogs.py:683
 msgid "No surface was selected for removal."
 msgstr ""
 
-#: dialogs.py:511
+#: dialogs.py:695
 msgid "No measure was selected for removal."
 msgstr ""
 
-#: dialogs.py:522
+#: dialogs.py:706
 msgid "No mask was selected for duplication."
 msgstr ""
 
-#: dialogs.py:535
+#: dialogs.py:719
 msgid "No surface was selected for duplication."
 msgstr ""
 
-#: dialogs.py:581
+#: dialogs.py:732
+msgid "Fiducials are invalid. Select six coordinates."
+msgstr ""
+
+#: dialogs.py:754
+msgid "No tracking device selected"
+msgstr ""
+
+#: dialogs.py:756
+msgid " is not installed."
+msgstr ""
+
+#: dialogs.py:758
+msgid " disconnected."
+msgstr ""
+
+#: dialogs.py:760
+msgid " is not connected."
+msgstr ""
+
+#: dialogs.py:774
+msgid "The TXT file is invalid."
+msgstr ""
+
+#: dialogs.py:786
+msgid "No data selected"
+msgstr ""
+
+#: dialogs.py:797
+msgid "Do you really want to delete all markers?"
+msgstr ""
+
+#: dialogs.py:810
+msgid "Edit marker ID"
+msgstr ""
+
+#: dialogs.py:857
 msgid "New mask name:"
 msgstr ""
 
-#: dialogs.py:585
+#: dialogs.py:861
 msgid "Name the mask to be created"
 msgstr ""
 
-#: dialogs.py:592
+#: dialogs.py:868
 msgid "Threshold preset:"
 msgstr ""
 
-#: dialogs.py:679 presets.py:47 presets.py:65 presets.py:120 presets.py:151
-#: slice_menu.py:129 slice_menu.py:266 task_slice.py:538 task_slice.py:540
-#: task_slice.py:552 task_slice.py:554 task_slice.py:597 task_slice.py:600
+#: dialogs.py:955 presets.py:46 presets.py:64 presets.py:120 presets.py:151
+#: slice_menu.py:128 slice_menu.py:264 task_slice.py:550 task_slice.py:552
+#: task_slice.py:564 task_slice.py:566 task_slice.py:609 task_slice.py:612
 msgid "Custom"
 msgstr "自訂"
 
-#: dialogs.py:694
+#: dialogs.py:970
 #, python-format
 msgid "%s does not exist."
 msgstr "%s 不存在。"
 
-#: dialogs.py:705
+#: dialogs.py:981
 msgid "Please, provide more than one DICOM file for 3D reconstruction"
 msgstr ""
 
-#: dialogs.py:766
-msgid "(c) 2007-2015 Center for Information Technology Renato Archer - CTI"
+#: dialogs.py:1042
+msgid "(c) 2007-2017 Center for Information Technology Renato Archer - CTI"
 msgstr ""
 
-#: dialogs.py:767
+#: dialogs.py:1043
 msgid ""
 "InVesalius is a medical imaging program for 3D reconstruction. It uses a sequence of 2D DICOM image files acquired with CT or MRI scanners. InVesalius allows exporting 3D volumes or surfaces as mesh files for creating physical models of a patient's anatomy using additive manufacturing (3D printing) technologies. The software is developed by Center for Information Technology Renato Archer (CTI), National Council for Scientific and Technological Development (CNPq) and the Brazilian Minist [...]
 "\n"
@@ -662,352 +909,609 @@ msgid ""
 " Contact: invesalius at cti.gov.br"
 msgstr ""
 
-#: dialogs.py:775
+#: dialogs.py:1051
 msgid "GNU GPL (General Public License) version 2"
 msgstr "GNU GPL (通用公眾授權) 第 2 版"
 
-#: dialogs.py:812
+#: dialogs.py:1106
 msgid "Save raycasting preset as:"
 msgstr ""
 
-#: dialogs.py:855 dialogs.py:1110
+#: dialogs.py:1149 dialogs.py:1407
 msgid "New surface name:"
 msgstr "新表面名稱:"
 
-#: dialogs.py:859 dialogs.py:1114
+#: dialogs.py:1153 dialogs.py:1411
 msgid "Name the surface to be created"
 msgstr "命名要被建立的表面"
 
-#: dialogs.py:866 dialogs.py:1121
+#: dialogs.py:1160 dialogs.py:1418
 msgid "Mask of reference:"
 msgstr "參照的遮罩:"
 
-#: dialogs.py:884 dialogs.py:1139
+#: dialogs.py:1178 dialogs.py:1436
 msgid "Surface quality:"
 msgstr ""
 
-#: dialogs.py:913 dialogs.py:1167
+#: dialogs.py:1207 dialogs.py:1464 styles.py:1764
 msgid "Fill holes"
 msgstr "填補缺洞"
 
-#: dialogs.py:916 dialogs.py:1170
+#: dialogs.py:1210 dialogs.py:1467
 msgid "Keep largest region"
 msgstr "保留最大區域"
 
-#: dialogs.py:954
+#: dialogs.py:1250
 msgid "BMP image"
 msgstr "BMP 影像"
 
-#: dialogs.py:955
+#: dialogs.py:1251
 msgid "JPG image"
 msgstr "JPG 影像"
 
-#: dialogs.py:956
+#: dialogs.py:1252
 msgid "PNG image"
 msgstr "PNG 影像"
 
-#: dialogs.py:957
+#: dialogs.py:1253
 msgid "PostScript document"
 msgstr "PostScript 文件"
 
-#: dialogs.py:958
+#: dialogs.py:1254
 msgid "POV-Ray file"
 msgstr "POV-Ray 檔"
 
-#: dialogs.py:959
+#: dialogs.py:1255
 msgid "TIFF image"
 msgstr "TIFF 影像"
 
-#: dialogs.py:1004
+#: dialogs.py:1300
 msgid "Surface generation options"
 msgstr ""
 
-#: dialogs.py:1034
+#: dialogs.py:1330
 msgid "Surface creation"
 msgstr ""
 
-#: dialogs.py:1061
+#: dialogs.py:1357
 msgid "Surface creation options"
 msgstr ""
 
-#: dialogs.py:1067
+#: dialogs.py:1363
 msgid "Surface creation method"
 msgstr ""
 
-#: dialogs.py:1215 frame.py:705
+#: dialogs.py:1512 frame.py:912
 msgid "Options"
 msgstr ""
 
-#: dialogs.py:1231
+#: dialogs.py:1528
 msgid "Angle:"
 msgstr ""
 
-#: dialogs.py:1233
+#: dialogs.py:1530
 msgid "Max. distance:"
 msgstr ""
 
-#: dialogs.py:1235
+#: dialogs.py:1532
 msgid "Min. weight:"
 msgstr ""
 
-#: dialogs.py:1237
+#: dialogs.py:1534
 msgid "N. steps:"
 msgstr ""
 
-#: dialogs.py:1256 dialogs.py:1292 dialogs.py:1337
+#: dialogs.py:1553 dialogs.py:1589 dialogs.py:1634
 msgid "Context aware smoothing"
 msgstr ""
 
-#: dialogs.py:1257
+#: dialogs.py:1554
 msgid "Binary"
 msgstr ""
 
-#: dialogs.py:1275
+#: dialogs.py:1572
 msgid ""
 "It is not possible to use the Default method because the mask was edited."
 msgstr ""
 
-#: dialogs.py:1278
+#: dialogs.py:1575
 msgid "Method:"
 msgstr ""
 
-#: dialogs.py:1407
+#: dialogs.py:1704 dialogs.py:2663
 msgid "Method"
 msgstr ""
 
-#: dialogs.py:1430
+#: dialogs.py:1727
 msgid "Gaussian sigma"
 msgstr ""
 
-#: dialogs.py:1452 task_slice.py:284
+#: dialogs.py:1749 frame.py:814 task_slice.py:285
 msgid "Watershed"
 msgstr ""
 
-#: dialogs.py:1492 frame.py:646
+#: dialogs.py:1790 frame.py:783
 msgid "Boolean operations"
 msgstr ""
 
-#: dialogs.py:1513 slice_.py:1244
+#: dialogs.py:1813 slice_.py:1343
 msgid "Union"
 msgstr ""
 
-#: dialogs.py:1514
+#: dialogs.py:1814
 msgid "Difference"
 msgstr ""
 
-#: dialogs.py:1515 slice_.py:1246
+#: dialogs.py:1815 slice_.py:1345
 msgid "Intersection"
 msgstr ""
 
-#: dialogs.py:1516
+#: dialogs.py:1816
 msgid "Exclusive disjunction"
 msgstr ""
 
-#: dialogs.py:1537
+#: dialogs.py:1837
 msgid "Mask 1"
 msgstr ""
 
-#: dialogs.py:1539
+#: dialogs.py:1839
 msgid "Operation"
 msgstr ""
 
-#: dialogs.py:1541
+#: dialogs.py:1841
 msgid "Mask 2"
 msgstr ""
 
-#: dicom.py:1533 dicom.py:1537 dicom.py:1539
-msgid "unnamed"
-msgstr "未命名"
+#: dialogs.py:1870
+msgid "Image reorientation"
+msgstr ""
 
-#: dicom_preview_panel.py:49
-#, python-format
-msgid "Image size: %d x %d"
-msgstr "影像尺寸:%d x %d"
+#: dialogs.py:1884
+msgid "Nearest Neighbour"
+msgstr ""
 
-#: dicom_preview_panel.py:50
-#, python-format
-msgid "Spacing: %.2f"
+#: dialogs.py:1885
+msgid "Trilinear"
 msgstr ""
 
-#: dicom_preview_panel.py:51
-#, python-format
-msgid "Location: %.2f"
+#: dialogs.py:1886
+msgid "Tricubic"
 msgstr ""
 
-#: dicom_preview_panel.py:53
-#, python-format
+#: dialogs.py:1887
+msgid "Lanczos (experimental)"
+msgstr ""
+
+#: dialogs.py:1897
+msgid "Apply"
+msgstr ""
+
+#: dialogs.py:1903
+msgid "Angle X"
+msgstr ""
+
+#: dialogs.py:1906
+msgid "Angle Y"
+msgstr ""
+
+#: dialogs.py:1909
+msgid "Angle Z"
+msgstr ""
+
+#: dialogs.py:1913
+msgid "Interpolation method:"
+msgstr ""
+
+#: dialogs.py:1993
+msgid "Create project from bitmap"
+msgstr ""
+
+#: dialogs.py:2020
+msgid "Project name:"
+msgstr ""
+
+#: dialogs.py:2023
+msgid "Slices orientation:"
+msgstr ""
+
+#: dialogs.py:2024 dialogs.py:2176 dialogs.py:2197
+msgid "Sagital"
+msgstr ""
+
+#: dialogs.py:2028
+msgid "Spacing (mm):"
+msgstr ""
+
+#: dialogs.py:2043
+msgid "X:"
+msgstr ""
+
+#: dialogs.py:2048
+msgid "Y:"
+msgstr ""
+
+#: dialogs.py:2052
+msgid "Z:"
+msgstr ""
+
+#: dialogs.py:2131
 msgid ""
-"%s %s\n"
-"Made in InVesalius"
-msgstr "%s %s\nMade in InVesalius"
+"All bitmaps files must be the same \n"
+" width and height size."
+msgstr ""
 
-#: dicom_preview_panel.py:189 dicom_preview_panel.py:190
-msgid "Image"
-msgstr "影像"
+#: dialogs.py:2144
+msgid "2D - Actual slice"
+msgstr ""
+
+#: dialogs.py:2145
+msgid "3D - All slices"
+msgstr ""
+
+#: dialogs.py:2170
+msgid "2D Connectivity"
+msgstr ""
+
+#: dialogs.py:2179
+msgid "Orientation"
+msgstr ""
+
+#: dialogs.py:2216
+msgid "3D Connectivity"
+msgstr ""
+
+#: dialogs.py:2283 dialogs.py:2336 task_slice.py:886
+msgid "Use WW&WL"
+msgstr ""
+
+#: dialogs.py:2301
+msgid "Deviation"
+msgstr ""
+
+#: dialogs.py:2303
+msgid "Min:"
+msgstr ""
+
+#: dialogs.py:2306
+msgid "Max:"
+msgstr ""
+
+#: dialogs.py:2359
+msgid "Multiplier"
+msgstr ""
+
+#: dialogs.py:2362
+msgid "Iterations"
+msgstr ""
+
+#: dialogs.py:2440 dialogs.py:2654 dialogs.py:2904
+msgid "Parameters"
+msgstr ""
+
+#: dialogs.py:2498
+msgid "Select mask parts"
+msgstr ""
+
+#: dialogs.py:2526
+msgid "Target mask name"
+msgstr ""
+
+#: dialogs.py:2580 frame.py:815 styles.py:2117
+msgid "Region growing"
+msgstr ""
+
+#: dialogs.py:2627
+msgid "Dynamic"
+msgstr ""
 
-#: dicom_preview_panel.py:409
+#: dialogs.py:2627
+msgid "Confidence"
+msgstr ""
+
+#: dialogs.py:2760
+msgid "Crop mask"
+msgstr ""
+
+#: dialogs.py:2797
+msgid "Axial:"
+msgstr ""
+
+#: dialogs.py:2799 dialogs.py:2809 dialogs.py:2819
+msgid " - "
+msgstr ""
+
+#: dialogs.py:2807
+msgid "Sagital:"
+msgstr ""
+
+#: dialogs.py:2817
+msgid "Coronal:"
+msgstr ""
+
+#: dialogs.py:2915
+msgid "Max hole size"
+msgstr ""
+
+#: dialogs.py:2917
+msgid "voxels"
+msgstr ""
+
+#: dicom.py:1550 dicom.py:1554 dicom.py:1556
+msgid "unnamed"
+msgstr ""
+
+#: dicom_preview_panel.py:418
 #, python-format
 msgid "%d images"
 msgstr ""
 
-#: dicom_preview_panel.py:534 dicom_preview_panel.py:555
+#: dicom_preview_panel.py:543 dicom_preview_panel.py:564
 #, python-format
 msgid "Image %d"
 msgstr "影像 %d"
 
-#: dicom_preview_panel.py:747
-msgid "Auto-play"
-msgstr "自動播放"
-
-#: frame.py:164
+#: frame.py:173
 msgid "Data panel"
 msgstr "資料面板"
 
-#: frame.py:171
+#: frame.py:179
 msgid "Preview medical data to be reconstructed"
 msgstr "預覽要重建的醫學資料"
 
-#: frame.py:177
+#: frame.py:185
+msgid "Preview bitmap to be reconstructed"
+msgstr ""
+
+#: frame.py:191
 msgid "Retrieve DICOM from PACS"
 msgstr ""
 
-#: frame.py:580
+#: frame.py:501
+msgid "Currently the Navigation mode is only working on Windows"
+msgstr ""
+
+#: frame.py:639 frame.py:794
+msgid "Fill holes automatically"
+msgstr ""
+
+#: frame.py:728
+msgid "Analyze 7.5"
+msgstr ""
+
+#: frame.py:729
+msgid "NIfTI 1"
+msgstr ""
+
+#: frame.py:730
+msgid "PAR/REC"
+msgstr ""
+
+#: frame.py:736
 msgid "Import DICOM...\tCtrl+I"
 msgstr "匯入 DICOM...\tCtrl+I"
 
-#: frame.py:582
+#: frame.py:738
 msgid "Import other files..."
 msgstr ""
 
-#: frame.py:583
+#: frame.py:739
 msgid "Open project...\tCtrl+O"
 msgstr ""
 
-#: frame.py:584
+#: frame.py:740
 msgid "Save project\tCtrl+S"
 msgstr ""
 
-#: frame.py:586
+#: frame.py:742
 msgid "Close project"
 msgstr ""
 
-#: frame.py:595
+#: frame.py:751
 msgid "Exit\tCtrl+Q"
 msgstr ""
 
-#: frame.py:626 frame.py:636
+#: frame.py:763 frame.py:773
 msgid "Undo\tCtrl+Z"
 msgstr ""
 
-#: frame.py:631 frame.py:637
+#: frame.py:768 frame.py:774
 msgid "Redo\tCtrl+Y"
 msgstr ""
 
-#: frame.py:649
+#: frame.py:786
 msgid "Clean Mask\tCtrl+Shift+A"
 msgstr ""
 
-#: frame.py:685
+#: frame.py:791
+msgid "Fill holes manually"
+msgstr ""
+
+#: frame.py:799 styles.py:1863
+msgid "Remove parts"
+msgstr ""
+
+#: frame.py:802
+msgid "Select parts"
+msgstr ""
+
+#: frame.py:807
+msgid "Crop"
+msgstr ""
+
+#: frame.py:813
+msgid "Manual segmentation"
+msgstr ""
+
+#: frame.py:823
+msgid "Right - Left"
+msgstr ""
+
+#: frame.py:824
+msgid "Anterior - Posterior"
+msgstr ""
+
+#: frame.py:825
+msgid "Top - Bottom"
+msgstr ""
+
+#: frame.py:828
+msgid "From Right-Left to Anterior-Posterior"
+msgstr ""
+
+#: frame.py:829
+msgid "From Right-Left to Top-Bottom"
+msgstr ""
+
+#: frame.py:830
+msgid "From Anterior-Posterior to Top-Bottom"
+msgstr ""
+
+#: frame.py:832
+msgid "Flip"
+msgstr ""
+
+#: frame.py:833
+msgid "Swap axes"
+msgstr ""
+
+#: frame.py:835
+msgid "Reorient image\tCtrl+Shift+R"
+msgstr ""
+
+#: frame.py:840
+msgid "Segmentation"
+msgstr ""
+
+#: frame.py:846
+msgid "Interpolated slices"
+msgstr ""
+
+#: frame.py:883
 msgid "Preferences..."
 msgstr ""
 
-#: frame.py:689
+#: frame.py:887
+msgid "Navigation mode"
+msgstr ""
+
+#: frame.py:896
 msgid "Getting started..."
 msgstr ""
 
-#: frame.py:692
+#: frame.py:899
 msgid "About..."
 msgstr "關於..."
 
-#: frame.py:700
+#: frame.py:907
 msgid "File"
 msgstr "檔案"
 
-#: frame.py:701
+#: frame.py:908
 msgid "Edit"
 msgstr ""
 
-#: frame.py:706
+#: frame.py:909
+msgid "View"
+msgstr ""
+
+#: frame.py:913
+msgid "Mode"
+msgstr ""
+
+#: frame.py:914
 msgid "Help"
 msgstr "幫助"
 
-#: frame.py:816 surface.py:371 surface.py:748 surface.py:749
+#: frame.py:1064 surface.py:433 surface.py:820 surface.py:821
+#: task_navigator.py:413 trackers.py:258
 msgid "Ready"
 msgstr "準備就緒"
 
-#: frame.py:969
+#: frame.py:1216
 msgid "Import DICOM files...\tCtrl+I"
 msgstr ""
 
-#: frame.py:978
+#: frame.py:1225
 msgid "Open InVesalius project..."
 msgstr ""
 
-#: frame.py:984
+#: frame.py:1231
 msgid "Save InVesalius project"
 msgstr "儲存 InVesalius 專案"
 
-#: frame.py:1130
+#: frame.py:1378
 msgid "Zoom"
 msgstr "縮放"
 
-#: frame.py:1136
+#: frame.py:1384
 msgid "Zoom based on selection"
 msgstr "基於選取區的縮放"
 
-#: frame.py:1142
+#: frame.py:1390
 msgid "Rotate"
 msgstr "旋轉"
 
-#: frame.py:1148
+#: frame.py:1396
 msgid "Move"
 msgstr "移動"
 
-#: frame.py:1154
+#: frame.py:1402
 msgid "Constrast"
 msgstr "視窗與層級"
 
-#: frame.py:1312
+#: frame.py:1566
 msgid "Scroll slices"
 msgstr ""
 
-#: frame.py:1318
+#: frame.py:1572
 msgid "Slices' cross intersection"
 msgstr ""
 
-#: frame.py:1488 frame.py:1560 frame.py:1741
+#: frame.py:1754 frame.py:1826 frame.py:2005
 msgid "Hide task panel"
 msgstr "隱藏工作面板"
 
-#: frame.py:1494 frame.py:1582 frame.py:1763
+#: frame.py:1760 frame.py:1848 frame.py:2027
 msgid "Hide text"
 msgstr "隱藏文字"
 
-#: frame.py:1566 frame.py:1747
+#: frame.py:1832 frame.py:2011
 msgid "Show task panel"
 msgstr "顯示工作面板"
 
-#: frame.py:1576 frame.py:1757
+#: frame.py:1842 frame.py:2021
 msgid "Show text"
 msgstr "顯示文字"
 
-#: frame.py:1657
+#: frame.py:1923
 msgid "Undo"
 msgstr ""
 
-#: frame.py:1664
+#: frame.py:1930
 msgid "Redo"
 msgstr ""
 
-#: imagedata_utils.py:92 imagedata_utils.py:226 imagedata_utils.py:331
-#: imagedata_utils.py:424
+#: imagedata_utils.py:93 imagedata_utils.py:227 imagedata_utils.py:332
+#: imagedata_utils.py:425 imagedata_utils.py:525
 msgid "Generating multiplanar visualization..."
 msgstr "正在產生多平面視覺化.."
 
-#: import_network_panel.py:101 import_panel.py:94
+#: import_bitmap_panel.py:92 import_network_panel.py:101 import_panel.py:94
 msgid "Import"
 msgstr ""
 
+#: import_bitmap_panel.py:202
+msgid "Path"
+msgstr ""
+
+#: import_bitmap_panel.py:204
+msgid "Width x Height"
+msgstr ""
+
+#: import_bitmap_panel.py:211 import_network_panel.py:266 import_panel.py:251
+msgid "InVesalius Database"
+msgstr "InVesalius 資料庫"
+
 #: import_network_panel.py:239 import_panel.py:224
 msgid "Patient name"
 msgstr "病患名稱"
@@ -1056,10 +1560,6 @@ msgstr ""
 msgid "Referring physician"
 msgstr ""
 
-#: import_network_panel.py:266 import_panel.py:251
-msgid "InVesalius Database"
-msgstr "InVesalius 資料庫"
-
 #: import_network_panel.py:497
 msgid "Word"
 msgstr ""
@@ -1092,7 +1592,7 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
-#: import_network_panel.py:695
+#: import_network_panel.py:695 task_navigator.py:590
 msgid "Remove"
 msgstr ""
 
@@ -1108,174 +1608,226 @@ msgstr ""
 msgid "error"
 msgstr ""
 
-#: language_dialog.py:78
+#: language_dialog.py:91
 msgid "Language selection"
 msgstr "語言選取"
 
-#: language_dialog.py:122
+#: language_dialog.py:135
 msgid "Choose user interface language"
 msgstr "選擇使用者介面語言"
 
-#: polydata_utils.py:139
+#: polydata_utils.py:155
 msgid "Analysing selected regions..."
 msgstr ""
 
-#: polydata_utils.py:198
+#: polydata_utils.py:211
 msgid "Splitting disconnected regions..."
 msgstr ""
 
-#: preferences.py:18
+#: preferences.py:17
 msgid "Preferences"
 msgstr ""
 
 #: preferences.py:41
-msgid "Visualization"
+msgid "2D Visualization"
 msgstr ""
 
-#: preferences.py:42 preferences.py:147
+#: preferences.py:42
+msgid "3D Visualization"
+msgstr ""
+
+#: preferences.py:43 preferences.py:190
 msgid "Language"
 msgstr ""
 
-#: preferences.py:95
+#: preferences.py:102
 msgid "Surface"
 msgstr ""
 
-#: preferences.py:98
+#: preferences.py:105
 msgid "Interpolation "
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:113
 msgid "Volume rendering"
 msgstr ""
 
-#: preferences.py:109
+#: preferences.py:116
 msgid "Rendering"
 msgstr ""
 
-#: preferences.py:113
+#: preferences.py:120
 msgid "GPU (NVidia video cards only)"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:152
+msgid "Slices"
+msgstr ""
+
+#: preferences.py:155
+msgid "Interpolated "
+msgstr ""
+
+#: preferences.py:159
+msgid "Yes"
+msgstr ""
+
+#: preferences.py:159
+msgid "No"
+msgstr ""
+
+#: preferences.py:193
 msgid ""
 "Language settings will be applied \n"
 " the next time InVesalius starts."
 msgstr ""
 
-#: presets.py:34 presets.py:52 presets.py:107 presets.py:138
+#: presets.py:33 presets.py:51 presets.py:107 presets.py:138
 msgid "Soft Tissue"
 msgstr "軟組織"
 
-#: presets.py:35 presets.py:53 presets.py:108 presets.py:139
+#: presets.py:34 presets.py:52 presets.py:108 presets.py:139
 msgid "Enamel (Adult)"
 msgstr "牙釉質 (成人)"
 
-#: presets.py:36 presets.py:54 presets.py:109 presets.py:140
+#: presets.py:35 presets.py:53 presets.py:109 presets.py:140
 msgid "Enamel (Child)"
 msgstr "牙釉質 (孩童)"
 
-#: presets.py:37 presets.py:55 presets.py:110 presets.py:141
+#: presets.py:36 presets.py:54 presets.py:110 presets.py:141
 msgid "Compact Bone (Adult)"
 msgstr "緻密骨 (成人)"
 
-#: presets.py:38 presets.py:56 presets.py:111 presets.py:142
+#: presets.py:37 presets.py:55 presets.py:111 presets.py:142
 msgid "Compact Bone (Child)"
 msgstr "緻密骨 (孩童)"
 
-#: presets.py:39 presets.py:57 presets.py:112 presets.py:143
+#: presets.py:38 presets.py:56 presets.py:112 presets.py:143
 msgid "Spongial Bone (Adult)"
 msgstr "海綿骨 (成人)"
 
-#: presets.py:40 presets.py:58 presets.py:113 presets.py:144
+#: presets.py:39 presets.py:57 presets.py:113 presets.py:144
 msgid "Spongial Bone (Child)"
 msgstr "海綿骨 (孩童)"
 
-#: presets.py:41 presets.py:59 presets.py:114 presets.py:145
+#: presets.py:40 presets.py:58 presets.py:114 presets.py:145
 msgid "Muscle Tissue (Adult)"
 msgstr "肌肉組織 (成人)"
 
-#: presets.py:42 presets.py:60 presets.py:115 presets.py:146
+#: presets.py:41 presets.py:59 presets.py:115 presets.py:146
 msgid "Muscle Tissue (Child)"
 msgstr "肌肉組織 (孩童)"
 
-#: presets.py:43 presets.py:61 presets.py:116 presets.py:147
+#: presets.py:42 presets.py:60 presets.py:116 presets.py:147
 msgid "Fat Tissue (Adult)"
 msgstr "脂肪組織 (成人)"
 
-#: presets.py:44 presets.py:62 presets.py:117 presets.py:148
+#: presets.py:43 presets.py:61 presets.py:117 presets.py:148
 msgid "Fat Tissue (Child)"
 msgstr "脂肪組織 (孩童)"
 
-#: presets.py:45 presets.py:63 presets.py:118 presets.py:149
+#: presets.py:44 presets.py:62 presets.py:118 presets.py:149
 msgid "Skin Tissue (Adult)"
 msgstr "皮膚組織 (成人)"
 
-#: presets.py:46 presets.py:64 presets.py:119 presets.py:150
+#: presets.py:45 presets.py:63 presets.py:119 presets.py:150
 msgid "Skin Tissue (Child)"
 msgstr "皮膚組織 (孩童)"
 
-#: slice_.py:1245
+#: slice_.py:1344
 msgid "Diff"
 msgstr ""
 
-#: slice_.py:1247
+#: slice_.py:1346
 msgid "XOR"
 msgstr ""
 
-#: slice_menu.py:38
+#: slice_menu.py:37
 msgid "Normal"
 msgstr ""
 
-#: slice_menu.py:39
+#: slice_menu.py:38
 msgid "MaxIP"
 msgstr ""
 
-#: slice_menu.py:40
+#: slice_menu.py:39
 msgid "MinIP"
 msgstr ""
 
-#: slice_menu.py:41
+#: slice_menu.py:40
 msgid "MeanIP"
 msgstr ""
 
-#: slice_menu.py:42
+#: slice_menu.py:41
 msgid "MIDA"
 msgstr ""
 
-#: slice_menu.py:43
+#: slice_menu.py:42
 msgid "Contour MaxIP"
 msgstr ""
 
-#: slice_menu.py:44
+#: slice_menu.py:43
 msgid "Contour MIDA"
 msgstr ""
 
-#: slice_menu.py:162
+#: slice_menu.py:161
 msgid "Window width and level"
 msgstr ""
 
-#: slice_menu.py:163
+#: slice_menu.py:162
 msgid "Pseudo color"
 msgstr ""
 
-#: slice_menu.py:164
+#: slice_menu.py:163
 msgid "Projection type"
 msgstr ""
 
-#: styles.py:58 task_slice.py:853
+#: styles.py:66 task_slice.py:865
 msgid "Foreground"
 msgstr ""
 
-#: styles.py:59 task_slice.py:854
+#: styles.py:67 task_slice.py:866
 msgid "Background"
 msgstr ""
 
-#: styles.py:833
+#: styles.py:946
 msgid "Applying watershed ..."
 msgstr ""
 
-#: surface.py:432 surface.py:523 surface.py:541 surface.py:567 surface.py:596
-#: surface.py:618 surface.py:637 surface.py:651 surface.py:668
+#: styles.py:1765
+msgid "Fill hole"
+msgstr ""
+
+#: styles.py:1766
+msgid "Filling hole ..."
+msgstr ""
+
+#: styles.py:1864
+msgid "Remove part"
+msgstr ""
+
+#: styles.py:1865
+msgid "Removing part ..."
+msgstr ""
+
+#: styles.py:2118
+msgid "Segmenting ..."
+msgstr ""
+
+#: surface.py:274
+msgid "File format not reconized by InVesalius"
+msgstr ""
+
+#: surface.py:274 surface.py:286
+msgid "Import surface error"
+msgstr ""
+
+#: surface.py:286
+msgid "InVesalius was not able to import this surface"
+msgstr ""
+
+#: surface.py:494 surface.py:585 surface.py:603 surface.py:636 surface.py:665
+#: surface.py:687 surface.py:706 surface.py:720 surface.py:737
 msgid "Creating 3D surface..."
 msgstr ""
 
@@ -1295,15 +1847,23 @@ msgstr "匯出 3D 表面"
 msgid "Export 3D surface..."
 msgstr "匯出 3D 表面..."
 
-#: task_exporter.py:320
+#: task_exporter.py:317
 msgid "Save 3D surface as..."
 msgstr "另存 3D 表面為..."
 
-#: task_exporter.py:339
+#: task_exporter.py:336
+msgid "It was not possible to save the surface."
+msgstr ""
+
+#: task_exporter.py:337
+msgid "Error saving surface"
+msgstr ""
+
+#: task_exporter.py:343
 msgid "You need to create a surface and make it "
 msgstr ""
 
-#: task_exporter.py:340
+#: task_exporter.py:344
 msgid "visible before exporting it."
 msgstr "在匯出之前可視。"
 
@@ -1312,11 +1872,11 @@ msgid "Testing..."
 msgstr ""
 
 #: task_importer.py:67
-msgid "Select DICOM files to be reconstructed"
+msgid "Select DICOM, Analyze, NIfTI or REC/PAR files to be reconstructed"
 msgstr ""
 
 #: task_importer.py:68
-msgid "Import DICOM images..."
+msgid "Import medical images..."
 msgstr ""
 
 #: task_importer.py:87
@@ -1327,325 +1887,424 @@ msgstr "開啟存有的 InVesalius 專案..."
 msgid "Open an existing project..."
 msgstr "開啟存有的專案..."
 
-#: task_slice.py:85
+#: task_navigator.py:62
+msgid "Select fiducials and navigate"
+msgstr ""
+
+#: task_navigator.py:131
+msgid "Neuronavigation"
+msgstr ""
+
+#: task_navigator.py:140
+msgid "Extra tools"
+msgstr ""
+
+#: task_navigator.py:149
+msgid "Update camera in volume"
+msgstr ""
+
+#: task_navigator.py:150
+msgid "Volume camera"
+msgstr ""
+
+#: task_navigator.py:156
+msgid "Enable external trigger for creating markers"
+msgstr ""
+
+#: task_navigator.py:157
+msgid "External trigger"
+msgstr ""
+
+#: task_navigator.py:227
+msgid "Choose the tracking device"
+msgstr ""
+
+#: task_navigator.py:235
+msgid "Choose the navigation reference mode"
+msgstr ""
+
+#: task_navigator.py:269
+msgid "FRE:"
+msgstr ""
+
+#: task_navigator.py:272
+msgid "Fiducial registration error"
+msgstr ""
+
+#: task_navigator.py:280
+msgid "Start navigation"
+msgstr ""
+
+#: task_navigator.py:281
+msgid "Navigate"
+msgstr ""
+
+#: task_navigator.py:365
+msgid "Configuring tracker ..."
+msgstr ""
+
+#: task_navigator.py:483
+msgid "Stop neuronavigation"
+msgstr ""
+
+#: task_navigator.py:516
+msgid "Start neuronavigation"
+msgstr ""
+
+#: task_navigator.py:566
+msgid "Create marker"
+msgstr ""
+
+#: task_navigator.py:575
+msgid "Save"
+msgstr ""
+
+#: task_navigator.py:578
+msgid "Load"
+msgstr ""
+
+#: task_navigator.py:581
+msgid "Hide"
+msgstr ""
+
+#: task_navigator.py:593
+msgid "Delete all"
+msgstr ""
+
+#: task_navigator.py:637
+msgid "Edit ID"
+msgstr ""
+
+#: task_slice.py:86
 msgid "Create mask for slice segmentation and editing"
 msgstr "建立供切片片段與編輯的遮罩"
 
-#: task_slice.py:86
+#: task_slice.py:87
 msgid "Create new mask"
 msgstr "建立新遮罩"
 
-#: task_slice.py:116
+#: task_slice.py:117
 msgid "Create surface"
 msgstr ""
 
-#: task_slice.py:117
+#: task_slice.py:118
 msgid "Overwrite last surface"
 msgstr "覆寫最後的表面"
 
-#: task_slice.py:266
+#: task_slice.py:267
 msgid "Mask properties"
 msgstr "遮罩屬性"
 
-#: task_slice.py:274
+#: task_slice.py:275
 msgid "Manual edition"
 msgstr ""
 
-#: task_slice.py:422
+#: task_slice.py:434
 msgid "Set predefined or manual threshold:"
 msgstr "設置預先定義的或是自訂的閾值"
 
-#: task_slice.py:652 task_slice.py:816
+#: task_slice.py:664 task_slice.py:828
 msgid "Choose brush type, size or operation:"
 msgstr "選擇比刷類型、大小或操作:"
 
-#: task_slice.py:658 task_slice.py:822
+#: task_slice.py:670 task_slice.py:834
 msgid "Circle"
 msgstr "圓"
 
-#: task_slice.py:662 task_slice.py:826
+#: task_slice.py:674 task_slice.py:838
 msgid "Square"
 msgstr "方"
 
-#: task_slice.py:703
+#: task_slice.py:715
 msgid "Brush threshold range:"
 msgstr "筆刷閾值範圍:"
 
-#: task_slice.py:873
+#: task_slice.py:885
 msgid "Overwrite mask"
 msgstr ""
 
-#: task_slice.py:874
-msgid "Use WW&WL"
-msgstr ""
-
-#: task_slice.py:883
+#: task_slice.py:895
 msgid "Expand watershed to 3D"
 msgstr ""
 
-#: task_surface.py:87
+#: task_surface.py:88
 msgid "Create 3D surface based on a mask"
 msgstr "建立基於遮罩的 3D 表面"
 
-#: task_surface.py:88
+#: task_surface.py:89
 msgid "Create new 3D surface"
 msgstr ""
 
-#: task_surface.py:108
+#: task_surface.py:109
 msgid "Next step"
 msgstr "下一步"
 
-#: task_surface.py:216
+#: task_surface.py:217
 msgid "Surface properties"
 msgstr "表面屬性"
 
-#: task_surface.py:222
+#: task_surface.py:223
 msgid "Advanced options"
 msgstr "進階選項"
 
-#: task_surface.py:274
+#: task_surface.py:275
 msgid ""
 "Automatically select largest disconnected region and create new surface"
 msgstr "自動選取最大不連續區域,並建立新表面"
 
-#: task_surface.py:275
+#: task_surface.py:276
 msgid "Select largest surface"
 msgstr ""
 
-#: task_surface.py:283
+#: task_surface.py:284
 msgid ""
 "Automatically select disconnected regions and create a new surface per "
 "region"
 msgstr ""
 
-#: task_surface.py:284
+#: task_surface.py:285
 msgid "Split all disconnected surfaces"
 msgstr "分開所有不連續的表面"
 
-#: task_surface.py:292
+#: task_surface.py:293
 msgid "Manually insert seeds of regions of interest and create a new surface"
 msgstr ""
 
-#: task_surface.py:293
+#: task_surface.py:294
 msgid "Select regions of interest..."
 msgstr "選取有興趣的區域..."
 
-#: task_surface.py:429
+#: task_surface.py:441
 msgid "Transparency:"
 msgstr "透明度:"
 
-#: task_surface.py:578
+#: task_surface.py:590
 msgid "Decimate resolution:"
 msgstr ""
 
-#: task_surface.py:588
+#: task_surface.py:600
 msgid "Smooth iterations:"
 msgstr ""
 
-#: task_tools.py:60
+#: task_tools.py:62
 msgid "Measure distances"
 msgstr "測量距離"
 
-#: task_tools.py:61
+#: task_tools.py:63
 msgid "Measure"
 msgstr "測量"
 
-#: task_tools.py:64 task_tools.py:65
+#: task_tools.py:66 task_tools.py:67
 msgid "Add text annotations"
 msgstr "加入文字註解"
 
-#: viewer_slice.py:66
+#: trackers.py:220
+msgid "Disconnecting tracker ..."
+msgstr ""
+
+#: viewer_slice.py:78
 msgid "Number of slices used to compound the visualization."
 msgstr ""
 
-#: viewer_slice.py:75
+#: viewer_slice.py:87
 msgid ""
 "Controls the sharpness of the contour. The greater the value, the sharper "
 "the contour."
 msgstr ""
 
-#: viewer_slice.py:83
+#: viewer_slice.py:95
 msgid "Inverted order"
 msgstr ""
 
-#: viewer_slice.py:84
+#: viewer_slice.py:96
 msgid ""
 "If checked, the slices are traversed in descending order to compound the "
 "visualization instead of ascending order."
 msgstr ""
 
-#: viewer_slice.py:90
+#: viewer_slice.py:102
 msgid "Number of slices"
 msgstr ""
 
-#: viewer_slice.py:91
+#: viewer_slice.py:103
 msgid "Sharpness"
 msgstr ""
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "R"
 msgstr "R"
 
-#: viewer_slice.py:333 viewer_slice.py:337 viewer_slice.py:390
-#: viewer_slice.py:392 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:442
-#: viewer_slice.py:451 viewer_slice.py:460 viewer_slice.py:469
+#: viewer_slice.py:730 viewer_slice.py:734 viewer_slice.py:784
+#: viewer_slice.py:786 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:836
+#: viewer_slice.py:845 viewer_slice.py:854 viewer_slice.py:863
 msgid "L"
 msgstr "L"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "A"
 msgstr "A"
 
-#: viewer_slice.py:333 viewer_slice.py:335 viewer_slice.py:390
-#: viewer_slice.py:394 viewer_slice.py:404 viewer_slice.py:413
-#: viewer_slice.py:422 viewer_slice.py:431 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:730 viewer_slice.py:732 viewer_slice.py:784
+#: viewer_slice.py:788 viewer_slice.py:798 viewer_slice.py:807
+#: viewer_slice.py:816 viewer_slice.py:825 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "P"
 msgstr "P"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "T"
 msgstr "T"
 
-#: viewer_slice.py:335 viewer_slice.py:337 viewer_slice.py:392
-#: viewer_slice.py:394 viewer_slice.py:442 viewer_slice.py:451
-#: viewer_slice.py:460 viewer_slice.py:469 viewer_slice.py:480
-#: viewer_slice.py:489 viewer_slice.py:498 viewer_slice.py:507
+#: viewer_slice.py:732 viewer_slice.py:734 viewer_slice.py:786
+#: viewer_slice.py:788 viewer_slice.py:836 viewer_slice.py:845
+#: viewer_slice.py:854 viewer_slice.py:863 viewer_slice.py:874
+#: viewer_slice.py:883 viewer_slice.py:892 viewer_slice.py:901
 msgid "B"
 msgstr "B"
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "AL"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "RA"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "PR"
 msgstr ""
 
-#: viewer_slice.py:407 viewer_slice.py:416 viewer_slice.py:425
-#: viewer_slice.py:434
+#: viewer_slice.py:801 viewer_slice.py:810 viewer_slice.py:819
+#: viewer_slice.py:828
 msgid "LP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "LA"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "AR"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "RP"
 msgstr ""
 
-#: viewer_slice.py:410 viewer_slice.py:419 viewer_slice.py:428
-#: viewer_slice.py:437
+#: viewer_slice.py:804 viewer_slice.py:813 viewer_slice.py:822
+#: viewer_slice.py:831
 msgid "PL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "TL"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "RT"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "BR"
 msgstr ""
 
-#: viewer_slice.py:445 viewer_slice.py:454 viewer_slice.py:463
-#: viewer_slice.py:472
+#: viewer_slice.py:839 viewer_slice.py:848 viewer_slice.py:857
+#: viewer_slice.py:866
 msgid "LB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "LT"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "TR"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "RB"
 msgstr ""
 
-#: viewer_slice.py:448 viewer_slice.py:457 viewer_slice.py:466
-#: viewer_slice.py:475
+#: viewer_slice.py:842 viewer_slice.py:851 viewer_slice.py:860
+#: viewer_slice.py:869
 msgid "BL"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "TA"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "PT"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "BP"
 msgstr ""
 
-#: viewer_slice.py:483 viewer_slice.py:492 viewer_slice.py:501
-#: viewer_slice.py:510
+#: viewer_slice.py:877 viewer_slice.py:886 viewer_slice.py:895
+#: viewer_slice.py:904
 msgid "AB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "AT"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "TP"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "PB"
 msgstr ""
 
-#: viewer_slice.py:486 viewer_slice.py:495 viewer_slice.py:504
-#: viewer_slice.py:513
+#: viewer_slice.py:880 viewer_slice.py:889 viewer_slice.py:898
+#: viewer_slice.py:907
 msgid "BA"
 msgstr ""
 
-#~ msgid "Import medical images..."
-#~ msgstr "Import medical images..."
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "InVesalius was not able to export this picture"
+msgstr ""
+
+#: viewer_slice.py:1326 viewer_volume.py:374
+msgid "Export picture error"
+msgstr ""
+
+#~ msgid "Untitled"
+#~ msgstr "Untitled"
+
+#~ msgid "Import DICOM images..."
+#~ msgstr "Import DICOM files..."
 
 #~ msgid "Advanced editing tools"
 #~ msgstr "Advanced editing tools"
@@ -1662,11 +2321,5 @@ msgstr ""
 #~ msgid "Open a InVesalius project..."
 #~ msgstr "Open a InVesalius project..."
 
-#~ msgid "Getting selected parts"
-#~ msgstr "Getting selected parts"
-
-#~ msgid "InVesalius 3 - New surface"
-#~ msgstr "InVesalius 3 - New surface"
-
 #~ msgid "Image Tiling"
 #~ msgstr "Image Tiling"
diff --git a/setup.py b/setup.py
index 794452e..cc05315 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,9 @@
 from distutils.core import setup
 from distutils.extension import Extension
 from Cython.Distutils import build_ext
+from Cython.Build import cythonize
 
+import os
 import sys
 
 import numpy
@@ -9,24 +11,87 @@ import numpy
 if sys.platform == 'linux2':
     setup(
         cmdclass = {'build_ext': build_ext},
-        ext_modules = [ Extension("invesalius.data.mips", ["invesalius/data/mips.pyx"],
+        ext_modules = cythonize([ Extension("invesalius.data.mips", ["invesalius/data/mips.pyx"],
                                   include_dirs =  [numpy.get_include()],
                                   extra_compile_args=['-fopenmp'],
-                                  extra_link_args=['-fopenmp'],)]
+                                  extra_link_args=['-fopenmp']),
+
+                       Extension("invesalius.data.interpolation", ["invesalius/data/interpolation.pyx"],
+                                 include_dirs=[numpy.get_include()],
+                                 extra_compile_args=['-fopenmp',],
+                                 extra_link_args=['-fopenmp',]),
+
+                       Extension("invesalius.data.transforms", ["invesalius/data/transforms.pyx"],
+                                 include_dirs=[numpy.get_include()],
+                                 extra_compile_args=['-fopenmp',],
+                                 extra_link_args=['-fopenmp',]),
+
+                       Extension("invesalius.data.floodfill", ["invesalius/data/floodfill.pyx"],
+                                 include_dirs=[numpy.get_include()],
+                                 language='c++',),
+
+                       Extension("invesalius.data.cy_mesh", ["invesalius/data/cy_mesh.pyx"],
+                                 include_dirs=[numpy.get_include()],
+                                 extra_compile_args=['-fopenmp', '-std=c++11'],
+                                 extra_link_args=['-fopenmp', '-std=c++11'],
+                                 language='c++',),
+                       ])
          )
 
 elif sys.platform == 'win32':
     setup(
         cmdclass = {'build_ext': build_ext},
-        ext_modules = [ Extension("invesalius.data.mips", ["invesalius/data/mips.pyx"],
-                                  include_dirs =  [numpy.get_include()],
-                                  extra_compile_args=['/openmp'],
-                                 )]
-         )
+        ext_modules = cythonize([ Extension("invesalius.data.mips", ["invesalius/data/mips.pyx"],
+                                            include_dirs =  [numpy.get_include()],
+                                            extra_compile_args=['/openmp'],),
+
+                                 Extension("invesalius.data.interpolation", ["invesalius/data/interpolation.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           extra_compile_args=['/openmp'],),
+
+                                 Extension("invesalius.data.transforms", ["invesalius/data/transforms.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           extra_compile_args=['/openmp'],),
+
+                                 Extension("invesalius.data.floodfill", ["invesalius/data/floodfill.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           language='c++',),
+
+                                 Extension("invesalius.data.cy_mesh", ["invesalius/data/cy_mesh.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           extra_compile_args=['/openmp',],
+                                           language='c++',),
+                                 ])
+    )
 
 else:
     setup(
+        packages=["invesalius", ],
         cmdclass = {'build_ext': build_ext},
-        ext_modules = [ Extension("invesalius.data.mips", ["invesalius/data/mips.pyx"],
-                                  include_dirs =  [numpy.get_include()],)]
-         )
+        ext_modules = cythonize([Extension("invesalius.data.mips", ["invesalius/data/mips.pyx"],
+                                           include_dirs =  [numpy.get_include()],
+                                           extra_compile_args=['-fopenmp',],
+                                           extra_link_args=['-fopenmp',]),
+
+                                 Extension("invesalius.data.interpolation", ["invesalius/data/interpolation.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           extra_compile_args=['-fopenmp',],
+                                           extra_link_args=['-fopenmp',]),
+
+                                 Extension("invesalius.data.transforms", ["invesalius/data/transforms.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           extra_compile_args=['-fopenmp',],
+                                           extra_link_args=['-fopenmp',]),
+
+                                 Extension("invesalius.data.floodfill", ["invesalius/data/floodfill.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           language='c++',),
+
+                                 Extension("invesalius.data.cy_mesh", ["invesalius/data/cy_mesh.pyx"],
+                                           include_dirs=[numpy.get_include()],
+                                           extra_compile_args=['-fopenmp', '-std=c++11'],
+                                           extra_link_args=['-fopenmp', '-std=c++11'],
+                                           language='c++',),
+
+                                 ])
+    )

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/invesalius.git



More information about the debian-med-commit mailing list