1 //=============================================================================
2 // File : Fielddouble_i.hxx
5 // Copyright : EDF 2002
6 // $Header: /export/home/CVS/SALOME_ROOT/MED/src/MedMem/Fielddouble_i.hxx
7 //=============================================================================
9 #include "FieldDouble_i.hxx"
10 #include "utilities.h"
11 #include "convert.hxx"
13 //=============================================================================
17 //=============================================================================
18 FIELDDOUBLE_i::FIELDDOUBLE_i(): FIELDOF_i<double>()
20 BEGIN_OF("Default Constructor FIELDDOUBLE_i");
21 END_OF("Default Constructor FIELDDOUBLE_i");
23 //=============================================================================
27 //=============================================================================
28 FIELDDOUBLE_i::~FIELDDOUBLE_i()
30 BEGIN_OF("Default Destructor FIELDDOUBLE_i");
31 END_OF("Default Destructor FIELDDOUBLE_i");
33 //=============================================================================
35 * Constructor par recopie
37 //=============================================================================
38 FIELDDOUBLE_i::FIELDDOUBLE_i(FIELDDOUBLE_i & fd):
39 FIELDOF_i<double>(fd._fieldTptr)
41 BEGIN_OF("Default Constructor FIELDDOUBLE_i");
42 END_OF("Default Constructor FIELDDOUBLE_i");
44 //=============================================================================
48 //=============================================================================
49 FIELDDOUBLE_i::FIELDDOUBLE_i(SALOME_MED::SUPPORT_ptr mySupportIOR,::FIELD<double> * const f): FIELDOF_i<double>(mySupportIOR,f)
51 BEGIN_OF("Constructor FIELDDOUBLE_i");
52 END_OF(" Constructor FIELDDOUBLE_i");
55 //=============================================================================
57 * CORBA: Accessor for Field's values
59 //=============================================================================
61 Engines::double_array* FIELDDOUBLE_i::getValue( SALOME_MED::medModeSwitch mode )
62 throw (SALOME::SALOME_Exception)
65 THROW_SALOME_CORBA_EXCEPTION("No associated Field", \
66 SALOME::INTERNAL_ERROR);
67 Engines::double_array_var myseq = new Engines::double_array;
70 int nbval=_fieldTptr->getNumberOfComponents();
72 // Ajout NB pour avoir la valeur correct de nbval
73 SALOME_MED::medEntityMesh entity = _support->getEntity();
74 if (_support->isOnAllElements())
76 if (entity == SALOME_MED::MED_NODE)
77 nbval = (_support->getMesh()->getNumberOfNodes())*nbval;
79 nbval = (_support->getMesh()->getNumberOfElements(entity,SALOME_MED::MED_ALL_ELEMENTS))*nbval;
83 nbval = (_support->getNumberOfElements(SALOME_MED::MED_ALL_ELEMENTS))*nbval;
86 medModeSwitch modemed=convertIdlModeToMedMode(mode);
87 const double * values =_fieldTptr->getValue(modemed);
90 for (int i=0; i<nbval; i++)
97 MESSAGE("Unable to acces Field ");
98 THROW_SALOME_CORBA_EXCEPTION("Unable to acces Field C++ Object"\
99 ,SALOME::INTERNAL_ERROR);
101 return myseq._retn();