text: /*---------------------------------------------------------------------------*\
  Copyright (C) 2011 OpenFOAM Foundation
  -------------------------------------------------------------------------------
  License
      This file is part of Caelus.
  
      Caelus is free software: you can redistribute it and/or modify it
      under the terms of the GNU General Public License as published by
      the Free Software Foundation, either version 3 of the License, or
      (at your option) any later version.
  
      Caelus is distributed in the hope that it will be useful, but WITHOUT
      ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      for more details.
  
      You should have received a copy of the GNU General Public License
      along with Caelus.  If not, see <http://www.gnu.org/licenses/>.
  
  Class
      CML::extrudeModels::linearDirection
  
  Description
      Extrudes by transforming points in a specified direction by a given distance
  
  \*---------------------------------------------------------------------------*/
  
  #ifndef linearDirection_H
  #define linearDirection_H
  
  #include "point.hpp"
  #include "extrudeModel.hpp"
  
  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  
  namespace CML
  {
  namespace extrudeModels
  {
  
  /*---------------------------------------------------------------------------*\
                      Class linearDirection Declaration
  \*---------------------------------------------------------------------------*/
  
  class linearDirection
  :
      public extrudeModel
  {
      // Private data
  
          //- Extrude direction
          vector direction_;
  
          //- Layer thickness
          scalar thickness_;
  
  
  public:
  
      //- Runtime type information
      TypeName("linearDirection");
  
      // Constructors
  
          //- Construct from dictionary
          linearDirection(const dictionary& dict);
  
  
      //- Destructor
      virtual ~linearDirection();
  
  
      // Member Operators
  
          point operator()
          (
              const point& surfacePoint,
              const vector& surfaceNormal,
              const label layer
          ) const;
  };
  
  
  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  
  } // End namespace extrudeModels
  } // End namespace CML
  
  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  
  #endif
  
  // ************************************************************************* //
  