12 #ifndef ECL_GEOMETRY_TENSION_SPLINE_HPP_ 13 #define ECL_GEOMETRY_TENSION_SPLINE_HPP_ 20 #include <ecl/config/macros.hpp> 21 #include <ecl/concepts/macros.hpp> 22 #include <ecl/concepts/streams.hpp> 23 #include <ecl/concepts/containers.hpp> 24 #include <ecl/containers/array.hpp> 25 #include <ecl/exceptions/standard_exception.hpp> 26 #include <ecl/utilities/blueprints.hpp> 41 namespace blueprints {
43 class C2TensionSpline;
59 class ECL_PUBLIC BluePrintFactory< TensionSpline > {
74 static blueprints::C2TensionSpline Natural(
const Array<double>& x_set,
const Array<double>& y_set,
77 virtual ~BluePrintFactory() {};
100 typedef BluePrintFactory< TensionSpline > Factory;
112 virtual ~TensionSpline() {};
139 template<
typename Derived>
140 TensionSpline(
const BluePrint< Derived > &blueprint) {
141 blueprint.implementApply(*
this);
147 friend class blueprints::C2TensionSpline;
187 const Array<double>& domain()
const {
return discretised_domain; }
204 template <
typename OutputStream>
205 friend OutputStream&
operator << (OutputStream &ostream,
const TensionSpline &tension_spline);
208 Array<double> discretised_domain;
209 Array<TensionFunction> functions;
221 template <
typename OutputStream>
226 for (
unsigned int i = 0; i < tension_spline.
functions.size(); ++i ) {
227 ostream << tension_spline.
functions[i] <<
"\n";
237 namespace blueprints {
263 C2TensionSpline() {};
264 ~C2TensionSpline() {};
288 base_type instantiate();
297 void apply(base_type& spline)
const;
Storage container for a tension spline interpolation.
Defines validating functionality for the streams concept.
#define ecl_geometry_PUBLIC
OutputStream & operator<<(OutputStream &ostream, const Void void_object)
Output stream operator for Void objects.
Standard exception type, provides code location and error string.
#define ecl_assert_throw_decl(exception)
Assure throw exception declaration.
#define ecl_compile_time_concept_check(Model)
Compile time concept checking assertion.
This is a parent template for blueprints using crtp.
Array< TensionFunction > functions