2 #include "COORDINATEClient.hxx"
4 #include "UtilClient.hxx"
5 #include "Utils_CorbaException.hxx"
7 using namespace MEDMEM;
8 //=============================================================================
12 //=============================================================================
14 COORDINATEClient::COORDINATEClient(const SALOME_MED::MESH_ptr m,
16 COORDINATE(m->getSpaceDimension(), 1, Mode),
18 IOR_Mesh(SALOME_MED::MESH::_duplicate(m))
20 BEGIN_OF("COORDINATEClient::COORDINATEClient(...)");
24 END_OF("COORDINATEClient::COORDINATEClient(...)");
26 //=============================================================================
28 * Remplit les informations générales
30 //=============================================================================
31 void COORDINATEClient::blankCopy()
33 BEGIN_OF("void COORDINATEClient::blankCopy()");
37 SALOME_MED::MESH::coordinateInfos *all = new SALOME_MED::MESH::coordinateInfos;
40 all= IOR_Mesh->getCoordGlobal();
42 catch (const exception & ex)
44 MESSAGE("Unable to acces Global information");
45 THROW_SALOME_CORBA_EXCEPTION(ex.what() ,SALOME::INTERNAL_ERROR);
48 //convertCorbaArray(tA, nA, IOR_Mesh->getCoordinatesNames());
49 convertCorbaArray(tA, nA, &all->coordNames);
50 ASSERT(nA == getSpaceDimension());
51 setCoordinatesNames(tA);
54 //convertCorbaArray(tA, nA, IOR_Mesh->getCoordinatesUnits());
55 convertCorbaArray(tA, nA, &all->coordUnits);
56 ASSERT(nA == getSpaceDimension());
57 setCoordinatesUnits(tA);
61 setCoordinatesSystem( CORBA::string_dup(all->coordSystem));
65 END_OF("void COORDINATEClient::blankCopy()");
67 //=============================================================================
69 * Remplit les coordonnées
71 //=============================================================================
73 void COORDINATEClient::fillCopy()
75 BEGIN_OF("void COORDINATEClient::fillCopy()");
77 //PN ?? Est-ce qu on peut pas mettre une variable dans COORDINATEClient
78 // qu on remplirait dans blankCopy ??
79 long nN = IOR_Mesh->getNumberOfNodes();
82 convertCorbaArray(tC, nC, IOR_Mesh->getCoordinates(MED_FULL_INTERLACE));
83 ASSERT(nC == (getSpaceDimension() * nN));
85 MEDARRAY<double> mC(tC, getSpaceDimension(), nN);
90 END_OF("void COORDINATEClient::fillCopy()");
93 //=============================================================================
95 * Retourne les coordonnées
97 //=============================================================================
99 const double * COORDINATEClient::getCoordinates(medModeSwitch Mode)
101 BEGIN_OF("void COORDINATEClient::getCoordinates()");
103 if (!_complete) fillCopy();
104 const double * c = COORDINATE::getCoordinates(Mode);
106 END_OF("void COORDINATEClient::getCoordinates()");
110 //=============================================================================
112 * Retourne une coordonnée
114 //=============================================================================
116 double COORDINATEClient::getCoordinate(int Number,int Axis)
118 BEGIN_OF("void COORDINATEClient::getCoordinate()");
120 if (!_complete) fillCopy();
121 double d = COORDINATE::getCoordinate(Number, Axis);
123 END_OF("void COORDINATEClient::getCoordinate()");
127 //=============================================================================
131 //=============================================================================
132 const double * COORDINATEClient::getCoordinateAxis(int Axis)
134 BEGIN_OF("void COORDINATEClient::getCoordinateAxis()");
136 if (!_complete) fillCopy();
137 const double *c = COORDINATE::getCoordinateAxis(Axis);
139 END_OF("void COORDINATEClient::getCoordinateAxis()");
143 //=============================================================================
145 * Retourne le nombre de noeuds
147 //=============================================================================
148 const int* COORDINATEClient::getNodesNumbers() const
150 BEGIN_OF("void COORDINATEClient::getNodesNumbers()");
152 if (!_complete) (const_cast < COORDINATEClient * >(this))->fillCopy();
154 MESSAGE("NON IMPLEMENTE DANS L'API CORBA");
155 END_OF("void COORDINATEClient::getNodesNumbers()");