1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
18 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
20 #include "VISU_Engine_i.hh"
21 #include "utilities.h"
23 #include CORBA_SERVER_HEADER(SALOME_Session)
24 #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog)
26 #include "SALOME_NamingService.hxx"
27 #include "Utils_ExceptHandlers.hxx"
32 static int MYDEBUG = 1;
34 static int MYDEBUG = 0;
37 UNEXPECT_CATCH(SalomeException, SALOME::SALOME_Exception);
40 PortableServer::ObjectId *
41 VISUEngine_factory(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId,
42 const char *instanceName, const char *interfaceName)
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() ;
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)
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->GetComponent("libVISUEngineImpl.so");
66 myVisuGen = VISU::VISU_Gen::_narrow(aComponent);
69 VISU_Gen_i::~VISU_Gen_i(){
70 if(MYDEBUG) MESSAGE("VISU_Gen_i::~VISU_Gen_i");
73 VISU::VISUType VISU_Gen_i::GetType() {
74 return myVisuGen->GetType();
77 //===========================================================================
78 bool VISU_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
79 const SALOMEDS::TMPFile & theStream,
83 return myVisuGen->Load(theComponent,theStream,theURL,isMultiFile);
86 bool VISU_Gen_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
87 const SALOMEDS::TMPFile & theStream,
91 return Load(theComponent, theStream, theURL, isMultiFile);
94 char* VISU_Gen_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
95 const char* aLocalPersistentID,
96 CORBA::Boolean isMultiFile,
97 CORBA::Boolean isASCII)
99 return myVisuGen->LocalPersistentIDToIOR(theSObject, aLocalPersistentID, isMultiFile, isASCII);
103 //===========================================================================
104 SALOMEDS::TMPFile* VISU_Gen_i::Save(SALOMEDS::SComponent_ptr theComponent,
108 return myVisuGen->Save(theComponent,theURL,isMultiFile);
111 SALOMEDS::TMPFile* VISU_Gen_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
115 return myVisuGen->Save(theComponent,theURL,isMultiFile);
119 char* VISU_Gen_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
120 const char* IORString,
121 CORBA::Boolean isMultiFile,
122 CORBA::Boolean isASCII)
124 return myVisuGen->IORToLocalPersistentID(theSObject, IORString, isMultiFile, isASCII);
128 char* VISU_Gen_i::GetID(){
129 return myVisuGen->GetID();
133 void VISU_Gen_i::SetCurrentStudy(SALOMEDS::Study_ptr theStudy){
134 myVisuGen->SetCurrentStudy(theStudy);
138 SALOMEDS::Study_ptr VISU_Gen_i::GetCurrentStudy(){
139 return myVisuGen->GetCurrentStudy();
143 ViewManager_ptr VISU_Gen_i::GetViewManager(){
144 return myVisuGen->GetViewManager();
148 SALOMEDS::SObject_ptr VISU_Gen_i::ImportTables(const char* theFileName){
149 return myVisuGen->ImportTables(theFileName);
153 CORBA::Boolean VISU_Gen_i::ExportTableToFile(SALOMEDS::SObject_ptr theTable,
154 const char* theFileName)
156 return myVisuGen->ExportTableToFile(theTable, theFileName);
160 Result_ptr VISU_Gen_i::ImportFile(const char* theFileName){
161 return myVisuGen->ImportFile(theFileName);
165 Result_ptr VISU_Gen_i::CopyAndImportFile(const char* theFileName){
166 return myVisuGen->CopyAndImportFile(theFileName);
170 Result_ptr VISU_Gen_i::ImportMed(SALOMEDS::SObject_ptr theMedSObject){
171 return myVisuGen->ImportMed(theMedSObject);
175 Result_ptr VISU_Gen_i::ImportMedField(SALOME_MED::FIELD_ptr theField){
176 return myVisuGen->ImportMedField(theField);
180 Mesh_ptr VISU_Gen_i::MeshOnEntity(Result_ptr theResult,
181 const char* theMeshName,
182 VISU::Entity theEntity)
184 return myVisuGen->MeshOnEntity(theResult,theMeshName,theEntity);
188 Mesh_ptr VISU_Gen_i::FamilyMeshOnEntity(Result_ptr theResult,
189 const char* theMeshName,
190 VISU::Entity theEntity,
191 const char* theFamilyName)
193 return myVisuGen->FamilyMeshOnEntity(theResult,theMeshName,theEntity,theFamilyName);
197 Mesh_ptr VISU_Gen_i::GroupMesh(Result_ptr theResult,
198 const char* theMeshName,
199 const char* theGroupName)
201 return myVisuGen->GroupMesh(theResult,theMeshName,theGroupName);
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)
211 return myVisuGen->ScalarMapOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
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)
221 return myVisuGen->DeformedShapeOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
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)
231 return myVisuGen->VectorsOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
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)
240 return myVisuGen->IsoSurfacesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
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)
250 return myVisuGen->StreamLinesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
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)
260 return myVisuGen->CutPlanesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
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)
270 return myVisuGen->CutLinesOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
274 Plot3D_ptr VISU_Gen_i::Plot3DOnField(Result_ptr theResult,
275 const char* theMeshName,
276 VISU::Entity theEntity,
277 const char* theFieldName,
278 CORBA::Double theIteration)
280 return myVisuGen->Plot3DOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
284 Table_ptr VISU_Gen_i::CreateTable(const char* theTableEntry){
285 return myVisuGen->CreateTable(theTableEntry);
289 Curve_ptr VISU_Gen_i::CreateCurve(Table_ptr theTable,
293 return myVisuGen->CreateCurve(theTable,theHRow,theVRow);
297 Container_ptr VISU_Gen_i::CreateContainer(){
298 return myVisuGen->CreateContainer();
302 Animation_ptr VISU_Gen_i::CreateAnimation(View3D_ptr theView3D){
303 return myVisuGen->CreateAnimation(theView3D);
307 void VISU_Gen_i::DeleteResult(Result_ptr theResult){
308 myVisuGen->DeleteResult(theResult);
312 void VISU_Gen_i::DeletePrs3d(Prs3d_ptr thePrs3d){
313 myVisuGen->DeletePrs3d(thePrs3d);
317 void VISU_Gen_i::Close(SALOMEDS::SComponent_ptr theComponent){
318 myVisuGen->Close(theComponent);
322 char* VISU_Gen_i::ComponentDataType(){
323 return CORBA::string_dup("VISU");
327 CORBA::Boolean VISU_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR) {
328 return myVisuGen->CanPublishInStudy(theIOR);
332 SALOMEDS::SObject_ptr VISU_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
333 SALOMEDS::SObject_ptr theSObject,
334 CORBA::Object_ptr theObject,
336 throw (SALOME::SALOME_Exception)
338 return myVisuGen->PublishInStudy(theStudy, theSObject, theObject, theName);
342 CORBA::Boolean VISU_Gen_i::CanCopy(SALOMEDS::SObject_ptr theObject) {
343 return myVisuGen->CanCopy(theObject);
347 SALOMEDS::TMPFile* VISU_Gen_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID) {
348 return myVisuGen->CopyFrom(theObject, theObjectID);
352 CORBA::Boolean VISU_Gen_i::CanPaste(const char* theComponentName, CORBA::Long theObjectID) {
353 return myVisuGen->CanPaste(theComponentName, theObjectID);
357 SALOMEDS::SObject_ptr VISU_Gen_i::PasteInto(const SALOMEDS::TMPFile& theStream,
358 CORBA::Long theObjectID,
359 SALOMEDS::SObject_ptr theObject)
361 return myVisuGen->PasteInto(theStream,theObjectID,theObject);
363 Engines::TMPFile* VISU_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
364 CORBA::Boolean theIsPublished,
365 CORBA::Boolean& theIsValidScript)
367 return myVisuGen->DumpPython(theStudy, theIsPublished, theIsValidScript);