19 #ifndef __itkFEMLoadLandmark_h
20 #define __itkFEMLoadLandmark_h
24 #include "vnl/vnl_vector.h"
49 itkSimpleNewMacro(
Self);
56 virtual::itk::LightObject::Pointer
CreateAnother(
void) const ITK_OVERRIDE;
122 if(
m_Force.size() != force.size() )
124 m_Force.set_size( force.size() );
126 for(
unsigned int i = 0; i < force.size(); i++ )
138 if(
m_Source.size() != source.size() )
142 for(
unsigned int i = 0; i < source.size(); i++ )
167 if(
m_Target.size() != target.size() )
171 for(
unsigned int i = 0; i < target.size(); i++ )
180 for(
unsigned int i = 0; i <
m_Target.size(); i++ )
235 virtual void PrintSelf(std::ostream& os,
Indent indent)
const ITK_OVERRIDE;
271 #endif // #ifndef __itkFEMLoadLandmark_h
virtual Element::ConstPointer GetAssignedElement(Element::ArrayType1::Pointer elements)
Light weight base class for most itk classes.
Element::VectorType & GetTarget()
vnl_vector< Float > m_Point
void SetSource(const vnl_vector< Float > &source)
Element::ConstPointer m_Element
void ScalePointAndForce(double *spacing, double fwt)
virtual Solution::ConstPointer GetSolution() ITK_OVERRIDE
static const double e
The base of the natural logarithm or Euler's number
virtual void ApplyLoad(Element::ConstPointer element, Element::VectorType &Fe) ITK_OVERRIDE
vnl_vector< Float > m_Force
Element::VectorType & GetPoint()
virtual ::itk::LightObject::Pointer CreateAnother(void) const ITK_OVERRIDE
Provides functions to access the values of the solution vector.
This load is derived from the motion of a specific landmark.
virtual void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
Float GetSolution(unsigned int i, unsigned int v=0)
Solution::ConstPointer m_Solution
vnl_vector< Float > VectorType
Virtual element load base class.
virtual bool AssignToElement(Element::ArrayType::Pointer elements)
void SetTarget(const vnl_vector< Float > &target)
void SetContainedElement(const Element *e)
void SetPoint(const vnl_vector< Float > &pt)
const Element::VectorType & GetTarget() const
Abstract base element class.
void SetForce(const vnl_vector< Float > &force)
vnl_vector< Float > m_Source
SmartPointer< Self > Pointer
Element::VectorType & GetSource()
Control indentation during Print() invocation.
const Element * GetContainedElement() const
SmartPointer< const Self > ConstPointer
vnl_vector< Float > m_Target
const Element::VectorType & GetSource() const
virtual Float GetSolutionValue(unsigned int i, unsigned int solutionIndex=0) const =0
const Element::VectorType & GetForce() const
virtual void SetSolution(Solution::ConstPointer ptr) ITK_OVERRIDE
Element::VectorType & GetForce()