#ifndef DUNE_ONE_D_GRID_ENTITY_SEED_HH
#define DUNE_ONE_D_GRID_ENTITY_SEED_HH

#include "onedgridentity.hh"

/** \file
 *  \brief Implementation of EntitySeed for the OneDGrid grid manager
 */

namespace Dune {

/** \brief Store a reference to an entity with a minimal memory footprint
 */
template<int codim, class GridImp>
class OneDGridEntitySeed
{
    // grid dimension
    enum { dim = GridImp::dimension };
public:

    //! construct entity seed from entity
    OneDGridEntitySeed (const OneDGridEntity<codim,dim,GridImp>& entity)
        : target_(entity.target_)
    {}
    
    /** \brief Access to the underlying OneDGrid data structure */
    OneDEntityImp<dim-codim>* target() const
    {
        return target_;
    }

private:
    /** \brief Plain old pointer to the corresponding OneDGrid data structure */
    OneDEntityImp<dim-codim>* target_;
};

} // end namespace Dune

#endif
