MeshKit  1.0
Deform2D.hpp
Go to the documentation of this file.
00001 #ifndef __DEFORM2D_HPP
00002 #define __DEFORM2D_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 <Eigen/Core>
00022 //#include <Eigen/Dense>
00023 #include <armadillo>
00024 
00025 //using namespace Eigen;
00026 using namespace arma;
00027 
00028 using namespace std;
00029 
00030 namespace MeshKit {
00031 
00032 class Deform2D
00033 {       
00034 public:
00035         //public function
00036         Deform2D(vector<vector<double> > undeformed_cage_vertices, vector<vector<double> > deformed_cage_vertices);
00037         void SetupInteriorNodes(vector<vector<double> > undeformed_in_nodes);
00038         void GetInteriorNodes(vector<vector<double> > &final_locations);
00039         ~Deform2D();
00040         void Execute();
00041 
00042 private:
00043         double TriHarmonicFun(vector<double> xi, vector<double> xj);
00044         double InterpolatedFun(vector<double> x, vec coeffs);
00045 private:
00046     vector<vector<double> > un_cage_vertices;
00047     vector<vector<double> > cage_vertices;
00048     vector<vector<double> > un_InnerNodes;
00049     vector<vector<double> > InnerNodes;
00050     unsigned int num_vertices;
00051     unsigned int num_interior;
00052         
00053 };
00054 
00055 }
00056 #endif
00057 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines