]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Correction compilation on Linux
authorabd <abd@opencascade.com>
Mon, 28 Apr 2008 06:23:14 +0000 (06:23 +0000)
committerabd <abd@opencascade.com>
Mon, 28 Apr 2008 06:23:14 +0000 (06:23 +0000)
src/CONVERTOR/Makefile.am
src/CONVERTOR/VISU_MedConvertor.cxx
src/PIPELINE/Makefile.am
src/VISU_I/VISU_CorbaMedConvertor.cxx

index f0782c7caae0ee6137f773e38d0193495bdcb87d..9bfefbf337281046dc31321390bd25c8749bc81a 100644 (file)
@@ -84,6 +84,7 @@ libVisuConvertor_la_CPPFLAGS= \
 
 
 libVisuConvertor_la_LDFLAGS= \
+       $(MED2_LIBS) \
        $(VTK_LIBS) \
        $(QT_LIBS) \
        $(CAS_KERNEL) \
index 090c727fde8222d24cc885a7169cd0af855df099..8e02d8e8dedc3f1426eec4976d92023f3ae1f157 100644 (file)
@@ -24,6 +24,7 @@
 //  Author : Alexey PETROV
 //  Module : VISU
 
+using namespace std;
 
 #include "VISU_MedConvertor.hxx"
 #include "VISU_ConvertorUtils.hxx"
@@ -1370,7 +1371,7 @@ namespace VISU
 //---------------------------------------------------------------
 extern "C"
 VISU_Convertor* 
-CreateConvertor(const string& theFileName)
+CreateConvertor(const std::string& theFileName)
 {
   if(MED::PWrapper aMed = MED::CrWrapper(theFileName,true))
     return new VISU_MedConvertor(theFileName, aMed);
@@ -1378,7 +1379,7 @@ CreateConvertor(const string& theFileName)
 }
 
 VISU_MedConvertor
-::VISU_MedConvertor(const string& theFileName, MED::PWrapper theMed):
+::VISU_MedConvertor(const std::string& theFileName, MED::PWrapper theMed):
   myIsEntitiesDone(false),
   myIsFieldsDone(false),
   myIsGroupsDone(false),
index bb169513ede54750709e593eae0164cd375e37b6..51adaa9a0713cb4a6107386c6a37cadbcfa128ed 100644 (file)
@@ -106,6 +106,7 @@ libVisuPipeLine_la_CPPFLAGS= \
        -I$(srcdir)/../CONVERTOR
 
 libVisuPipeLine_la_LDFLAGS= \
+       $(MED2_LIBS) \
        $(VTK_LIBS) -lVTKViewer \
        $(KERNEL_LDFLAGS) -lSALOMELocalTrace \
        $(GUI_LDFLAGS) \
index 11427b1a9b0b1198d74ce49dbf0d7b526512a9dd..aea4b36ce887d7d6606dbe4c9d7f89e36c10d3fa 100644 (file)
@@ -673,8 +673,16 @@ VISU_MEDFieldConvertor
 
   vtkIdType aDataType = VTK_DOUBLE;
   SALOME_MED::FIELDDOUBLE_ptr aFieldDouble = SALOME_MED::FIELDDOUBLE::_narrow(myField);
-  if(aFieldDouble->_is_nil())
-    aDataType = VTK_LONG;
+  if(aFieldDouble->_is_nil()) {
+    // PAL18313: Mandriva 64 porting: CRASH at creating presentation on "Import Structure".
+    if (sizeof(long) == 4 ) // Size of CORBA::Long is always 4 (see CORBA_basetypes.h)
+      aDataType = VTK_LONG;
+    else if (sizeof(int) == 4)
+      aDataType = VTK_INT;
+    else {
+      throw std::runtime_error("Can't map CORBA::Long to a VTK type");
+    }
+  }
   aField->Init(myField->getNumberOfComponents(), aDataType);
 
   if(MYDEBUG) MESSAGE("VISU_MEDFieldConvertor::Build - aMeshName = "<<aMeshName<<"; myDim = "<<aMesh->myDim);
@@ -1069,8 +1077,17 @@ VISU_MEDConvertor
 
          vtkIdType aDataType = VTK_DOUBLE;
          SALOME_MED::FIELDDOUBLE_ptr aFieldDouble = SALOME_MED::FIELDDOUBLE::_narrow(aMEDField);
-         if(aFieldDouble->_is_nil())
-           aDataType = VTK_LONG;
+         if(aFieldDouble->_is_nil()) {
+            // PAL18313: Mandriva 64 porting: CRASH at creating presentation on "Import Structure".
+            if (sizeof(long) == 4 ) // Size of CORBA::Long is always 4 (see CORBA_basetypes.h)
+              aDataType = VTK_LONG;
+            else if (sizeof(int) == 4)
+              aDataType = VTK_INT;
+            else {
+              MESSAGE("Can't map CORBA::Long to a VTK type, for Field " << aFieldName);
+              continue;
+            }
+          }
          aField->Init(aMEDField->getNumberOfComponents(), aDataType);
 
          if(MYDEBUG)