Salome HOME
Merge changes from 'master' branch.
[modules/smesh.git] / src / SMESH_SWIG_WITHIHM / libSMESH_Swig.h
index 9b4c5319d62f5058bd2bc3330de3966e5ab319cf..fa564efa402ea2ba3e08771af5afe4f11eac62fb 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // 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.
+// 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
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SALOMEDS)
 
+//std includes
+#include <vector>
+#include <utility>
+
+#include <SVTK_Selection.h>
+
+#include <SVTK_Selection.h>
+
+typedef enum
+  {
+    Undefined  = -1,
+    Node       = NodeSelection,
+    Cell       = CellSelection,
+    EdgeOfCell = EdgeOfCellSelection,
+    Edge       = EdgeSelection,
+    Face       = FaceSelection,
+    Volume     = VolumeSelection,
+    Actor      = ActorSelection,
+    Elem0D     = Elem0DSelection,
+    Ball       = BallSelection
+  } SelectionMode;
+
+typedef struct
+{
+  double r, g, b;
+  int delta;
+} surfaceColorStruct;
+
+typedef struct
+{
+  double r, g, b;
+  int delta;
+} volumeColorStruct;
+
+typedef struct
+{
+  double r, g, b;
+} edgeColorStruct;
+
+typedef struct
+{
+  double r, g, b;
+} nodeColorStruct;
+
+struct actorAspect
+{
+  surfaceColorStruct surfaceColor;
+  volumeColorStruct volumeColor;
+  edgeColorStruct edgeColor;
+  nodeColorStruct nodeColor;
+  double opacity;
+};
+
 class SMESH_SWIG_EXPORT SMESH_Swig
 {
 public:
   SMESH_Swig();
   ~SMESH_Swig();
     
-  void                       Init( int );
+  void                       Init();
 
   const char*                AddNewMesh( const char* );
 
@@ -67,6 +120,8 @@ public:
 
   void                       EraseActor( const char*, const bool allViewers = false );
 
+  void                       UpdateActor( const char* Mesh_Entry );
+
   /*!
    * \brief Set mesh icon according to compute status
     * \param Mesh_Entry - entry of a mesh
@@ -74,8 +129,20 @@ public:
    */
   void                       SetMeshIcon( const char*, const bool, const bool );
 
+  actorAspect                GetActorAspect(const char* Mesh_Entry, int viewId = 0 );
+  void                       SetActorAspect( const actorAspect& actorPres, const char* Mesh_Entry, int viewId = 0  );
+
+  void setSelectionMode( SelectionMode selectionMode );
+  std::vector<int> getSelected( const char* Mesh_Entry );
+  std::vector<std::pair<int, int> > getSelectedEdgeOfCell( const char* Mesh_Entry );
+
+  // --------------------- for the test purposes -----------------------
+  SelectionMode getSelectionMode();
+  void select( const char *id, std::vector<int> ids, bool append = false );
+  void select( const char *id, int id1, bool append = false );
+  void select( const char *id, std::vector<std::pair<int,int> >, bool apend = false );
+
 private:
-  SALOMEDS::Study_var        myStudy;
   SALOMEDS::StudyBuilder_var myStudyBuilder;
   SALOMEDS::SComponent_var   mySComponentMesh;
 };