FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
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:
MemCore::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 MemCore::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< Chartoperator() (const RefPtr< ChartID > &) const
 Search for a certain chart by name.
 
RefPtr< Chartoperator() (unsigned epsg_code) const
 Search for a chart by EPSG Code.
 
RefPtr< Chartoperator() (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 MemCore::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 TransformationsByNameGlobalTransformations ()
 
static TransformatorsGlobalTransformators ()
 
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 MemCore::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.

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