1 // VISU OBJECT : interactive object for VISU entities implementation
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : VISU_CorbaMedConvertor.hxx
25 // Author : Alexey PETROV
28 // Copyright (C) 2003 CEA/DEN, EDF R&D
30 #ifndef VISU_CorbaMedConvertor_HeaderFile
31 #define VISU_CorbaMedConvertor_HeaderFile
33 #include "VISUConfig.hh"
34 #include "VISU_Convertor_impl.hxx"
40 //---------------------------------------------------------------
41 struct TCMesh: virtual TMeshImpl
43 SALOME_MED::MESH_var myMesh;
45 typedef SharedPtr<TCMesh> PCMesh;
48 //---------------------------------------------------------------
49 struct TCProfile: virtual TProfileImpl
51 typedef SharedPtr<TCProfile> PCProfile;
54 //---------------------------------------------------------------
55 struct TCSubMesh: virtual TSubMeshImpl
57 typedef SharedPtr<TCSubMesh> PCSubMesh;
60 //---------------------------------------------------------------
61 struct TCMeshOnEntity: virtual TMeshOnEntityImpl
63 SALOME_MED::SUPPORT_var mySupport;
64 typedef std::pair<int,int> TIndexAndSize;
65 typedef std::map<int,TIndexAndSize> TCellsFirstIndex;
66 TCellsFirstIndex myCellsFirstIndex;
68 typedef SharedPtr<TCMeshOnEntity> PCMeshOnEntity;
71 //---------------------------------------------------------------
72 struct TCFamily: virtual TFamilyImpl
74 SALOME_MED::FAMILY_var myFamily;
76 typedef SharedPtr<TCFamily> PCFamily;
79 //---------------------------------------------------------------
80 struct TCGroup: virtual TGroupImpl
82 SALOME_MED::GROUP_var myGroup;
84 typedef SharedPtr<TCGroup> PCGroup;
87 //---------------------------------------------------------------
88 struct TCField: virtual TFieldImpl
90 typedef SharedPtr<TCField> PCField;
93 //---------------------------------------------------------------
94 struct TCValForTime: virtual TValForTimeImpl
96 SALOME_MED::FIELD_var myField;
98 typedef SharedPtr<TCValForTime> PCValForTime;
103 class VISU_MEDConvertor: public VISU_Convertor_impl{
105 SALOMEDS::SObject_var mySObject;
106 VISU_MEDConvertor() {};
109 VISU_MEDConvertor(SALOMEDS::SObject_ptr theMedSObject):
110 mySObject(SALOMEDS::SObject::_duplicate(theMedSObject))
120 Build(SALOME_MED::MED_ptr theMED);
123 Build(SALOMEDS::ChildIterator_ptr theTimeStampIterator);
127 LoadMeshOnEntity(VISU::PMeshImpl theMesh,
128 VISU::PMeshOnEntityImpl theMeshOnEntity);
132 LoadFamilyOnEntity(VISU::PMeshImpl theMesh,
133 VISU::PMeshOnEntityImpl theMeshOnEntity,
134 VISU::PFamilyImpl theFamily);
138 LoadMeshOnGroup(VISU::PMeshImpl theMesh,
139 const VISU::TFamilySet& theFamilySet);
143 LoadValForTimeOnMesh(VISU::PMeshImpl theMesh,
144 VISU::PMeshOnEntityImpl theMeshOnEntity,
145 VISU::PFieldImpl theField,
146 VISU::PValForTimeImpl theValForTime);
150 LoadValForTimeOnGaussPts(VISU::PMeshImpl theMesh,
151 VISU::PMeshOnEntityImpl theMeshOnEntity,
152 VISU::PFieldImpl theField,
153 VISU::PValForTimeImpl theValForTime)
159 LoadPoints(VISU::PCMesh theMesh) ;
162 LoadPointsOnFamily(VISU::PCMesh theMesh,
163 VISU::PCFamily theFamily) ;
166 LoadCellsOnEntity(VISU::PCMesh theMesh,
167 VISU::PCMeshOnEntity theMeshOnEntity);
170 LoadCellsOnFamily(VISU::PCMesh theMesh,
171 VISU::PCMeshOnEntity theMeshOnEntity,
172 VISU::PCFamily theFamily);
175 LoadField(VISU::PCMesh theMesh,
176 VISU::PCMeshOnEntity theMeshOnEntity,
177 VISU::PField theField,
178 VISU::PCValForTime theValForTime);
182 class VISU_MEDFieldConvertor: public VISU_MEDConvertor
185 SALOME_MED::FIELD_var myField;
189 VISU_MEDFieldConvertor(SALOME_MED::FIELD_ptr theField) :
190 myField(SALOME_MED::FIELD::_duplicate(theField))
199 VISU_Convertor* CreateMEDConvertor(SALOMEDS::SObject_ptr theMedSObject) ;
200 VISU_Convertor* CreateMEDFieldConvertor(SALOME_MED::FIELD_ptr theField) ;