1 //=============================================================================
2 // File : MEDMEM_Fielddouble_i.hxx
5 // Copyright : EDF 2002
6 // $Header: /export/home/PAL/MED_SRC/src/MEDMEM_I/MEDMEM_Fielddouble_i.hxx
7 //=============================================================================
9 #include "MEDMEM_FieldDouble_i.hxx"
10 #include "utilities.h"
11 #include "MEDMEM_convert.hxx"
12 using namespace MEDMEM;
14 //=============================================================================
18 //=============================================================================
19 FIELDDOUBLE_i::FIELDDOUBLE_i(): FIELDOF_i<double>()
21 BEGIN_OF("Default Constructor FIELDDOUBLE_i");
22 END_OF("Default Constructor FIELDDOUBLE_i");
24 //=============================================================================
28 //=============================================================================
29 FIELDDOUBLE_i::~FIELDDOUBLE_i()
31 BEGIN_OF("Default Destructor FIELDDOUBLE_i");
32 END_OF("Default Destructor FIELDDOUBLE_i");
34 //=============================================================================
36 * Constructor par recopie
38 //=============================================================================
39 FIELDDOUBLE_i::FIELDDOUBLE_i(FIELDDOUBLE_i & fd):
40 FIELDOF_i<double>(fd._fieldTptr)
42 BEGIN_OF("Default Constructor FIELDDOUBLE_i");
43 END_OF("Default Constructor FIELDDOUBLE_i");
45 //=============================================================================
49 //=============================================================================
50 FIELDDOUBLE_i::FIELDDOUBLE_i(SALOME_MED::SUPPORT_ptr mySupportIOR,::FIELD<double> * const f): FIELDOF_i<double>(mySupportIOR,f)
52 BEGIN_OF("Constructor FIELDDOUBLE_i");
53 END_OF(" Constructor FIELDDOUBLE_i");
56 //=============================================================================
58 * CORBA: Accessor for Field's values
60 //=============================================================================
62 SALOME_MED::double_array* FIELDDOUBLE_i::getValue( SALOME_MED::medModeSwitch mode )
63 throw (SALOME::SALOME_Exception)
66 THROW_SALOME_CORBA_EXCEPTION("No associated Field", \
67 SALOME::INTERNAL_ERROR);
68 SALOME_MED::double_array_var myseq = new SALOME_MED::double_array;
71 int nbval=_fieldTptr->getNumberOfComponents();
73 // Ajout NB pour avoir la valeur correct de nbval
74 SALOME_MED::medEntityMesh entity = _support->getEntity();
75 if (_support->isOnAllElements())
77 if (entity == SALOME_MED::MED_NODE)
78 nbval = (_support->getMesh()->getNumberOfNodes())*nbval;
80 nbval = (_support->getMesh()->getNumberOfElements(entity,SALOME_MED::MED_ALL_ELEMENTS))*nbval;
84 nbval = (_support->getNumberOfElements(SALOME_MED::MED_ALL_ELEMENTS))*nbval;
87 medModeSwitch modemed=convertIdlModeToMedMode(mode);
88 const double * values =_fieldTptr->getValue(modemed);
91 for (int i=0; i<nbval; i++)
96 catch (MEDEXCEPTION &ex)
98 MESSAGE("Unable to acces Field ");
99 THROW_SALOME_CORBA_EXCEPTION(ex.what(), SALOME::INTERNAL_ERROR);
101 return myseq._retn();