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...