Salome HOME
DCQ : Merge with Ecole Ete a6.
[modules/visu.git] / src / ENGINE / VISU_Engine_i.cc
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19
20 #include "VISU_Engine_i.hh"
21 #include "utilities.h"
22
23 #include CORBA_SERVER_HEADER(SALOME_Session)
24 #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog)
25
26 #include "SALOME_NamingService.hxx"
27 #include "Utils_ExceptHandlers.hxx"
28
29 using namespace std;
30
31 #ifdef _DEBUG_
32 static int MYDEBUG = 1;
33 #else
34 static int MYDEBUG = 0;
35 #endif
36
37 UNEXPECT_CATCH(SalomeException, SALOME::SALOME_Exception);
38
39 extern "C" {
40   PortableServer::ObjectId * 
41   VISUEngine_factory(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId,
42                      const char *instanceName, const char *interfaceName) 
43   {
44     if(MYDEBUG) MESSAGE("VisuEngine_factory : "<<interfaceName);
45     VISU::VISU_Gen_i * pVISU_Gen = new VISU::VISU_Gen_i(orb, poa, contId, instanceName, interfaceName);
46     return pVISU_Gen->getId() ;
47   }
48 }
49
50 namespace VISU{
51   //===========================================================================
52   VISU_Gen_i::VISU_Gen_i(CORBA::ORB_ptr orb,
53                          PortableServer::POA_ptr poa,
54                          PortableServer::ObjectId * contId, 
55                          const char *instanceName, 
56                          const char *interfaceName) :
57     Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
58   {
59     _thisObj = this ;
60     _id = _poa->activate_object(_thisObj);
61     SALOME_NamingService aNamingService(orb);
62     CORBA::Object_ptr anObject = aNamingService.Resolve("/Kernel/Session");
63     SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
64     //aSession->GetInterface(); 
65     Engines::Component_var aComponent = aSession->GetVisuComponent();
66     myVisuGen = VISU::VISU_Gen::_narrow(aComponent);
67   } 
68
69   VISU_Gen_i::~VISU_Gen_i(){
70     if(MYDEBUG) MESSAGE("VISU_Gen_i::~VISU_Gen_i");
71   }
72
73   VISU::VISUType VISU_Gen_i::GetType() {
74         return myVisuGen->GetType();
75   };
76
77   //===========================================================================
78   bool VISU_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
79                         const SALOMEDS::TMPFile & theStream,
80                         const char* theURL,
81                         bool isMultiFile)
82   {
83     return myVisuGen->Load(theComponent,theStream,theURL,isMultiFile);
84   }
85
86   bool VISU_Gen_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
87                              const SALOMEDS::TMPFile & theStream,
88                              const char* theURL,
89                              bool isMultiFile) 
90   {
91     return Load(theComponent, theStream, theURL, isMultiFile);
92   }
93
94   char* VISU_Gen_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
95                                            const char* aLocalPersistentID,
96                                            CORBA::Boolean isMultiFile,
97                                            CORBA::Boolean isASCII) 
98   {
99     return myVisuGen->LocalPersistentIDToIOR(theSObject, aLocalPersistentID, isMultiFile, isASCII);
100   }
101
102
103   //===========================================================================
104   SALOMEDS::TMPFile* VISU_Gen_i::Save(SALOMEDS::SComponent_ptr theComponent,
105                                       const char* theURL,
106                                       bool isMultiFile)
107   {
108     return myVisuGen->Save(theComponent,theURL,isMultiFile);
109   }
110
111   SALOMEDS::TMPFile* VISU_Gen_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
112                                            const char* theURL,
113                                            bool isMultiFile) 
114   {
115     return myVisuGen->Save(theComponent,theURL,isMultiFile);
116   }
117
118
119   char* VISU_Gen_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
120                                            const char* IORString,
121                                            CORBA::Boolean isMultiFile,
122                                            CORBA::Boolean isASCII) 
123   {
124     return myVisuGen->IORToLocalPersistentID(theSObject, IORString, isMultiFile, isASCII);
125   }
126
127
128   char* VISU_Gen_i::GetID(){
129     return myVisuGen->GetID();
130   }
131
132
133   void VISU_Gen_i::SetCurrentStudy(SALOMEDS::Study_ptr theStudy){
134     myVisuGen->SetCurrentStudy(theStudy);
135   }
136
137
138   SALOMEDS::Study_ptr VISU_Gen_i::GetCurrentStudy(){
139     return myVisuGen->GetCurrentStudy();
140   }
141
142
143   ViewManager_ptr VISU_Gen_i::GetViewManager(){
144     return myVisuGen->GetViewManager();
145   }
146
147
148   SALOMEDS::SObject_ptr VISU_Gen_i::ImportTables(const char* theFileName){
149     return myVisuGen->ImportTables(theFileName);
150   }
151
152
153   CORBA::Boolean VISU_Gen_i::ExportTableToFile(SALOMEDS::SObject_ptr theTable,
154                                                const char* theFileName)
155   {
156     return myVisuGen->ExportTableToFile(theTable, theFileName);
157   }
158
159
160   Result_ptr VISU_Gen_i::ImportFile(const char* theFileName){
161     return myVisuGen->ImportFile(theFileName);
162   }
163
164
165   Result_ptr VISU_Gen_i::CopyAndImportFile(const char* theFileName){
166     return myVisuGen->CopyAndImportFile(theFileName);
167   }
168
169
170   Result_ptr VISU_Gen_i::ImportMed(SALOMEDS::SObject_ptr theMedSObject){
171     return myVisuGen->ImportMed(theMedSObject);
172   }
173
174
175   Result_ptr VISU_Gen_i::ImportMedField(SALOME_MED::FIELD_ptr theField){
176     return myVisuGen->ImportMedField(theField);
177   }
178
179
180   Mesh_ptr VISU_Gen_i::MeshOnEntity(Result_ptr theResult, 
181                                     const char* theMeshName, 
182                                     VISU::Entity theEntity)
183   {
184     return myVisuGen->MeshOnEntity(theResult,theMeshName,theEntity);
185   }
186
187   
188   Mesh_ptr VISU_Gen_i::FamilyMeshOnEntity(Result_ptr theResult, 
189                                           const char* theMeshName, 
190                                           VISU::Entity theEntity, 
191                                           const char* theFamilyName)
192   {
193     return myVisuGen->FamilyMeshOnEntity(theResult,theMeshName,theEntity,theFamilyName);
194   }
195
196
197   Mesh_ptr VISU_Gen_i::GroupMesh(Result_ptr theResult, 
198                                  const char* theMeshName, 
199                                  const char* theGroupName)
200   {
201     return myVisuGen->GroupMesh(theResult,theMeshName,theGroupName);
202   }
203
204
205   ScalarMap_ptr VISU_Gen_i::ScalarMapOnField(Result_ptr theResult, 
206                                              const char* theMeshName, 
207                                              VISU::Entity theEntity, 
208                                              const char* theFieldName, 
209                                              CORBA::Double theIteration)
210   {
211     return myVisuGen->ScalarMapOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
212   }
213
214
215   DeformedShape_ptr VISU_Gen_i::DeformedShapeOnField(Result_ptr theResult, 
216                                                      const char* theMeshName, 
217                                                      VISU::Entity theEntity, 
218                                                      const char* theFieldName, 
219                                                      CORBA::Double theIteration)
220   {
221     return myVisuGen->DeformedShapeOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
222   }
223
224
225   Vectors_ptr VISU_Gen_i::VectorsOnField(Result_ptr theResult, 
226                                          const char* theMeshName, 
227                                          VISU::Entity theEntity, 
228                                          const char* theFieldName, 
229                                          CORBA::Double theIteration)
230   {
231     return myVisuGen->VectorsOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
232   }
233
234   IsoSurfaces_ptr VISU_Gen_i::IsoSurfacesOnField(Result_ptr theResult, 
235                                                  const char* theMeshName, 
236                                                  VISU::Entity theEntity, 
237                                                  const char* theFieldName, 
238                                                  CORBA::Double theIteration)
239   {
240     return myVisuGen->IsoSurfacesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
241   }
242
243
244   StreamLines_ptr VISU_Gen_i::StreamLinesOnField(Result_ptr theResult, 
245                                                  const char* theMeshName, 
246                                                  VISU::Entity theEntity, 
247                                                  const char* theFieldName, 
248                                                  CORBA::Double theIteration)
249   {
250     return myVisuGen->StreamLinesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
251   }
252
253
254   CutPlanes_ptr VISU_Gen_i::CutPlanesOnField(Result_ptr theResult, 
255                                              const char* theMeshName, 
256                                              VISU::Entity theEntity, 
257                                              const char* theFieldName, 
258                                              CORBA::Double theIteration)
259   {
260     return myVisuGen->CutPlanesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
261   }
262
263
264   CutLines_ptr VISU_Gen_i::CutLinesOnField(Result_ptr theResult, 
265                                            const char* theMeshName, 
266                                            VISU::Entity theEntity, 
267                                            const char* theFieldName, 
268                                            CORBA::Double theIteration)
269   {
270     return myVisuGen->CutLinesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
271   }
272
273
274   Table_ptr VISU_Gen_i::CreateTable(const char* theTableEntry){
275     return myVisuGen->CreateTable(theTableEntry);
276   }
277
278
279   Curve_ptr VISU_Gen_i::CreateCurve(Table_ptr theTable, 
280                                     CORBA::Long theHRow, 
281                                     CORBA::Long theVRow)
282   {
283     return myVisuGen->CreateCurve(theTable,theHRow,theVRow);
284   }
285
286
287   Container_ptr VISU_Gen_i::CreateContainer(){
288     return myVisuGen->CreateContainer();
289   }
290
291
292   Animation_ptr VISU_Gen_i::CreateAnimation(View3D_ptr theView3D){
293     return myVisuGen->CreateAnimation(theView3D);
294   }
295
296
297   void VISU_Gen_i::Close(SALOMEDS::SComponent_ptr theComponent){
298     myVisuGen->Close(theComponent);
299   }
300
301
302   char* VISU_Gen_i::ComponentDataType(){
303     return CORBA::string_dup("VISU");
304   }
305
306
307   CORBA::Boolean VISU_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR) {
308     return myVisuGen->CanPublishInStudy(theIOR);
309   }
310
311
312   SALOMEDS::SObject_ptr VISU_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
313                                                    SALOMEDS::SObject_ptr theSObject,
314                                                    CORBA::Object_ptr theObject,
315                                                    const char* theName) 
316     throw (SALOME::SALOME_Exception) 
317   {
318     return myVisuGen->PublishInStudy(theStudy, theSObject, theObject, theName);
319   }
320     
321
322   CORBA::Boolean VISU_Gen_i::CanCopy(SALOMEDS::SObject_ptr theObject) {
323     return myVisuGen->CanCopy(theObject);
324   }
325   
326
327   SALOMEDS::TMPFile* VISU_Gen_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID) {
328     return myVisuGen->CopyFrom(theObject, theObjectID);
329   }
330   
331
332   CORBA::Boolean VISU_Gen_i::CanPaste(const char* theComponentName, CORBA::Long theObjectID) {
333     return myVisuGen->CanPaste(theComponentName, theObjectID);
334   }
335   
336
337   SALOMEDS::SObject_ptr VISU_Gen_i::PasteInto(const SALOMEDS::TMPFile& theStream,
338                                               CORBA::Long theObjectID,
339                                               SALOMEDS::SObject_ptr theObject) 
340   {
341     return myVisuGen->PasteInto(theStream,theObjectID,theObject);
342   }
343
344
345   /*! SAN & VSR : Test QT_EVENT 
346     >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
347   */
348   void VISU_Gen_i::CreateTestView() {
349     myVisuGen->CreateTestView();
350   }
351   void VISU_Gen_i::ShowTestObject() {
352     myVisuGen->ShowTestObject();
353   }
354   /*! SAN & VSR : Test QT_EVENT
355     <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
356   */
357
358 };