Salome HOME
NRI : First integration.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_StudyAPI.h
1 //  File      : SMESHGUI_StudyAPI.h
2 //  Created   : Fri May 17 15:23:35 CEST 2002
3 //  Author    : Yves FRICAUD 
4 //  Project   : SALOME
5 //  Module    : SMESH
6 //  Copyright : Open CASCADE
7 //  $Header: 
8
9 #ifndef _INCLUDE_SMESHGUI_StudyAPI_
10 #define _INCLUDE_SMESHGUI_StudyAPI_
11
12 // IDL Headers
13 #include <SALOMEconfig.h>
14 #include CORBA_SERVER_HEADER(SMESH_Gen)
15 #include CORBA_SERVER_HEADER(SMESH_Mesh)
16 #include CORBA_SERVER_HEADER(SMESH_Hypothesis)
17 #include CORBA_SERVER_HEADER(GEOM_Shape)
18 #include CORBA_SERVER_HEADER(SALOMEDS)
19 #include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
20         
21 class SMESH_subMesh_ptr;
22
23 class SMESHGUI_StudyAPI {
24
25   public:
26
27   SMESHGUI_StudyAPI ();
28
29   SMESHGUI_StudyAPI ( SALOMEDS::Study_ptr aStudy, SMESH::SMESH_Gen_ptr Gen);  
30
31   ~SMESHGUI_StudyAPI ();
32
33   // Adding in Study
34   CORBA::Object_ptr     StringToIOR(const char* IOR);
35
36   SALOMEDS::SObject_ptr AddNewMesh        (SMESH::SMESH_Mesh_ptr M);
37   
38   SALOMEDS::SObject_ptr AddNewHypothesis  (SMESH::SMESH_Hypothesis_ptr H);
39   SALOMEDS::SObject_ptr AddNewAlgorithms  (SMESH::SMESH_Hypothesis_ptr H);
40
41   SALOMEDS::SObject_ptr AddSubMeshOnShape (SALOMEDS::SObject_ptr SO_Mesh, SMESH::SMESH_subMesh_ptr SM, GEOM::shape_type ST);
42
43   SALOMEDS::SObject_ptr AddSubMeshOnShape (SALOMEDS::SObject_ptr SO_Mesh, SALOMEDS::SObject_ptr SO_GeomShape, SMESH::SMESH_subMesh_ptr SM, GEOM::shape_type ST);
44
45   void Update(SMESH::SMESH_Gen_ptr Gen);
46
47   void ModifiedMesh( SALOMEDS::SObject_ptr MorSM, bool right);
48
49
50   void SetShape  (SALOMEDS::SObject_ptr SO_Mesh_Or_SubMesh, SALOMEDS::SObject_ptr SO_GeomShape);
51   GEOM::GEOM_Shape_ptr GetShapeOnMeshOrSubMesh(SALOMEDS::SObject_ptr SO_Mesh_Or_SubMesh);
52
53   void SetHypothesis     (SALOMEDS::SObject_ptr SO_Mesh_Or_SubMesh, SALOMEDS::SObject_ptr SO_Hypothesis);
54   void SetAlgorithms     (SALOMEDS::SObject_ptr SO_Mesh_Or_SubMesh, SALOMEDS::SObject_ptr SO_Algorithms);
55
56   void UnSetHypothesis    (SALOMEDS::SObject_ptr SO_Applied_Hypothesis);
57   void UnSetAlgorithm     (SALOMEDS::SObject_ptr SO_Applied_Algorithm);
58
59   void SetTagHypothesisRoot();
60   
61   void SetName( SALOMEDS::SObject_ptr SO, const char* Name ) ;
62
63   //Exploration
64   
65   SALOMEDS::SObject_ptr GetMeshOrSubmesh  (SALOMEDS::SObject_ptr SO);
66
67   SALOMEDS::SObject_ptr FindMesh       (SMESH::SMESH_Mesh_ptr M);
68
69   SALOMEDS::SObject_ptr FindHypothesisOrAlgorithms (SMESH::SMESH_Hypothesis_ptr H);
70
71   SALOMEDS::SObject_ptr FindSubMesh    (SMESH::SMESH_subMesh_ptr SM);
72
73   //SALOMEDS::ListOfSObject_ptr FindMesh    (SALOMEDS_SObject_ptr SO_GeomShape);
74   //SALOMEDS_SObject_ptr        FindSubMesh (SALOMEDS_SObject_ptr SO_Mesh, SALOMEDS_SObject_ptr SO_GeomShape);
75     
76   static void setOrb();
77
78   private:
79   //fields
80   SALOMEDS::Study_var        myStudy;
81   SALOMEDS::StudyBuilder_var myStudyBuilder;
82   SALOMEDS::SComponent_var   mySComponentMesh;
83  
84 };
85 #endif
86