]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Optimize the flushing: this improvement speed ups the unit test for 3-4 times
authormpv <mpv@opencascade.com>
Mon, 5 Oct 2015 13:23:37 +0000 (16:23 +0300)
committermpv <mpv@opencascade.com>
Mon, 5 Oct 2015 13:23:37 +0000 (16:23 +0300)
src/GeomAlgoAPI/GeomAlgoAPI_PointBuilder.cpp
src/GeomAlgoAPI/GeomAlgoAPI_PointBuilder.h
src/Model/Model_Document.cpp
src/Model/Model_Document.h
src/ModelAPI/ModelAPI_Document.h

index 096dc4a96bc01d45798762380b297aa7325a315d..dffcecce403d8ab1f74c70d577937e0e0a9edccf 100644 (file)
@@ -25,6 +25,16 @@ std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_PointBuilder::point(
   return aRes;
 }
 
+std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_PointBuilder::point(
+    const double theX, const double theY, const double theZ)
+{
+  const gp_Pnt aPnt(theX, theY, theZ);
+  BRepBuilderAPI_MakeVertex aMaker(aPnt);
+  TopoDS_Vertex aVertex = aMaker.Vertex();
+  std::shared_ptr<GeomAPI_Vertex> aRes(new GeomAPI_Vertex);
+  aRes->setImpl(new TopoDS_Shape(aVertex));
+  return aRes;
+}
 
 std::shared_ptr<GeomAPI_Pnt> GeomAlgoAPI_PointBuilder::point(std::shared_ptr<GeomAPI_Shape> theVertex)
 {
index 893c70c977fa77c999d15b11215584169ccf3f72..cff50ee0561cdb35becd322c685e9b99f907e5f7 100644 (file)
@@ -24,6 +24,10 @@ class GEOMALGOAPI_EXPORT GeomAlgoAPI_PointBuilder
   /// Creates a shape by point
   static std::shared_ptr<GeomAPI_Shape> point(std::shared_ptr<GeomAPI_Pnt> thePoint);
 
+  /// Creates a shape by point coordinates
+  static std::shared_ptr<GeomAPI_Shape> point(
+    const double theX, const double theY, const double theZ);
+
   /// Return point by shape vertex
   static std::shared_ptr<GeomAPI_Pnt> point(std::shared_ptr<GeomAPI_Shape> theVertex);
 };
index 6c7ea7a3ca80de9c4208949e5af8fbcfdd3bcc27..e0ae73e76109b438637f051a4f49870317863581 100644 (file)
@@ -749,8 +749,8 @@ std::shared_ptr<ModelAPI_Feature> Model_Document::currentFeature(const bool theV
   return std::shared_ptr<ModelAPI_Feature>(); // null feature means the higher than first
 }
 
-void Model_Document::setCurrentFeature(std::shared_ptr<ModelAPI_Feature> theCurrent,
-  const bool theVisible, const bool theFlushUpdates)
+void Model_Document::setCurrentFeature(
+  std::shared_ptr<ModelAPI_Feature> theCurrent, const bool theVisible)
 {
   // blocks the flush signals to avoid each objects visualization in the viewer
   // they should not be shown once after all modifications are performed
@@ -844,12 +844,6 @@ void Model_Document::setCurrentFeature(std::shared_ptr<ModelAPI_Feature> theCurr
   }
   // unblock  the flush signals and up them after this
   aLoop->activateFlushes(isActive);
-
-  if (theFlushUpdates) {
-    aLoop->flush(aCreateEvent);
-    aLoop->flush(aRedispEvent);
-    aLoop->flush(aDeleteEvent);
-  }
 }
 
 void Model_Document::setCurrentFeatureUp()
@@ -860,7 +854,7 @@ void Model_Document::setCurrentFeatureUp()
   if (aCurrent.get()) { // if not, do nothing because null is the upper
     FeaturePtr aPrev = myObjs->nextFeature(aCurrent, true);
     // do not flush: it is called only on remove, it will be flushed in the end of transaction
-    setCurrentFeature(aPrev, false, false);
+    setCurrentFeature(aPrev, false);
   }
 }
 
index a728c215870e6cc6e544b3cac53e20ea47d24035..1c7645b0c4f149782f9312a0acd103747a0ce4ec 100644 (file)
@@ -134,9 +134,8 @@ class Model_Document : public ModelAPI_Document
   //! will be appended after this one.
   //! \param theCurrent the selected feature as current: blow it everythin become disabled
   //! \param theVisible use visible features only: flag is true for Object Browser functionality
-  //! \param theFlushUpdates if it is true method calls flushes for creation/redisplay/delete messages
   MODEL_EXPORT virtual void setCurrentFeature(std::shared_ptr<ModelAPI_Feature> theCurrent,
-    const bool theVisible, const bool theFlushUpdates = true);
+    const bool theVisible);
 
   //! Makes the current feature one feature upper
   MODEL_EXPORT virtual void setCurrentFeatureUp();
index b6419ec8266442d75d3c2caeaababc29b1191a9b..4edc005c95ef320cd3cbb13d242d89116ac723a9 100644 (file)
@@ -103,9 +103,8 @@ public:
   //! will be appended after this one.
   //! \param theCurrent the selected feature as current: blow it everythin become disabled
   //! \param theVisible use visible features only: flag is true for Object Browser functionality
-  //! \param theFlushUpdates if it is true (default) it flashes creation/redisplay/delete messages
   virtual void setCurrentFeature(std::shared_ptr<ModelAPI_Feature> theCurrent,
-    const bool theVisible, const bool theFlushUpdates = true) = 0;
+    const bool theVisible) = 0;
   //! Makes the current feature one feature upper
   virtual void setCurrentFeatureUp() = 0;