Version: 6.3.1

src/CONVERTOR/VISU_Convertor_impl.hxx

Go to the documentation of this file.
00001 // Copyright (C) 2007-2011  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 //  SALOME VTKViewer : build VTK viewer into Salome desktop
00024 //  File   : 
00025 //  Author : 
00026 //  Module : SALOME
00027 //  $Header: /home/server/cvs/VISU/VISU_SRC/src/CONVERTOR/VISU_Convertor_impl.hxx,v 1.10.2.1.6.1.8.1 2011-06-02 06:00:16 vsr Exp $
00028 //
00029 #ifndef VISU_Convertor_impl_HeaderFile
00030 #define VISU_Convertor_impl_HeaderFile
00031 
00032 #include "VISU_Convertor.hxx"
00033 #include "VISU_ConvertorDef_impl.hxx"
00034 
00035 #include <boost/tuple/tuple.hpp>
00036 
00037 
00038 //---------------------------------------------------------------
00040 
00044 class VISU_CONVERTOR_EXPORT VISU_Convertor_impl: public VISU_Convertor
00045 {
00046 public:
00047   VISU_Convertor_impl();
00048 
00049   virtual
00050   ~VISU_Convertor_impl();
00051 
00053   virtual
00054   VISU_Convertor* 
00055   Build();
00056 
00058   virtual
00059   VISU_Convertor* 
00060   BuildEntities();
00061 
00063   virtual
00064   VISU_Convertor* 
00065   BuildFields();
00066 
00068   virtual
00069   VISU_Convertor* 
00070   BuildMinMax();
00071 
00073   virtual
00074   VISU_Convertor* 
00075   BuildGroups();
00076 
00078   virtual 
00079   size_t
00080   GetSize();
00081 
00083   virtual 
00084   VISU::PNamedIDMapper 
00085   GetMeshOnEntity(const std::string& theMeshName, 
00086                   const VISU::TEntity& theEntity);
00087 
00089   virtual 
00090   size_t 
00091   GetMeshOnEntitySize(const std::string& theMeshName, 
00092                        const VISU::TEntity& theEntity);
00093 
00095   virtual 
00096   VISU::PUnstructuredGridIDMapper 
00097   GetFamilyOnEntity(const std::string& theMeshName, 
00098                     const VISU::TEntity& theEntity,
00099                     const std::string& theFamilyName);
00100 
00102   virtual 
00103   size_t 
00104   GetFamilyOnEntitySize(const std::string& theMeshName, 
00105                         const VISU::TEntity& theEntity,
00106                         const std::string& theFamilyName);
00107 
00109   virtual 
00110   VISU::PUnstructuredGridIDMapper 
00111   GetMeshOnGroup(const std::string& theMeshName, 
00112                  const std::string& theGroupName);
00113   
00115   virtual 
00116   size_t 
00117   GetMeshOnGroupSize(const std::string& theMeshName, 
00118                      const std::string& theGroupName);
00119 
00121   virtual
00122   VISU::PUnstructuredGridIDMapper 
00123   GetTimeStampOnMesh( const std::string& theMeshName, 
00124                       const VISU::TEntity& theEntity,
00125                       const std::string& theFieldName,
00126                       int theTimeStampNumber );
00127 
00129   virtual 
00130   size_t
00131   GetTimeStampOnMeshSize(const std::string& theMeshName, 
00132                          const VISU::TEntity& theEntity,
00133                          const std::string& theFieldName,
00134                          int theTimeStampNumber,
00135                          bool& theIsEstimated);
00136     
00138   virtual 
00139   size_t
00140   GetTimeStampOnGaussPtsSize(const std::string& theMeshName, 
00141                              const VISU::TEntity& theEntity,
00142                              const std::string& theFieldName,
00143                              int theTimeStampNumber,
00144                              bool& theIsEstimated);
00145 
00147   virtual
00148   VISU::PGaussPtsIDMapper 
00149   GetTimeStampOnGaussPts(const std::string& theMeshName, 
00150                          const VISU::TEntity& theEntity,
00151                          const std::string& theFieldName,
00152                          int theTimeStampNumber);
00153   
00155   virtual 
00156   size_t 
00157   GetFieldOnMeshSize(const std::string& theMeshName, 
00158                      const VISU::TEntity& theEntity,
00159                      const std::string& theFieldName);
00160 
00162   virtual 
00163   const VISU::PField 
00164   GetField(const std::string& theMeshName, 
00165            VISU::TEntity theEntity, 
00166            const std::string& theFieldName);
00167 
00169   virtual 
00170   const VISU::PValForTime 
00171   GetTimeStamp(const std::string& theMeshName, 
00172                const VISU::TEntity& theEntity,
00173                const std::string& theFieldName,
00174                int theStampsNum);
00175 
00176 protected:
00178   VISU::PMeshImpl 
00179   FindMesh(const std::string& theMeshName);
00180 
00182   typedef boost::tuple<VISU::PMeshImpl,
00183                        VISU::PMeshOnEntityImpl> TFindMeshOnEntity;
00184   TFindMeshOnEntity
00185   FindMeshOnEntity(const std::string& theMeshName,
00186                    const VISU::TEntity& theEntity);
00187 
00189   typedef boost::tuple<VISU::PMeshImpl,
00190                        VISU::PMeshOnEntityImpl,VISU::PFamilyImpl> TFindFamilyOnEntity;
00191   TFindFamilyOnEntity
00192   FindFamilyOnEntity(const std::string& theMeshName,
00193                     const VISU::TEntity& theEntity,
00194                     const std::string& theFamilyName);
00195 
00197   typedef boost::tuple<VISU::PMeshImpl,
00198                        VISU::PGroupImpl> TFindMeshOnGroup;
00199   TFindMeshOnGroup
00200   FindMeshOnGroup(const std::string& theMeshName, 
00201                   const std::string& theGroupName);
00202 
00204   typedef boost::tuple<VISU::PMeshImpl,
00205                        VISU::PMeshOnEntityImpl,
00206                        VISU::PMeshOnEntityImpl,
00207                        VISU::PFieldImpl> TFindField;
00208   TFindField
00209   FindField( const std::string& theMeshName, 
00210              const VISU::TEntity& theEntity, 
00211              const std::string& theFieldName );
00212 
00214   typedef boost::tuple<VISU::PMeshImpl,
00215                        VISU::PMeshOnEntityImpl,
00216                        VISU::PMeshOnEntityImpl,
00217                        VISU::PFieldImpl,
00218                        VISU::PValForTimeImpl> TFindTimeStamp;
00219   TFindTimeStamp
00220   FindTimeStamp(const std::string& theMeshName, 
00221                 const VISU::TEntity& theEntity, 
00222                 const std::string& theFieldName, 
00223                 int theStampsNum);
00224 
00225   vtkUnstructuredGrid*
00226   GetTimeStampOnProfile( const VISU::PMeshImpl& theMesh,
00227                          const VISU::PMeshOnEntityImpl& theMeshOnEntity,
00228                          const VISU::PFieldImpl& theField,
00229                          const VISU::PValForTimeImpl& theValForTime,
00230                          const VISU::PUnstructuredGridIDMapperImpl& theIDMapperFilter,
00231                          const VISU::PProfileImpl& theProfile,
00232                          const VISU::TEntity& theEntity );
00233 
00234 protected:
00236   virtual 
00237   size_t 
00238   GetTimeStampSize(const std::string& theMeshName, 
00239                    const VISU::TEntity& theEntity,
00240                    const std::string& theFieldName,
00241                    int theStampsNum);
00242 
00244   virtual
00245   int
00246   LoadMeshOnEntity(VISU::PMeshImpl theMesh,
00247                    VISU::PMeshOnEntityImpl theMeshOnEntity) = 0;
00248 
00250   virtual
00251   int
00252   LoadFamilyOnEntity(VISU::PMeshImpl theMesh,
00253                      VISU::PMeshOnEntityImpl theMeshOnEntity, 
00254                      VISU::PFamilyImpl theFamily) = 0;
00255 
00257   virtual 
00258   int
00259   LoadMeshOnGroup(VISU::PMeshImpl theMesh, 
00260                   const VISU::TFamilySet& theFamilySet) = 0;
00261 
00263   virtual 
00264   int
00265   LoadValForTimeOnMesh(VISU::PMeshImpl theMesh, 
00266                        VISU::PMeshOnEntityImpl theMeshOnEntity, 
00267                        VISU::PFieldImpl theField, 
00268                        VISU::PValForTimeImpl theValForTime) = 0;
00269 
00271   virtual 
00272   int
00273   LoadValForTimeOnGaussPts(VISU::PMeshImpl theMesh, 
00274                            VISU::PMeshOnEntityImpl theMeshOnEntity, 
00275                            VISU::PFieldImpl theField, 
00276                            VISU::PValForTimeImpl theValForTime) = 0;
00277 };
00278 
00279 #endif
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS