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 //using namespace Mesquite;
00030 
00031 namespace MeshKit {
00032 
00033 class Deform2D
00034 {       
00035 public:
00036         //public function
00037         Deform2D(vector<vector<double> > undeformed_cage_vertices, vector<vector<double> > deformed_cage_vertices);
00038         void SetupInteriorNodes(vector<vector<double> > undeformed_in_nodes);
00039         void GetInteriorNodes(vector<vector<double> > &final_locations);
00040         ~Deform2D();
00041         void Execute();
00042 
00043 private:
00044         double TriHarmonicFun(vector<double> xi, vector<double> xj);
00045         double InterpolatedFun(vector<double> x, vec coeffs);
00046 private:
00047     vector<vector<double> > un_cage_vertices;
00048     vector<vector<double> > cage_vertices;
00049     vector<vector<double> > un_InnerNodes;
00050     vector<vector<double> > InnerNodes;
00051     unsigned int num_vertices;
00052     unsigned int num_interior;
00053         
00054 };
00055 
00056 }
00057 #endif
00058 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines