FlowVis 1.0

FlowVis/Framework/FlowGeometry.h

00001 #ifndef FLOWGEOMETRY_H
00002 #define FLOWGEOMETRY_H
00003 
00004 #include <stdio.h>
00005 #include <iostream>
00006 #include "vec3.h"
00008 class FlowGeometry{
00009                 friend class FlowData;
00010         private:
00012                 int dim[2]; 
00014                 vec3 boundaryMin;
00016                 vec3 boundaryMax;
00018                 vec3 boundarySize;
00019             
00021                 vec3* geometryData;
00022 
00024                 int getVtx(int x, int y);
00026                 int getVtxX(int vtxID);
00028                 int getVtxY(int vtxID);
00029             
00031                 int getXYvtx(vec3 pos);
00032 
00034                 vec3 getPos(int vtxID);
00036                 float getPosX(int vtxID);
00038                 float getPosY(int vtxID);    
00039             
00041                 bool isFlipped;
00042 
00043                 //TODO for students: improve this
00045                 int getNearestVtx(vec3 pos);
00046                 
00047         public:
00048                 FlowGeometry();
00050                 ~FlowGeometry();
00051             
00053 
00060                 bool getInterpolationAt(vec3 pos, int* vtxID, float* coef);
00061                 
00063                 bool readFromFile(char* header, FILE* fp, bool bigEndian);
00064             
00065                 //remember that our grids are curvilinear and only 2D
00067                 int getDimX();
00069                 int getDimY();
00071                 int getDimZ();
00072             
00074                 float getMinX();
00076                 float getMaxX();
00078                 float getMinY();
00080                 float getMaxY();
00081             
00083                 int getRightNeigh(int vtxID);
00085                 int getTopNeigh(int vtxID);
00087                 int getLeftNeigh(int vtxID);
00089                 int getBottomNeigh(int vtxID);
00090             
00091                 void getSurroundingVtxIDs(vec3 pos, int* vtxID, float* coef);
00092         
00094                 vec3 normalizeCoords(vec3 pos);
00096                 vec3 unNormalizeCoords(vec3 pos);
00097 };
00098 
00099 #endif
 All Classes Functions Variables Friends