<commit_before>/*=========================================================================

  Program:   Insight Segmentation & Registration Toolkit
  Module:    itkFEMMesh.h
  Language:  C++
  Date:      $Date$
  Version:   $Revision$

  Copyright (c) 2002 Insight Consortium. All rights reserved.
  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even 
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
     PURPOSE.  See the above copyright notices for more information.

=========================================================================*/

#ifndef __itkFEMMesh_h
#define __itkFEMMesh_h


#include "itkMesh.h"

namespace itk {
namespace fem {




/** 
 * \class FEMMesh
 * \brief Translate itk mesh to appropriate FEM input
 *
 * FEM solver object which links to the itk's mesh. It takes a mesh as an input and
 * converts it into a FEM representation. It is templated over the input mesh type i.e.
 * we assume that the template parameter class has itk mesh functionality.
 */
template<class TMesh>
class FEMMesh : public TMesh 

{

public:

protected:

  FEMMesh();
  virtual ~FEMMesh();
            
};





}} // end namespace itk::fem
<commit_msg>ENH: Improved support for types inherited from the itk::Mesh<commit_after>/*=========================================================================

  Program:   Insight Segmentation & Registration Toolkit
  Module:    itkFEMMesh.h
  Language:  C++
  Date:      $Date$
  Version:   $Revision$

  Copyright (c) 2002 Insight Consortium. All rights reserved.
  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even 
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
     PURPOSE.  See the above copyright notices for more information.

=========================================================================*/

#ifndef __itkFEMMesh_h
#define __itkFEMMesh_h


#include "itkMesh.h"
#include "itkFEMNode.h"

namespace itk {
namespace fem {




/** 
 * \class FEMMesh
 * \brief Translate itk mesh to appropriate FEM input
 *
 * FEM solver object which links to the itk's mesh. It takes a mesh as an input and
 * converts it into a FEM representation. It is templated over the input mesh type i.e.
 * we assume that the template parameter class has itk mesh functionality.
 */
template<class TMesh>
class FEMMesh : public TMesh 

{

public:
   /** Standard typedefs. */
  typedef FEMMesh                   Self;
  typedef TMesh                     Superclass;
  typedef SmartPointer<Self>        Pointer;
  typedef SmartPointer<const Self>  ConstPointer;
    
  /** Method for creation through the object factory. */
  itkNewMacro(Self);

  /** Standard part of every itk Object.
    \todo probably a fully resolved type should be used here... */
  itkTypeMacro(Mesh, TMesh); 

  /** Hold on to the type information specified by the template parameters. */
  typedef typename TMesh::MeshTraits                    MeshTraits;
  typedef typename TMesh::CellTraits                    CellTraits;

  /** Convenient enums obtained from TMeshTraits template parameter. */
  enum {PointDimension = MeshTraits::PointDimension};
  enum {MaxTopologicalDimension = MeshTraits::MaxTopologicalDimension};
  
  /** Base class for the polymorphic hierarchy of Node types */
  typedef FEMNode< CellTraits >           NodeType;

protected:

  /** Constructor for use by New() method. */
  FEMMesh();
  virtual ~FEMMesh();
  void PrintSelf(std::ostream& os, Indent indent) const;
     
private:
  FEMMesh(const Self&); //purposely not implemented
  void operator=(const Self&); //purposely not implemented
          
};


 
template <typename TMesh>
void
FEMMesh<TMesh>
::PrintSelf(std::ostream& os, Indent indent) const
{
  Superclass::PrintSelf(os, indent);
}



}} // end namespace itk::fem

{'fraction_non_alphanumeric': 0.14952092788703983, 'fraction_numerical': 0.002017145738779627, 'mean_word_length': 3.497732426303855, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1160827', 'n_tokens_mistral': 1139, 'n_tokens_neox': 1061, 'n_words': 398}