Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Fiber::Atlas Class Reference

The Grid Atlas contains the set of all charts which are defined on a Grid object. More...

#include <Atlas.hpp>

Inheritance diagram for Fiber::Atlas:
Wizt::ReferenceBase< Atlas >

Classes

struct  Globals

Public Types

typedef set< RefPtr< Chart > > Atlas_t
using Transformators = unordered_set<WeakPtr<Transformator>>
using TransformationsIntoNamedChart = std::unordered_map<string, RefPtr<Transformation>>
using TransformationsByName = std::unordered_map<string, TransformationsIntoNamedChart>
Public Types inherited from Wizt::ReferenceBase< Atlas >
typedef Object reference_domain_t
typedef WeakPtr< Object, Object > SelfPtr_t

Public Member Functions

 Atlas (const RefPtr< GlobalCharts > &GA)
const RefPtr< GlobalCharts > & getGlobalAtlas () const
RefPtr< ChartIDListoperator() (const type_info &ti) const
 Given a certain type id of a chart, return a list of possible chart identifiers that are globally associated with this chart.
ChartIDListoperator[] (const type_info &)
 Given a certain type id of a chart, return a container with chart identifiers.
RefPtr< ChartIDmkChartID (const type_info &ti, const string &name)
 Make a chart Identifier for a given coordinate type and text.
RefPtr< ChartIDmkChartID (const type_info &ti, const string &name, uint16_t epsg_code)
void insertChart (const RefPtr< Chart > &newChart)
bool insertSharedChart (const RefPtr< Chart > &ExistingChart)
RefPtr< Chart > operator() (const RefPtr< ChartID > &) const
 Search for a certain chart by name.
RefPtr< Chart > operator() (unsigned epsg_code) const
 Search for a chart by EPSG Code.
RefPtr< Chart > operator() (const RefPtr< Chart > &C) const
 Search for a compatible chart.
RefPtr< TransformationgetTransformation (const Chart &DestinationChart, const Chart &SourceChart) const
 Check whether a global default chart exits for the given domain The name of such a default chart is generated from the name of the type info, prefixed with "Standard".
std::tuple< RefPtr< Atlas >, RefPtr< Chart > > getTransformation (const Chart &DestinationChart) const
Public Member Functions inherited from Wizt::ReferenceBase< Atlas >
auto getObjectCountID () const noexcept
bool isIdentical (const WeakPtr< Object, Object > &PossibleSelf) const noexcept
void mkAutoDestructive ()
refcount_t refcount () const noexcept
 ReferenceBase (Object *that) noexcept
const auto & self () const
refcount_t wrefcount () const noexcept

Static Public Member Functions

static GlobalsmyGlobals ()
static TransformationsByName & GlobalTransformations ()
static Transformators & GlobalTransformators ()
static RefPtr< TransformationgetGlobalTransformation (const Chart &DestinationChart, const Chart &SourceChart)

Public Attributes

Atlas_t ChartSet
RefPtr< GlobalChartsGlobalAtlas
TransformationsByName LocalTransformations

Friends

RefPtr< Transformationoperator>> (const std::tuple< RefPtr< Atlas >, RefPtr< Chart > > &L, const Chart &SourceChart)

Additional Inherited Members

Protected Member Functions inherited from Wizt::ReferenceBase< Atlas >
virtual void extremeUnction ()
ReferenceBaseoperator= (const ReferenceBase &R)
void suicide ()

Detailed Description

The Grid Atlas contains the set of all charts which are defined on a Grid object.

The functional purpose of the GridAtlas is to allocate and manage local and global charts: When data are stored in a Representation, they need to be associated with a chart object. Interpolation between two Representation objects is only allowed if their both charts ("representers") are identical. Otherwise, they might still refer to the same ChartID. In general, global charts should be used, i.e. the same chart object for all Grid objects, such that data interpolation is possible. Only in certain case local charts are required to disallow data interpolation; an example is a non-commutative data generation rule, e.g. when another operation than coordinate transformation is required.

Member Function Documentation

◆ getTransformation()

RefPtr< Transformation > Fiber::Atlas::getTransformation ( const Chart & DestinationChart,
const Chart & SourceChart ) const

Check whether a global default chart exits for the given domain The name of such a default chart is generated from the name of the type info, prefixed with "Standard".

Return a global default chart for the given domain. The name of such a default chart is generated from the name of the type info, prefixed with "Standard". Return a global, arbitarily named chart for the given domain.

References std::unordered_map< typename _Key, typename _Tp, typename _Hash, typename _Pred, typename _Alloc >::end(), std::unordered_map< typename _Key, typename _Tp, typename _Hash, typename _Pred, typename _Alloc >::find(), getTransformation(), and Fiber::Chart::Name().

Referenced by getTransformation().

◆ mkChartID()

RefPtr< ChartID > Fiber::Atlas::mkChartID ( const type_info & ti,
const string & name )
inline

Make a chart Identifier for a given coordinate type and text.

The chart identifier is automatically registered with the GlobalAtlas.