00001 /* -*- c++ -*- 00002 * Space filling curve used by SFCDstr 00003 */ 00004 00005 #include "basics/typedefs.hh" 00006 00007 #ifndef sfc_hh 00008 #define sfc_hh 00009 00010 00011 namespace parallel { 00012 00013 // ************************************************ SFC ** 00014 00017 class SFC { 00018 public: 00019 virtual const ushort* const operator[](ushort ori) const = 0; 00020 }; 00021 00022 00023 // ***************************************** HilbertSFC ** 00024 00027 class HilbertSFC : public SFC { 00028 public: 00033 const ushort* const operator[](ushort ori) const {return data[ori];}; 00034 private: 00035 static const ushort* const data[24]; 00036 }; 00037 00038 } // namespace parallel 00039 00040 #endif // sfc_hh