ITK  4.6.0
Insight Segmentation and Registration Toolkit
itkFEMLoadElementBase.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 
19 #ifndef __itkFEMLoadElementBase_h
20 #define __itkFEMLoadElementBase_h
21 
22 #include "itkFEMLoadBase.h"
23 
24 namespace itk
25 {
26 namespace fem
27 {
44 class LoadElement : public Load
45 {
46 public:
47 
49  typedef LoadElement Self;
50  typedef Load Superclass;
53 
55  itkSimpleNewMacro(Self);
56 
58  itkTypeMacro(LoadElement, Load);
59 
62  virtual::itk::LightObject::Pointer CreateAnother(void) const ITK_OVERRIDE;
63 
67  typedef Element::Float Float;
68 
72  typedef std::vector<const Element *> ElementPointersVectorType;
73 
74  // FIXME: should clear vector, not zero it
76  {
77  }
79  {
81  }
83  {
85  }
86 
88 
89  unsigned int GetNumberOfElements(void);
90 
92  {
93  return this->m_Element;
94  }
95 
97  {
98  return this->m_Element;
99  }
100 
102  virtual void ApplyLoad(Element::ConstPointer , Element::VectorType & ) { /* HACK: This should probably through an execption if it is not intended to be used. */ }
103 
104 protected:
105  virtual void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
106  void AddNextElementInternal(const Element *e);
109 };
110 
111 }
112 } // end namespace itk::fem
113 
114 #endif // #ifndef __itkFEMLoadElementBase_h
Light weight base class for most itk classes.
virtual void ApplyLoad(Element::ConstPointer, Element::VectorType &)
virtual ::itk::LightObject::Pointer CreateAnother(void) const ITK_OVERRIDE
Element::ConstPointer m_Element
ObjectType * GetPointer() const
static const double e
The base of the natural logarithm or Euler&#39;s number
Definition: itkMath.h:45
const Element * GetElement() const
SmartPointer< Self > Pointer
void AddNextElementInternal(const Element *e)
ElementPointersVectorType & GetElementArray()
void AddNextElement(Element::ConstPointer e)
virtual void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
vnl_vector< Float > VectorType
void AddNextElement(Element::Pointer e)
Virtual element load base class.
std::vector< const Element * > ElementPointersVectorType
const ElementPointersVectorType & GetElementArray() const
Abstract base element class.
unsigned int GetNumberOfElements(void)
SmartPointer< const Self > ConstPointer
Control indentation during Print() invocation.
Definition: itkIndent.h:49
General abstract load base class.