easy-iso

Iso-surface extraction from volume data
git clone https://git.0xfab.ch/easy-iso.git
Log | Files | Refs | Submodules | README | LICENSE

Mprime4.h (752B)


      1 // File       : Mprime4.h
      2 // Date       : Thu Nov 24 08:33:08 2016
      3 // Author     : Fabian Wermelinger
      4 // Description: M^\prime_4 interpolation kernel (3rd order)
      5 // Copyright 2016 ETH Zurich. All Rights Reserved.
      6 #ifndef MPRIME4_H_KXJZRENA
      7 #define MPRIME4_H_KXJZRENA
      8 
      9 #include <cmath>
     10 #include "common.h"
     11 
     12 class Mprime4
     13 {
     14 public:
     15     static constexpr int start = -1;
     16     static constexpr int end   = 3;
     17 
     18     inline Real operator()(const Real x) const
     19     {
     20         const Real IxI = std::abs(x);
     21         if (IxI < 1.0)
     22             return 0.5*(IxI - 1.0)*(3.0*IxI*IxI - 2.0*IxI - 2.0);
     23         else if (IxI < 2.0)
     24             return -0.5*(IxI - 1.0)*(IxI - 2.0)*(IxI - 2.0);
     25         else
     26             return 0.0;
     27     }
     28 };
     29 
     30 #endif /* MPRIME4_H_KXJZRENA */