36 : x1(x1_), x2(x2_), y1(y1_), y2(y2_)
42 return ( (y2-y1) * x + x2*y1-x1*y2 )/(x2-x1);
53 : x1(util::pow(x1_,b_)), x2(util::pow(x2_,b_)), y1(y1_), y2(y2_), b(b_)
59 return ( (y2-y1) *
util::pow(x,b) + x2*y1-x1*y2 )/(x2-x1);
72 functions(rhs.functions.size())
74 for (
unsigned iF=0; iF<functions.size(); ++iF) {
75 functions[iF] = rhs.functions[iF]->clone();
89 for (
unsigned iF=0; iF<functions.size(); ++iF) {
97 pieces.swap(rhs.pieces);
98 functions.swap(rhs.functions);
104 typename std::vector<Piece<T> >::iterator pieceIt = pieces.begin();
105 typename std::vector<ScalarFunction<T>*>::iterator fIt = functions.begin();
106 while (pieceIt != pieces.end() && piece.
closedBegin >= pieceIt->closedBegin) {
110 pieces.insert(pieceIt, piece);
111 functions.insert(fIt, f);
117 if (pieces.empty() || x<pieces[0].closedBegin) {
121 while (iPiece != pieces.size() && x >= pieces[iPiece].openEnd) {
124 if (iPiece == pieces.size() || x < pieces[iPiece].closedBegin) {
127 return (*functions[iPiece])(x);
140 : red(red_), green(green_), blue(blue_)
146 return rgb<T>( red(x), green(x), blue(x) );
149namespace mapGenerators {
394 if (mapName ==
"earth") {
396 generateEarthRed<T>(),
397 generateEarthGreen<T>(),
398 generateEarthBlue<T>() );
400 else if (mapName ==
"water") {
402 generateWaterRed<T>(),
403 generateWaterGreen<T>(),
404 generateWaterBlue<T>() );
406 else if (mapName ==
"air") {
409 generateAirGreen<T>(),
410 generateAirBlue<T>() );
412 else if (mapName ==
"fire") {
414 generateFireRed<T>(),
415 generateFireGreen<T>(),
416 generateFireBlue<T>() );
418 else if (mapName ==
"leeloo") {
420 generateLeeLooRed<T>(),
421 generateLeeLooGreen<T>(),
422 generateLeeLooBlue<T>() );
425 generateLeeLooRed<T>(),
426 generateLeeLooGreen<T>(),
427 generateLeeLooBlue<T>() );
ColorMap(PiecewiseFunction< T > const &red_, PiecewiseFunction< T > const &green_, PiecewiseFunction< T > const &blue_)
T operator()(T x) const override
LinearFunction(T x1_, T x2_, T y1_, T y2_)
LinearFunction< T > * clone() const override
T operator()(T x) const override
PiecewiseFunction< T > * clone() const override
void swap(PiecewiseFunction< T > &rhs)
~PiecewiseFunction() override
PiecewiseFunction< T > & operator=(PiecewiseFunction< T > const &rhs)
void addPiece(Piece< T > piece, ScalarFunction< T > *f)
T operator()(T x) const override
PowerLawFunction< T > * clone() const override
PowerLawFunction(T x1_, T x2_, T y1_, T y2_, T b_)
PiecewiseFunction< T > generateWaterBlue()
PiecewiseFunction< T > generateAirGreen()
PiecewiseFunction< T > generateFireGreen()
PiecewiseFunction< T > generateWaterRed()
PiecewiseFunction< T > generateFireRed()
PiecewiseFunction< T > generateEarthRed()
PiecewiseFunction< T > generateEarthBlue()
PiecewiseFunction< T > generateWaterGreen()
PiecewiseFunction< T > generateLeeLooBlue()
ColorMap< T > generateMap(std::string mapName)
PiecewiseFunction< T > generateLeeLooRed()
PiecewiseFunction< T > generateAirBlue()
PiecewiseFunction< T > generateAirRed()
PiecewiseFunction< T > generateEarthGreen()
PiecewiseFunction< T > generateLeeLooGreen()
PiecewiseFunction< T > generateFireBlue()
cpu::simd::Pack< T > pow(cpu::simd::Pack< T > base, cpu::simd::Pack< T > exp)
Top level namespace for all of OpenLB.