+++ /dev/null
-
-Fusion faces
-============
-
-.. centered::
- Fusion faces
model.checkResult(Interpolation_1, model, 1, [0], [0], [0], [1], [2])
-# =============================================================================
-# Test 2. Create curve 1-2-3-4-5-1, closed on, reorder off, without tangents
-# =============================================================================
+# # =============================================================================
+# # Test 2. Create curve 1-2-3-4-5-1, closed on, reorder off, without tangents
+# # =============================================================================
Interpolation_2 = model.addInterpolation(Part_1_doc, [p_1, p_2, p_3, p_4, p_5], True, False)
model.do()
model.checkResult(Interpolation_2, model, 1, [0], [0], [0], [1], [2])
-# =============================================================================
-# Test 3. Create curve 1-2-3-4, closed off, reorder on, without tangents
-# =============================================================================
+# # =============================================================================
+# # Test 3. Create curve 1-2-3-4, closed off, reorder on, without tangents
+# # =============================================================================
Interpolation_3 = model.addInterpolation(Part_1_doc, [p_1, p_2, p_3, p_4], False, True)
model.do()
FeaturesAPI_Symmetry.h
FeaturesAPI_Translation.h
FeaturesAPI_Union.h
- FeaturesAPI_FusionFaces.h
)
SET(PROJECT_SOURCES
FeaturesAPI_Symmetry.cpp
FeaturesAPI_Translation.cpp
FeaturesAPI_Union.cpp
- FeaturesAPI_FusionFaces.cpp
)
SET(PROJECT_LIBRARIES
%shared_ptr(FeaturesAPI_Symmetry)
%shared_ptr(FeaturesAPI_Translation)
%shared_ptr(FeaturesAPI_Union)
-%shared_ptr(FeaturesAPI_FusionFaces)
// all supported interfaces
%include "FeaturesAPI_BooleanCut.h"
%include "FeaturesAPI_Symmetry.h"
%include "FeaturesAPI_Translation.h"
%include "FeaturesAPI_Union.h"
-%include "FeaturesAPI_FusionFaces.h"
+++ /dev/null
-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
-//
-
-#include "FeaturesAPI_FusionFaces.h"
-
-#include <ModelHighAPI_Dumper.h>
-#include <ModelHighAPI_Tools.h>
-
-//==================================================================================================
-FeaturesAPI_FusionFaces::FeaturesAPI_FusionFaces(
- const std::shared_ptr<ModelAPI_Feature>& theFeature)
-: ModelHighAPI_Interface(theFeature)
-{
- initialize();
-}
-
-//==================================================================================================
-FeaturesAPI_FusionFaces::FeaturesAPI_FusionFaces(
- const std::shared_ptr<ModelAPI_Feature>& theFeature,
- const ModelHighAPI_Selection& theBase)
-: ModelHighAPI_Interface(theFeature)
-{
- if(initialize()) {
- setBase(theBase);
- }
-}
-
-//==================================================================================================
-FeaturesAPI_FusionFaces::~FeaturesAPI_FusionFaces()
-{
-
-}
-
-//==================================================================================================
-void FeaturesAPI_FusionFaces::setBase(const ModelHighAPI_Selection& theBase)
-{
- fillAttribute(theBase, mybase);
-
- execute();
-}
-
-//==================================================================================================
-void FeaturesAPI_FusionFaces::dump(ModelHighAPI_Dumper& theDumper) const
-{
- FeaturePtr aBase = feature();
- const std::string& aPartName = theDumper.name(aBase->document());
-
- AttributeSelectionPtr anAttrBaseShape =
- aBase->selection(FeaturesPlugin_FusionFaces::BASE_SHAPE_ID());
-
- theDumper << aBase << " = model.addFusionFaces("
- << aPartName << ", " << anAttrBaseShape << ")" << std::endl;
-}
-
-//==================================================================================================
-FusionFacesPtr addFusionFaces(const std::shared_ptr<ModelAPI_Document>& thePart,
- const ModelHighAPI_Selection& theBase)
-{
- std::shared_ptr<ModelAPI_Feature> aFeature =
- thePart->addFeature(FeaturesAPI_FusionFaces::ID());
- return FusionFacesPtr(new FeaturesAPI_FusionFaces(aFeature, theBase));
-}
+++ /dev/null
-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
-//
-
-#ifndef FeaturesAPI_FusionFaces_H_
-#define FeaturesAPI_FusionFaces_H_
-
-#include "FeaturesAPI.h"
-
-#include <FeaturesPlugin_FusionFaces.h>
-
-#include <ModelHighAPI_Interface.h>
-#include <ModelHighAPI_Macro.h>
-
-class ModelHighAPI_Dumper;
-class ModelHighAPI_Selection;
-
-/// \class FeaturesAPI_FusionFaces
-/// \ingroup CPPHighAPI
-/// \brief Interface for FusionFaces feature.
-class FeaturesAPI_FusionFaces: public ModelHighAPI_Interface
-{
-public:
- /// Constructor without values.
- FEATURESAPI_EXPORT
- explicit FeaturesAPI_FusionFaces(const std::shared_ptr<ModelAPI_Feature>& theFeature);
-
- /// Constructor with values.
- FEATURESAPI_EXPORT
- explicit FeaturesAPI_FusionFaces(const std::shared_ptr<ModelAPI_Feature>& theFeature,
- const ModelHighAPI_Selection& theBase);
-
- /// Destructor.
- FEATURESAPI_EXPORT
- virtual ~FeaturesAPI_FusionFaces();
-
- INTERFACE_1(FeaturesPlugin_FusionFaces::ID(),
- base, FeaturesPlugin_FusionFaces::BASE_SHAPE_ID(),
- ModelAPI_AttributeSelection, /** Base */)
-
- /// Modify base object attribute of the feature.
- FEATURESAPI_EXPORT
- void setBase(const ModelHighAPI_Selection& theBase);
-
- /// Dump wrapped feature
- FEATURESAPI_EXPORT
- virtual void dump(ModelHighAPI_Dumper& theDumper) const;
-};
-
-/// Pointer on FusionFaces object.
-typedef std::shared_ptr<FeaturesAPI_FusionFaces> FusionFacesPtr;
-
-/// \ingroup CPPHighAPI
-/// \brief Create FusionFaces feature.
-FEATURESAPI_EXPORT
-FusionFacesPtr addFusionFaces(const std::shared_ptr<ModelAPI_Document>& thePart,
- const ModelHighAPI_Selection& theBase);
-
-#endif // FeaturesAPI_FusionFaces_H_
#include "FeaturesAPI_Symmetry.h"
#include "FeaturesAPI_Translation.h"
#include "FeaturesAPI_Union.h"
- #include "FeaturesAPI_FusionFaces.h"
#endif // FeaturesAPI_swig_H_
FeaturesPlugin_MultiRotation.h
FeaturesPlugin_Fillet.h
FeaturesPlugin_Measurement.h
- FeaturesPlugin_FusionFaces.h
)
SET(PROJECT_SOURCES
FeaturesPlugin_MultiRotation.cpp
FeaturesPlugin_Fillet.cpp
FeaturesPlugin_Measurement.cpp
- FeaturesPlugin_FusionFaces.cpp
)
SET(XML_RESOURCES
multirotation_widget.xml
fillet_widget.xml
measurement_widget.xml
- fusion_faces_widget.xml
)
SET(TEXT_RESOURCES
TestMeasurementDistance.py
TestMeasurementRadius.py
TestMeasurementAngle.py
- TestFusionFaces.py
Test1379.py
Test1922.py
Test1942.py
+++ /dev/null
-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
-//
-
-#include "FeaturesPlugin_FusionFaces.h"
-
-#include <ModelAPI_AttributeSelectionList.h>
-#include <ModelAPI_AttributeString.h>
-#include <ModelAPI_ResultBody.h>
-#include <ModelAPI_ResultConstruction.h>
-#include <ModelAPI_Session.h>
-#include <ModelAPI_Validator.h>
-
-#include <GeomAPI_ShapeIterator.h>
-#include <GeomAPI_ShapeExplorer.h>
-
-#include <GeomAlgoAPI_UnifySameDomain.h>
-
-
-//==================================================================================================
-FeaturesPlugin_FusionFaces::FeaturesPlugin_FusionFaces()
-{
-}
-
-//==================================================================================================
-void FeaturesPlugin_FusionFaces::initAttributes()
-{
- data()->addAttribute(BASE_SHAPE_ID(), ModelAPI_AttributeSelection::typeId());
-}
-
-//==================================================================================================
-void FeaturesPlugin_FusionFaces::execute()
-{
- // Get selection.
- AttributeSelectionPtr aShapeAttrSelection = selection(BASE_SHAPE_ID());
- if (!aShapeAttrSelection.get()) {
- return;
- }
-
- // Get shape.
- GeomShapePtr aBaseShape = aShapeAttrSelection->value();
-
- // Make fusion
- std::shared_ptr<GeomAlgoAPI_UnifySameDomain> anAlgo(new GeomAlgoAPI_UnifySameDomain(aBaseShape));
-
- // Check algo status
- if (!anAlgo->isDone()) {
- setError("Error: Fusion algorithm failed.");
- return;
- }
- if (anAlgo->shape()->isNull()) {
- setError("Error: Resulting shape is Null.");
- return;
- }
- if (!anAlgo->isValid()) {
- setError("Error: Resulting shape is not valid.");
- return;
- }
-
- // Store result
- GeomShapePtr aResultShape = anAlgo->shape();
- ResultBodyPtr aResultBody = document()->createBody(data());
- if (aResultShape->isEqual(aBaseShape)) {
- aResultBody->store(aResultShape);
- } else {
- aResultBody->storeModified(aBaseShape, aResultShape);
-
- const int aModifyEdgeTag = 1;
- const int aModifyFaceTag = 2;
- const std::string aModEName = "Modified_Edge";
- const std::string aModFName = "Modified_Face";
- std::shared_ptr<GeomAPI_DataMapOfShapeShape> aMapOfShapes = anAlgo->mapOfSubShapes();
- aResultBody->loadAndOrientModifiedShapes(anAlgo.get(), aBaseShape, GeomAPI_Shape::EDGE,
- aModifyEdgeTag, aModEName, *aMapOfShapes.get(), true);
- aResultBody->loadAndOrientModifiedShapes(anAlgo.get(), aBaseShape, GeomAPI_Shape::FACE,
- aModifyFaceTag, aModFName, *aMapOfShapes.get(), true);
- }
- setResult(aResultBody);
-}
+++ /dev/null
-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
-//
-
-#ifndef FeaturesPlugin_FusionFaces_H_
-#define FeaturesPlugin_FusionFaces_H_
-
-#include "FeaturesPlugin.h"
-
-#include <ModelAPI_Feature.h>
-
-/// \class FeaturesPlugin_FusionFaces
-/// \ingroup Plugins
-/// \brief Feature for fusion of connected faces.
-class FeaturesPlugin_FusionFaces : public ModelAPI_Feature
-{
-public:
- /// Use plugin manager for features creation
- FeaturesPlugin_FusionFaces();
-
- /// Feature kind.
- inline static const std::string& ID()
- {
- static const std::string MY_ID("FusionFaces");
- return MY_ID;
- }
-
- /// Attribute name of base shape.
- inline static const std::string& BASE_SHAPE_ID()
- {
- static const std::string MY_BASE_SHAPE_ID("base_shape");
- return MY_BASE_SHAPE_ID;
- }
-
- /// \return the kind of a feature.
- FEATURESPLUGIN_EXPORT virtual const std::string& getKind()
- {
- static std::string MY_KIND = FeaturesPlugin_FusionFaces::ID();
- return MY_KIND;
- }
-
- /// Request for initialization of data model of the feature: adding all attributes.
- FEATURESPLUGIN_EXPORT virtual void initAttributes();
-
- /// Executes the faces fusion and stores the modififed shape.
- FEATURESPLUGIN_EXPORT virtual void execute();
-};
-
-#endif
#include <FeaturesPlugin_Symmetry.h>
#include <FeaturesPlugin_Translation.h>
#include <FeaturesPlugin_Union.h>
-#include <FeaturesPlugin_FusionFaces.h>
#include <FeaturesPlugin_ValidatorTransform.h>
#include <FeaturesPlugin_Validators.h>
return FeaturePtr(new FeaturesPlugin_RemoveSubShapes);
} else if (theFeatureID == FeaturesPlugin_Union::ID()) {
return FeaturePtr(new FeaturesPlugin_Union);
- } else if (theFeatureID == FeaturesPlugin_FusionFaces::ID()) {
- return FeaturePtr(new FeaturesPlugin_FusionFaces);
} else if (theFeatureID == FeaturesPlugin_Symmetry::ID()) {
return FeaturePtr(new FeaturesPlugin_Symmetry);
} else if (theFeatureID == FeaturesPlugin_Scale::ID()) {
<translation>"Base objects" should contain at least 2 items.</translation>
</message>
</context>
- <context>
- <name>FusionFaces:Model_FeatureValidator</name>
- <message>
- <source>Attribute "base_shape" is not initialized.</source >
- <translation>Base shape is not selected.</translation >
- </message>
- </context>
</TS>
+++ /dev/null
-## Copyright (C) 2014-2017 CEA/DEN, EDF R&D
-##
-## This library is free software; you can redistribute it and/or
-## modify it under the terms of the GNU Lesser General Public
-## License as published by the Free Software Foundation; either
-## version 2.1 of the License, or (at your option) any later version.
-##
-## This library is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-## Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public
-## License along with this library; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-## See http:##www.salome-platform.org/ or
-## email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
-##
-
-from salome.shaper import model
-
-# Create document
-model.begin()
-partSet = model.moduleDocument()
-Part_1 = model.addPart(partSet)
-Part_1_doc = Part_1.document()
-
-# =============================================================================
-# Test 1. Fusion faces for shell of 2 adjacent faces lying on plane
-# =============================================================================
-Box_1 = model.addBox(Part_1_doc, 10, 10, 10)
-Box_2 = model.addBox(Part_1_doc, 10, 10, 10)
-Translation_1 = model.addTranslation(Part_1_doc, [model.selection("SOLID", "Box_2_1")], model.selection("EDGE", "PartSet/OX"), 10)
-
-Shell_1 = model.addShell(Part_1_doc, [model.selection("FACE", "Box_1_1/Top"), model.selection("FACE", "Translation_1_1/Translated_Face_1")])
-model.do()
-
-model.checkResult(Shell_1, model, 1, [0], [0], [2], [8], [16])
-
-FusionFaces_1 = model.addFusionFaces(Part_1_doc, model.selection("SHELL", "Shell_1_1"))
-model.do()
-
-model.checkResult(FusionFaces_1, model, 1, [0], [0], [1], [4], [8])
-
-# =============================================================================
-# Test 2. Fusion faces for solid of 2 adjacent boxes
-# =============================================================================
-Fuse_1 = model.addFuse(Part_1_doc, [model.selection("SOLID", "Box_1_1"), model.selection("SOLID", "Translation_1_1")], [])
-model.do()
-
-model.checkResult(Fuse_1, model, 1, [0], [1], [10], [40], [80])
-
-FusionFaces_2 = model.addFusionFaces(Part_1_doc, model.selection("SOLID", "Fuse_1_1"))
-model.do()
-
-model.checkResult(FusionFaces_2, model, 1, [0], [1], [6], [24], [48])
-
-# =============================================================================
-# Test 3. Fusion faces for shell of adjacent faces lying on cylindrical surface
-# =============================================================================
-Cylinder_1 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10)
-Shell_2 = model.addShell(Part_1_doc, [model.selection("FACE", "Cylinder_1_1/Face_1")])
-Point_1 = model.addPoint(Part_1_doc, 0, 0, 5)
-Plane_1 = model.addPlane(Part_1_doc, model.selection("EDGE", "PartSet/OZ"), model.selection("VERTEX", "Point_1"), True)
-
-Partition_1 = model.addPartition(Part_1_doc, [model.selection("SHELL", "Shell_2_1"), model.selection("FACE", "Plane_1")])
-model.do()
-
-model.checkResult(Partition_1, model, 1, [0], [0], [2], [8], [16])
-
-FusionFaces_3 = model.addFusionFaces(Part_1_doc, model.selection("SHELL", "Partition_1_1"))
-model.do()
-
-model.checkResult(FusionFaces_3, model, 1, [0], [0], [1], [4], [8])
-
-# =============================================================================
-# Test 4. Fusion faces for compsolid
-# =============================================================================
-Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
-SketchLine_1 = Sketch_1.addLine(25, 40, -50, 40)
-SketchLine_2 = Sketch_1.addLine(-50, 40, -50, 0)
-SketchLine_3 = Sketch_1.addLine(-50, 0, 25, 0)
-SketchLine_4 = Sketch_1.addLine(25, 0, 25, 40)
-SketchLine_5 = Sketch_1.addLine(-20, 40, -20, 0)
-model.do()
-
-Extrusion_1 = model.addExtrusion(Part_1_doc, [model.selection("COMPOUND", "Sketch_1")], model.selection(), 10, 0)
-Box_3 = model.addBox(Part_1_doc, 10, 10, 10)
-
-Fuse_2 = model.addFuse(Part_1_doc, [model.selection("SOLID", "Extrusion_1_1_2"), model.selection("SOLID", "Box_3_1")], [])
-model.do()
-
-model.checkResult(Fuse_2, model, 1, [2], [2], [16], [72], [144])
-
-FusionFaces_4 = model.addFusionFaces(Part_1_doc, model.selection("COMPSOLID", "Fuse_2_1"))
-model.do()
-
-model.checkResult(FusionFaces_4, model, 1, [2], [2], [12], [48], [96])
-
-# =============================================================================
-# Test 5. Fusion faces for compound
-# =============================================================================
-Box_4 = model.addBox(Part_1_doc, 10, 10, 10)
-Box_5 = model.addBox(Part_1_doc, 10, 10, 10)
-Translation_2 = model.addTranslation(Part_1_doc, [model.selection("SOLID", "Box_5_1")], 0, 0, 5)
-Box_6 = model.addBox(Part_1_doc, 10, 10, 10)
-Translation_3 = model.addTranslation(Part_1_doc, [model.selection("SOLID", "Box_6_1")], 20, 0, 0)
-Box_7 = model.addBox(Part_1_doc, 10, 10, 10)
-Translation_4 = model.addTranslation(Part_1_doc, [model.selection("SOLID", "Box_7_1")], 20, 0, 5)
-Fuse_3 = model.addFuse(Part_1_doc, [model.selection("SOLID", "Box_4_1"), model.selection("SOLID", "Translation_2_1")], [])
-Fuse_4 = model.addFuse(Part_1_doc, [model.selection("SOLID", "Translation_3_1"), model.selection("SOLID", "Translation_4_1")], [])
-
-Compound_1 = model.addCompound(Part_1_doc, [model.selection("SOLID", "Fuse_3_1"), model.selection("SOLID", "Fuse_4_1")])
-model.do()
-
-model.checkResult(Compound_1, model, 1, [2], [2], [28], [112], [224])
-
-FusionFaces_5 = model.addFusionFaces(Part_1_doc, model.selection("COMPOUND", "Compound_1_1"))
-model.do()
-
-model.checkResult(FusionFaces_5, model, 1, [2], [2], [12], [48], [96])
-
-# =============================================================================
-# Test 6. Check subshapes naming
-# =============================================================================
-#model.testHaveNamingSubshapes(FusionFaces_1, model, Part_1_doc)
-model.testHaveNamingSubshapes(FusionFaces_2, model, Part_1_doc)
-#model.testHaveNamingSubshapes(FusionFaces_3, model, Part_1_doc)
-model.testHaveNamingSubshapes(FusionFaces_4, model, Part_1_doc)
-model.testHaveNamingSubshapes(FusionFaces_5, model, Part_1_doc)
-model.end()
-
-# =============================================================================
-# Test 7. Check Python dump
-# =============================================================================
-assert(model.checkPythonDump())
+++ /dev/null
-<!--
-Copyright (C) 2014-2017 CEA/DEN, EDF R&D
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-See http:##www.salome-platform.org/ or
-email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
--->
-
-<source>
- <shape_selector id="base_shape"
- label="Shape:"
- tooltip="Select a shape to modify."
- shape_types="objects"
- concealment="true"
- greed="true">
- <validator id="GeomValidators_ShapeType" parameters="shell,solid,compsolid,compound"/>
- <validator id="GeomValidators_BodyShapes" parameters="toplevel"/>
- </shape_selector>
-</source>
<source path="fillet_widget.xml"/>
</feature>
</group>
- <group id="Fusion">
- <feature id="FusionFaces" title="Fusion of faces" tooltip="Performs fusion of connected faces"
- icon="icons/Features/fusion_faces.png" auto_preview="true" helpfile="FeaturesPlugin/fusionFacesFeature.html">
- <source path="fusion_faces_widget.xml"/>
- </feature>
- </group>
</workbench>
<workbench id="Part">
<group id="Movement">
build(theShapes);
}
-//==================================================================================================
-GeomAlgoAPI_UnifySameDomain::GeomAlgoAPI_UnifySameDomain(const GeomShapePtr& theShape)
-{
- build(theShape, false);
-}
-
-//==================================================================================================
void GeomAlgoAPI_UnifySameDomain::build(const ListOfShape& theShapes)
{
if(theShapes.empty()) {
const TopoDS_Shape& aShell = aCombined.front()->impl<TopoDS_Shape>();
- std::shared_ptr<GeomAPI_Shape> aShape(new GeomAPI_Shape());
- aShape->setImpl(new TopoDS_Shape(aShell));
- build(aShape, true);
-}
-
-//==================================================================================================
-void GeomAlgoAPI_UnifySameDomain::build(const GeomShapePtr& theShape,
- const bool theIsToSimplifyShell)
-{
ShapeUpgrade_UnifySameDomain* aUnifyAlgo = new ShapeUpgrade_UnifySameDomain();
this->setImpl(aUnifyAlgo);
- const TopoDS_Shape& aShape = theShape->impl<TopoDS_Shape>();
- aUnifyAlgo->Initialize(aShape);
+ aUnifyAlgo->Initialize(aShell);
aUnifyAlgo->Build();
TopoDS_Shape aResult = aUnifyAlgo->Shape();
return;
}
- if (theIsToSimplifyShell && aResult.ShapeType() == TopAbs_SHELL) {
+ if (aResult.ShapeType() == TopAbs_SHELL) {
int aNb = 0;
TopoDS_Iterator anIt(aResult);
for (; anIt.More(); anIt.Next()) {
}
}
- std::shared_ptr<GeomAPI_Shape> aResShape(new GeomAPI_Shape());
- aResShape->setImpl(new TopoDS_Shape(aResult));
- this->setShape(aResShape);
+ std::shared_ptr<GeomAPI_Shape> aShape(new GeomAPI_Shape());
+ aShape->setImpl(new TopoDS_Shape(aResult));
+ this->setShape(aShape);
this->setDone(true);
}
/// Constructor.
GEOMALGOAPI_EXPORT GeomAlgoAPI_UnifySameDomain(const ListOfShape& theShapes);
- /// Constructor.
- GEOMALGOAPI_EXPORT GeomAlgoAPI_UnifySameDomain(const GeomShapePtr& theShape);
-
/// \return the list of shapes modified from the shape \a theShape.
/// \param[in] theShape base shape.
/// \param[out] theHistory modified shapes.
ListOfShape& theHistory);
private:
- /// Builds resulting shape from lisy of shapes.
+ /// Builds resulting shape.
void build(const ListOfShape& theShapes);
-
- /// Builds resulting shape from the shape.
- void build(const GeomShapePtr& theShape, const bool theIsToSimplifyShell);
};
#endif
from FeaturesAPI import addIntersection, addPartition, addUnion, addRemoveSubShapes
from FeaturesAPI import addRecover
from FeaturesAPI import addFillet
-from FeaturesAPI import addFusionFaces
from FeaturesAPI import measureLength, measureDistance, measureRadius, measureAngle