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