MapLibre Native Core
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
mbgl::style::expression::Interpolate Class Reference

#include <interpolate.hpp>

Inheritance diagram for mbgl::style::expression::Interpolate:
mbgl::style::expression::Expression

Public Member Functions

 Interpolate (const type::Type &type_, Interpolator interpolator_, std::unique_ptr< Expression > input_, std::map< double, std::unique_ptr< Expression >> stops_)
 
const std::unique_ptr< Expression > & getInput () const
 
const InterpolatorgetInterpolator () const
 
void eachChild (const std::function< void(const Expression &)> &visit) const override
 
void eachStop (const std::function< void(double, const Expression &)> &visit) const
 
Range< float > getCoveringStops (const double lower, const double upper) const
 
double interpolationFactor (const Range< double > &inputLevels, const double inputValue) const
 
bool operator== (const Expression &e) const override
 
std::vector< std::optional< Value > > possibleOutputs () const override
 
mbgl::Value serialize () const override
 
std::string getOperator () const override
 
- Public Member Functions inherited from mbgl::style::expression::Expression
 Expression (Kind kind_, type::Type type_)
 
virtual ~Expression ()=default
 
virtual EvaluationResult evaluate (const EvaluationContext &params) const =0
 
bool operator!= (const Expression &rhs) const
 
Kind getKind () const
 
type::Type getType () const
 
EvaluationResult evaluate (std::optional< float > zoom, const Feature &feature, std::optional< double > colorRampParameter) const
 
EvaluationResult evaluate (std::optional< float > zoom, const Feature &feature, std::optional< double > colorRampParameter, const std::set< std::string > &availableImages) const
 
EvaluationResult evaluate (std::optional< float > zoom, const Feature &feature, std::optional< double > colorRampParameter, const std::set< std::string > &availableImages, const CanonicalTileID &canonical) const
 
EvaluationResult evaluate (std::optional< mbgl::Value > accumulated, const Feature &feature) const
 

Protected Attributes

const Interpolator interpolator
 
const std::unique_ptr< Expressioninput
 
const std::map< double, std::unique_ptr< Expression > > stops
 

Additional Inherited Members

- Static Protected Member Functions inherited from mbgl::style::expression::Expression
template<typename T >
static bool childrenEqual (const T &lhs, const T &rhs)
 
static bool childEqual (const std::unique_ptr< Expression > &lhs, const std::unique_ptr< Expression > &rhs)
 
template<typename T >
static bool childEqual (const std::pair< T, std::unique_ptr< Expression >> &lhs, const std::pair< T, std::unique_ptr< Expression >> &rhs)
 
template<typename T >
static bool childEqual (const std::pair< T, std::shared_ptr< Expression >> &lhs, const std::pair< T, std::shared_ptr< Expression >> &rhs)
 
static bool childEqual (const std::pair< std::unique_ptr< Expression >, std::unique_ptr< Expression >> &lhs, const std::pair< std::unique_ptr< Expression >, std::unique_ptr< Expression >> &rhs)
 

Detailed Description

Definition at line 20 of file interpolate.hpp.

Constructor & Destructor Documentation

◆ Interpolate()

mbgl::style::expression::Interpolate::Interpolate ( const type::Type type_,
Interpolator  interpolator_,
std::unique_ptr< Expression input_,
std::map< double, std::unique_ptr< Expression >>  stops_ 
)

Member Function Documentation

◆ eachChild()

void mbgl::style::expression::Interpolate::eachChild ( const std::function< void(const Expression &)> &  visit) const
inlineoverridevirtual

Implements mbgl::style::expression::Expression.

Definition at line 30 of file interpolate.hpp.

◆ eachStop()

void mbgl::style::expression::Interpolate::eachStop ( const std::function< void(double, const Expression &)> &  visit) const
inline

Definition at line 37 of file interpolate.hpp.

◆ getCoveringStops()

Range<float> mbgl::style::expression::Interpolate::getCoveringStops ( const double  lower,
const double  upper 
) const
inline

Definition at line 44 of file interpolate.hpp.

◆ getInput()

const std::unique_ptr<Expression>& mbgl::style::expression::Interpolate::getInput ( ) const
inline

Definition at line 27 of file interpolate.hpp.

◆ getInterpolator()

const Interpolator& mbgl::style::expression::Interpolate::getInterpolator ( ) const
inline

Definition at line 28 of file interpolate.hpp.

◆ getOperator()

std::string mbgl::style::expression::Interpolate::getOperator ( ) const
inlineoverridevirtual

Implements mbgl::style::expression::Expression.

Definition at line 71 of file interpolate.hpp.

◆ interpolationFactor()

double mbgl::style::expression::Interpolate::interpolationFactor ( const Range< double > &  inputLevels,
const double  inputValue 
) const
inline

Definition at line 48 of file interpolate.hpp.

◆ operator==()

bool mbgl::style::expression::Interpolate::operator== ( const Expression e) const
inlineoverridevirtual

Implements mbgl::style::expression::Expression.

Definition at line 54 of file interpolate.hpp.

◆ possibleOutputs()

std::vector<std::optional<Value> > mbgl::style::expression::Interpolate::possibleOutputs ( ) const
overridevirtual

Statically analyze the expression, attempting to enumerate possible outputs. Returns an array of values plus the sentinel null optional value, used to indicate that the complete set of outputs is statically undecidable.

Implements mbgl::style::expression::Expression.

◆ serialize()

mbgl::Value mbgl::style::expression::Interpolate::serialize ( ) const
overridevirtual

Member Data Documentation

◆ input

const std::unique_ptr<Expression> mbgl::style::expression::Interpolate::input
protected

Definition at line 75 of file interpolate.hpp.

◆ interpolator

const Interpolator mbgl::style::expression::Interpolate::interpolator
protected

Definition at line 74 of file interpolate.hpp.

◆ stops

const std::map<double, std::unique_ptr<Expression> > mbgl::style::expression::Interpolate::stops
protected

Definition at line 76 of file interpolate.hpp.


The documentation for this class was generated from the following file: