18 #ifndef __otbMetaImageFunction_txx
19 #define __otbMetaImageFunction_txx
28 template <
class TOutputPrecision,
class TCoordRep>
35 template <
class TOutputPrecision,
class TCoordRep>
39 this->ClearFunctions();
42 template <
class TOutputPrecision,
class TCoordRep>
47 m_FunctionContainer.push_back(
function);
64 template <
class TOutputPrecision,
class TCoordRep>
69 m_FunctionContainer.clear();
72 template <
class TOutputPrecision,
class TCoordRep>
77 return m_FunctionContainer.size();
80 template <
class TOutputPrecision,
class TCoordRep>
86 return m_FunctionContainer.at(index);
89 template <
class TOutputPrecision,
class TCoordRep>
94 typename FunctionContainerType::iterator fIt = m_FunctionContainer.begin()+index;
95 m_FunctionContainer.erase(fIt);
98 template <
class TOutputPrecision,
class TCoordRep>
108 typename FunctionContainerType::const_iterator fIt = m_FunctionContainer.begin();
109 while(fIt != m_FunctionContainer.end())
112 unsigned int currentSize =
static_cast<unsigned int>(resp.
GetSize());
115 OutputType currentVector = (*fIt)->Evaluate(point);
118 unsigned int currentVectorSize =
static_cast<unsigned int>(currentVector.
GetSize());
121 resp.
SetSize(currentSize + currentVectorSize,
false);
124 for(
unsigned int i = 0; i < currentVectorSize; ++i)
126 resp.
SetElement(currentSize+i, static_cast<ValueType>(currentVector[i]));
137 template <
class TOutputPrecision,
class TCoordRep>
142 Superclass::PrintSelf(os, indent);
143 os<<indent<<
"Number of image functions: "<<this->GetNumberOfFunctions()<<std::endl;