Files
Upsilon/apps/graph/local_context.cpp
Émilie Feral 7af3979d3b [poincare] Change Context API
Change-Id: I2818866fb41bf73c39396fbd85600e586a79065c
2016-12-15 13:51:41 +01:00

29 lines
672 B
C++

#include "local_context.h"
#include <string.h>
namespace Graph {
LocalContext::LocalContext(::Context * parentContext) :
m_xValue(Float(0.0f)),
m_parentContext(parentContext)
{
}
void LocalContext::setExpressionForSymbolName(Expression * expression, const Symbol * symbol) {
if (symbol->name() == 'x') {
m_xValue = Float(expression->approximate(*m_parentContext));
} else {
m_parentContext->setExpressionForSymbolName(expression, symbol);
}
}
const Expression * LocalContext::expressionForSymbol(const Symbol * symbol) {
if (symbol->name() == 'x') {
return &m_xValue;
} else {
return m_parentContext->expressionForSymbol(symbol);
}
}
}