1#ifndef __FIBER_GRID_CHART_HPP
2#define __FIBER_GRID_CHART_HPP "Created 27.02.2001 21:42:27 by werner"
5#include <fiber/field/BaseSpace.hpp>
6#include "Transformation.hpp"
38 class GRID_API ChartCreatorBase;
61public:
const int dims;
62 const char*domain_name;
63 const char**component_names;
66 const char*domain_name,
67 const char**component_names,
73 virtual const type_info&getChartType()
const = 0;
109 , myCreator( MyCreator )
120 const RefPtr<ChartID>&getId()
const throw()
147 if (!myCreator)
return 0;
148 return myCreator->dims;
161 if (i>=dims() )
return 0;
162 if (!myCreator)
return 0;
164 return myCreator->component_names[i];
170 if (!myCreator)
return 0;
171 return myCreator->domain_name;
177 if (!myCreator)
return NullPtr();
178 return myCreator->create(
mID );
181 const type_info&getChartType()
const
183 if (!myCreator)
return typeid(void);
184 return myCreator->getChartType();
187static RefPtr<Chart> create(
const type_info&chart_type,
const RefPtr<ChartID>&mID);
189 virtual RefPtr<Field> makeField(
const type_info&base_type,
const Tensortype&t) = 0;
192 string xml()
const override
195 retval +=
" <CHART>\n";
196 retval +=
" <NAME>" + Name() +
"</NAME>\n";
200 retval +=
" <DOMAIN>";
201 retval += domain_name();
202 retval +=
"</DOMAIN>\n";
206 for(
int i = 0; i<d; i++)
208 retval +=
" <COMPONENT>";
209 retval += component_name(i);
210 retval +=
"</COMPONENT>\n";
213 retval +=
" </CHART>\n";
221template <
class ChartType>
233 return new ChartType(
self(), ID );
236 const type_info&getChartType()
const override
238 return typeid(ChartType);
basic_string< char > string
Base class for spaces that may be used for mapping domains to fiber spaces.
Definition BaseSpace.hpp:38
A generic Chart object that may be used to cast information of points within a manifold to numerical ...
Definition Chart.hpp:91
const char * component_name(int i) const
Name of the ith component.
Definition Chart.hpp:158
string getName() const
Name of this chart.
Definition Chart.hpp:139
string Name() const override
Name of this chart.
Definition Chart.hpp:128
const char * domain_name() const
Name of the associated common domain name.
Definition Chart.hpp:168
Chart(const WeakPtr< ChartCreatorBase > &MyCreator, const RefPtr< ChartID > &mID)
Constructor.
Definition Chart.hpp:107
int Dims() const override
Dimensions.
Definition Chart.hpp:152
int dims() const
Dimensions.
Definition Chart.hpp:145
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
const auto & self() const
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
WeakPtr< Chart, BaseSpace::reference_domain_t > ChartPtr
A weak pointer to a chart.
Definition Chart.hpp:41