]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
New data type - DataMapOfShapeShape is added.
authorszy <szy@opencascade.com>
Tue, 28 Oct 2014 12:35:27 +0000 (15:35 +0300)
committerszy <szy@opencascade.com>
Tue, 28 Oct 2014 12:35:27 +0000 (15:35 +0300)
src/GeomAPI/CMakeLists.txt
src/GeomAPI/GeomAPI_DataMapOfShapeShape.cpp [new file with mode: 0644]
src/GeomAPI/GeomAPI_DataMapOfShapeShape.h [new file with mode: 0644]

index 8700473eef8ac81a409b9c08a24d6b34631f458e..2718fa98007c81bd5db0b61caf66488bbcedebf1 100644 (file)
@@ -23,6 +23,7 @@ SET(PROJECT_HEADERS
     GeomAPI_AISObject.h
     GeomAPI_IPresentable.h
     GeomAPI_Curve.h 
+    GeomAPI_DataMapOfShapeShape.h
 )
 
 SET(PROJECT_SOURCES
@@ -43,6 +44,7 @@ SET(PROJECT_SOURCES
     GeomAPI_PlanarEdges.cpp
     GeomAPI_AISObject.cpp
     GeomAPI_Curve.cpp
+    GeomAPI_DataMapOfShapeShape.cpp
 )
 
 SET(PROJECT_LIBRARIES
@@ -50,6 +52,7 @@ SET(PROJECT_LIBRARIES
     ${CAS_MODELER} 
     ${CAS_VIEWER}
     ${CAS_SHAPE}
+    ${CAS_TKTopAlgo}
 )
 
 ADD_DEFINITIONS(-DGEOMAPI_EXPORTS ${CAS_DEFINITIONS})
diff --git a/src/GeomAPI/GeomAPI_DataMapOfShapeShape.cpp b/src/GeomAPI/GeomAPI_DataMapOfShapeShape.cpp
new file mode 100644 (file)
index 0000000..b573c5a
--- /dev/null
@@ -0,0 +1,53 @@
+// File:        GeomAPI_DataMapOfShapeShape.cpp
+// Created:     28 Oct 2014
+// Author:      Sergey Zaritchny
+
+#include <GeomAPI_Shape.h>
+#include <GeomAPI_DataMapOfShapeShape.h>
+#include <TopTools_DataMapOfShapeShape.hxx>
+using namespace std;
+
+
+GeomAPI_DataMapOfShapeShape::GeomAPI_DataMapOfShapeShape()
+       :GeomAPI_Interface((void *)new TopTools_DataMapOfShapeShape){}
+
+/// Clear 
+void GeomAPI_DataMapOfShapeShape::clear()
+{
+  implPtr<TopTools_DataMapOfShapeShape>()->Clear();
+}
+
+/// Adds the Key <K> to  the Map <me>  with  the  Item. Returns True  if the Key  was not already in the map
+bool GeomAPI_DataMapOfShapeShape::bind (const boost::shared_ptr<GeomAPI_Shape>& theKey, const boost::shared_ptr<GeomAPI_Shape>& theItem)
+{
+  bool flag(false);
+  if(implPtr<TopTools_DataMapOfShapeShape>()->Bind(theKey->impl<TopoDS_Shape>(), theItem->impl<TopoDS_Shape>()))
+       flag = true;
+  return flag;
+}
+
+/// Returns true if theKey is stored  in the map.
+bool GeomAPI_DataMapOfShapeShape::isBound (const boost::shared_ptr<GeomAPI_Shape>& theKey)
+{
+  bool flag(false);
+  if(impl<TopTools_DataMapOfShapeShape>().IsBound(theKey->impl<TopoDS_Shape>()))
+    flag = true;
+  return flag;
+}
+
+/// Returns  the Item stored  with the Key in the Map. To be checked before with isBound()
+const boost::shared_ptr<GeomAPI_Shape> GeomAPI_DataMapOfShapeShape::find(const boost::shared_ptr<GeomAPI_Shape>& theKey)
+{
+  boost::shared_ptr<GeomAPI_Shape> aShape(new GeomAPI_Shape());  
+  aShape->setImpl((void *)&(impl<TopTools_DataMapOfShapeShape>().Find(theKey->impl<TopoDS_Shape>())));
+  return aShape;
+}  
+  
+/// Removes the Key from the  map. Returns true if the Key was in the Map
+bool GeomAPI_DataMapOfShapeShape::unBind(const boost::shared_ptr<GeomAPI_Shape>& theKey)
+{
+  bool flag(false);
+  if(implPtr<TopTools_DataMapOfShapeShape>()->UnBind(theKey->impl<TopoDS_Shape>()))
+       flag = true;
+  return flag;
+}
\ No newline at end of file
diff --git a/src/GeomAPI/GeomAPI_DataMapOfShapeShape.h b/src/GeomAPI/GeomAPI_DataMapOfShapeShape.h
new file mode 100644 (file)
index 0000000..119cfda
--- /dev/null
@@ -0,0 +1,42 @@
+// File:        GeomAPI_DataMapOfShapeShape.h
+// Created:     28 Oct 2014
+// Author:      Sergey Zaritchny
+
+#ifndef GeomAPI_DataMapOfShapeShape_H_
+#define GeomAPI_DataMapOfShapeShape_H_
+
+#include <boost/shared_ptr.hpp>
+#include <GeomAPI_Interface.h>
+
+class GeomAPI_Pnt;
+class GeomAPI_Dir;
+
+/**\class GeomAPI_DataMapOfShapeShape
+ * \ingroup DataModel
+ * \brief DataMap of Shape - Shape defined by TopoDS_Shapes
+ */
+
+class GEOMAPI_EXPORT GeomAPI_DataMapOfShapeShape : public GeomAPI_Interface
+{
+ public:
+  /// Creation of plane by the point and normal
+  GeomAPI_DataMapOfShapeShape();
+
+  /// Clear 
+  void clear();
+
+  /// Adds the Key <K> to  the Map <me>  with  the  Item. Returns True  if the Key  was not already in the map
+  bool bind (const boost::shared_ptr<GeomAPI_Shape>& theKey, const boost::shared_ptr<GeomAPI_Shape>& theItem);
+
+  /// Returns true if theKey is stored  in the map.
+  bool isBound (const boost::shared_ptr<GeomAPI_Shape>& theKey);
+
+  /// Returns  the Item stored  with the Key in the Map.
+  const boost::shared_ptr<GeomAPI_Shape> find(const boost::shared_ptr<GeomAPI_Shape>& theKey);  
+  
+  /// Removes the Key from the  map. Returns true if the Key was in the Map
+  bool unBind(const boost::shared_ptr<GeomAPI_Shape>& theKey);
+};
+
+#endif
+