Salome HOME
Merge from V6_main (04/10/2012)
[modules/geom.git] / src / GEOM_SWIG_WITHIHM / libGEOM_Swig.i
index fc1b8fea470c16bca415252410770836197d20cd..6bf220c2d4553eea783b191716153c0ff4146ac3 100644 (file)
 //
 %module libGEOM_Swig
 
-%include "GeometryGUI_Swig.i"
+%{
+#include "libGEOM_Swig.h"
+%}
+
+/*
+  managing C++ exception in the Python API
+*/
+%exception
+{
+  class PyAllowThreadsGuard {
+   public:
+    // Py_BEGIN_ALLOW_THREADS
+    PyAllowThreadsGuard() { _save = PyEval_SaveThread(); }
+    // Py_END_ALLOW_THREADS
+    ~PyAllowThreadsGuard() { PyEval_RestoreThread(_save); }
+   private:
+    PyThreadState *_save;
+  };
+
+  PyAllowThreadsGuard guard;
+
+  $action
+}
+
+class GEOM_Swig
+{
+ public:
+  GEOM_Swig();
+  ~GEOM_Swig();
+
+  void createAndDisplayGO(const char* Entry, bool isUpdated =true);
+  void eraseGO(const char* Entry, bool allWindows);
+  void createAndDisplayFitAllGO(const char* Entry);
+  void UpdateViewer();
+  int  getIndexTopology(const char *SubEntry, const char *Entry);
+  const char* getShapeTypeString(const char *Entry);
+
+  void setDisplayMode(const char* Entry, int mode, bool isUpdated =true);
+  void setVectorsMode(const char* Entry, bool isSet, bool isUpdated =true);
+  void setColor(const char* Entry, int red, int green, int blue, bool isUpdated =true);
+  void setTransparency(const char* Entry, float transp, bool isUpdated =true);
+  void setIsos(const char* Entry, int nbU, int nbV, bool isUpdated =true);
+  void setDeflection(const char* Entry, float deflect);
+  const char* getShapeTypeIcon(const char *Ior);
+
+  bool initGeomGen();
+};