20 #ifndef GEOS_MESH_INTEROBJECTRELATION_HPP_ 
   21 #define GEOS_MESH_INTEROBJECTRELATION_HPP_ 
   34 template< 
typename BASETYPE >
 
   47   template< 
typename ... ARGS >
 
   49     BASETYPE( std::forward< ARGS >( args )... )
 
   60     base_type::operator=( rhs.
base() );
 
   61     m_relatedObject = rhs.m_relatedObject;
 
   69   const base_type & 
base()
 const { 
return static_cast< const BASETYPE & 
>(*this); }
 
   89   { 
return m_relatedObject; }
 
arrayView1d< globalIndex const > relatedObjectLocalToGlobal() const
Get the LocalToGlobal mapping from the related object.
const base_type & base() const
Get a reference to this object cast to BASETYPE const.
const ObjectManagerBase * relatedObject() const
Get the related object.
void setRelatedObject(ObjectManagerBase const &relatedObject)
Set the related object.
base_type & base()
Get a reference to this object cast to BASETYPE.
InterObjectRelation< BASETYPE > & operator=(InterObjectRelation< BASETYPE > const &rhs)
copy assignement operator
BASETYPE base_type
The type of the base class.
unordered_map< globalIndex, localIndex > const  & relatedObjectGlobalToLocal() const
Get the GlobalToLocal mapping from the related object.
InterObjectRelation(ARGS &&... args)
A forwarding constructor.
The ObjectManagerBase is the base object of all object managers in the mesh data hierachy.
arrayView1d< globalIndex > localToGlobalMap()
Get local to global map.
unordered_map< globalIndex, localIndex > const  & globalToLocalMap() const
Get global to local map.
Base template for ordered and unordered maps.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
InterObjectRelation< array2d< localIndex > > FixedOneToManyRelation
A relationship from single objects to many other objects, where each object is related to the same nu...