Go to the documentation of this file.00001
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
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #ifndef MULTIMESHVECTORFIELD_HPP
00044 #define MULTIMESHVECTORFIELD_HPP 1
00045
00046
00047 #include <vector>
00048 #include "meshvectorfield.hpp"
00049
00050
00069 class MultiMeshVectorField : public VectorField {
00070
00071 std::vector<MeshVectorField *> _field;
00075 public:
00076
00084 MultiMeshVectorField();
00085
00092 MultiMeshVectorField( const Mesh &m, const bool fout[3] );
00093
00104 MultiMeshVectorField( geom_mode_e geom_mode, const bool fout[3], Int3D size,
00105 Vec3D origo, double h );
00106
00132 MultiMeshVectorField( geom_mode_e geom_mode, const bool fout[3], double xscale,
00133 double fscale, const std::string &filename );
00134
00137 MultiMeshVectorField( const MultiMeshVectorField &f );
00138
00141 MultiMeshVectorField( std::istream &s );
00142
00145 virtual ~MultiMeshVectorField();
00146
00166 void set_extrapolation( const field_extrpl_e extrpl[6] );
00167
00170 void translate( Vec3D x );
00171
00174 void scale( double s );
00175
00178 void rotate_x( int a );
00179
00182 void rotate_y( int a );
00183
00186 void rotate_z( int a );
00187
00190 void clear();
00191
00198 void reset( geom_mode_e geom_mode, const bool fout[3], Int3D size,
00199 Vec3D origo, double h );
00200
00201
00210 void add_mesh( Int3D size, Vec3D origo, double h );
00211
00220 void add_mesh( double xscale, double fscale, const std::string &filename );
00221
00225 void get_minmax( double &min, double &max ) const;
00226
00229 void get_defined_components( bool fout[3] ) const;
00230
00233 MultiMeshVectorField &operator=( const MultiMeshVectorField &f );
00234
00237 const MeshVectorField &operator[]( int i ) const {
00238 return( *_field[i] );
00239 }
00240
00243 MeshVectorField &operator[]( int i ) {
00244 return( *_field[i] );
00245 }
00246
00250 virtual const Vec3D operator()( Vec3D x ) const;
00251
00254 void save( const std::string &filename ) const;
00255
00258 void save( std::ostream &s ) const;
00259
00262 void debug_print( std::ostream &os ) const;
00263 };
00264
00265
00266 #endif
00267