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.salome-platform.org/ or email : webmaster.salome@opencascade.com
29 #ifndef MED_Wrapper_HeaderFile
30 #define MED_Wrapper_HeaderFile
32 #include "MED_WrapperBase.hxx"
34 #include "MED_Structures.hxx"
35 #include "MED_Algorithm.hxx"
37 #include <boost/thread/mutex.hpp>
42 //----------------------------------------------------------------------------
43 //! Define a base class that wraps the MED API
44 struct MEDWRAPPER_EXPORT TWrapper
46 typedef boost::mutex TMutex;
47 //! This is a syncronization primitive which allow to support thread safety for the MED access
53 //----------------------------------------------------------------------------
54 //! Gets version of the MED library used for the MED file
59 //----------------------------------------------------------------------------
60 //! Creates a MEDWrapper MED Mesh representation
63 CrMeshInfo(TInt theDim = 0,
64 const std::string& theValue = "",
65 EMaillage theType = eNON_STRUCTURE,
66 const std::string& theDesc = "") = 0;
68 //! A copy-constructor for the MEDWrapper MED Mesh representation
71 CrMeshInfo(const PMeshInfo& theInfo) = 0;
73 //! Read number of MED Mesh entities in the defined MED file
76 GetNbMeshes(TErr* theErr = NULL) = 0;
78 //! Read a MEDWrapper MED Mesh representation by its number
81 GetMeshInfo(TInt theMeshId,
83 TErr* theErr = NULL) = 0;
85 //! Write the MEDWrapper MED Mesh representation in the defined MED file
88 SetMeshInfo(const TMeshInfo& theInfo,
89 TErr* theErr = NULL) = 0;
91 //! Read a MEDWrapper MED Mesh representation by its number
94 GetPMeshInfo(TInt theId,
98 //----------------------------------------------------------------------------
99 //! Read number of MED Family entities in the defined MED file
102 GetNbFamilies(const TMeshInfo& theMeshInfo,
103 TErr* theErr = NULL) = 0;
105 //! Read number of attributes for defined MED Family
108 GetNbFamAttr(TInt theFamId,
109 const TMeshInfo& theInfo,
110 TErr* theErr = NULL) = 0;
112 //! Read number of MED Groups where MED Family with the number belong to
115 GetNbFamGroup(TInt theFamId,
116 const TMeshInfo& theInfo,
117 TErr* theErr = NULL) = 0;
119 //! Read a MEDWrapper MED Family representation by its number
122 GetFamilyInfo(TInt theFamId,
123 TFamilyInfo& theInfo,
124 TErr* theErr = NULL) = 0;
126 //! Write a MEDWrapper MED Family representation by its number
129 SetFamilyInfo(const TFamilyInfo& theInfo,
130 TErr* theErr = NULL) = 0;
132 //! Creates a MEDWrapper MED Family representation
135 CrFamilyInfo(const PMeshInfo& theMeshInfo,
139 const std::string& theValue = "") = 0;
141 //! Creates a MEDWrapper MED Family representation
144 CrFamilyInfo(const PMeshInfo& theMeshInfo,
145 const std::string& theValue,
147 const TStringSet& theGroupNames,
148 const TStringVector& theAttrDescs = TStringVector(),
149 const TIntVector& theAttrIds = TIntVector(),
150 const TIntVector& theAttrVals = TIntVector()) = 0;
152 //! A copy-constructor for the MEDWrapper MED Family representation
155 CrFamilyInfo(const PMeshInfo& theMeshInfo,
156 const PFamilyInfo& theInfo) = 0;
158 //! Write a MEDWrapper MED Family representation by its number
160 GetPFamilyInfo(const PMeshInfo& theMeshInfo,
162 TErr* theErr = NULL);
164 //----------------------------------------------------------------------------
165 //! Read sequence of names for any descendant of TElemInfo
168 GetNames(TElemInfo& theInfo,
170 EEntiteMaillage theEntity,
171 EGeometrieElement theGeom,
175 //! Read sequence of numerous for any descendant of TElemInfo
178 GetNumeration(TElemInfo& theInfo,
180 EEntiteMaillage theEntity,
181 EGeometrieElement theGeom,
185 //! Read sequence MED Family indexes for any descendant of TElemInfo
188 GetFamilies(TElemInfo& theInfo,
190 EEntiteMaillage theEntity,
191 EGeometrieElement theGeom,
195 //! Write sequence of names for any descendant of TElemInfo
198 SetNames(const TElemInfo& theInfo,
199 EEntiteMaillage theEntity,
200 EGeometrieElement theGeom,
204 //! Write sequence of numerous for any descendant of TElemInfo
207 SetNumeration(const TElemInfo& theInfo,
208 EEntiteMaillage theEntity,
209 EGeometrieElement theGeom,
213 //! Write sequence MED Family indexes for any descendant of TElemInfo
216 SetFamilies(const TElemInfo& theInfo,
217 EEntiteMaillage theEntity,
218 EGeometrieElement theGeom,
222 //! Read a MEDWrapper MED Element representation from defined MED file
224 GetPElemInfo(const PMeshInfo& theMeshInfo,
225 EEntiteMaillage theEntity = eNOEUD,
226 EGeometrieElement theGeom = ePOINT1,
227 EConnectivite theConnMode = eNOD,
228 TErr* theErr = NULL);
230 //----------------------------------------------------------------------------
231 //! Read number of nodes in defined MED Mesh
234 GetNbNodes(const TMeshInfo& theMeshInfo,
235 TErr* theErr = NULL) = 0;
239 GetNbNodes(const TMeshInfo& theMeshInfo,
246 //! Read a MEDWrapper MED Nodes representation from defined MED file
249 GetNodeInfo(TNodeInfo& theInfo,
250 TErr* theErr = NULL) = 0;
252 //! Write the MEDWrapper MED Nodes representation into defined MED file
255 SetNodeInfo(const TNodeInfo& theInfo,
256 TErr* theErr = NULL) = 0;
258 //! Creates a MEDWrapper MED Nodes representation
261 CrElemInfo(const PMeshInfo& theMeshInfo,
263 EBooleen theIsElemNum = eVRAI,
264 EBooleen theIsElemNames = eVRAI)
269 //! Creates a MEDWrapper MED Nodes representation
272 CrElemInfo(const PMeshInfo& theMeshInfo,
274 const TIntVector& theFamNum,
275 const TIntVector& aElemNum,
276 const TStringVector& aElemNames)
281 //! Creates a MEDWrapper MED Nodes representation
284 CrNodeInfo(const PMeshInfo& theMeshInfo,
286 EModeSwitch theMode = eFULL_INTERLACE,
287 ERepere theSystem = eCART,
288 EBooleen theIsElemNum = eVRAI,
289 EBooleen theIsElemNames = eVRAI) = 0;
291 //! Creates a MEDWrapper MED Nodes representation
294 CrNodeInfo(const PMeshInfo& theMeshInfo,
295 const TFloatVector& theNodeCoords,
296 EModeSwitch theMode = eFULL_INTERLACE,
297 ERepere theSystem = eCART,
298 const TStringVector& theCoordNames = TStringVector(),
299 const TStringVector& theCoordUnits = TStringVector(),
300 const TIntVector& theFamilyNums = TIntVector(),
301 const TIntVector& theElemNums = TIntVector(),
302 const TStringVector& theElemNames = TStringVector()) = 0;
304 //! A copy-constructor for the MEDWrapper MED Nodes representation
307 CrNodeInfo(const PMeshInfo& theMeshInfo,
308 const PNodeInfo& theInfo) = 0;
310 //! Read a MEDWrapper MED Nodes representation from defined MED file
312 GetPNodeInfo(const PMeshInfo& theMeshInfo,
313 TErr* theErr = NULL);
315 //----------------------------------------------------------------------------
316 //! Read a MEDWrapper MED Polygones representation from defined MED file
317 /*! This feature is support only for version of 2.2 and higher */
320 GetPolygoneInfo(TPolygoneInfo& theInfo,
324 //! Write a MEDWrapper MED Polygones representation from defined MED file
325 /*! This feature is support only for version of 2.2 and higher */
328 SetPolygoneInfo(const TPolygoneInfo& theInfo,
332 //! Read number of MED Polygones in defined MED Mesh
333 /*! This feature is support only for version of 2.2 and higher */
336 GetNbPolygones(const TMeshInfo& theMeshInfo,
337 EEntiteMaillage theEntity,
338 EGeometrieElement theGeom,
339 EConnectivite theConnMode = eNOD,
345 //! Read connectivity infroamtion for the MED Polygones in defined MED Mesh
346 /*! This feature is support only for version of 2.2 and higher */
349 GetPolygoneConnSize(const TMeshInfo& theMeshInfo,
350 EEntiteMaillage theEntity,
351 EGeometrieElement theGeom,
352 EConnectivite theConnMode = eNOD,
358 //! Creates a MEDWrapper MED Polygones representation
359 /*! This feature is support only for version of 2.2 and higher */
362 CrPolygoneInfo(const PMeshInfo& theMeshInfo,
363 EEntiteMaillage theEntity,
364 EGeometrieElement theGeom,
367 EConnectivite theConnMode = eNOD,
368 EBooleen theIsElemNum = eVRAI,
369 EBooleen theIsElemNames = eVRAI)
371 return PPolygoneInfo();
374 //! Creates a MEDWrapper MED Polygones representation
375 /*! This feature is support only for version of 2.2 and higher */
378 CrPolygoneInfo(const PMeshInfo& theMeshInfo,
379 EEntiteMaillage theEntity,
380 EGeometrieElement theGeom,
381 const TIntVector& theIndexes,
382 const TIntVector& theConnectivities,
383 EConnectivite theConnMode = eNOD,
384 const TIntVector& theFamilyNums = TIntVector(),
385 const TIntVector& theElemNums = TIntVector(),
386 const TStringVector& theElemNames = TStringVector())
388 return PPolygoneInfo();
391 //! A copy-constructor for the MEDWrapper MED Polygones representation
394 CrPolygoneInfo(const PMeshInfo& theMeshInfo,
395 const PPolygoneInfo& theInfo)
397 return PPolygoneInfo();
400 //! Read a MEDWrapper MED Polygones representation from defined MED file
401 /*! This feature is support only for version of 2.2 and higher */
403 GetPPolygoneInfo(const PMeshInfo& theMeshInfo,
404 EEntiteMaillage theEntity,
405 EGeometrieElement theGeom,
406 EConnectivite theConnMode = eNOD);
408 //----------------------------------------------------------------------------
409 //! Read a MEDWrapper MED Polyedres representation from defined MED file
410 /*! This feature is support only for version of 2.2 and higher */
413 GetPolyedreInfo(TPolyedreInfo& theInfo,
417 //! Write a MEDWrapper MED Polyedres representation from defined MED file
418 /*! This feature is support only for version of 2.2 and higher */
421 SetPolyedreInfo(const TPolyedreInfo& theInfo,
425 //! Read number of MED Polyedres in defined MED Mesh
426 /*! This feature is support only for version of 2.2 and higher */
429 GetNbPolyedres(const TMeshInfo& theMeshInfo,
430 EEntiteMaillage theEntity,
431 EGeometrieElement theGeom,
432 EConnectivite theConnMode = eNOD,
438 //! Read connectivity infroamtion for the MED Polyedres in defined MED Mesh
439 /*! This feature is support only for version of 2.2 and higher */
442 GetPolyedreConnSize(const TMeshInfo& theMeshInfo,
445 EConnectivite theConnMode = eNOD,
448 theNbFaces = theConnSize = 0;
453 CrPolyedreInfo(const PMeshInfo& theMeshInfo,
454 EEntiteMaillage theEntity,
455 EGeometrieElement theGeom,
459 EConnectivite theConnMode = eNOD,
460 EBooleen theIsElemNum = eVRAI,
461 EBooleen theIsElemNames = eVRAI)
463 return PPolyedreInfo();
466 //! Creates a MEDWrapper MED Polyedres representation
467 /*! This feature is support only for version of 2.2 and higher */
470 CrPolyedreInfo(const PMeshInfo& theMeshInfo,
471 EEntiteMaillage theEntity,
472 EGeometrieElement theGeom,
473 const TIntVector& theIndexes,
474 const TIntVector& theFaces,
475 const TIntVector& theConnectivities,
476 EConnectivite theConnMode = eNOD,
477 const TIntVector& theFamilyNums = TIntVector(),
478 const TIntVector& theElemNums = TIntVector(),
479 const TStringVector& theElemNames = TStringVector())
481 return PPolyedreInfo();
484 //! A copy-constructor for the MEDWrapper MED Polyedres representation
487 CrPolyedreInfo(const PMeshInfo& theMeshInfo,
488 const PPolyedreInfo& theInfo)
490 return PPolyedreInfo();
493 //! Read a MEDWrapper MED Polyedres representation from defined MED file
494 /*! This feature is support only for version of 2.2 and higher */
496 GetPPolyedreInfo(const PMeshInfo& theMeshInfo,
497 EEntiteMaillage theEntity,
498 EGeometrieElement theGeom,
499 EConnectivite theConnMode = eNOD);
501 //----------------------------------------------------------------------------
502 //! Get TEntityInfo which contains brief information about existing cells and their destribution among MED ENTITIES
505 GetEntityInfo(const TMeshInfo& theMeshInfo,
506 EConnectivite theConnMode = eNOD,
507 TErr* theErr = NULL) = 0;
509 //! Read number of cells for defined MED Mesh, ENTITY and geometrical type with define mode of connectivity
512 GetNbCells(const TMeshInfo& theMeshInfo,
513 EEntiteMaillage theEntity,
514 EGeometrieElement theGeom,
515 EConnectivite theConnMode = eNOD,
516 TErr* theErr = NULL) = 0;
518 //! Read a MEDWrapper MED Cells representation from defined MED file
521 GetCellInfo(TCellInfo& theInfo,
522 TErr* theErr = NULL) = 0;
524 //! Write the MEDWrapper MED Cells representation into defined MED file
527 SetCellInfo(const TCellInfo& theInfo,
528 TErr* theErr = NULL) = 0;
530 //! Creates a MEDWrapper MED Cells representation
533 CrCellInfo(const PMeshInfo& theMeshInfo,
534 EEntiteMaillage theEntity,
535 EGeometrieElement theGeom,
537 EConnectivite theConnMode = eNOD,
538 EBooleen theIsElemNum = eVRAI,
539 EBooleen theIsElemNames = eVRAI,
540 EModeSwitch theMode = eFULL_INTERLACE) = 0;
542 //! Creates a MEDWrapper MED Cells representation
545 CrCellInfo(const PMeshInfo& theMeshInfo,
546 EEntiteMaillage theEntity,
547 EGeometrieElement theGeom,
548 const TIntVector& theConnectivities,
549 EConnectivite theConnMode = eNOD,
550 const TIntVector& theFamilyNums = TIntVector(),
551 const TIntVector& theElemNums = TIntVector(),
552 const TStringVector& theElemNames = TStringVector(),
553 EModeSwitch theMode = eFULL_INTERLACE) = 0;
555 //! A copy-constructor for the MEDWrapper MED Cells representation
558 CrCellInfo(const PMeshInfo& theMeshInfo,
559 const PCellInfo& theInfo) = 0;
561 //! Read a MEDWrapper MED Cells representation from defined MED file
563 GetPCellInfo(const PMeshInfo& theMeshInfo,
564 EEntiteMaillage theEntity,
565 EGeometrieElement theGeom,
566 EConnectivite theConnMode = eNOD,
567 TErr* theErr = NULL);
570 //----------------------------------------------------------------------------
571 //! Read number of MED FIELDS in defined MED Mesh
574 GetNbFields(TErr* theErr = NULL) = 0;
576 //! Read number of components for the defined MED FIELD by its order number
579 GetNbComp(TInt theFieldId,
580 TErr* theErr = NULL) = 0;
582 //! Read MEDWrapper MED FIELD representation by its order number
585 GetFieldInfo(TInt theFieldId,
587 TErr* theErr = NULL) = 0;
589 //! Write MEDWrapper MED FIELD representation into defined MED file
592 SetFieldInfo(const TFieldInfo& theInfo,
593 TErr* theErr = NULL) = 0;
596 //! Creates a MEDWrapper MED FIELD representation
599 CrFieldInfo(const PMeshInfo& theMeshInfo,
601 ETypeChamp theType = eFLOAT64,
602 const std::string& theValue = "",
603 EBooleen theIsLocal = eVRAI,
604 TInt theNbRef = 1) = 0;
606 //! A copy-constructor for the MEDWrapper MED FIELD representation
609 CrFieldInfo(const PMeshInfo& theMeshInfo,
610 const PFieldInfo& theInfo) = 0;
612 //! Read a MEDWrapper MED FIELD representation from defined MED file
614 GetPFieldInfo(const PMeshInfo& theMeshInfo,
616 TErr* theErr = NULL);
619 //----------------------------------------------------------------------------
620 //! Read number of MED GAUSS in defined MED Mesh
621 /*! This feature is support only for version of 2.2 and higher */
624 GetNbGauss(TErr* theErr = NULL)
629 //! Read brief MED GAUSS information by its order number from defined MED Mesh
630 /*! This feature is support only for version of 2.2 and higher */
633 GetGaussPreInfo(TInt theId,
636 return TGaussInfo::TInfo( TGaussInfo::TKey(ePOINT1,""),0 );
639 //! Read a MEDWrapper MED GAUSS representation by its order number from defined MED file
640 /*! This feature is support only for version of 2.2 and higher */
643 GetGaussInfo(TInt theId,
648 //! Creates a MEDWrapper MED GAUSS representation
649 /*! This feature is support only for version of 2.2 and higher */
652 CrGaussInfo(const TGaussInfo::TInfo& theInfo,
653 EModeSwitch theMode = eFULL_INTERLACE) = 0;
656 //----------------------------------------------------------------------------
657 //! Read number of MED TIMESTAMPS in defined MED Mesh
659 By the way some additional information can be obtained:
660 - to what MED ENTITY the MED TIMESTAMP conntected to;
661 - on what geometrical types the MED TIMESTAMP defined to.
665 GetNbTimeStamps(const TFieldInfo& theInfo,
666 const TEntityInfo& theEntityInfo,
667 EEntiteMaillage& theEntity,
668 TGeom2Size& theGeom2Size,
669 TErr* theErr = NULL) = 0;
671 //! Read MEDWrapper MED TIMESTAMP representation by its order number
674 GetTimeStampInfo(TInt theTimeStampId,
675 TTimeStampInfo& theInfo,
676 TErr* theErr = NULL) = 0;
678 //! Creates a MEDWrapper MED TIMESTAMP representation
681 CrTimeStampInfo(const PFieldInfo& theFieldInfo,
682 EEntiteMaillage theEntity,
683 const TGeom2Size& theGeom2Size,
684 const TGeom2NbGauss& theGeom2NbGauss = TGeom2NbGauss(),
688 const std::string& theUnitDt = "",
689 const TGeom2Gauss& theGeom2Gauss = TGeom2Gauss()) = 0;
691 //! A copy-constructor for the MEDWrapper MED TIMESTAMP representation
694 CrTimeStampInfo(const PFieldInfo& theFieldInfo,
695 const PTimeStampInfo& theInfo) = 0;
697 //! Read MEDWrapper MED TIMESTAMP representation by its order number
699 GetPTimeStampInfo(const PFieldInfo& theFieldInfo,
700 EEntiteMaillage theEntity,
701 const TGeom2Size& theGeom2Size,
703 TErr* theErr = NULL);
706 //----------------------------------------------------------------------------
707 //! Read number of MED PROFILES in defined MED Mesh
710 GetNbProfiles(TErr* theErr = NULL) = 0;
712 //! Read brief MED PROFILE information by its order number from defined MED Mesh
715 GetProfilePreInfo(TInt theId,
716 TErr* theErr = NULL) = 0;
718 //! Read a MEDWrapper MED PROFILE representation by its order number from defined MED file
721 GetProfileInfo(TInt theId,
722 TProfileInfo& theInfo,
723 TErr* theErr = NULL) = 0;
725 //! Creates a MEDWrapper MED PROFILE representation
728 CrProfileInfo(const TProfileInfo::TInfo& theInfo,
729 EModeProfil theMode = eCOMPACT) = 0;
731 //! Write a MEDWrapper MED PROFILE representation
734 SetProfileInfo(const TProfileInfo& theInfo,
735 TErr* theErr = NULL) = 0;
737 //! Read a MEDWrapper MED PROFILE representation by its order number from defined MED file
739 GetPProfileInfo(TInt theId,
740 EModeProfil theMode = eCOMPACT,
741 TErr* theErr = NULL);
744 //----------------------------------------------------------------------------
745 //! Read the values for MEDWrapper MED TIEMSTAMP from defined MED file
748 GetTimeStampValue(const PTimeStampValueBase& theTimeStampValue,
749 const TMKey2Profile& theMKey2Profile,
750 const TKey2Gauss& theKey2Gauss,
751 TErr* theErr = NULL) = 0;
753 //! Write the values for MEDWrapper MED TIEMSTAMP to defined MED file
756 SetTimeStampValue(const PTimeStampValueBase& theTimeStampValue,
757 TErr* theErr = NULL) = 0;
759 //! Creates the values for MEDWrapper MED TIEMSTAMP representation
762 CrTimeStampValue(const PTimeStampInfo& theTimeStampInfo,
763 ETypeChamp theTypeChamp,
764 const TGeom2Profile& theGeom2Profile = TGeom2Profile(),
765 EModeSwitch theMode = eFULL_INTERLACE) = 0;
767 //! Creates the values for MEDWrapper MED TIEMSTAMP representation
770 CrTimeStampValue(const PTimeStampInfo& theTimeStampInfo,
771 const TGeom2Profile& theGeom2Profile = TGeom2Profile(),
772 EModeSwitch theMode = eFULL_INTERLACE);
774 //! A copy-constructor for the values for MEDWrapper MED TIEMSTAMP representation
777 CrTimeStampValue(const PTimeStampInfo& theTimeStampInfo,
778 const PTimeStampValueBase& theInfo,
779 ETypeChamp theTypeChamp) = 0;
781 //! A copy-constructor for the values for MEDWrapper MED TIEMSTAMP representation
784 CrTimeStampValue(const PTimeStampInfo& theTimeStampInfo,
785 const PTimeStampValueBase& theInfo);
787 //! Read the values for MEDWrapper MED TIEMSTAMP from defined MED file
789 GetPTimeStampValue(const PTimeStampInfo& theTimeStampInfo,
790 const TMKey2Profile& theMKey2Profile,
791 const TKey2Gauss& theKey2Gauss,
792 TErr* theErr = NULL);
794 //----------------------------------------------------------------------------
795 // Backward compatibility declarations
796 //! Read the values for MEDWrapper MED TIEMSTAMP from defined MED file
799 GetTimeStampVal(const PTimeStampVal& theVal,
800 const TMKey2Profile& theMKey2Profile,
801 const TKey2Gauss& theKey2Gauss,
802 TErr* theErr = NULL);
804 //! Write the values for MEDWrapper MED TIEMSTAMP to defined MED file
807 SetTimeStamp(const PTimeStampVal& theVal,
808 TErr* theErr = NULL);
810 //! Creates the values for MEDWrapper MED TIEMSTAMP representation
813 CrTimeStampVal(const PTimeStampInfo& theTimeStampInfo,
814 const TGeom2Profile& theGeom2Profile = TGeom2Profile(),
815 EModeSwitch theMode = eFULL_INTERLACE);
817 //! A copy-constructor for the values for MEDWrapper MED TIEMSTAMP representation
820 CrTimeStampVal(const PTimeStampInfo& theTimeStampInfo,
821 const PTimeStampVal& theInfo);
823 //! Read the values for MEDWrapper MED TIEMSTAMP from defined MED file
825 GetPTimeStampVal(const PTimeStampInfo& theTimeStampInfo,
826 const TMKey2Profile& theMKey2Profile,
827 const TKey2Gauss& theKey2Gauss,
828 TErr* theErr = NULL);
830 //----------------------------------------------------------------------------
831 //! Read a MEDWrapper MED Grille representation from defined MED file
832 /*! This feature is support only for version of 2.2 and higher */
834 GetPGrilleInfo(const PMeshInfo& theMeshInfo);
836 //! Read a MEDWrapper MED Grille representation from defined MED file
837 /*! This feature is support only for version of 2.2 and higher */
839 GetPGrilleInfo(const PMeshInfo& theMeshInfo,
840 const PGrilleInfo& theInfo);
842 //! Read a MEDWrapper MED Grille representation from defined MED file
843 /*! This feature is support only for version of 2.2 and higher */
846 GetGrilleInfo(TGrilleInfo& theInfo,
850 //! Write the MEDWrapper MED Grille representation into defined MED file
851 /*! This feature is support only for version of 2.2 and higher */
854 SetGrilleInfo(const TGrilleInfo& theInfo,
858 /*! This feature is support only for version of 2.2 and higher */
861 CrGrilleInfo(const PMeshInfo& theMeshInfo,
862 const PGrilleInfo& theGrilleInfo)
864 return PGrilleInfo();
867 /*! This feature is support only for version of 2.2 and higher */
870 CrGrilleInfo(const PMeshInfo& theMeshInfo)
872 return PGrilleInfo();
875 /*! This feature is support only for version of 2.2 and higher */
878 CrGrilleInfo(const PMeshInfo& theMeshInfo,
879 const EGrilleType& type)
881 return PGrilleInfo();
884 /*! This feature is support only for version of 2.2 and higher */
887 CrGrilleInfo(const PMeshInfo& theMeshInfo,
888 const EGrilleType& type,
891 return PGrilleInfo();
894 /*! This feature is support only for version of 2.2 and higher */
897 CrGrilleInfo(const PMeshInfo& theMeshInfo,
898 const EGrilleType& type,
899 const MED::TIntVector& nbNodeVec)
901 return PGrilleInfo();
904 /*! This feature is support only for version of 2.2 and higher */
907 GetGrilleType(const TMeshInfo& theMeshInfo,
916 //----------------------------------------------------------------------------
917 //! This class provide thread-safety for MEDWrapper interaction
918 class MEDWRAPPER_EXPORT TLockProxy
920 TLockProxy& operator=(const TLockProxy& );
924 TLockProxy(TWrapper* theWrapper);
928 TWrapper * operator-> () const;
932 //----------------------------------------------------------------------------
933 //! To specialize the SharedPtr for TWrapper
935 class MEDWRAPPER_EXPORT SharedPtr<TWrapper>: public boost::shared_ptr<TWrapper>
941 explicit SharedPtr(Y * p):
942 boost::shared_ptr<TWrapper>(p)
946 SharedPtr(SharedPtr<Y> const & r):
947 boost::shared_ptr<TWrapper>(r,boost::detail::dynamic_cast_tag())
952 operator=(SharedPtr<Y> const & r)
954 boost::shared_ptr<TWrapper>(r,boost::detail::dynamic_cast_tag()).swap(*this);
960 operator()(Y * p) // Y must be complete
962 return operator=<Y>(SharedPtr<Y>(p));
967 operator()(SharedPtr<Y> const & r) // Y must be complete
969 return operator=<Y>(SharedPtr<Y>(r));
972 TLockProxy operator-> () const // never throws
974 return TLockProxy(this->get());
978 operator const TWrapper& () const;
980 operator TWrapper& ();
982 TWrapper& operator* () const;
984 TWrapper * get() const // never throws
986 return boost::shared_ptr<TWrapper>::get();
990 //----------------------------------------------------------------------------
991 typedef SharedPtr<TWrapper> PWrapper;