GridField<T>::GridField(int xdim,int ydim, int zdim, double size, Extrapolation<T> *extrapolation):GridMapping(xdim,ydim,zdim,size),_extrapolation(nullptr),_interpolation(nullptr),_extrapolate(true){ //Allokera data-array _data = new T[cellCount()]; for (int i = 0; i < cellCount(); i++) _data[i] = T(); //Extra/Interpolation setInterpolation(Interpolation<T>::defaultInterpolation()); setExtrapolation(extrapolation); }
GridField<T>::GridField(const GridMapping &m, Extrapolation<T> *extrapolation):GridMapping(m),_extrapolation(nullptr),_interpolation(nullptr),_extrapolate(true){ //Allokera data-array _data = new T[cellCount()]; for (int i = 0; i < cellCount(); i++) _data[i] = T(0); //Extra/Interpolation setInterpolation(Interpolation<T>::defaultInterpolation()); setExtrapolation(extrapolation); }
GridField<T>::GridField(const GridField<T> &g):GridMapping(g),_extrapolation(nullptr),_interpolation(nullptr),_extrapolate(true){ int count = g.cellCount(); _data = new T[count]; //Iterera över g for (GridFieldIterator<T> iter = g.iterator(); !iter.done(); iter.next()) { setValueAtIndex(iter.value(), iter.index()); } //Interpolation //Extra/Interpolation setInterpolation(g._interpolation); setExtrapolation(g._extrapolation); }
GridField<T>& GridField<T>::operator=(const GridField<T> &g){ if (this != &g) { //Allokera data-array if(g.cellCount() != cellCount()){ delete _data; _data = new T[g.cellCount()]; } std::copy(g._data,g._data+g.cellCount(), _data); setInterpolation(g._interpolation); setExtrapolation(g._extrapolation); } return *this; }
//-------------------------------------------------------------- void ofxKeyFrameInterpolator::setCubicInterpolation() { setInterpolation(MSA::kInterpolationCubic); }
//-------------------------------------------------------------- void ofxKeyFrameInterpolator::setLinearInterpolation() { setInterpolation(MSA::kInterpolationLinear); }
void DSSetSelectedKeysInterpolationCommand::redo() { setInterpolation(false); }
void DSSetSelectedKeysInterpolationCommand::undo() { setInterpolation(true); }