Loading src/mesh/tnlMesh.h +24 −52 Original line number Diff line number Diff line Loading @@ -33,60 +33,39 @@ class tnlMesh : public tnlObject, public: typedef MeshConfig Config; typedef tnlMeshTraits< MeshConfig > MeshTraits; typedef typename tnlMeshTraits< MeshConfig >::CellType CellType; typedef typename tnlMeshTraits< MeshConfig >::PointType PointType; static const int dimensions = MeshTraits::meshDimensions; template< int Dimensions > using EntityTraits = typename MeshTraits::template EntityTraits< Dimensions >; static tnlString getType(); virtual tnlString getTypeVirtual() const { return this->getType(); } virtual tnlString getTypeVirtual() const; using tnlObject::save; using tnlObject::load; static constexpr int getDimensions(); bool save( tnlFile& file ) const { if( ! tnlObject::save( file ) || ! entitiesStorage.save( file ) ) { cerr << "Mesh saving failed." << endl; return false; } return true; } template< int Dimensions > bool entitiesAvalable() const; bool load( tnlFile& file ) { if( ! tnlObject::load( file ) || ! entitiesStorage.load( file ) ) { cerr << "Mesh loading failed." << endl; return false; } return true; } // TODO: jeden GlobalIndexType a LocalIndexType pro vsechny entity static const int getDimensions(); typename EntityTraits< dimensions >::GlobalIndexType getNumberOfCells() const; template< int Dimensions > bool entitiesAvalable() const { return MeshTraits::template EntityTraits< Dimensions >::available; } typename EntityTraits< Dimensions >::GlobalIndexType getNumberOfEntities() const; CellType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ); const CellType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ) const; bool save( tnlFile& file ) const; bool load( tnlFile& file ); template< int Dimensions > typename MeshTraits::template EntityTraits< Dimensions >::GlobalIndexType getNumberOfEntities() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< Dimensions >() ); } typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType getNumberOfCells() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< dimensions >() ); } template< int Dimensions > typename MeshTraits::template EntityTraits< Dimensions >::EntityType& Loading Loading @@ -116,17 +95,6 @@ class tnlMesh : public tnlObject, return entitiesStorage.getEntities( tnlDimensionsTag< Dimensions >() ); } typename MeshTraits::template EntityTraits< dimensions >::EntityType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ) { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), entityIndex ); } const typename MeshTraits::template EntityTraits< dimensions >::EntityType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ) const { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), entityIndex ); } void print( ostream& str ) const { Loading Loading @@ -161,6 +129,10 @@ class tnlMesh : public tnlObject, return meshInitializer.createMesh( points, cellSeeds, *this ); } using tnlObject::save; using tnlObject::load; protected: tnlMeshStorageLayers< MeshConfig > entitiesStorage; Loading src/mesh/tnlMesh_impl.h +89 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,95 @@ getType() return tnlString( "tnlMesh< ") + MeshConfig::getType() + " >"; } template< typename MeshConfig > tnlString tnlMesh< MeshConfig >:: getTypeVirtual() const { return this->getType(); } template< typename MeshConfig > constexpr int tnlMesh< MeshConfig >:: getDimensions() { return dimensions; } template< typename MeshConfig > template< int Dimensions > bool tnlMesh< MeshConfig >:: entitiesAvalable() const { return MeshTraits::template EntityTraits< Dimensions >::available; } template< typename MeshConfig > template< int Dimensions > typename tnlMesh< MeshConfig >::template EntityTraits< Dimensions >::GlobalIndexType tnlMesh< MeshConfig >:: getNumberOfEntities() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< Dimensions >() ); } template< typename MeshConfig > typename tnlMesh< MeshConfig >::template EntityTraits< tnlMesh< MeshConfig >::dimensions >::GlobalIndexType tnlMesh< MeshConfig >:: getNumberOfCells() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< dimensions >() ); } template< typename MeshConfig > typename tnlMesh< MeshConfig >::CellType& tnlMesh< MeshConfig >:: getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType cellIndex ) { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), cellIndex ); } template< typename MeshConfig > const typename tnlMesh< MeshConfig >::CellType& tnlMesh< MeshConfig >:: getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType cellIndex ) const { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), cellIndex ); } template< typename MeshConfig > bool tnlMesh< MeshConfig >:: save( tnlFile& file ) const { if( ! tnlObject::save( file ) || ! entitiesStorage.save( file ) ) { cerr << "Mesh saving failed." << endl; return false; } return true; } template< typename MeshConfig > bool tnlMesh< MeshConfig >:: load( tnlFile& file ) { if( ! tnlObject::load( file ) || ! entitiesStorage.load( file ) ) { cerr << "Mesh loading failed." << endl; return false; } return true; } #endif /* TNLMESH_IMPL_H */ Loading
src/mesh/tnlMesh.h +24 −52 Original line number Diff line number Diff line Loading @@ -33,60 +33,39 @@ class tnlMesh : public tnlObject, public: typedef MeshConfig Config; typedef tnlMeshTraits< MeshConfig > MeshTraits; typedef typename tnlMeshTraits< MeshConfig >::CellType CellType; typedef typename tnlMeshTraits< MeshConfig >::PointType PointType; static const int dimensions = MeshTraits::meshDimensions; template< int Dimensions > using EntityTraits = typename MeshTraits::template EntityTraits< Dimensions >; static tnlString getType(); virtual tnlString getTypeVirtual() const { return this->getType(); } virtual tnlString getTypeVirtual() const; using tnlObject::save; using tnlObject::load; static constexpr int getDimensions(); bool save( tnlFile& file ) const { if( ! tnlObject::save( file ) || ! entitiesStorage.save( file ) ) { cerr << "Mesh saving failed." << endl; return false; } return true; } template< int Dimensions > bool entitiesAvalable() const; bool load( tnlFile& file ) { if( ! tnlObject::load( file ) || ! entitiesStorage.load( file ) ) { cerr << "Mesh loading failed." << endl; return false; } return true; } // TODO: jeden GlobalIndexType a LocalIndexType pro vsechny entity static const int getDimensions(); typename EntityTraits< dimensions >::GlobalIndexType getNumberOfCells() const; template< int Dimensions > bool entitiesAvalable() const { return MeshTraits::template EntityTraits< Dimensions >::available; } typename EntityTraits< Dimensions >::GlobalIndexType getNumberOfEntities() const; CellType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ); const CellType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ) const; bool save( tnlFile& file ) const; bool load( tnlFile& file ); template< int Dimensions > typename MeshTraits::template EntityTraits< Dimensions >::GlobalIndexType getNumberOfEntities() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< Dimensions >() ); } typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType getNumberOfCells() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< dimensions >() ); } template< int Dimensions > typename MeshTraits::template EntityTraits< Dimensions >::EntityType& Loading Loading @@ -116,17 +95,6 @@ class tnlMesh : public tnlObject, return entitiesStorage.getEntities( tnlDimensionsTag< Dimensions >() ); } typename MeshTraits::template EntityTraits< dimensions >::EntityType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ) { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), entityIndex ); } const typename MeshTraits::template EntityTraits< dimensions >::EntityType& getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType entityIndex ) const { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), entityIndex ); } void print( ostream& str ) const { Loading Loading @@ -161,6 +129,10 @@ class tnlMesh : public tnlObject, return meshInitializer.createMesh( points, cellSeeds, *this ); } using tnlObject::save; using tnlObject::load; protected: tnlMeshStorageLayers< MeshConfig > entitiesStorage; Loading
src/mesh/tnlMesh_impl.h +89 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,95 @@ getType() return tnlString( "tnlMesh< ") + MeshConfig::getType() + " >"; } template< typename MeshConfig > tnlString tnlMesh< MeshConfig >:: getTypeVirtual() const { return this->getType(); } template< typename MeshConfig > constexpr int tnlMesh< MeshConfig >:: getDimensions() { return dimensions; } template< typename MeshConfig > template< int Dimensions > bool tnlMesh< MeshConfig >:: entitiesAvalable() const { return MeshTraits::template EntityTraits< Dimensions >::available; } template< typename MeshConfig > template< int Dimensions > typename tnlMesh< MeshConfig >::template EntityTraits< Dimensions >::GlobalIndexType tnlMesh< MeshConfig >:: getNumberOfEntities() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< Dimensions >() ); } template< typename MeshConfig > typename tnlMesh< MeshConfig >::template EntityTraits< tnlMesh< MeshConfig >::dimensions >::GlobalIndexType tnlMesh< MeshConfig >:: getNumberOfCells() const { return entitiesStorage.getNumberOfEntities( tnlDimensionsTag< dimensions >() ); } template< typename MeshConfig > typename tnlMesh< MeshConfig >::CellType& tnlMesh< MeshConfig >:: getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType cellIndex ) { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), cellIndex ); } template< typename MeshConfig > const typename tnlMesh< MeshConfig >::CellType& tnlMesh< MeshConfig >:: getCell( const typename MeshTraits::template EntityTraits< dimensions >::GlobalIndexType cellIndex ) const { return entitiesStorage.getEntity( tnlDimensionsTag< dimensions >(), cellIndex ); } template< typename MeshConfig > bool tnlMesh< MeshConfig >:: save( tnlFile& file ) const { if( ! tnlObject::save( file ) || ! entitiesStorage.save( file ) ) { cerr << "Mesh saving failed." << endl; return false; } return true; } template< typename MeshConfig > bool tnlMesh< MeshConfig >:: load( tnlFile& file ) { if( ! tnlObject::load( file ) || ! entitiesStorage.load( file ) ) { cerr << "Mesh loading failed." << endl; return false; } return true; } #endif /* TNLMESH_IMPL_H */