#include "cartesian_function_store.h" extern "C" { #include #include } #include namespace Graph { constexpr int CartesianFunctionStore::k_maxNumberOfFunctions; constexpr KDColor CartesianFunctionStore::k_defaultColors[k_maxNumberOfFunctions]; constexpr const char * CartesianFunctionStore::k_functionNames[k_maxNumberOfFunctions]; CartesianFunctionStore::CartesianFunctionStore() : Shared::FunctionStore() { addEmptyFunction(); } uint32_t CartesianFunctionStore::storeChecksum() { size_t dataLengthInBytes = k_maxNumberOfFunctions*TextField::maxBufferSize()*sizeof(char); assert((dataLengthInBytes & 0x3) == 0); // Assert that dataLengthInBytes is a multiple of 4 char data[k_maxNumberOfFunctions*TextField::maxBufferSize()] = {}; for (int i = 0; i < k_maxNumberOfFunctions; i++) { strlcpy(data+i*TextField::maxBufferSize(), m_functions[i].text(), TextField::maxBufferSize()); } return Ion::crc32((uint32_t *)data, dataLengthInBytes>>2); } CartesianFunction * CartesianFunctionStore::functionAtIndex(int i) { assert(i>=0 && i=0 && i