-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2019 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
//
// 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
+// 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>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include <PartSet_Tools.h>
return aPlane;
}
+void PartSet_Tools::nullifySketchPlane(CompositeFeaturePtr theSketch)
+{
+ std::shared_ptr<GeomDataAPI_Point> anOrigin = std::dynamic_pointer_cast<GeomDataAPI_Point>(
+ theSketch->data()->attribute(SketchPlugin_Sketch::ORIGIN_ID()));
+ std::shared_ptr<GeomDataAPI_Dir> aNormal = std::dynamic_pointer_cast<GeomDataAPI_Dir>(
+ theSketch->data()->attribute(SketchPlugin_Sketch::NORM_ID()));
+
+ aNormal->reset();
+ anOrigin->reset();
+}
+
std::shared_ptr<GeomAPI_Pnt> PartSet_Tools::point3D(std::shared_ptr<GeomAPI_Pnt2d> thePoint2D,
CompositeFeaturePtr theSketch)
{
return;
static Events_Loop* aLoop = Events_Loop::loop();
- for (int i = 0; i < theComposite->numberOfSubs(); i++) {
+ int aNumberOfSubs = theComposite->numberOfSubs();
+ for (int i = 0; i < aNumberOfSubs; i++) {
FeaturePtr aSubFeature = theComposite->subFeature(i);
static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get();
aECreator->sendUpdated(aSubFeature, theEventId);
void PartSet_Tools::getFirstAndLastIndexInFolder(const ObjectPtr& theFolder,
int& theFirst, int& theLast)
{
+ theFirst = -1;
+ theLast = -1;
+
DocumentPtr aDoc = theFolder->document();
FolderPtr aFolder = std::dynamic_pointer_cast<ModelAPI_Folder>(theFolder);
if (!aFolder.get())
return;
- AttributeReferencePtr aFirstFeatAttr = aFolder->data()->reference(ModelAPI_Folder::FIRST_FEATURE_ID());
+ AttributeReferencePtr aFirstFeatAttr =
+ aFolder->data()->reference(ModelAPI_Folder::FIRST_FEATURE_ID());
+ if (!aFirstFeatAttr.get())
+ return;
FeaturePtr aFirstFeatureInFolder = ModelAPI_Feature::feature(aFirstFeatAttr->value());
- if (!aFirstFeatureInFolder.get()) {
- theFirst = -1;
+ if (!aFirstFeatureInFolder.get())
return;
- }
- AttributeReferencePtr aLastFeatAttr =
- aFolder->data()->reference(ModelAPI_Folder::LAST_FEATURE_ID());
- FeaturePtr aLastFeatureInFolder = ModelAPI_Feature::feature(aLastFeatAttr->value());
- if (!aLastFeatureInFolder.get()) {
- theLast = -1;
+
+ FeaturePtr aLastFeatureInFolder = aFolder->lastVisibleFeature();
+ if (!aLastFeatureInFolder.get())
return;
- }
theFirst = aDoc->index(aFirstFeatureInFolder);
theLast = aDoc->index(aLastFeatureInFolder);
-}
\ No newline at end of file
+}