Back to index

salome-med  6.5.0
MED_TWrapper.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  File   : 
00024 //  Author : 
00025 //  Module : 
00026 //  $Header: /home/server/cvs/MED/MED_SRC/src/MEDWrapper/Base/MED_TWrapper.hxx,v 1.7.2.1.6.3.10.1 2012-04-13 08:48:43 vsr Exp $
00027 //
00028 #ifndef MED_TWrapper_HeaderFile
00029 #define MED_TWrapper_HeaderFile
00030 
00031 #include "MED_TStructures.hxx"
00032 #include "MED_Wrapper.hxx"
00033 
00034 namespace MED
00035 {
00036 
00037   template<EVersion eVersion>
00038   class TTWrapper: public TWrapper
00039   {
00040   public:
00041     //----------------------------------------------------------------------------
00043     virtual 
00044     EVersion
00045     GetVersion()
00046     {
00047       return eVersion;
00048     }
00049     
00050     //----------------------------------------------------------------------------
00051     virtual 
00052     PMeshInfo
00053     CrMeshInfo(TInt theDim = 0, TInt theSpaceDim = 0,
00054                const std::string& theValue = "",
00055                EMaillage theType = eNON_STRUCTURE,
00056                const std::string& theDesc = "")
00057     {
00058       return PMeshInfo(new TTMeshInfo<eVersion>
00059                        (theDim,
00060                         theSpaceDim,
00061                         theValue,
00062                         theType,
00063                         theDesc));
00064     }
00065 
00066     virtual 
00067     PMeshInfo
00068     CrMeshInfo(const PMeshInfo& theInfo)
00069     {
00070       return PMeshInfo(new TTMeshInfo<eVersion>(theInfo));
00071     }
00072     
00073 
00074     //----------------------------------------------------------------------------
00075     virtual
00076     PFamilyInfo
00077     CrFamilyInfo(const PMeshInfo& theMeshInfo,
00078                  TInt theNbGroup = 0, 
00079                  TInt theNbAttr = 0,
00080                  TInt theId = 0,
00081                  const std::string& theValue = "")
00082     {
00083       return PFamilyInfo(new TTFamilyInfo<eVersion>
00084                          (theMeshInfo,
00085                           theNbGroup,
00086                           theNbAttr,
00087                           theId,
00088                           theValue));
00089     }
00090 
00091     virtual
00092     PFamilyInfo
00093     CrFamilyInfo(const PMeshInfo& theMeshInfo,
00094                  const std::string& theValue,
00095                  TInt theId,
00096                  const MED::TStringSet& theGroupNames, 
00097                  const MED::TStringVector& theAttrDescs = MED::TStringVector(), 
00098                  const MED::TIntVector& theAttrIds = MED::TIntVector(), 
00099                  const MED::TIntVector& theAttrVals = MED::TIntVector())
00100     {
00101       return PFamilyInfo(new TTFamilyInfo<eVersion>
00102                          (theMeshInfo,
00103                           theValue,
00104                           theId,
00105                           theGroupNames,
00106                           theAttrDescs,
00107                           theAttrIds,
00108                           theAttrVals));
00109     }
00110 
00111     virtual
00112     PFamilyInfo
00113     CrFamilyInfo(const PMeshInfo& theMeshInfo,
00114                  const PFamilyInfo& theInfo)
00115     {
00116       return PFamilyInfo(new TTFamilyInfo<eVersion>
00117                          (theMeshInfo,
00118                           theInfo));
00119     }
00120 
00121     //----------------------------------------------------------------------------
00122     virtual
00123     PElemInfo
00124     CrElemInfo(const PMeshInfo& theMeshInfo, 
00125                TInt theNbElem,
00126                EBooleen theIsElemNum = eVRAI,
00127                EBooleen theIsElemNames = eVRAI)
00128     {
00129       return PElemInfo(new TTElemInfo<eVersion>
00130                        (theMeshInfo,
00131                         theNbElem,
00132                         theIsElemNum,
00133                         theIsElemNames));
00134     }
00135 
00136     virtual
00137     PElemInfo
00138     CrElemInfo(const PMeshInfo& theMeshInfo, 
00139                TInt theNbElem,
00140                const TIntVector& theFamNum,
00141                const TIntVector& aElemNum,
00142                const TStringVector& aElemNames)
00143     {
00144       return PElemInfo(new TTElemInfo<eVersion>
00145                        (theMeshInfo,
00146                         theNbElem,
00147                         theFamNum,
00148                         aElemNum,
00149                         aElemNames));
00150     }
00151 
00152     //----------------------------------------------------------------------------
00153     virtual
00154     PNodeInfo
00155     CrNodeInfo(const PMeshInfo& theMeshInfo, 
00156                TInt theNbElem,
00157                EModeSwitch theMode = eFULL_INTERLACE,
00158                ERepere theSystem = eCART, 
00159                EBooleen theIsElemNum = eVRAI,
00160                EBooleen theIsElemNames = eVRAI)
00161     {
00162       return PNodeInfo(new TTNodeInfo<eVersion>
00163                        (theMeshInfo,
00164                         theNbElem,
00165                         theMode,
00166                         theSystem,
00167                         theIsElemNum,
00168                         theIsElemNames));
00169     }
00170 
00171     virtual 
00172     PNodeInfo
00173     CrNodeInfo(const PMeshInfo& theMeshInfo, 
00174                const TFloatVector& theNodeCoords,
00175                EModeSwitch theMode = eFULL_INTERLACE,
00176                ERepere theSystem = eCART, 
00177                const TStringVector& theCoordNames = TStringVector(),
00178                const TStringVector& theCoordUnits = TStringVector(),
00179                const TIntVector& theFamilyNums = TIntVector(),
00180                const TIntVector& theElemNums = TIntVector(),
00181                const TStringVector& theElemNames = TStringVector())
00182     {
00183       return PNodeInfo(new TTNodeInfo<eVersion>
00184                        (theMeshInfo,
00185                         theNodeCoords,
00186                         theMode,
00187                         theSystem,
00188                         theCoordNames,
00189                         theCoordUnits,
00190                         theFamilyNums,
00191                         theElemNums,
00192                         theElemNames));
00193     }
00194 
00195     virtual 
00196     PNodeInfo
00197     CrNodeInfo(const PMeshInfo& theMeshInfo,
00198                const PNodeInfo& theInfo)
00199     {
00200       return PNodeInfo(new TTNodeInfo<eVersion>
00201                        (theMeshInfo,
00202                         theInfo));
00203     }
00204     
00205     //----------------------------------------------------------------------------
00206     virtual
00207     PPolygoneInfo
00208     CrPolygoneInfo(const PMeshInfo& theMeshInfo, 
00209                    EEntiteMaillage theEntity, 
00210                    EGeometrieElement theGeom,
00211                    TInt theNbElem,
00212                    TInt theConnSize,
00213                    EConnectivite theConnMode = eNOD,
00214                    EBooleen theIsElemNum = eVRAI,
00215                    EBooleen theIsElemNames = eVRAI)
00216     {
00217       return PPolygoneInfo(new TTPolygoneInfo<eVersion>
00218                            (theMeshInfo,
00219                             theEntity,
00220                             theGeom,
00221                             theNbElem,
00222                             theConnSize,
00223                             theConnMode,
00224                             theIsElemNum,
00225                             theIsElemNames));
00226     }
00227 
00228     virtual
00229     PPolygoneInfo
00230     CrPolygoneInfo(const PMeshInfo& theMeshInfo, 
00231                    EEntiteMaillage theEntity, 
00232                    EGeometrieElement theGeom,
00233                    const TIntVector& theIndexes,
00234                    const TIntVector& theConnectivities,
00235                    EConnectivite theConnMode = eNOD,
00236                    const TIntVector& theFamilyNums = TIntVector(),
00237                    const TIntVector& theElemNums = TIntVector(),
00238                    const TStringVector& theElemNames = TStringVector())
00239     {
00240       return PPolygoneInfo(new TTPolygoneInfo<eVersion>
00241                            (theMeshInfo,
00242                             theEntity,
00243                             theGeom,
00244                             theIndexes,
00245                             theConnectivities,
00246                             theConnMode,
00247                             theFamilyNums,
00248                             theElemNums,
00249                             theElemNames));
00250     }
00251 
00252     virtual
00253     PPolygoneInfo
00254     CrPolygoneInfo(const PMeshInfo& theMeshInfo,
00255                    const PPolygoneInfo& theInfo)
00256     {
00257       return PPolygoneInfo(new TTPolygoneInfo<eVersion>
00258                            (theMeshInfo,
00259                             theInfo));
00260     }
00261     
00262     //----------------------------------------------------------------------------
00263     virtual
00264     PPolyedreInfo
00265     CrPolyedreInfo(const PMeshInfo& theMeshInfo, 
00266                    EEntiteMaillage theEntity, 
00267                    EGeometrieElement theGeom,
00268                    TInt theNbElem,
00269                    TInt theNbFaces,
00270                    TInt theConnSize,
00271                    EConnectivite theConnMode = eNOD,
00272                    EBooleen theIsElemNum = eVRAI,
00273                    EBooleen theIsElemNames = eVRAI)
00274     {
00275       return PPolyedreInfo(new TTPolyedreInfo<eVersion>
00276                            (theMeshInfo,
00277                             theEntity,
00278                             theGeom,
00279                             theNbElem,
00280                             theNbFaces,
00281                             theConnSize,
00282                             theConnMode,
00283                             theIsElemNum,
00284                             theIsElemNames));
00285     }
00286 
00287     virtual
00288     PPolyedreInfo
00289     CrPolyedreInfo(const PMeshInfo& theMeshInfo, 
00290                    EEntiteMaillage theEntity, 
00291                    EGeometrieElement theGeom,
00292                    const TIntVector& theIndexes,
00293                    const TIntVector& theFaces,
00294                    const TIntVector& theConnectivities,
00295                    EConnectivite theConnMode = eNOD,
00296                    const TIntVector& theFamilyNums = TIntVector(),
00297                    const TIntVector& theElemNums = TIntVector(),
00298                    const TStringVector& theElemNames = TStringVector())
00299     {
00300       return PPolyedreInfo(new TTPolyedreInfo<eVersion>
00301                            (theMeshInfo,
00302                             theEntity,
00303                             theGeom,
00304                             theIndexes,
00305                             theFaces,
00306                             theConnectivities,
00307                             theConnMode,
00308                             theFamilyNums,
00309                             theElemNums,
00310                             theElemNames));
00311     }
00312 
00313     virtual
00314     PPolyedreInfo
00315     CrPolyedreInfo(const PMeshInfo& theMeshInfo,
00316                    const PPolyedreInfo& theInfo)
00317     {
00318       return PPolyedreInfo(new TTPolyedreInfo<eVersion>
00319                            (theMeshInfo,
00320                             theInfo));
00321     }
00322 
00323     //----------------------------------------------------------------------------
00324     virtual
00325     PCellInfo
00326     CrCellInfo(const PMeshInfo& theMeshInfo, 
00327                EEntiteMaillage theEntity, 
00328                EGeometrieElement theGeom,
00329                TInt theNbElem,
00330                EConnectivite theConnMode = eNOD,
00331                EBooleen theIsElemNum = eVRAI,
00332                EBooleen theIsElemNames = eVRAI,
00333                EModeSwitch theMode = eFULL_INTERLACE)
00334     {
00335       return PCellInfo(new TTCellInfo<eVersion>
00336                        (theMeshInfo,
00337                         theEntity,
00338                         theGeom,
00339                         theNbElem,
00340                         theConnMode,
00341                         theIsElemNum,
00342                         theIsElemNames,
00343                         theMode));
00344     }
00345 
00346     virtual
00347     PCellInfo
00348     CrCellInfo(const PMeshInfo& theMeshInfo, 
00349                EEntiteMaillage theEntity, 
00350                EGeometrieElement theGeom,
00351                const TIntVector& theConnectivities,
00352                EConnectivite theConnMode = eNOD,
00353                const TIntVector& theFamilyNums = TIntVector(),
00354                const TIntVector& theElemNums = TIntVector(),
00355                const TStringVector& theElemNames = TStringVector(),
00356                EModeSwitch theMode = eFULL_INTERLACE)
00357     {
00358       return PCellInfo(new TTCellInfo<eVersion>
00359                        (theMeshInfo,
00360                         theEntity,
00361                         theGeom,
00362                         theConnectivities,
00363                         theConnMode,
00364                         theFamilyNums,
00365                         theElemNums,
00366                         theElemNames,
00367                         theMode));
00368     }
00369 
00370     virtual
00371     PCellInfo
00372     CrCellInfo(const PMeshInfo& theMeshInfo,
00373                const PCellInfo& theInfo)
00374     {
00375       return PCellInfo(new TTCellInfo<eVersion>
00376                        (theMeshInfo,
00377                         theInfo));
00378     }
00379     
00380 
00381     //----------------------------------------------------------------------------
00382     virtual
00383     PFieldInfo
00384     CrFieldInfo(const PMeshInfo& theMeshInfo, 
00385                 TInt theNbComp = 0,
00386                 ETypeChamp theType = eFLOAT64,
00387                 const std::string& theValue = "",
00388                 EBooleen theIsLocal = eVRAI,
00389                 TInt theNbRef = 1)
00390     {
00391       return PFieldInfo(new TTFieldInfo<eVersion>
00392                         (theMeshInfo,
00393                          theNbComp,
00394                          theType,
00395                          theValue,
00396                          theIsLocal,
00397                          theNbRef));
00398     }
00399 
00400     virtual
00401     PFieldInfo
00402     CrFieldInfo(const PMeshInfo& theMeshInfo,
00403                 const PFieldInfo& theInfo)
00404     {
00405       return PFieldInfo(new TTFieldInfo<eVersion>
00406                         (theMeshInfo,
00407                          theInfo));
00408     }
00409     
00410 
00411     //----------------------------------------------------------------------------
00412     virtual
00413     PTimeStampInfo
00414     CrTimeStampInfo(const PFieldInfo& theFieldInfo, 
00415                     EEntiteMaillage theEntity,
00416                     const TGeom2Size& theGeom2Size,
00417                     const TGeom2NbGauss& theGeom2NbGauss = TGeom2NbGauss(),
00418                     TInt theNumDt = 0,
00419                     TInt theNumOrd = 0,
00420                     TFloat theDt = 0,
00421                     const std::string& theUnitDt = "",
00422                     const TGeom2Gauss& theGeom2Gauss = TGeom2Gauss())
00423     {
00424       return PTimeStampInfo(new TTTimeStampInfo<eVersion>
00425                             (theFieldInfo,
00426                              theEntity,
00427                              theGeom2Size,
00428                              theGeom2NbGauss,
00429                              theNumDt,
00430                              theNumOrd,
00431                              theDt,
00432                              theUnitDt,
00433                              theGeom2Gauss));
00434     }
00435 
00436     virtual
00437     PTimeStampInfo
00438     CrTimeStampInfo(const PFieldInfo& theFieldInfo,
00439                     const PTimeStampInfo& theInfo)
00440     {
00441       return PTimeStampInfo(new TTTimeStampInfo<eVersion>
00442                             (theFieldInfo,
00443                              theInfo));
00444     }
00445 
00446 
00447     //----------------------------------------------------------------------------
00448     virtual
00449     PGaussInfo
00450     CrGaussInfo(const TGaussInfo::TInfo& theInfo,
00451                 EModeSwitch theMode = eFULL_INTERLACE)
00452     {
00453       return PGaussInfo(new TTGaussInfo<eVersion>
00454                         (theInfo,
00455                          theMode));
00456     }
00457     
00458 
00459     //----------------------------------------------------------------------------
00460     virtual
00461     PProfileInfo
00462     CrProfileInfo(const TProfileInfo::TInfo& theInfo,
00463                   EModeProfil theMode = eCOMPACT)
00464     {
00465       return PProfileInfo(new TTProfileInfo<eVersion>
00466                            (theInfo,
00467                             theMode));
00468     }
00469     
00470 
00471     //----------------------------------------------------------------------------
00472     virtual
00473     PTimeStampValueBase
00474     CrTimeStampValue(const PTimeStampInfo& theTimeStampInfo,
00475                      ETypeChamp theTypeChamp,
00476                      const TGeom2Profile& theGeom2Profile = TGeom2Profile(),
00477                      EModeSwitch theMode = eFULL_INTERLACE)
00478     {
00479       if(theTypeChamp == eFLOAT64)
00480         return PTimeStampValueBase(new TTTimeStampValue<eVersion, TFloatMeshValue>
00481                                    (theTimeStampInfo,
00482                                     theTypeChamp,
00483                                     theGeom2Profile,
00484                                     theMode));
00485       return PTimeStampValueBase(new TTTimeStampValue<eVersion, TIntMeshValue>
00486                                  (theTimeStampInfo,
00487                                   theTypeChamp,
00488                                   theGeom2Profile,
00489                                   theMode));
00490     }
00491 
00492     virtual
00493     PTimeStampValueBase
00494     CrTimeStampValue(const PTimeStampInfo& theTimeStampInfo,
00495                      const PTimeStampValueBase& theInfo,
00496                      ETypeChamp theTypeChamp)
00497     {
00498       if(theTypeChamp == eFLOAT64)
00499         return PTimeStampValueBase(new TTTimeStampValue<eVersion, TFloatMeshValue>
00500                                    (theTimeStampInfo,
00501                                     theInfo,
00502                                     theTypeChamp));
00503       return PTimeStampValueBase(new TTTimeStampValue<eVersion, TIntMeshValue>
00504                                  (theTimeStampInfo,
00505                                   theInfo,
00506                                   theTypeChamp));
00507     }
00508     
00509     //----------------------------------------------------------------------------
00510     virtual
00511     PGrilleInfo
00512     CrGrilleInfo(const PMeshInfo& theMeshInfo,
00513                  const PGrilleInfo& theInfo)
00514     {
00515       return PGrilleInfo(new TTGrilleInfo<eVersion>
00516                             (theMeshInfo,
00517                              theInfo));
00518     }
00519     virtual
00520     PGrilleInfo
00521     CrGrilleInfo(const PMeshInfo& theMeshInfo,
00522                  const EGrilleType& type)
00523     {
00524       return PGrilleInfo(new TTGrilleInfo<eVersion>
00525                             (theMeshInfo,
00526                              type));
00527     }
00528 
00529     virtual
00530     PGrilleInfo
00531     CrGrilleInfo(const PMeshInfo& theMeshInfo,
00532                  const EGrilleType& type,
00533                  const TInt& nbNodes)
00534     {
00535       return PGrilleInfo(new TTGrilleInfo<eVersion>
00536                             (theMeshInfo,
00537                              type,
00538                              nbNodes));
00539     }
00540 
00541     virtual
00542     PGrilleInfo
00543     CrGrilleInfo(const PMeshInfo& theMeshInfo,
00544                  const EGrilleType& type,
00545                  const MED::TIntVector& nbNodeVec)
00546     {
00547       return PGrilleInfo(new TTGrilleInfo<eVersion>
00548                             (theMeshInfo,
00549                              type,
00550                              nbNodeVec));
00551     }
00552     //----------------------------------------------------------------------------
00553   };
00554 
00555 }
00556 
00557 
00558 #endif