diff --git a/CMakeLists.txt b/CMakeLists.txt
index c03791e8c..3bfa02db8 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,7 +30,7 @@ CMAKE_POLICY(SET CMP0003 NEW)
STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 4)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 5)
SET(${PROJECT_NAME_UC}_PATCH_VERSION 1)
SET(${PROJECT_NAME_UC}_VERSION
${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
diff --git a/bin/geom_setenv.py b/bin/geom_setenv.py
index b4e8b747a..8b34068dc 100644
--- a/bin/geom_setenv.py
+++ b/bin/geom_setenv.py
@@ -20,7 +20,7 @@
#
import os, sys, string
-from salome_utils import getTmpDir, generateFileName, uniteFiles
+from salome_utils import getLogDir, generateFileName, uniteFiles
from setenv import add_path, get_lib_dir, salome_subdir
# -----------------------------------------------------------------------------
@@ -29,8 +29,8 @@ def set_env( args ):
"""Add to the PATH-variables modules specific paths"""
psep = os.pathsep
python_version="python%d.%d" % sys.version_info[0:2]
-
- tmp_dir = getTmpDir()
+
+ tmp_dir = getLogDir()
env_dir = generateFileName( tmp_dir, prefix="env", with_port=True )
res_dir = os.path.join( os.getenv( "GEOM_ROOT_DIR" ), "share", salome_subdir, "resources", "geom" )
diff --git a/doc/salome/examples/CMakeLists.txt b/doc/salome/examples/CMakeLists.txt
index 3d9da7036..f21bae342 100644
--- a/doc/salome/examples/CMakeLists.txt
+++ b/doc/salome/examples/CMakeLists.txt
@@ -74,6 +74,7 @@ SET(GOOD_TESTS
min_distance.py
normal_face.py
notebook_geom.py
+ polyline.py
point_coordinates.py
primitives_ex01.py
primitives_ex02.py
diff --git a/doc/salome/gui/GEOM/images/tree_example.png b/doc/salome/gui/GEOM/images/tree_example.png
index e41c1b1f8..bb75713c8 100644
Binary files a/doc/salome/gui/GEOM/images/tree_example.png and b/doc/salome/gui/GEOM/images/tree_example.png differ
diff --git a/doc/salome/gui/GEOM/input/arranging_study_objects_page.doc b/doc/salome/gui/GEOM/input/arranging_study_objects_page.doc
index 88aea81d4..e496e02f2 100644
--- a/doc/salome/gui/GEOM/input/arranging_study_objects_page.doc
+++ b/doc/salome/gui/GEOM/input/arranging_study_objects_page.doc
@@ -36,11 +36,10 @@ and then displays only the children of the selected object(s).
to change the order (ascending / descending) by clicking the corresponding title bar of the objects list.
-
\ref dependency_tree_page "Show dependency tree" - shows dependency tree of selected objects
-in new 2D View Window.
+
\ref dependency_tree_page "Show dependency tree" - shows the dependency tree with parents and children of the selected object
+in a new 2D View Window.
-
\ref reduce_study_page "Reduce study" - allows to reduce study
-by automatic removing objects according to user's options.
+
\ref reduce_study_page "Reduce study" - allows reducing the study by removing objects from it.
Folders
diff --git a/doc/salome/gui/GEOM/input/creating_cylinder.doc b/doc/salome/gui/GEOM/input/creating_cylinder.doc
index d2c9f78e3..8b81f7982 100644
--- a/doc/salome/gui/GEOM/input/creating_cylinder.doc
+++ b/doc/salome/gui/GEOM/input/creating_cylinder.doc
@@ -10,8 +10,8 @@ Entity - > Primitives - > Cylinder
\n Firstly, you can define a \b Cylinder by the Base Point (the central
point of the cylinder base), the \b Vector (the axis of the cylinder),
-and its dimensions: the \b Radius and the \b Height. Also, you can optionally specify
-the \b Angle in order to create a portion of cylinder.
+and its dimensions: the \b Radius and the \b Height. You can optionally specify
+the \b Angle to create a portion of cylinder.
\n TUI Command:geompy.MakeCylinder(Point, Axis, Radius, Height)
\n Arguments: Name + 1 vertex + 1 vector + 2 values
@@ -26,8 +26,8 @@ the \b Angle in order to create a portion of cylinder.
\n Secondly, you can define a \b Cylinder by the given \b Radius and
\b Height at the origin of coordinate system. The axis of the cylinder
will be collinear to the OZ axis of the coordinate system.
-Similarly to first constructor, you can optionally specify the \b Angle
-in order to create a portion of cylinder.
+Similarly to the first constructor, you can optionally specify the \b Angle
+to create a portion of cylinder.
\n TUI Command:geompy.MakeCylinderRH(Radius, Height)
\n Arguments: Name + 2 values (Dimensions at origin: radius and
diff --git a/doc/salome/gui/GEOM/input/creating_explode.doc b/doc/salome/gui/GEOM/input/creating_explode.doc
index 1de29847a..65a813eb2 100644
--- a/doc/salome/gui/GEOM/input/creating_explode.doc
+++ b/doc/salome/gui/GEOM/input/creating_explode.doc
@@ -26,11 +26,11 @@ sub-shapes of a given Type and returns a List of IDs of
sub-shapes.
geompy.SubShapeAllSortedCentres(Shape, Type) explodes a
shape on sub-shapes of a given type and sorts them taking into account
-their gravity centers, to provide stable order of sub-shapes.
+their gravity centers, to provide a stable order of sub-shapes.
It returns a list of sub-shapes.
geompy.SubShapeAllSortedCentresIDs(Shape, Type) explodes
a shape on sub-shapes of a given type and sorts them taking into
-account their gravity centers, to provide stable order of sub-shapes.
+account their gravity centers, to provide a stable order of sub-shapes.
It returns a List of IDs of sub-shapes.
geompy.SubShape(Shape, Type, ListOfInd) allows to obtain
a compound of sub-shapes of the Shape, selected by they indices in a
diff --git a/doc/salome/gui/GEOM/input/creating_polyline.doc b/doc/salome/gui/GEOM/input/creating_polyline.doc
index 7ec36434d..2ca7f4ba9 100644
--- a/doc/salome/gui/GEOM/input/creating_polyline.doc
+++ b/doc/salome/gui/GEOM/input/creating_polyline.doc
@@ -9,93 +9,68 @@ To create a 2D Polyline select in the main menu New Entity -> Basic -
\image html polyline_dlg.png
A polyline represents a section or a set of sections. Each section is constructed from a sequence of 2D points
-connected either by linear setgments or an interpolation curve. Every section has its own attributes:
+connected by either linear segments or an interpolation curve. Every section has its own attributes:
- \b Name,
- \b Type (Polyline or Spline),
- \b Closed flag.
-A Polyline created represents a shape that lies on the XOY plane. It can have the following types:
+A created Polyline represents a shape that lies on the XOY plane. Its type can be one of the following:
- \b Vertex for a single section with only 1 point.
-- \b Wire for a single section with 2 or more points. A Wire can have multiple edges for more then 2 points if the section type is Polyline.
-A single edge in the result wire is obtained for a Spline or Polyline with 2 points.
+- \b Wire for a single section with 2 or more points. A Wire can have multiple edges for more then 2 points if the section type is Polyline. A single edge in the resulting wire is obtained for a Spline or Polyline with 2 points.
- \b Compound of Wires and/or Vertices if there are several sections.
-For the moment only one reference coordinate system for polyline creation is supported. The XOY plane of the Global coordinate system
-is suggested. Implementation of another reference coordinate system is a subject of further development of this functionality.
-Restore button orientates the viewer correspondingly to the chosen working plane and fits the scene to show all objects.
+For the moment only one reference coordinate system for polyline creation is supported, which is the XOY plane of the Global coordinate system.
+\b Restore button orientates the viewer correspondingly to the chosen working plane and fits the scene to show all objects.
For the moment this button works with only one plane.
-It is possible to import a shape in this dialog using Import polyline selection button. To do it an imported object should satisfy conditions
-for polyline shapes mentioned above. If a valid shape is selected, when dialog is opened, it is initialized by this shape.
-Though the shape can be on any plane, an imported polyline will be defined on XOY plane only due to the limitation.
+It is possible to import a shape in this dialog using Import polyline selection button. An imported object should meet the conditions for polyline shapes mentioned above. If a valid shape is selected, when the dialog is opened, it is initialized by this shape.
+Though the shape can be on any plane, the imported polyline will be defined on XOY plane only due to the limitation.
-The group \b Sections in this dialog represents the Polyline construction framework. Its toolbar has the following operations:
-- \b Undo
-- \b Redo
-- Insert new section
-- Addition mode
-- Modification mode - not implemented
-- Detection mode - not implemented
-- \b Remove
-- Join selected sections
+The group \b Sections in this dialog represents the Polyline construction framework.
-Undo/Redo buttons allows to undo/redo changes of the polyline.
+The buttons Undo and Redo allow to undo or redo the changes of the polyline.
-Insert new section button opens a dialog that allows to add a new section:
+Insert new section button opens the corresponding dialog:
\image html polyline_dlg_add_section.png
In this dialog it is possible to choose:
-- \b Name of section
-- \b Type of section
-- \b Closed flag
+- \b Name of section;
+- \b Type of section;
+- Set \b Closed flag.
-To create a new section \b Add button should be clicked. \b Cancel button is used to cancel this operation.
-After clicking \b Add button a new section is appeared on the list. Its name supplemented by its type and closedness
-information (see icon) and the number of points (equal to 0 after creation).
+To create a new section, click \b Add button. \b Cancel button is used to cancel this operation.
+After clicking \b Add button a new section appears in the list. Its name is generated automatically depending on its type, closed or opened state and the number of points (equal to 0 after creation).
-To modify section parameters it is possible to double-click on a section in the list. In this case the following dialog appears:
+To modify section parameters, double-click on a section in the list. In this case the following dialog appears:
\image html polyline_dlg_edit_section.png
-To apply modifications the button \b Ok should be clicked.
+To apply the modifications, click \b Ok button.
-Addition mode allows to add points to a section. It is necessary to select a particular section in a list of sections
-and make some mouse clicks in the viewer. A section preview is recomputed after each click.
+Addition mode allows adding points to a section. Select a particular section in the list of sections
+and left-click in the viewer to add new nodes to the section. A section preview is recomputed after each click.
Modification mode and Detection mode are not implemented for the moment.
-\b Remove button allows to remove a section. It is available if all modes are deactivated and one section is selected.
+\b Remove button allows removing a section. It is available if all modes are deactivated and one section is selected.
Join selected sections button is available in modification mode if two or more sections are selected. It is used to
-merge several sections into the first one from selection list. Joined section has parameters of the first selected one. Points of
-the other sections are appended at the end of the list of the first section points.
+merge several sections into the first one from the selection list. The points of the merged sections are appended at the end of the list of points of the first section.
-Some actions are available via popup menu by right mouse button click.
+Some actions are available via the context menu activated by right mouse button click.
+- Join all sections - joins all defined sections into the first one.
+- \b Join - joins two or more selected sections.
+- Clear all - removes all selected sections.
+- Set closed - sets \b Closed flag for all selected section.
+- Set open - unset \b Closed flag for all selected sections.
+- Set polyline - sets the type of all selected sections to Polyline.
+- Set spline - set the type of all selected sections to Spline.
-If all modes are deactivated:
-- Join all sections - join all defined sections into the first one.
-- \b Join - join sections. Available if two or more sections are selected.
-
-In Addition mode:
-- Join all sections - join all defined sections into the first one.
-
-In Modification mode:
-- Join all sections - join all defined sections into the first one.
-- \b Join - join sections. Available if two or more sections are selected.
-- Clear all - remove all sections. Available if at least one section is selected.
-- Set closed - set all selected section's Closed flag. Available if at least one section is selected.
-- Set open - reset all selected section's Closed flag. Available if at least one section is selected.
-- Set polyline - set all selected section's type to Polyline. Available if at least one section is selected.
-- Set spline - set all selected section's type to Spline. Available if at least one section is selected.
-
-In Detection mode:
-- Join all sections - join all defined sections into the first one.
-- \b Join - join sections. Available if two or more sections are selected.
+Different actions are available depending on the mode and selection.
TUI Commands
-
To create the 2D polyline in TUI Polyline2D interface is used.
pl = geompy.Polyline2D() - returns an instance of Polyline2D interface pl.
@@ -103,5 +78,5 @@ To create the 2D polyline in TUI Polyline2D interface is used.
See the \ref gsketcher.Polyline2D "Polyline2D" interface documentation for more information.
Our TUI Scripts provide you with useful examples of the use of
-\ref tui_polyline_page "2D Polyline".
+\ref tui_creation_polyline "2D Polyline".
*/
diff --git a/doc/salome/gui/GEOM/input/creating_smoothingsurface.doc b/doc/salome/gui/GEOM/input/creating_smoothingsurface.doc
index a4d3fb647..e59f403b1 100644
--- a/doc/salome/gui/GEOM/input/creating_smoothingsurface.doc
+++ b/doc/salome/gui/GEOM/input/creating_smoothingsurface.doc
@@ -14,11 +14,11 @@ In this dialog you can specify the following parameters:
- Max BSpline surface degree of the resulting BSpline surface;
- 3D tolerance of initial approximation
-\note 3D tolerance of initial approximation represents a tolerance of
+\note 3D tolerance of the initial approximation represents the tolerance of
initial plate surface approximation. If this parameter is equal to 0 (default),
its value is automatically computed as max(0.0001, 10*error),
-where error is a 3D tolerance of the surface representing a maximal
-distance between computed plate surface and given points.
+where error is the 3D tolerance of the surface representing the maximal
+distance between the computed plate surface and given points.
Advanced options: \ref preview_anchor "Preview"
@@ -28,7 +28,7 @@ Press "Apply" or "Apply & Close" button to get the resulting GEOM_Object(Sur
- \em thelPoints is a list of points or compounds of points;
- \em theNbMax maximum number of Bezier pieces in the resulting surface;
- \em theDegMax maximum degree;
-- \em theDMax specifies 3D tolerance of initial approximation
+- \em theDMax specifies 3D tolerance of the initial approximation.
Example:
diff --git a/doc/salome/gui/GEOM/input/dependency_tree.doc b/doc/salome/gui/GEOM/input/dependency_tree.doc
index e44dba400..9afc744bc 100644
--- a/doc/salome/gui/GEOM/input/dependency_tree.doc
+++ b/doc/salome/gui/GEOM/input/dependency_tree.doc
@@ -13,23 +13,20 @@
\anchor dependency_tree_general_description_anchor
General description
-In order to better understand the relations between the %GEOM
-objects in a study the user has a possibility to display the
-ascendants and descendant of the object(s) in a family tree.
+You can display the ascendants and descendants of object(s) in a tree structure to better understand the relations between the %GEOM
+objects in a study .
-User can build the dependency tree by selecting desirable object
-in Object Browser or OCC Viewer and calling "Show dependency tree"
-popup item. It will open a new or clear the existing "Dependency
-Tree" view window (only one view is supported) and display a
-dependency tree for the selected object or objects (multiple
-selection is supported). Also user can rebuild the tree if to select
-some object(s) right in the "Dependency Tree" view and call
-"Rebuild the tree" popup menu item.
+To build the dependency tree, select the necessary object or objects (multiple
+selection is supported) in the Object Browser or OCC Viewer and call "Show dependency tree" context menu item.
\image html tree_example.png
-User can change all necessary parameters of Dependency Tree Viewer
-in \ref pref_dependency_tree "Preferences".
+
+"Dependency Tree" view window will display the dependency tree for the selected object.
+It is also possible to select an object(s) directly in the "Dependency Tree" view and to rebuild the tree by selecting
+"Rebuild the tree" context menu item.
+
+All necessary parameters of Dependency Tree Viewer can be edited in the \ref pref_dependency_tree "Preferences".
\anchor dependency_tree_nodes_anchor
Nodes
@@ -37,62 +34,48 @@ in \ref pref_dependency_tree "Preferences".
Tree nodes in the Dependency Viewer are named according to the study
names of the corresponding objects.
-Non-published objects are shown in the tree as "unpublished" and
-colored in special color.
-
-All nodes have the fixed size, so the long names are cut and shown
-with ellipsis; full name of the object can be seen in the tooltip
-if to keep the cursor over the node.
+All nodes have fixed size, so long names are cut; the full object name can be seen in the tooltip
+when the cursor is hovered over the node.
"Dependency Tree" view supports the following states of nodes:
-
Main node - node of main object(s), which were selected in Object
-Browser, OCC Viewer or Dependency Tree Viewer in order to build the
-dependency tree;
+
Main node - corresponds to the main object(s) selected in Object
+Browser, OCC Viewer or Dependency Tree Viewer;
\image html tree_main_node.png
-
Default node - node of published in study object, which participate in building of
-dependency tree as ascendant or descendant;
+
Default node - ascendant or descendant node of the dependency tree corresponding to an object published in the study;
\image html tree_default_node.png
-
Unpublished node - the same as "Default node", but
-corresponding object was not published in study;
+
Unpublished node - corresponds to an object that was not published in the study;
\image html tree_unpublished_node.png
-
Highlighted node - the state of node when mouse
-cursor is over it;
+
Highlighted node - the state of a node when the mouse cursor is hovered over it;
\image html tree_highlighted_node.png
-
Selected node - the state of node when user
-clicks the left mouse button on node.
+
Selected node - the state of node when the user clicks the left mouse button it.
\image html tree_selected_node.png
\anchor dependency_tree_links_anchor
Links
Dependency Tree Viewer shows oriented links between nodes to
-represent dependency direction. Viewer supports the following states
-of links:
+represent the dependency direction. The viewer supports the following states of links:
-
Unidirectional link - shows that A object depends on
-B object;
+
Unidirectional link - shows that object B depends on object A;
\image html tree_unidir_link.png
-
Bidirectional link - shows that A object depends on
-B object and, at the same time, B object depends on
-A object;
+
Bidirectional link - shows that object B depends on
+object A and, at the same time, object A depends on object B;
\image html tree_bidir_link.png
-
Self-dependency link - shows that object depends on
-itself;
+
Self-dependency link - shows that an object depends on itself;
\image html tree_selfdep_link.png
-
Cyclic dependency links - shows cyclic dependency of
-some nodes.
+
Cyclic dependency links - shows cyclic dependency of some nodes.
\image html tree_cycldep_link.png
-\anchor dependency_tree_operations_anchor
Operations
+\anchor dependency_tree_operations_anchor
Viewer Operations
The dependency tree of a chosen %GEOM object is displayed in
the dedicated 2D view window.
@@ -105,8 +88,7 @@ mouse button.
\image tree_tool_bar
-Dump View - exports an object from the viewer in bmp, png or
-jpeg image format.
+Dump View - exports the current scene in bmp, png or jpeg image format.
\image html tree_view_dump.png
Fit all - scales the presentation so that it could fit within
@@ -140,38 +122,32 @@ levels to be shown in the dependency tree.
Level 1 corresponds to the parents and children of the selected
object(s);
-
Level 2 is Level 1 plus the grand-parents and grand-children
+
Level 2 adds the grand-parents and grand-children
of the selected object(s);
etc...
-Display ascendants - allows user to control the displaying
-of ascendants.
+Display ascendants - allows showing/hiding the ascendants.
\image html tree_disp_ascendants.png
-Display descendants - allows user to control the displaying
-of descendants.
+Display descendants - allows showing/hiding the descendants.
\image html tree_disp_descendants.png
-Move nodes - enables/disables of moving the nodes.
+Move nodes -if checked, it is possible to move nodes in the viewer.
\image html tree_move_nodes.png
-Update - allows user to update a dependency tree model and the view.
+Update - updates the dependency tree view, reflecting changes introduced in the hierarchy.
\image html tree_button_update.png
-\anchor dependency_tree_navigation_anchor
Navigation
-
-Dependency Tree 2D Viewer supports the following navigation mode:
+\anchor dependency_tree_navigation_anchor
Selection and Shortcuts
-
rectangle selection in this mode is performed by the left mouse
-button
;
-
multiple selection is available when \b Shift button
+
It is possible to select multiple nodes in the view by rectangle selection or by clicking nodes when \b Shift button
is pressed.
-Also, holding \b Ctrl key with pressed mouse buttons performs
+Holding \b Ctrl key with pressed mouse buttons performs
the following view transformations:
Ctrl + left mouse button - zooming;
@@ -179,33 +155,23 @@ the following view transformations:
-\anchor dependency_tree_popup_menu_anchor
Popup Menu
+\anchor dependency_tree_popup_menu_anchor
Context Menu
-After the object has appeared in the Dependency Tree 2D Viewer,
-user can select it with left mouse click to change its presentation
-parameters and get access to other useful options by right-clicking on
-the selected object.
+The following operations are available from the context menu of the selected object.
\image html tree_popup_menu1.png
-
\b Show - allows to show selected object(s) in OCC 3D Viewer;
-
Show Only - allows to show only selected object(s)
-in OCC 3D Viewer;
-
Rebuild the tree - allows to rebuild the dependency tree
+
\b Show - shows the selected object(s) in OCC 3D Viewer;
+
Show Only - shows only the selected object(s) in OCC 3D Viewer;
+
Rebuild the tree - rebuilds the dependency tree
for selected object(s);
-
\ref reduce_study_page "Reduce study" - allows to reduce study.
-
-
-Some functionalities are available through right-clicking on
-the viewer background:
+
\ref reduce_study_page "Reduce study" - allows reducing the study.
\image html tree_popup_menu2.png
-Dependency Tree 2D Viewer background can be customized using the
-"Change background" popup menu command that opens standard
-"Select Color" dialog box:
-
-\image html selectcolor.png
+
It is also possible to customize the background of Dependency Tree 2D Viewer using the
+corresponding context menu command.
-In the \b Geometry module you can set preferences for visualisation of
+In the \b Geometry module you can set preferences for visualization of
geometrical figures, which can be used in later sessions with this module.
-There is also a special group of preferences controlling input
-precision for floating-point data.
+
\image html pref15.png
@@ -67,7 +66,7 @@ of values set in spin boxes.
-
Dimensions (Measurements)
+
Dimensions (Measurements) - a group of preferences controlling the presentation of dimensions.
Color - allows to define color for persistent dimension presentations.
Line width - allows to define pixel width of dimension lines.
@@ -91,7 +90,8 @@ By default Along U and Along V are null and isolines are not drawn
-
Input fields precision
+
Input fields precision - a group of preferences controlling input
+precision for floating-point data.
Length precision - allows to adjust input precision of coordinates and dimensions.
Angular precision - allows to adjust input precision of angles.
@@ -147,32 +147,29 @@ system immediately after the module activation.
\anchor pref_dependency_tree
Dependency Tree
-Also user can set preferences for visualisation of Dependency Tree in 2D Viewer.
+This tab groups preferences for visualization of Dependency Tree in the 2D Viewer.
\image html pref_dep_tree.png
General
-
Hierarchy type - allows to choose default displaying mode of dependency tree.
-
Possibility to move nodes - enable/disable the possibility of moving nodes by default.
+
Hierarchy type - allows to choose the default display mode of the dependency tree.
+
Possibility to move nodes - enables/disables the possibility of moving nodes by default.
Color
-
Background color - allows to select default background color.
-
Default node color - allows to select default node color.
-
Main node color - allows to select default main node color.
-
Unpublished node color - allows to select default node color
-for unpublished objects.
-
Selected node color - allows to select default selected node color.
-
Default arrow color - allows to select default arrow color.
-
Highlighted arrow color - allows to select default highlighted
-arrow color.
-
Selected arrow color - allows to select default selected
-arrow color.
+
Background color - allows to select the default background color.
+
Default node color - allows to select the default node color.
+
Main node color - allows to select the default main node color.
+
Unpublished node color - allows to select the default node color for unpublished objects.
+
Selected node color - allows to select the default selected node color.
+
Default arrow color - allows to select the default arrow color.
+
Highlighted arrow color - allows to select the default highlighted arrow color.
+
Selected arrow color - allows to select the default selected arrow color.
diff --git a/doc/salome/gui/GEOM/input/geompy.doc b/doc/salome/gui/GEOM/input/geompy.doc
index c483ca71c..a39809963 100644
--- a/doc/salome/gui/GEOM/input/geompy.doc
+++ b/doc/salome/gui/GEOM/input/geompy.doc
@@ -31,6 +31,7 @@ provided by Geometry module.
\ref tui_working_with_groups_page
\ref tui_building_by_blocks_page
\ref tui_sketcher_page
+
\ref tui_3dsketcher_page
\ref tui_advanced_geom_objs_page
\subpage tui_viewing_geom_objs_page
diff --git a/doc/salome/gui/GEOM/input/reduce_study.doc b/doc/salome/gui/GEOM/input/reduce_study.doc
index 8a3c7e766..6757c5a1a 100644
--- a/doc/salome/gui/GEOM/input/reduce_study.doc
+++ b/doc/salome/gui/GEOM/input/reduce_study.doc
@@ -2,55 +2,52 @@
\page reduce_study_page Reduce Study
-The user sometimes needs to keep in the study only some objects that
+It can be sometimes necessary to keep in the study only the objects that
present the final result(s) of the design operations and to delete all
-other objects which do not contribute to these results.
+other objects, which do not contribute to these results.
-The feature is especially useful when the user designs the whole model
-through the GUI and wants to generate simplified "clean" Python dump only
-at the end of the model construction with no "useless" objects in the
-%GEOM module.
+This is especially useful when the model is designed using the GUI
+and it is necessary to generate a simplified "clean" Python dump without "useless" objects
+at the end of the model construction.
-User can open dialog box by selecting desirable object(s) in Object
-Browser or OCC Viewer and calling "Reduce study" popup item.
+This feature can be activated by selecting the desirable object(s) in Object
+Browser or OCC Viewer and calling "Reduce study" context item.
\image html reduce_study_dialog.png
Objects to be kept - objects that will be kept in the study after
-applying operation of reduce study. The list of objects being selected by
+applying reduce study operation. The objects selected by
the user are highlighted in bold font.
Objects to be removed - objects that will be deleted.
-\note Mentioned views provide possibility to show/hide object(s) in
-current Viewer using "eye" icon near each item of tree. Also user can
-show/hide ALL objects in tree by clicking "eye" icon in the head of tree view.
+\note It is possible to show/hide object(s) in the
+current Viewer using "eye" icon next to each tree item.
+ALL objects in the tree can be shown/hidden by clicking the "eye" icon in the head of the tree view.
+
+
Intermediate objects group box allows choosing what should be done with the objects that are used to produce the selected object(s):
+
Sub-objects group box allows choosing the same operations for
+sub-objects of the selected object(s).
-
Intermediate objects group box allows to choose an action
-that will be performed with the objects that took part in the operations
-chain to produce the selected object(s):
Keep - object(s) will be kept in the study;
Unpublish - object(s) will be unpublished (hidden) from the study;
Remove - object(s) will be removed from the study. \note Since use of
-this option can lead to the broken Dump Python script, the warning message
-will be shown at the operation commiting to confirm/reject removing
-intermediate objects.
+this option can cause a broken Dump Python script, the warning message
+is shown confirm/reject removing intermediate objects.
-
Sub-objects group box allows to choose the same operations for
-sub-objects of selected item(s): keep, unpublish or remove.
-
Remove empty folders - if this option is checked, then all folders,
+
Remove empty folders - if this option is checked, all folders,
which will become empty after removing unused objects from the study,
will be also removed; otherwise, empty folders will be kept.
-
Soft removal - if this option is checked, operation will just
-unpublish the redundant objects from the study instead of their hard delete.
-\n Soft removal would keep all the data in the study to give the user a
+
Soft removal - if this option is checked, the operation will
+unpublish the redundant objects from the study instead of deleting them.
+\n So, soft removal keeps all data in the study to give the user a
chance to revert this operation using \ref publish_hidden_objects
"Publish Objects" dialog box.
Show all dimensions - shows all of the persistent dimensions created for the selected geometrical object.
Hide all dimensions - hides all of the persistent dimensions created for the selected geometrical object.
-
\subpage dependency_tree_page "Show dependency tree" - shows dependency tree of selected objects
-in new 2D View Window.
-
\subpage reduce_study_page "Reduce study" - allows to reduce study
-by automatic removing objects according to user's options.
+
\subpage dependency_tree_page "Show dependency tree" - shows the dependency tree with parents and children of the selected object
+in a new 2D View Window.
+
\subpage reduce_study_page "Reduce study" - allows reducing the study by removing objects from it.
Dump view - exports an object from the viewer in bmp, png,
jpg or jpeg image format.
Change background - allows to redefine the background
diff --git a/src/AdvancedEngine/AdvancedEngine_IOperations.cxx b/src/AdvancedEngine/AdvancedEngine_IOperations.cxx
index e713e003a..5d1b96999 100644
--- a/src/AdvancedEngine/AdvancedEngine_IOperations.cxx
+++ b/src/AdvancedEngine/AdvancedEngine_IOperations.cxx
@@ -109,6 +109,10 @@
#define FIND_GROUPS_BY_POINTS 1
+// Undefine below macro to enable workaround about fillet problem in MakePipeTShapeFillet
+// VSR 30/12/2014: macro enabled
+#define FILLET_FIX_TOLERANCE
+
//=============================================================================
/*!
* Constructor
@@ -2842,6 +2846,17 @@ AdvancedEngine_IOperations::MakePipeTShapeFillet
aFillet->GetLastFunction()->SetDescription("");
TopoDS_Shape aFilletShape = aFillet->GetValue();
+
+#ifdef FILLET_FIX_TOLERANCE
+ // VSR: 30/12/2014: temporary workaround about Fillet problem
+ if (theHexMesh) {
+ GEOMUtils::FixShapeTolerance(aFilletShape, TopAbs_FACE);
+ }
+ else {
+ GEOMUtils::FixShapeCurves(aFilletShape);
+ }
+#endif
+
aFunction->SetValue(aFilletShape);
// END of fillet
@@ -3087,6 +3102,17 @@ AdvancedEngine_IOperations::MakePipeTShapeFilletWithPosition
aFillet->GetLastFunction()->SetDescription("");
TopoDS_Shape aFilletShape = aFillet->GetValue();
+
+#ifdef FILLET_FIX_TOLERANCE
+ // VSR: 30/12/2014: temporary workaround about Fillet problem
+ if (theHexMesh) {
+ GEOMUtils::FixShapeTolerance(aFilletShape, TopAbs_FACE);
+ }
+ else {
+ GEOMUtils::FixShapeCurves(aFilletShape);
+ }
+#endif
+
aFunction->SetValue(aFilletShape);
// END of fillet
diff --git a/src/AdvancedEngine/AdvancedEngine_PipeTShapeDriver.cxx b/src/AdvancedEngine/AdvancedEngine_PipeTShapeDriver.cxx
index 7551b43f7..25d0edade 100644
--- a/src/AdvancedEngine/AdvancedEngine_PipeTShapeDriver.cxx
+++ b/src/AdvancedEngine/AdvancedEngine_PipeTShapeDriver.cxx
@@ -63,6 +63,11 @@
#include
+// Undefine below macro to enable workaround about problem with wrong
+// tolerances of intersection curves in MakePipeTShape and MakeQuarterPipeTShape
+// VSR 30/12/2014: macro enabled
+#define FIX_CURVES_TOLERANCES
+
//=======================================================================
//function : GetID
//purpose :
@@ -299,7 +304,7 @@ void AdvancedEngine_PipeTShapeDriver::GetCommonShapesOnCylinders(const TopoDS_Sh
//purpose :
//=======================================================================
TopoDS_Shape AdvancedEngine_PipeTShapeDriver::MakePipeTShape (const double r1, const double w1, const double l1,
- const double r2, const double w2, const double l2) const
+ const double r2, const double w2, const double l2) const
{
double r1Ext = r1 + w1;
double r2Ext = r2 + w2;
@@ -341,7 +346,14 @@ TopoDS_Shape AdvancedEngine_PipeTShapeDriver::MakePipeTShape (const double r1, c
StdFail_NotDone::Raise("Coudn't cut cylinders");
}
- return Te.Shape();
+ TopoDS_Shape aShape = Te.Shape();
+
+ // VSR: 30/12/2014: temporary workaround about intersection curves problem
+#ifdef FIX_CURVES_TOLERANCES
+ GEOMUtils::FixShapeCurves(aShape);
+#endif
+
+ return aShape;
}
//=======================================================================
@@ -349,7 +361,7 @@ TopoDS_Shape AdvancedEngine_PipeTShapeDriver::MakePipeTShape (const double r1, c
//purpose :
//=======================================================================
TopoDS_Shape AdvancedEngine_PipeTShapeDriver::MakeQuarterPipeTShape (const double r1, const double w1, const double l1,
- const double r2, const double w2, const double l2) const
+ const double r2, const double w2, const double l2) const
{
TopoDS_Shape Te = MakePipeTShape(r1, w1, l1, r2, w2, l2);
if (Te.IsNull())
@@ -373,6 +385,13 @@ TopoDS_Shape AdvancedEngine_PipeTShapeDriver::MakeQuarterPipeTShape (const doubl
StdFail_NotDone::Raise("Couldn't cut Pipe Tshape with box");
}
+ TopoDS_Shape aShape = Te4.Shape();
+
+ // VSR: 30/12/2014: temporary workaround about intersection curves problem
+#ifdef FIX_CURVES_TOLERANCES
+ GEOMUtils::FixShapeCurves(aShape);
+#endif
+
return Te4.Shape();
}
diff --git a/src/AdvancedGUI/AdvancedGEOM_msg_ja.ts b/src/AdvancedGUI/AdvancedGEOM_msg_ja.ts
index a5e5e0851..fb449602e 100644
--- a/src/AdvancedGUI/AdvancedGEOM_msg_ja.ts
+++ b/src/AdvancedGUI/AdvancedGEOM_msg_ja.ts
@@ -21,7 +21,7 @@
GEOM_DIVIDEDDISK
- Divided_Disk
+ 分割ディスクGEOM_DIVIDEDDISK_TITLE
@@ -29,7 +29,7 @@
GEOM_DIVIDEDCYLINDER
- Divided_Cylinder
+ 分割シリンダーGEOM_DIVIDEDCYLINDER_TITLE
@@ -117,15 +117,15 @@
JUNCTION_FACE_1
- Junction 1
+ 継手面1JUNCTION_FACE_2
- Junction 2
+ 継手面2JUNCTION_FACE_3
- Junction 3
+ 継手面3INTERNAL_FACES
@@ -140,7 +140,7 @@
GEOM_PIPE_TSHAPE
- PipeTShape
+ T型パイプGEOM_PIPE_TSHAPE_MPIPE
@@ -200,11 +200,11 @@
GEOM_PIPE_TSHAPE_POSITION_LBL_L1
- New L1
+ T型パイプの位置 L1GEOM_PIPE_TSHAPE_POSITION_LBL_L2
- New L2
+ T型パイプの位置 L2GEOM_PIPE_TSHAPE_LEFT_TR
@@ -248,27 +248,27 @@
GEOM_PIPETSHAPE_ERR_EQUAL_RADII_L
- メインパイプの半径は、左側薄型化(rL)と等しくすることはできません!
+ メインパイプの半径は、左側薄型化(rL)と等しくすることはできません!GEOM_PIPETSHAPE_ERR_EQUAL_EXT_RADII_L
- メインパイプの外半径(半径+幅)は、左側薄型化外半径(rL+wL)と等しくすることはできません!
+ メインパイプの外半径(半径+幅)は、左側薄型化外半径(rL+wL)と等しくすることはできません!GEOM_PIPETSHAPE_ERR_EQUAL_RADII_R
- メインパイプの半径は、右側薄型化半径(rR)と同じにすることはできません!
+ メインパイプの半径は、右側薄型化半径(rR)と同じにすることはできません!GEOM_PIPETSHAPE_ERR_EQUAL_EXT_RADII_R
- メインパイプの外半径(半径+幅)は、右側薄型化外半径(rR+wR)と等しくすることはできません!
+ メインパイプの外半径(半径+幅)は、右側薄型化外半径(rR+wR)と等しくすることはできません!GEOM_PIPETSHAPE_ERR_EQUAL_RADII_I
- インシデントパイプの半径は、インシデントパイプ薄肉化半径(rl)と等しくすることはできません!
+ インシデントパイプの半径は、インシデントパイプ薄肉化半径(rl)と等しくすることはできません!GEOM_PIPETSHAPE_ERR_EQUAL_EXT_RADII_I
- インシデントパイプの外半径(半径+厚さ)は、インシデントパイプの薄肉化外半径(rI+wI)と等しくすることはできません!
+ インシデントパイプの外半径(半径+厚さ)は、インシデントパイプの薄肉化外半径(rI+wI)と等しくすることはできません!
@@ -295,7 +295,7 @@
GEOM_SMOOTHINGSURFACE_ARG_NB_MAX
- ベジェパッチの最大数
+ ベジェパッチの最大数<GEOM_SMOOTHINGSURFACE_ARG_DEG_MAX
diff --git a/src/BREPPlugin/BREPPlugin_msg_ja.ts b/src/BREPPlugin/BREPPlugin_msg_ja.ts
index 4a23773a3..cca0947a3 100644
--- a/src/BREPPlugin/BREPPlugin_msg_ja.ts
+++ b/src/BREPPlugin/BREPPlugin_msg_ja.ts
@@ -1,46 +1,46 @@
-
+ @default
- MEN_EXPORTBREP
- BREP
+ MEN_EXPORTBREP
+ BREPエキスポート
- TOP_EXPORTBREP
- Export BREP
+ TOP_EXPORTBREP
+ BREPエキスポート
- STB_EXPORTBREP
- Export BREP
+ STB_EXPORTBREP
+ BREPエキスポート
- MEN_IMPORTBREP
- BREP
+ MEN_IMPORTBREP
+ BREPインポート
- TOP_IMPORTBREP
- Import BREP
+ TOP_IMPORTBREP
+ BREPインポート
- STB_IMPORTBREP
- Import BREP
+ STB_IMPORTBREP
+ BREPインポート
-
-
+
+ BREPPlugin_GUI
- BREP_FILES
- BREP files( *.brep )
+ BREP_FILES
+ BREPファイル
- EXPORT_TITLE
- Export BREP
+ EXPORT_TITLE
+ BREPエキスポート
- IMPORT_TITLE
- Import BREP
+ IMPORT_TITLE
+ BREPインポート
-
+
diff --git a/src/DependencyTree/resources/DependencyTree_msg_fr.ts b/src/DependencyTree/resources/DependencyTree_msg_fr.ts
index ffeb404bc..33c54ff5a 100644
--- a/src/DependencyTree/resources/DependencyTree_msg_fr.ts
+++ b/src/DependencyTree/resources/DependencyTree_msg_fr.ts
@@ -2,43 +2,45 @@
- DependencyTree_View
+ DependencyTree_View
- DEPENDENCY_TREE
- Dependency Tree
+ DEPENDENCY_TREE
+ Arbre des dépendances
- MOVE_NODES
- Move nodes
+ MOVE_NODES
+ Déplacer les noeuds
- HIERARCHY_DEPTH
- Hierarchy depth
+ HIERARCHY_DEPTH
+ Niveau hiérarchique
- DISPLAY_ASCENDANTS
- Display ascendants
+ DISPLAY_ASCENDANTS
+ Montrer les liens ascendants
- DISPLAY_DESCENDANTS
- Display descendants
+ DISPLAY_DESCENDANTS
+ Montrer les liens descendants
- SHOW_ALL
- Show all
+ SHOW_ALL
+ Montrer tout
- UPDATE
- Update
+ UPDATE
+ Mise à jour
- DependencyTree_ViewModel
+
+
+ DependencyTree_ViewModel
- MEN_REBUILD_THE_TREE
- Rebuild the tree
+ MEN_REBUILD_THE_TREE
+ Rebuild the tree
- MEN_REDUCE_STUDY
- Reduce study
+ MEN_REDUCE_STUDY
+ Reduce study
diff --git a/src/DependencyTree/resources/DependencyTree_msg_ja.ts b/src/DependencyTree/resources/DependencyTree_msg_ja.ts
index 642f04c6a..a463109e8 100644
--- a/src/DependencyTree/resources/DependencyTree_msg_ja.ts
+++ b/src/DependencyTree/resources/DependencyTree_msg_ja.ts
@@ -1,8 +1,8 @@
-
-
- DependencyTree_View
+
+
+ DependencyTree_ViewDEPENDENCY_TREEDependency Tree
@@ -31,7 +31,7 @@
UPDATEUpdate
- DependencyTree_ViewModel
+ DependencyTree_ViewModelMEN_REBUILD_THE_TREERebuild the tree
@@ -40,5 +40,5 @@
MEN_REDUCE_STUDYReduce study
-
-
\ No newline at end of file
+
+
diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.cxx b/src/EntityGUI/EntityGUI_SketcherDlg.cxx
index 4d886ab52..5da33a8d5 100644
--- a/src/EntityGUI/EntityGUI_SketcherDlg.cxx
+++ b/src/EntityGUI/EntityGUI_SketcherDlg.cxx
@@ -2259,7 +2259,7 @@ QString EntityGUI_SketcherDlg::GetNewCommand( QString& theParameters )
+ ":TT " + QString::number( myX2, Format, DigNum) + " " + QString::number( myY1, Format, DigNum)
+ ":WW";
- theParameters = myX1Str + ":" + myY1Str + ":" + myX2Str + ":" + myY2Str ;
+ theParameters = myX1Str + ":" + myY1Str + ":" + myX1Str + ":" + myY2Str + ":" + myX2Str + ":" + myY2Str + ":" + myX2Str + ":" + myY1Str;
}
return myNewCommand;
}
diff --git a/src/GEOMGUI/GEOM_Displayer.cxx b/src/GEOMGUI/GEOM_Displayer.cxx
index 16dab78c9..6d373e44c 100644
--- a/src/GEOMGUI/GEOM_Displayer.cxx
+++ b/src/GEOMGUI/GEOM_Displayer.cxx
@@ -134,6 +134,9 @@
// Hard-coded value of shape deflection coefficient for VTK viewer
const double VTK_MIN_DEFLECTION = 0.001;
+// If the next macro is defined, the deflection coefficient for VTK presentation
+// is limited by VTK_MIN_DEFLECTION
+//#define LIMIT_DEFLECTION_FOR_VTK
// Pixmap caching support
namespace
@@ -474,25 +477,24 @@ GEOM_Displayer::GEOM_Displayer( SalomeApp_Study* st )
myHasDisplayMode = false;
int aType = resMgr->integerValue("Geometry", "type_of_marker", (int)Aspect_TOM_PLUS);
- myWidth = resMgr->integerValue("Geometry", "edge_width", -1);
- myIsosWidth = resMgr->integerValue("Geometry", "isolines_width", -1);
- myTransparency = resMgr->integerValue("Geometry", "transparency", 0) / 100.;
- myHasTransparency = false;
-
myTypeOfMarker = (Aspect_TypeOfMarker)(std::min((int)Aspect_TOM_RING3, std::max((int)Aspect_TOM_POINT, aType)));
myScaleOfMarker = (resMgr->integerValue("Geometry", "marker_scale", 1)-(int)GEOM::MS_10)*0.5 + 1.0;
myScaleOfMarker = std::min(7.0, std::max(1., myScaleOfMarker));
+ // Next properties provide a way to customize displaying of presentations;
+ // for instance, this is useful for preview
myColor = -1;
- // This color is used for shape displaying. If it is equal -1 then
- // default color is used.
myTexture = "";
-
+ myNbIsos = -1;
myWidth = -1;
+ myTransparency = -1;
myType = -1;
+ myIsosColor = -1;
+ myIsosWidth = -1;
+
+ // This parameter is used for activisation/deactivisation (selection) of objects to be displayed
myToActivate = true;
- // This parameter is used for activisation/deactivisation of objects to be displayed
// Activate parallel vizualisation only for testing purpose
// and if the corresponding env variable is set to 1
@@ -865,12 +867,34 @@ void GEOM_Displayer::updateShapeProperties( const Handle(GEOM_AISShape)& AISShap
int isosWidth = propMap.value( GEOM::propertyName( GEOM::IsosWidth ) ).toInt();
Handle(Prs3d_IsoAspect) uIsoAspect = AISShape->Attributes()->UIsoAspect();
Handle(Prs3d_IsoAspect) vIsoAspect = AISShape->Attributes()->VIsoAspect();
- uIsoAspect->SetColor( isosColor );
- uIsoAspect->SetWidth( isosWidth );
- uIsoAspect->SetNumber( uIsos );
- vIsoAspect->SetColor( isosColor );
- vIsoAspect->SetWidth( isosWidth );
- vIsoAspect->SetNumber( vIsos );
+
+ if ( HasIsosColor() ) {
+ uIsoAspect->SetColor( (Quantity_NameOfColor)GetIsosColor() );
+ vIsoAspect->SetColor( (Quantity_NameOfColor)GetIsosColor() );
+ }
+ else {
+ uIsoAspect->SetColor( isosColor );
+ vIsoAspect->SetColor( isosColor );
+ }
+
+ if ( HasIsosWidth() ) {
+ uIsoAspect->SetWidth( GetIsosWidth() );
+ vIsoAspect->SetWidth( GetIsosWidth() );
+ }
+ else {
+ uIsoAspect->SetWidth( isosWidth );
+ vIsoAspect->SetWidth( isosWidth );
+ }
+
+ if ( HasNbIsos() ) {
+ uIsoAspect->SetNumber( GetNbIsos() );
+ vIsoAspect->SetNumber( GetNbIsos() );
+ }
+ else {
+ uIsoAspect->SetNumber( uIsos );
+ vIsoAspect->SetNumber( vIsos );
+ }
+
AISShape->Attributes()->SetUIsoAspect( uIsoAspect );
AISShape->Attributes()->SetVIsoAspect( vIsoAspect );
@@ -1022,7 +1046,11 @@ void GEOM_Displayer::updateActorProperties( GEOM_Actor* actor, bool create )
// actor->SetShape(myShape,aDefPropMap.value(GEOM::propertyName( GEOM::Deflection )).toDouble(),myType == GEOM_VECTOR);
/////////////////////////////////////////////////////////////////////////
if ( !actor->getTopo().IsSame( myShape ) )
+#ifdef LIMIT_DEFLECTION_FOR_VTK
actor->SetShape( myShape, VTK_MIN_DEFLECTION, myType == GEOM_VECTOR );
+#else
+ actor->SetShape( myShape, qMax( propMap.value( GEOM::propertyName( GEOM::Deflection ) ).toDouble(), GEOM::minDeflection() ), myType == GEOM_VECTOR );
+#endif
// set material
Material_Model material;
@@ -1036,16 +1064,25 @@ void GEOM_Displayer::updateActorProperties( GEOM_Actor* actor, bool create )
// - set number of iso-lines
int nbIsos[2]= { 1, 1 };
- QStringList isos = propMap.value( GEOM::propertyName( GEOM::NbIsos ) ).toString().split( GEOM::subSectionSeparator() );
- nbIsos[0] = isos[0].toInt();
- nbIsos[1] = isos[1].toInt();
+ if ( HasNbIsos() ) {
+ nbIsos[0] = GetNbIsos();
+ nbIsos[1] = GetNbIsos();
+ }
+ else {
+ QStringList isos = propMap.value( GEOM::propertyName( GEOM::NbIsos ) ).toString().split( GEOM::subSectionSeparator() );
+ nbIsos[0] = isos[0].toInt();
+ nbIsos[1] = isos[1].toInt();
+ }
actor->SetNbIsos( nbIsos );
// - set iso-lines width
- actor->SetIsosWidth( propMap.value( GEOM::propertyName( GEOM::IsosWidth ) ).toInt() );
+ actor->SetIsosWidth( HasIsosWidth() ? GetIsosWidth() : propMap.value( GEOM::propertyName( GEOM::IsosWidth ) ).toInt() );
// - set iso-lines color
- c = propMap.value( GEOM::propertyName( GEOM::IsosColor ) ).value();
+ if ( HasIsosColor() )
+ c = SalomeApp_Tools::color( Quantity_Color((Quantity_NameOfColor)GetIsosColor()) );
+ else
+ c = propMap.value( GEOM::propertyName( GEOM::IsosColor ) ).value();
actor->SetIsosColor( c.redF(), c.greenF(), c.blueF() );
// set colors
@@ -2023,15 +2060,9 @@ void GEOM_Displayer::UnsetColor()
//=================================================================
double GEOM_Displayer::SetTransparency( const double transparency )
{
- double aPrevTransparency = myTransparency;
- if ( transparency < 0 ) {
- UnsetTransparency();
- }
- else {
- myTransparency = transparency;
- myHasTransparency = true;
- }
- return aPrevTransparency;
+ double prevTransparency = myTransparency;
+ myTransparency = transparency;
+ return prevTransparency;
}
//=================================================================
@@ -2053,7 +2084,7 @@ double GEOM_Displayer::GetTransparency() const
//=================================================================
bool GEOM_Displayer::HasTransparency() const
{
- return myHasTransparency;
+ return myTransparency >= 0;
}
//=================================================================
@@ -2064,27 +2095,17 @@ bool GEOM_Displayer::HasTransparency() const
//=================================================================
double GEOM_Displayer::UnsetTransparency()
{
- double aPrevTransparency = myTransparency;
- SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
- myTransparency = resMgr->integerValue("Geometry", "transparency", 0) / 100.;
- myHasTransparency = false;
- return aPrevTransparency;
+ return SetTransparency( -1 );
}
-
//=================================================================
/*!
* GEOM_Displayer::SetTexture
- * Set color for shape displaying. If it is equal -1 then default color is used.
- * Available values are from Quantity_NameOfColor enumeration
*/
//=================================================================
void GEOM_Displayer::SetTexture( const std::string& texureFileName )
{
- if(texureFileName!="")
- {
- myTexture = texureFileName;
- }
+ myTexture = texureFileName;
}
bool GEOM_Displayer::HasTexture() const
@@ -2123,7 +2144,6 @@ void GEOM_Displayer::UnsetWidth()
myWidth = -1;
}
-
int GEOM_Displayer::GetIsosWidth() const
{
return myIsosWidth;
@@ -2139,6 +2159,49 @@ bool GEOM_Displayer::HasIsosWidth() const
return myIsosWidth != -1;
}
+int GEOM_Displayer::SetNbIsos( const int nbIsos )
+{
+ int prevNbIsos = myNbIsos;
+ myNbIsos = nbIsos;
+ return prevNbIsos;
+}
+
+int GEOM_Displayer::UnsetNbIsos()
+{
+ return SetNbIsos( -1 );
+}
+
+int GEOM_Displayer::GetNbIsos() const
+{
+ return myNbIsos;
+}
+
+bool GEOM_Displayer::HasNbIsos() const
+{
+ return myNbIsos >= 0;
+}
+
+int GEOM_Displayer::SetIsosColor( const int color )
+{
+ int prevColor = myIsosColor;
+ myIsosColor = color;
+ return prevColor;
+}
+
+int GEOM_Displayer::GetIsosColor() const
+{
+ return myIsosColor;
+}
+
+bool GEOM_Displayer::HasIsosColor() const
+{
+ return myIsosColor != -1;
+}
+
+int GEOM_Displayer::UnsetIsosColor()
+{
+ return SetIsosColor( -1 );
+}
//=================================================================
/*!
diff --git a/src/GEOMGUI/GEOM_Displayer.h b/src/GEOMGUI/GEOM_Displayer.h
index 0096c51b2..cd8f465e6 100644
--- a/src/GEOMGUI/GEOM_Displayer.h
+++ b/src/GEOMGUI/GEOM_Displayer.h
@@ -162,7 +162,20 @@ public:
void SetIsosWidth ( const int );
int GetIsosWidth () const;
bool HasIsosWidth () const;
+
+ /* Set nb iso-libes for displaying. Use -1 to set default values. */
+ int SetNbIsos( const int );
+ int UnsetNbIsos();
+ int GetNbIsos() const;
+ bool HasNbIsos() const;
+ /* Set color for iso-lines displaying. If it is equal -1 then default color is used.
+ Available values are from Quantity_NameOfColor enumeration */
+ int SetIsosColor ( const int );
+ int UnsetIsosColor();
+ int GetIsosColor () const;
+ bool HasIsosColor () const;
+
/* Set display mode shape displaying. If it is equal -1 then display mode is used. */
int SetDisplayMode( const int );
int GetDisplayMode() const;
@@ -289,13 +302,14 @@ protected:
int myColor;
double myWidth;
int myIsosWidth;
+ int myNbIsos;
+ int myIsosColor;
bool myToActivate;
int myDisplayMode;
bool myHasDisplayMode;
Aspect_TypeOfMarker myTypeOfMarker;
double myScaleOfMarker;
double myTransparency;
- bool myHasTransparency;
private:
SalomeApp_Application* myApp;
diff --git a/src/GEOMGUI/GEOM_msg_fr.ts b/src/GEOMGUI/GEOM_msg_fr.ts
index 7bb28365f..78b45c0bd 100644
--- a/src/GEOMGUI/GEOM_msg_fr.ts
+++ b/src/GEOMGUI/GEOM_msg_fr.ts
@@ -38,7 +38,7 @@
DEP_OBJECTL'objet choisi a été utilisé pour créer un autre objet ou est référencé par un autre module.
-La suppression de cet objet peut entrainer un export python invalide.
+La suppression de cet objet peut entrainer un export python invalide.
Voulez-vous tout de même supprimer ces objets ?
@@ -185,7 +185,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
GEOM_BEZIER
- Bezier
+ BézierGEOM_BINORMAL
@@ -237,11 +237,11 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
GEOM_BNDBOX_TITLE
- Boîte englobante
+ Informations sur la Boîte englobanteGEOM_BOX
- Boite
+ BoîteGEOM_BOX_OBJ
@@ -253,7 +253,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
GEOM_BSplineRestriction
- Limitation BSpline
+ LimitationB-SplineGEOM_BUT_APPLY
@@ -341,7 +341,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
GEOM_CHAMFER_FACES
- Chanfrein sur des faces
+ Chanfrein sur les faces sélectionnéesGEOM_CHAMFER_TITLE
@@ -405,11 +405,11 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
GEOM_GETNONBLOCKS_TITLE
- Récupérer les solides non-hexahédres et les faces non-quadrangles
+ Récupérer les solides qui ne sontpas des hexahédres et les faces qui ne sont pas des quadranglesGEOM_GETNONBLOCKS
- Récupérer les solides non blocs
+ Récupérer les solides qui ne sont pas des blocsGEOM_NONBLOCKS
@@ -417,7 +417,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
GEOM_CHECK_INFOS
- Objet et son information topologique
+ Objet et ses informations topologiquesGEOM_CHECK_SHAPE
@@ -549,7 +549,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
GEOM_CYLINDER_ANGLE_ERR
- Les valeurs de l'angle 0 et 360 sont à éviter pour construire des volumes sains. Veuillez décocher la case "Angle" pour utiliser le constructeur de cylindre complet.
+ Les valeurs de l'angle 0 et 360 sont à éviter pour construire des volumes sains. Veuillez décocher la case "Angle" pour utiliser le constructeur de cylindre complet.GEOM_D1
@@ -2894,7 +2894,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
MEN_POP_VERTICES
- Show Vertices
+ Montrer les sommetsMEN_PREFERENCES
@@ -3066,11 +3066,11 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
MEN_VERTICES_MODE_ON
- Show Vertices
+ Montrer les sommetsMEN_VERTICES_MODE_OFF
- Hide Vertices
+ Cacher les sommetsMEN_WIREFRAME
@@ -3762,7 +3762,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
STB_POP_VERTICES
- Show Vertices
+ Montrer les sommetsSTB_POP_SETTEXTURE
@@ -4706,11 +4706,11 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
MEN_POP_SHOW_DEPENDENCY_TREE
- Show dependency tree
+ Montrer l'arbre des dépendancesMEN_POP_SHOW_REDUCE_STUDY
- Reduce study
+ Etude réduiteMEN_POP_SHOW_ALL_DIMENSIONS
@@ -4978,63 +4978,63 @@ Choisissez une face, une coque ou un solide et essayez de nouveau
PREF_TAB_DEPENDENCY_VIEW
- Dependency Tree
+ Arbre des dépendancesPREF_HIERARCHY_TYPE
- Hierarchy type
+ Type de hiérarchieMEN_ONLY_ASCENDANTS
- Display only ascendants tree
+ Montrer seulement les liens ascendantsMEN_ONLY_DESCENDANTS
- Display only descendants tree
+ Montrer seulement les liens descendantsMEN_BOTH_ASCENDANTS_DESCENDANTS
- Display both ascendants and descendants trees
+ Montrer les liens ascendants et descendantsGEOM_MOVE_POSSIBILITY
- Possibility to move nodes
+ Possibilité de déplacer des noeudsPREF_GROUP_DEPENDENCY_VIEW_COLOR
- Color
+ CouleurPREF_DEPENDENCY_VIEW_BACKGROUND_COLOR
- Background color
+ Couleur du fondPREF_DEPENDENCY_VIEW_NODE_COLOR
- Default node color
+ Couleur des noeuds par défautPREF_DEPENDENCY_VIEW_MAIN_NODE_COLOR
- Main node color
+ Couleur des noeuds principauxPREF_DEPENDENCY_VIEW_UNPUBLISH_NODE_COLOR
- Unpublished node color
+ Couleur des noeuds non publiésPREF_DEPENDENCY_VIEW_SELECT_NODE_COLOR
- Selected node color
+ Couleurs des noeuds sélectionnésPREF_DEPENDENCY_VIEW_ARROW_COLOR
- Arrow color
+ Couleur des flèches par défautPREF_DEPENDENCY_VIEW_HIGHLIGHT_ARROW_COLOR
- Highlighted arrow color
+ Couleur des flèches en surbrillancePREF_DEPENDENCY_VIEW_SELECT_ARROW_COLOR
- Selected arrow color
+ Couleur des flèches sélectionnéesGEOM_ALL_IMPORT_FILES
@@ -6835,55 +6835,55 @@ Voulez-vous en créer un nouveau ?
GEOMToolsGUI_ReduceStudyDlgGEOM_REDUCE_STUDY_TITLE
- Reduce study
+ Etude réduiteGEOM_REDUCE_STUDY_KEPT_OBJECTS
- Objects to be kept
+ Objets à conserverGEOM_REDUCE_STUDY_REMOVE_OBJECTS
- Objects to be removed
+ Objets à enleverGEOM_REDUCE_STUDY_NAME
- Name
+ NomGEOM_REDUCE_STUDY_OPTIONS
- Options
+ OptionsGEOM_REDUCE_STUDY_INTERMEDIATES
- Intermediate objects
+ Objets intermédiairesGEOM_REDUCE_STUDY_SUB_OBJECTS
- Sub-objects
+ Sous-objetsGEOM_REDUCE_STUDY_KEEP
- Keep
+ ConserverGEOM_REDUCE_STUDY_UNPUBLISH
- Unpublish
+ DépublierGEOM_REDUCE_STUDY_REMOVE
- Remove
+ EnleverGEOM_REDUCE_STUDY_REMOVE_EMPTY_FOLDER
- Remove empty folders
+ Enlever les dossiers videGEOM_REDUCE_STUDY_SOFT_REMOVAL
- Soft removal
+ Dépublication seulementGEOM_REDUCE_STUDY_WARNING_DELETE
- Do you really want to delete intermediate objects? After applying this operation study will be broken.
+ Voulez-vous vraiment supprimer les objets intermédiaires ? Après la confirmation de cette opération, l'étude sera cassée.
diff --git a/src/GEOMGUI/GEOM_msg_ja.ts b/src/GEOMGUI/GEOM_msg_ja.ts
index 8ee7476d7..ad539e202 100644
--- a/src/GEOMGUI/GEOM_msg_ja.ts
+++ b/src/GEOMGUI/GEOM_msg_ja.ts
@@ -531,6 +531,10 @@
GEOM_CYLINDER_TITLE円柱の作成
+
+ GEOM_CYLINDER_ANGLE_ERR
+ Angle values 0 and 360 are unsafe to build proper volumes. Please uncheck the "Angle" box to use the regular cylinder constructor.
+ GEOM_D1D1 を:
@@ -1449,7 +1453,7 @@
GEOM_PRP_EXPORT
- ジオメトリを %1 にエクスポート
+ ジオメトリを %1 にエクスポート...GEOM_PRP_LOADING
@@ -2351,6 +2355,14 @@
MEN_CURVE_CREATORカーブの作成
+
+ TOP_CURVE_CREATOR
+ Create 2D polyline
+
+
+ STB_CURVE_CREATOR
+ Create 2D polyline
+ MEN_ALL_SEL_ONLY全選択
@@ -2677,7 +2689,7 @@
MEN_IMPORT
- インポート
+ インポート...MEN_INERTIA
@@ -3140,8 +3152,8 @@
表示モード
- PREF_TRANSPARENCY
- 透明度
+ PREF_TRANSPARENCY
+ 透明度PREF_FREE_BOUND_COLOR
@@ -4696,12 +4708,12 @@
オブジェクトの基準寸法を管理
- MEN_POP_SHOW_DEPENDENCY_TREE
- Show dependency tree
+ MEN_POP_SHOW_DEPENDENCY_TREE
+ Show dependency tree
- MEN_POP_SHOW_REDUCE_STUDY
- Reduce study
+ MEN_POP_REDUCE_STUDY
+ Reduce studyMEN_POP_SHOW_ALL_DIMENSIONS
@@ -4968,64 +4980,64 @@
プレビュー
- PREF_TAB_DEPENDENCY_VIEW
- Dependency Tree
+ PREF_TAB_DEPENDENCY_VIEW
+ Dependency Tree
- PREF_HIERARCHY_TYPE
- Hierarchy type
+ PREF_HIERARCHY_TYPE
+ Hierarchy type
- MEN_ONLY_ASCENDANTS
- Display only ascendants tree
+ MEN_ONLY_ASCENDANTS
+ Display only ascendants tree
- MEN_ONLY_DESCENDANTS
- Display only descendants tree
+ MEN_ONLY_DESCENDANTS
+ Display only descendants tree
- MEN_BOTH_ASCENDANTS_DESCENDANTS
- Display both ascendants and descendants trees
+ MEN_BOTH_ASCENDANTS_DESCENDANTS
+ Display both ascendants and descendants trees
- GEOM_MOVE_POSSIBILITY
- Possibility to move nodes
+ GEOM_MOVE_POSSIBILITY
+ Possibility to move nodes
- PREF_GROUP_DEPENDENCY_VIEW_COLOR
- Color
+ PREF_GROUP_DEPENDENCY_VIEW_COLOR
+ Color
- PREF_DEPENDENCY_VIEW_BACKGROUND_COLOR
- Background color
+ PREF_DEPENDENCY_VIEW_BACKGROUND_COLOR
+ Background color
- PREF_DEPENDENCY_VIEW_NODE_COLOR
- Default node color
+ PREF_DEPENDENCY_VIEW_NODE_COLOR
+ Default node color
- PREF_DEPENDENCY_VIEW_MAIN_NODE_COLOR
- Main node color
+ PREF_DEPENDENCY_VIEW_MAIN_NODE_COLOR
+ Main node color
- PREF_DEPENDENCY_VIEW_UNPUBLISH_NODE_COLOR
- Unpublished node color
+ PREF_DEPENDENCY_VIEW_UNPUBLISH_NODE_COLOR
+ Unpublished node color
- PREF_DEPENDENCY_VIEW_SELECT_NODE_COLOR
- Selected node color
+ PREF_DEPENDENCY_VIEW_SELECT_NODE_COLOR
+ Selected node color
- PREF_DEPENDENCY_VIEW_ARROW_COLOR
- Arrow color
+ PREF_DEPENDENCY_VIEW_ARROW_COLOR
+ Default arrow color
- PREF_DEPENDENCY_VIEW_HIGHLIGHT_ARROW_COLOR
- Highlighted arrow color
+ PREF_DEPENDENCY_VIEW_HIGHLIGHT_ARROW_COLOR
+ Highlighted arrow color
- PREF_DEPENDENCY_VIEW_SELECT_ARROW_COLOR
- Selected arrow color
+ PREF_DEPENDENCY_VIEW_SELECT_ARROW_COLOR
+ Selected arrow colorGEOM_ALL_IMPORT_FILES
@@ -5092,55 +5104,71 @@
GeometryGUITOOL_BASIC
- 基礎オブジェクト
+ BasicTOOL_BLOCKS
- ブロック分割
+ BlocksTOOL_BOOLEAN
- ブーリアン操作
+ Boolean operationsTOOL_FEATURES
- フィーチャー
+ ModificationTOOL_GENERATION
- 押し出し/回転
+ GenerationTOOL_PRIMITIVES
- 基本図形
+ PrimitivesTOOL_TRANSFORMATION
- 変形/移動/回転
+ TransformationTOOL_BUILD
- 構築
+ BuildTOOL_OPERATIONS
- 操作
+ OperationsTOOL_PICTURES
- 画像
+ PicturesTOOL_ADVANCED
- 高度なツール
+ AdvancedTOOL_MEASURES
- 情報/測定
+ MeasuresTOOL_IMPORTEXPORT
- インポート/エクスポート
+ Import / Export XAO
+
+
+ TABLE_SECTION
+ Section
+
+
+ TABLE_INDEX
+ Index
+
+
+ TABLE_X
+ X
+
+
+ TABLE_Y
+ Y
@@ -5383,74 +5411,39 @@
フェース 2 V
-
- CurveCreator_NewPointDlg
-
- ADD_NEW_POINT
- 新しい点の追加
-
-
- X_COORD
- X
-
-
- Y_COORD
- Y
-
-
- Z_COORD
- Z
-
-
- ADD_BTN
- 追加
-
-
- ADD_CONTINUE_BTN
- 追加して継続
-
-
- ADD_NEW_POINT_TO_%1
- 新しい点を%1に追加
-
-
- SET_POINT_COORDINATES
- 点座標の設定
-
- CurveCreator_NewSectionDlg
- NAME
- 名前
+ SECTION_NAME
+ Name
- LINE_TYPE
- ライン
+ SECTION_LINE_TYPE
+ Type
- POLYLINE_TYPE
- ポリライン
+ SECTION_POLYLINE_TYPE
+ Polyline
- SPLINE_TYPE
- スプライン
+ SECTION_SPLINE_TYPE
+ Spline
- LINE_CLOSED
- 閉じたライン
+ SECTION_LINE_CLOSED
+ Closed
- OK
- Ok
+ SECTION_ADD_BTN
+ Add
- ADD_BTN
- 追加
+ SECTION_OK_BTN
+ Ok
- ADD_CONTINUE_BTN
- 追加して継続
+ SECTION_CANCEL_BTN
+ CancelADD_NEW_SECTION
@@ -5465,22 +5458,18 @@
CurveCreator_TreeViewModelX=%1, Y=%2
- X=%1, Y=%2
+ X=%1, Y=%2X=%1, Y=%2, Z=%3
- X=%1, Y=%2, Z=%3
+ X=%1, Y=%2, Z=%3CurveCreator_Widget
- CURVE_NAME_TLT
- カーブの名前
-
-
- SECTION_GROUP_TLT
- 断面グループ
+ SECTION_GROUP_TITLE
+ SectionsUNDO
@@ -5506,22 +5495,6 @@
NEW_SECTION_TLT新しい断面の挿入
-
- INSERT_SECTION_BEFORE
- 前に断面を挿入
-
-
- INSERT_SECTION_BEFORE_TLT
- 前に断面を挿入
-
-
- INSERT_SECTION_AFTER
- 後に断面の挿入
-
-
- INSERT_SECTION_AFTER_TLT
- 後に断面の挿入
- ADDITION_MODE追加モード
@@ -5546,18 +5519,6 @@
DETECTION_MODE_TLT検出モード
-
- INSERT_POINT_BEFORE
- 前に点の挿入
-
-
- INSERT_POINT_BEFORE_TLT
- 前に点の挿入
-
-
- INSERT_POINT_AFTER
- 後に点の挿入
- CLOSE_SECTIONS断面を閉じる
@@ -5606,22 +5567,6 @@
JOIN_TLT選択した断面を結合
-
- STEP_UP
- 上昇
-
-
- STEP_UP_TLT
- 選択したオブジェクトを上昇
-
-
- STEP_DOWN
- 下降
-
-
- STEP_DOWN_TLT
- 選択したオブジェクトを下降
- CLEAR_ALLすべて消去
@@ -5639,6 +5584,33 @@
すべての断面を結合
+
+ EntityGUI_PolylineDlg
+
+ POLYLINE_DLG_TITLE
+ Polyline Construction
+
+
+ POLYLINE_TITLE
+ Polyline
+
+
+ POLYLINE_NAME
+ Polyline
+
+
+ POLYLINE_IMPORT
+ Import polyline
+
+
+ POLYLINE_ADD_SECTION
+ Add section
+
+
+ POLYLINE_EDIT_SECTION
+ Edit section
+
+ EntityGUI_SketcherDlg
@@ -6160,15 +6132,15 @@
X
- X
+ XY
- Y
+ YZ
- Z
+ Z
@@ -6484,7 +6456,7 @@
OperationGUI_ChamferDlgD
- D
+ DFACE_1
@@ -6811,56 +6783,56 @@
GEOMToolsGUI_ReduceStudyDlg
- GEOM_REDUCE_STUDY_TITLE
- Reduce study
+ GEOM_REDUCE_STUDY_TITLE
+ Reduce study
- GEOM_REDUCE_STUDY_KEPT_OBJECTS
- Objects to be kept
+ GEOM_REDUCE_STUDY_KEPT_OBJECTS
+ Objects to be kept
- GEOM_REDUCE_STUDY_REMOVE_OBJECTS
- Objects to be removed
+ GEOM_REDUCE_STUDY_REMOVE_OBJECTS
+ Objects to be removed
- GEOM_REDUCE_STUDY_NAME
- Name
+ GEOM_REDUCE_STUDY_NAME
+ Name
- GEOM_REDUCE_STUDY_OPTIONS
- Options
+ GEOM_REDUCE_STUDY_OPTIONS
+ Options
- GEOM_REDUCE_STUDY_INTERMEDIATES
- Intermediate objects
+ GEOM_REDUCE_STUDY_INTERMEDIATES
+ Intermediate objects
- GEOM_REDUCE_STUDY_SUB_OBJECTS
- Sub-objects
+ GEOM_REDUCE_STUDY_SUB_OBJECTS
+ Sub-objects
- GEOM_REDUCE_STUDY_KEEP
- Keep
+ GEOM_REDUCE_STUDY_KEEP
+ Keep
- GEOM_REDUCE_STUDY_UNPUBLISH
- Unpublish
+ GEOM_REDUCE_STUDY_UNPUBLISH
+ Unpublish
- GEOM_REDUCE_STUDY_REMOVE
- Remove
+ GEOM_REDUCE_STUDY_REMOVE
+ Remove
- GEOM_REDUCE_STUDY_REMOVE_EMPTY_FOLDER
- Remove empty folders
+ GEOM_REDUCE_STUDY_REMOVE_EMPTY_FOLDER
+ Remove empty folders
- GEOM_REDUCE_STUDY_SOFT_REMOVAL
- Soft removal
+ GEOM_REDUCE_STUDY_SOFT_REMOVAL
+ Soft removal
- GEOM_REDUCE_STUDY_WARNING_DELETE
- Do you really want to delete intermediate objects? After applying this operation study will be broken.
+ GEOM_REDUCE_STUDY_WARNING_DELETE
+ Do you really want to delete intermediate objects? After applying this operation study will be broken.
diff --git a/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx b/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx
index ac7176133..0df1b0047 100644
--- a/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx
+++ b/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx
@@ -83,6 +83,27 @@
#define PLANAR_FACE_MAX_TOLERANCE 1e-06
+// The following macro, when enabled, causes pcurves upgrade after MakeFilling algorithm
+// in MakeAnyFace function;
+// WARNING: it may lead to extra vertices generation by partition algorithm
+// in some cases, for example when fillet is made on a PipeTShape -
+// see issues 0021568 and 0021550
+// VSR (15/05/2012): macro commented out (disabled) to avoid extra vertices!
+//#define MAKE_FACE_UPGRADE_PCURVES
+
+// The following macro, when enabled, causes fixing tolerance for pcurves
+// after BRepBuilderAPI_MakeFace + ShHealOper_ShapeProcess in MakeAnyFace function;
+// This sometimes allows to fix problems of extra vertices generation
+// see issue 0022706
+// VSR (17/11/2014): macro enabled
+#define MAKE_FACE_PCURVES_FIX_TOLERANCE
+
+#ifdef MAKE_FACE_PCURVES_FIX_TOLERANCE
+#include
+#include
+#include
+#endif
+
static Standard_Integer mod4 (Standard_Integer nb)
{
if (nb <= 0) return nb + 4;
@@ -1362,11 +1383,7 @@ TCollection_AsciiString GEOMImpl_Block6Explorer::MakeAnyFace (const TopoDS_Wire&
// 12.04.2006 for PAL12149 begin
Handle(Geom_Surface) aGS = BRep_Tool::Surface(TopoDS::Face(aFace));
-// VSR: debug issues 0021568 and 0021550 (15/05/2012) - BEGIN
-// the following block, when enabled, leads to extra vertices generation by partition algorithm
-// in some cases, for example when fillet is made on a PipeTShape
-#if 0
-// VSR: debug issues 0021568 and 0021550 (15/05/2012) - END
+#ifdef MAKE_FACE_UPGRADE_PCURVES
BRep_Builder BB;
TopoDS_Iterator itw(theWire);
for (; itw.More(); itw.Next())
@@ -1396,7 +1413,46 @@ TCollection_AsciiString GEOMImpl_Block6Explorer::MakeAnyFace (const TopoDS_Wire&
}
// 12.04.2006 for PAL12149 end
- if (theResult.IsNull()) { // try to deal with pure result of filling
+ if (!theResult.IsNull()) {
+ // try to deal with result of BRepBuilderAPI_MakeFace + ShHealOper_ShapeProcess
+#if OCC_VERSION_LARGE >= 0x06080000
+#ifdef MAKE_FACE_PCURVES_FIX_TOLERANCE
+ // check and fix pcurves, if necessary
+ Standard_Real aT, aTolE, aD, aDMax;
+ TopExp_Explorer aExpF, aExpE;
+ NCollection_DataMap aDMETol;
+ aExpF.Init(theResult, TopAbs_FACE);
+ for (; aExpF.More(); aExpF.Next()) {
+ const TopoDS_Face& aF = *(TopoDS_Face*)&aExpF.Current();
+ aExpE.Init(aF, TopAbs_EDGE);
+ for (; aExpE.More(); aExpE.Next()) {
+ const TopoDS_Edge& aE = *(TopoDS_Edge*)&aExpE.Current();
+ if (!BOPTools_AlgoTools::ComputeTolerance(aF, aE, aDMax, aT)) continue;
+ aTolE = BRep_Tool::Tolerance(aE);
+ if (aDMax < aTolE) continue;
+ if (aDMETol.IsBound(aE)) {
+ aD = aDMETol.Find(aE);
+ if (aDMax > aD) {
+ aDMETol.UnBind(aE);
+ aDMETol.Bind(aE, aDMax);
+ }
+ }
+ else {
+ aDMETol.Bind(aE, aDMax);
+ }
+ }
+ }
+ NCollection_DataMap::Iterator aDMETolIt(aDMETol);
+ ShapeFix_ShapeTolerance sat;
+ for (; aDMETolIt.More(); aDMETolIt.Next()) {
+ sat.LimitTolerance(aDMETolIt.Key(), aDMETolIt.Value());
+ }
+#endif
+#endif
+ }
+ else {
+ // try to deal with pure result of BRepOffsetAPI_MakeFilling
+
// Update tolerance
Standard_Real aTol = MF.G0Error();
diff --git a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx
index 32b0b04fa..111a509cd 100644
--- a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx
@@ -31,16 +31,11 @@
#include
-#include
-#include
-
#include
-#include
#include
#include
#include
#include
-#include
#include
#include
@@ -73,33 +68,23 @@ static TopoDS_Shape RemoveExtraEdges(const TopoDS_Shape &theShape)
{
TopoDS_Shape aResult;
- if (theShape.IsNull() == Standard_False) {
+ if (!theShape.IsNull()) {
BlockFix_BlockFixAPI aTool;
aTool.OptimumNbFaces() = 0;
aTool.SetShape(theShape);
aTool.Perform();
- aResult = aTool.Shape();
+ TopoDS_Shape aShape = aTool.Shape();
- // Repair result
- BRepCheck_Analyzer anAna (aResult, false);
- Standard_Boolean isValid = anAna.IsValid();
-
- if (!isValid) {
+ if (GEOMUtils::CheckShape(aShape)) {
+ aResult = aShape;
+ }
+ else {
TopoDS_Shape aFixed;
ShHealOper_ShapeProcess aHealer;
-
aHealer.Perform(aResult, aFixed);
-
- if (aHealer.isDone()) {
+ if (aHealer.isDone() && GEOMUtils::CheckShape(aFixed))
aResult = aFixed;
- anAna.Init(aResult, false);
- isValid = anAna.IsValid();
- }
- }
-
- if (!isValid) {
- aResult.Nullify();
}
}
@@ -153,11 +138,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute (TFunction_Logbook& log) const
if (!aShape1.IsNull() && !aShape2.IsNull()) {
// check arguments for Mantis issue 0021019
- BRepCheck_Analyzer ana (aShape1, Standard_True);
- if (!ana.IsValid())
- StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid");
- ana.Init(aShape2);
- if (!ana.IsValid())
+ if (!GEOMUtils::CheckShape(aShape1, true) || !GEOMUtils::CheckShape(aShape2, true))
StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid");
if (isCheckSelfInte) {
@@ -211,10 +192,9 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute (TFunction_Logbook& log) const
aShape = aRefShape->GetValue();
if (!aShape.IsNull()) {
- BRepCheck_Analyzer anAna (aShape, Standard_True);
- if (!anAna.IsValid()) {
+ // check arguments for Mantis issue 0021019
+ if (!GEOMUtils::CheckShape(aShape, true))
StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid");
- }
BOPAlgo_CheckerSI aCSI; // checker of self-interferences
@@ -239,11 +219,9 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute (TFunction_Logbook& log) const
for (i = 2; i <= nbShapes; i++) {
aRefShape = Handle(GEOM_Function)::DownCast(aShapes->Value(i));
aShape2 = aRefShape->GetValue();
- anAna.Init(aShape2);
-
- if (!anAna.IsValid()) {
+
+ if (!GEOMUtils::CheckShape(aShape2, true))
StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid");
- }
if (isCheckSelfInte) {
BOPCol_ListOfShape aList2;
@@ -280,11 +258,8 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute (TFunction_Logbook& log) const
if (!aShape.IsNull()) {
// check arguments for Mantis issue 0021019
- BRepCheck_Analyzer anAna (aShape, Standard_True);
-
- if (!anAna.IsValid()) {
+ if (!GEOMUtils::CheckShape(aShape, true))
StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid");
- }
BOPAlgo_CheckerSI aCSI; // checker of self-interferences
@@ -315,11 +290,9 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute (TFunction_Logbook& log) const
for (i = 1; i <= nbShapes; i++) {
aRefTool = Handle(GEOM_Function)::DownCast(aTools->Value(i));
aTool = aRefTool->GetValue();
- anAna.Init(aTool);
- if (!anAna.IsValid()) {
+ if (!GEOMUtils::CheckShape(aTool, true))
StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid");
- }
if (isCheckSelfInte) {
BOPCol_ListOfShape aList2;
@@ -572,19 +545,8 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
}
// 08.07.2008 skl for bug 19761 from Mantis
- BRepCheck_Analyzer ana (aShape, Standard_True);
- ana.Init(aShape);
- if (!ana.IsValid()) {
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShape, Precision::Confusion(),
- Precision::Confusion(), TopAbs_SHAPE);
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape);
- aSfs->Perform();
- aShape = aSfs->Shape();
- ana.Init(aShape);
- if (!ana.IsValid())
- Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result");
- }
+ if ( !GEOMUtils::CheckShape(aShape, true) && !GEOMUtils::FixShapeTolerance(aShape) )
+ Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result");
// BEGIN: Mantis issue 0021060: always limit tolerance of BOP result
// 1. Get shape parameters for comparison
@@ -616,15 +578,8 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
TopoDS_Shape aShapeCopy;
TColStd_IndexedDataMapOfTransientTransient aMapTShapes;
TNaming_CopyShape::CopyTool(aShape, aMapTShapes, aShapeCopy);
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShapeCopy, Precision::Confusion(), Precision::Confusion(), TopAbs_SHAPE);
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape (aShapeCopy);
- aSfs->Perform();
- aShapeCopy = aSfs->Shape();
- // 3. Check parameters
- ana.Init(aShapeCopy);
- if (ana.IsValid()) {
+ if ( GEOMUtils::FixShapeTolerance(aShapeCopy, true) ) {
int iType, nbTypesCopy [TopAbs_SHAPE];
for (iType = 0; iType < TopAbs_SHAPE; ++iType)
diff --git a/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx b/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx
index e845c72a7..f7582ecfd 100644
--- a/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx
@@ -20,14 +20,12 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#include
-
#include
#include
#include
#include
#include
-
+#include
#include
#include
@@ -35,22 +33,16 @@
#include
#include
-#include
-#include
-
#include
#include
#include
#include
#include
#include
-#include
#include
#include
#include
-#include
-#include
#include
//=======================================================================
@@ -63,7 +55,6 @@ const Standard_GUID& GEOMImpl_ChamferDriver::GetID()
return aChamferDriver;
}
-
//=======================================================================
//function : GEOMImpl_ChamferDriver
//purpose :
@@ -269,12 +260,7 @@ Standard_Integer GEOMImpl_ChamferDriver::Execute(TFunction_Logbook& log) const
if (aShape.IsNull()) return 0;
// reduce tolerances
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShape, Precision::Confusion(),
- Precision::Confusion(), TopAbs_SHAPE);
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape);
- aSfs->Perform();
- aShape = aSfs->Shape();
+ GEOMUtils::FixShapeTolerance( aShape );
// fix SameParameter flag
BRepLib::SameParameter(aShape, 1.E-5, Standard_True);
diff --git a/src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx b/src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx
index ad3fb2d12..808d79253 100755
--- a/src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx
@@ -17,34 +17,25 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#include
-
#include
#include
#include
#include
#include
#include
+#include
#include
-#include
-#include
#include
#include
#include
-#include
#include
#include
-#include
#include
#include
+#include
-#include
-#include
-
-#include
-#include
#include
//=======================================================================
diff --git a/src/GEOMImpl/GEOMImpl_FilletDriver.cxx b/src/GEOMImpl/GEOMImpl_FilletDriver.cxx
index 33e942e79..bdffdb03a 100644
--- a/src/GEOMImpl/GEOMImpl_FilletDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_FilletDriver.cxx
@@ -20,31 +20,30 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#include
-
#include
#include
#include
#include
+#include
#include
#include
-#include
-#include
-
#include
#include
#include
#include
#include
-
-#include
-#include
-
-#include
-#include
#include
+// Debug PipeTShape function: uncomment the macro below to correct tolerance
+// of resulting face after fillet creation
+// VSR 30/12/2014: macro disabled
+//#define FIX_FACE_TOLERANCE
+// Debug PipeTShape function: uncomment the macro below to correct tolerance
+// of resulting curves after fillet creation
+// VSR 30/12/2014: macro disabled
+//#define FIX_CURVES_TOLERANCES
+
//=======================================================================
//function : GetID
//purpose :
@@ -135,20 +134,16 @@ Standard_Integer GEOMImpl_FilletDriver::Execute(TFunction_Logbook& log) const
if (aShape.IsNull()) return 0;
- // Check shape validity
- BRepCheck_Analyzer ana (aShape, false);
- if (!ana.IsValid()) {
- // 08.07.2008 added by skl during fixing bug 19761 from Mantis
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShape, Precision::Confusion(),
- Precision::Confusion(), TopAbs_SHAPE);
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape);
- aSfs->Perform();
- aShape = aSfs->Shape();
- ana.Init(aShape);
- if (!ana.IsValid())
- StdFail_NotDone::Raise("Fillet algorithm have produced an invalid shape result");
- }
+#if defined(FIX_CURVES_TOLERANCES)
+ bool isOk = GEOMUtils::FixShapeCurves(aShape);
+#elif defined(FIX_FACE_TOLERANCE)
+ bool isOk = GEOMUtils::FixShapeTolerance(aShape, TopAbs_FACE);
+#else
+ // 08.07.2008 added by skl during fixing bug 19761 from Mantis
+ bool isOk = GEOMUtils::CheckShape(aShape) || GEOMUtils::FixShapeTolerance(aShape);
+#endif
+ if ( !isOk )
+ StdFail_NotDone::Raise("Fillet algorithm have produced an invalid shape result");
aFunction->SetValue(aShape);
diff --git a/src/GEOMImpl/GEOMImpl_HealingDriver.cxx b/src/GEOMImpl/GEOMImpl_HealingDriver.cxx
index 09441ab23..966cd0334 100644
--- a/src/GEOMImpl/GEOMImpl_HealingDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_HealingDriver.cxx
@@ -20,8 +20,6 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#include
-
#include
#include
#include
@@ -44,12 +42,8 @@
#include
-#include
-#include
-
#include
#include
-#include
#include
#include
@@ -541,6 +535,8 @@ void GEOMImpl_HealingDriver::LimitTolerance (GEOMImpl_IHealing* theHI,
TopoDS_Shape& theOutShape) const
{
Standard_Real aTol = theHI->GetTolerance();
+ TopAbs_ShapeEnum aType = theHI->GetType();
+
if (aTol < Precision::Confusion())
aTol = Precision::Confusion();
@@ -550,17 +546,10 @@ void GEOMImpl_HealingDriver::LimitTolerance (GEOMImpl_IHealing* theHI,
TNaming_CopyShape::CopyTool(theOriginalShape, aMapTShapes, aShapeCopy);
// 2. Limit tolerance.
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShapeCopy, aTol, aTol, TopAbs_SHAPE);
-
- // 3. Fix obtained shape.
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape (aShapeCopy);
- aSfs->Perform();
- theOutShape = aSfs->Shape();
-
- BRepCheck_Analyzer ana (theOutShape, Standard_True);
- if (!ana.IsValid())
+ if (!GEOMUtils::FixShapeTolerance(aShapeCopy, aType, aTol))
StdFail_NotDone::Raise("Non valid shape result");
+
+ theOutShape = aShapeCopy;
}
//=======================================================================
@@ -735,8 +724,7 @@ void GEOMImpl_HealingDriver::FuseCollinearEdges (const TopoDS_Shape& theOriginal
}
theOutShape = aFinalWire;
- BRepCheck_Analyzer ana (theOutShape, Standard_True);
- if (!ana.IsValid())
+ if (!GEOMUtils::CheckShape(theOutShape, true))
StdFail_NotDone::Raise("Non valid shape result");
}
@@ -902,6 +890,7 @@ GetCreationInformation(std::string& theOperationName,
theOperationName = "LIMIT_TOLERANCE";
AddParam( theParams, "Selected shape", aCI.GetOriginal() );
AddParam( theParams, "Tolerance", aCI.GetTolerance() );
+ AddParam( theParams, "Type", aCI.GetType() );
break;
case FUSE_COLLINEAR_EDGES:
theOperationName = "FUSE_EDGES";
diff --git a/src/GEOMImpl/GEOMImpl_IHealing.hxx b/src/GEOMImpl/GEOMImpl_IHealing.hxx
index 8fcbf3110..4324a6662 100755
--- a/src/GEOMImpl/GEOMImpl_IHealing.hxx
+++ b/src/GEOMImpl/GEOMImpl_IHealing.hxx
@@ -24,7 +24,8 @@
#include
#include
-#include "TColStd_HSequenceOfTransient.hxx"
+#include
+#include
class GEOMImpl_IHealing
{
@@ -41,7 +42,8 @@ public:
ARG_DEV_EDGE_VALUE = 8,
ARG_IS_BY_PARAMETER = 9,
ARG_SUBSHAPE_INDEX = 10,
- ARG_LIST_SHAPES = 11
+ ARG_LIST_SHAPES = 11,
+ ARG_TYPE = 12
};
GEOMImpl_IHealing(Handle(GEOM_Function) theFunction): _func(theFunction) {}
@@ -73,6 +75,9 @@ public:
void SetTolerance( Standard_Real val ) { _func->SetReal(ARG_TOLERANCE, val); }
Standard_Real GetTolerance() { return _func->GetReal(ARG_TOLERANCE); }
+ void SetType( TopAbs_ShapeEnum val ) { _func->SetInteger(ARG_TYPE, (Standard_Integer)val); }
+ TopAbs_ShapeEnum GetType() { TopAbs_ShapeEnum type = (TopAbs_ShapeEnum)(_func->GetInteger(ARG_TYPE)); return _func->IsDone() ? type : TopAbs_SHAPE; }
+
void SetDevideEdgeValue( Standard_Real val ) { _func->SetReal(ARG_DEV_EDGE_VALUE, val); }
Standard_Real GetDevideEdgeValue() { return _func->GetReal(ARG_DEV_EDGE_VALUE); }
diff --git a/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx b/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx
index b45374c45..443ae83d6 100644
--- a/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx
+++ b/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx
@@ -1056,7 +1056,8 @@ Handle(GEOM_Object) GEOMImpl_IHealingOperations::ChangeOrientationCopy (Handle(G
*/
//=============================================================================
Handle(GEOM_Object) GEOMImpl_IHealingOperations::LimitTolerance (Handle(GEOM_Object) theObject,
- double theTolerance)
+ double theTolerance,
+ TopAbs_ShapeEnum theType)
{
// Set error code, check parameters
SetErrorCode(KO);
@@ -1084,6 +1085,7 @@ Handle(GEOM_Object) GEOMImpl_IHealingOperations::LimitTolerance (Handle(GEOM_Obj
GEOMImpl_IHealing HI (aFunction);
HI.SetOriginal(aLastFunction);
HI.SetTolerance(theTolerance);
+ HI.SetType(theType);
// Compute
try {
diff --git a/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx b/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx
index 607ecc4b4..77c9fa392 100644
--- a/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx
+++ b/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx
@@ -27,6 +27,7 @@
#include "GEOM_Engine.hxx"
#include "GEOM_Object.hxx"
+#include
#include
#include
@@ -96,7 +97,8 @@ class GEOMImpl_IHealingOperations : public GEOM_IOperations {
Standard_EXPORT Handle(GEOM_Object) ChangeOrientationCopy( Handle(GEOM_Object) theObject);
Standard_EXPORT Handle(GEOM_Object) LimitTolerance( Handle(GEOM_Object) theObject,
- double theTolerance );
+ double theTolerance,
+ TopAbs_ShapeEnum theType = TopAbs_SHAPE );
};
diff --git a/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx b/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx
index fe5bb0580..7475b4a34 100644
--- a/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx
@@ -26,29 +26,16 @@
#include
#include
#include
+#include
#include
-#include
-#include
#include
-#include
#include
-#include
-
#include
-
#include
-#include
-
-#include
-#include
-#include
-
#include
#include
-#include "utilities.h"
-
//=======================================================================
//function : GetID
//purpose :
@@ -59,7 +46,6 @@ const Standard_GUID& GEOMImpl_OffsetDriver::GetID()
return aOffsetDriver;
}
-
//=======================================================================
//function : GEOMImpl_OffsetDriver
//purpose :
@@ -100,20 +86,8 @@ Standard_Integer GEOMImpl_OffsetDriver::Execute(TFunction_Logbook& log) const
aTol);
if (MO.IsDone()) {
aShape = MO.Shape();
- // 23.04.2010 skl for bug 21699 from Mantis
- BRepCheck_Analyzer ana (aShape, Standard_True);
- ana.Init(aShape);
- if (!ana.IsValid()) {
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShape, Precision::Confusion(),
- Precision::Confusion(), TopAbs_SHAPE);
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape);
- aSfs->Perform();
- aShape = aSfs->Shape();
- ana.Init(aShape);
- if (!ana.IsValid())
- Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result");
- }
+ if ( !GEOMUtils::CheckShape(aShape, true) && !GEOMUtils::FixShapeTolerance(aShape) )
+ Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result");
}
else {
StdFail_NotDone::Raise("Offset construction failed");
diff --git a/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx b/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx
index c50b0a86a..9b49bfeaf 100644
--- a/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx
@@ -20,47 +20,29 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#include
-
#include
#include
#include
-
+#include
#include
#include
-
#include
#include
#include
-//#include
-#include
-#include
-#include
-
#include
#include
-#include
#include
-#include
-#include
#include
#include
#include
#include
#include
-#include
-#include
-
#include
-#include
-#include
#include
#include
-#include
-#include
#include
#include
#include
@@ -444,17 +426,8 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(TFunction_Logbook& log) const
Standard_ConstructionError::Raise("Partition aborted : non valid shape result");
//end of IPAL21418
- if (!BRepAlgo::IsValid(aShape)) {
- // 08.07.2008 added by skl during fixing bug 19761 from Mantis
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShape, Precision::Confusion(),
- Precision::Confusion(), TopAbs_SHAPE);
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape);
- aSfs->Perform();
- aShape = aSfs->Shape();
- if (!BRepAlgo::IsValid(aShape))
- Standard_ConstructionError::Raise("Partition aborted : non valid shape result");
- }
+ if ( !GEOMUtils::CheckShape(aShape, true) && !GEOMUtils::FixShapeTolerance(aShape) )
+ Standard_ConstructionError::Raise("Partition aborted : non valid shape result");
aFunction->SetValue(aShape);
diff --git a/src/GEOMImpl/GEOMImpl_PipeDriver.cxx b/src/GEOMImpl/GEOMImpl_PipeDriver.cxx
index 5f580ddb9..a3f4c388a 100644
--- a/src/GEOMImpl/GEOMImpl_PipeDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_PipeDriver.cxx
@@ -38,8 +38,6 @@
#include
#include
#include
-#include
-#include
#include
#include
@@ -47,7 +45,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -2573,19 +2570,8 @@ Standard_Integer GEOMImpl_PipeDriver::Execute (TFunction_Logbook& log) const
if (aShape.IsNull()) return 0;
- BRepCheck_Analyzer ana (aShape, Standard_False);
- if (!ana.IsValid()) {
- ShapeFix_ShapeTolerance aSFT;
- aSFT.LimitTolerance(aShape,Precision::Confusion(),Precision::Confusion());
- Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape);
- aSfs->SetPrecision(Precision::Confusion());
- aSfs->Perform();
- aShape = aSfs->Shape();
-
- ana.Init(aShape, Standard_False);
- if (!ana.IsValid())
- Standard_ConstructionError::Raise("Algorithm have produced an invalid shape result");
- }
+ if ( !GEOMUtils::CheckShape(aShape) && !GEOMUtils::FixShapeTolerance(aShape) )
+ Standard_ConstructionError::Raise("Algorithm have produced an invalid shape result");
if (aType != PIPE_BASE_PATH &&
aType != PIPE_SHELLS_WITHOUT_PATH) {
diff --git a/src/GEOMImpl/GEOMImpl_PipePathDriver.cxx b/src/GEOMImpl/GEOMImpl_PipePathDriver.cxx
index 25bf5cdff..f52d340f2 100644
--- a/src/GEOMImpl/GEOMImpl_PipePathDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_PipePathDriver.cxx
@@ -20,83 +20,16 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#include
-
-#include
-
#include
-
-#include
#include
#include
#include
#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
#include
-
#include
-
#include
-#include
-#include
-
-#include "utilities.h"
//=======================================================================
//function : GetID
diff --git a/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx b/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx
index 3525ed57b..9cc1d6265 100644
--- a/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx
+++ b/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx
@@ -20,27 +20,20 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#include
-
#include
#include
#include
+#include
#include
-#include
-#include