Commit d706cd51 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Fixed comparison operator in MeshStorageLayer

parent 9d1f1b3b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ bool
MeshEntity< MeshConfig, MeshVertexTopology >::
operator==( const MeshEntity& entity ) const
{
   return ( //MeshSuperentityAccess< MeshConfig, MeshVertexTopology >::operator==( entity ) &&
   return ( MeshSuperentityAccess< MeshConfig, MeshVertexTopology >::operator==( entity ) &&
            MeshEntityId< typename MeshConfig::IdType,
                          typename MeshConfig::GlobalIndexType >::operator==( entity ) &&
            point == entity.point );
+42 −44
Original line number Diff line number Diff line
@@ -49,20 +49,20 @@ class MeshStorageLayer< MeshConfig,
                                          typename MeshTraits< MeshConfig >::template EntityTraits< DimensionsTag::value >::EntityTopology >
{
   public:
      static constexpr int Dimensions = DimensionsTag::value;
      using BaseType = MeshStorageLayer< MeshConfig, typename DimensionsTag::Decrement >;
      using MeshTraitsType   = MeshTraits< MeshConfig >;
      using EntityTraitsType = typename MeshTraitsType::template EntityTraits< Dimensions >;
      using StorageArrayType = typename EntityTraitsType::StorageArrayType;
      using AccessArrayType  = typename EntityTraitsType::AccessArrayType;
      using GlobalIndexType  = typename EntityTraitsType::GlobalIndexType;
      using EntityType       = typename EntityTraitsType::EntityType;
      using EntityTopology   = typename EntityTraitsType::EntityTopology;
      using SuperentityStorageBaseType = MeshSuperentityStorageLayers< MeshConfig, EntityTopology >;

      static const int Dimensions = DimensionsTag::value;
      typedef MeshStorageLayer< MeshConfig, typename DimensionsTag::Decrement >  BaseType;
      typedef MeshSuperentityStorageLayers< MeshConfig,
                                            typename MeshTraits< MeshConfig >::template EntityTraits< DimensionsTag::value >::EntityTopology > SuperentityStorageBaseType;
      typedef MeshTraits< MeshConfig >                                           MeshTraitsType;
      typedef typename MeshTraitsType::template EntityTraits< Dimensions >       EntityTraitsType;

      typedef typename EntityTraitsType::StorageArrayType                        StorageArrayType;
      typedef typename EntityTraitsType::AccessArrayType                         AccessArrayType;
      typedef typename EntityTraitsType::GlobalIndexType                         GlobalIndexType;
      typedef typename EntityTraitsType::EntityType                              EntityType;
      typedef typename EntityTraitsType::EntityTopology                          EntityTopology;

      /****
        * Make visible getters of the lower layer
        */
      using BaseType::getNumberOfEntities;
      using BaseType::getEntity;
      using BaseType::getEntities;
@@ -132,7 +132,7 @@ class MeshStorageLayer< MeshConfig,

      bool operator==( const MeshStorageLayer& meshLayer ) const
      {
         return ( BaseType::operator==( meshLayer ) && entities == meshLayer.entities );
         return ( BaseType::operator==( meshLayer ) && SuperentityStorageBaseType::operator==( meshLayer ) && entities == meshLayer.entities );
      }

   protected:
@@ -144,15 +144,15 @@ class MeshStorageLayer< MeshConfig,
   public:
      using BaseType::entitiesArray;

      typename EntityTraitsType::StorageArrayType& entitiesArray( DimensionTag )
      typename EntityTraitsType::StorageArrayType& entitiesArray( DimensionsTag )
      {
         return entities;
      }

      using BaseType::superentityIdsArray;

      template< typename SuperDimensionTag >
      typename MeshTraitsType::GlobalIdArrayType& superentityIdsArray( DimensionTag )
      template< typename SuperDimensionsTag >
      typename MeshTraitsType::GlobalIdArrayType& superentityIdsArray( DimensionsTag )
      {
         return SuperentityStorageBaseType::superentityIdsArray( SuperDimensionTag() );
      }
@@ -180,20 +180,19 @@ class MeshStorageLayer< MeshConfig, MeshDimensionsTag< 0 >, true >

{
public:
   typedef MeshDimensionsTag< 0 >                                 DimensionsTag;
   using DimensionsTag              = MeshDimensionsTag< 0 >;

   typedef MeshSuperentityStorageLayers< MeshConfig,
                                         MeshVertexTopology >     SuperentityStorageBaseType;
   using SuperentityStorageBaseType = MeshSuperentityStorageLayers< MeshConfig, MeshVertexTopology >;

   typedef MeshTraits< MeshConfig >                               MeshTraitsType;
   typedef typename MeshTraitsType::template EntityTraits< 0 >    EntityTraitsType;
   using MeshTraitsType             = MeshTraits< MeshConfig >;
   using EntityTraitsType           = typename MeshTraitsType::template EntityTraits< 0 >;

   typedef typename EntityTraitsType::StorageArrayType            StorageArrayType;
   typedef typename EntityTraitsType::AccessArrayType             AccessArrayType;
   typedef typename EntityTraitsType::GlobalIndexType             GlobalIndexType;
   typedef typename EntityTraitsType::EntityType                  VertexType;
   typedef typename VertexType::PointType                         PointType;
   typedef MeshVertexTopology                                     EntityTopology;
   using StorageArrayType           = typename EntityTraitsType::StorageArrayType;
   using AccessArrayType            = typename EntityTraitsType::AccessArrayType;
   using GlobalIndexType            = typename EntityTraitsType::GlobalIndexType;
   using VertexType                 = typename EntityTraitsType::EntityType;
   using PointType                  = typename VertexType::PointType;
   using EntityTopology             = MeshVertexTopology;

   MeshStorageLayer()
   {
@@ -288,7 +287,7 @@ public:

   bool operator==( const MeshStorageLayer& meshLayer ) const
   {
      return ( vertices == meshLayer.vertices );
      return ( SuperentityStorageBaseType::operator==( meshLayer ) && vertices == meshLayer.vertices );
   }

private:
@@ -304,9 +303,8 @@ private:
         return vertices;
      }

 
      template< typename SuperDimensionTag >
      typename MeshTraitsType::GlobalIdArrayType& superentityIdsArray( DimensionTag )
      template< typename SuperDimensionsTag >
      typename MeshTraitsType::GlobalIdArrayType& superentityIdsArray( DimensionsTag )
      {
         return SuperentityStorageBaseType::superentityIdsArray( SuperDimensionTag() );
      }