MeshKit  1.0
TriharmonicRBF.hpp
Go to the documentation of this file.
00001 #ifndef __TRIHARMONICRBF_HPP
00002 #define __TRIHARMONICRBF_HPP
00003 
00004 #include <stdlib.h>
00005 #include <stdio.h>
00006 #include <assert.h>
00007 #include <string>
00008 #include <iostream>
00009 #include <fstream>
00010 #include <string.h>
00011 #include <limits.h>
00012 
00013 #include "meshkit/MKCore.hpp"
00014 #include "meshkit/iMesh.hpp"
00015 #include "meshkit/MeshOp.hpp"
00016 #include "meshkit/ModelEnt.hpp"
00017 #include "Global.hpp"
00018 #include <set>
00019 #include <vector>
00020 #include <map>
00021 #include <armadillo>
00022 
00023 //using namespace Eigen;
00024 using namespace arma;
00025 
00026 using namespace std;
00027 
00028 namespace MeshKit {
00029 
00030 class TriharmonicRBF
00031 {       
00032 public:
00033         //public function
00034         TriharmonicRBF(vector<vector<double> > undeformed_cage_vertices, vector<vector<double> > deformed_cage_vertices, vector<vector<int> > cage_faces);
00035         void SetupInteriorNodes(vector<vector<double> > undeformed_in_nodes);
00036         void GetInteriorNodes(vector<vector<double> > &final_locations);
00037     ~TriharmonicRBF();
00038     void Execute();
00039 
00040 private:
00041         double TriHarmonicFun(vector<double> xi, vector<double> xj);
00042     double InterpolatedFun(vector<double> x, vec coeffs);
00043 private:
00044     vector<vector<double> > un_cage_vertices;
00045     vector<vector<double> > cage_vertices;
00046     vector<vector<int> > cage_faces;
00047     vector<vector<double> > un_InnerNodes;
00048     vector<vector<double> > InnerNodes;
00049     unsigned int num_vertices;
00050     unsigned int num_interior;
00051         
00052 };
00053 
00054 }
00055 #endif
00056 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines