00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
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