Flow Visualization 1.0
|
00001 #ifndef FLOWGEOMETRY_H 00002 #define FLOWGEOMETRY_H 00003 00004 #include <stdio.h> 00005 #include <iostream> 00006 #include "vec3.h" 00007 00009 class FlowGeometry{ 00010 friend class FlowData; 00011 private: 00013 int dim[2]; 00015 vec3 boundaryMin; 00017 vec3 boundaryMax; 00019 vec3 boundarySize; 00020 00022 vec3* geometryData; 00023 00025 int getVtx(int x, int y); 00027 int getVtxX(int vtxID); 00029 int getVtxY(int vtxID); 00030 00032 int getXYvtx(vec3 pos); 00033 00034 00035 00037 bool isFlipped; 00038 00039 int getNearestVtx(vec3 pos); 00040 00041 public: 00042 FlowGeometry(); 00044 ~FlowGeometry(); 00045 00047 00054 bool getInterpolationAt(vec3 pos, int* vtxID, float* coef); 00055 00057 bool readFromFile(char* header, FILE* fp, bool bigEndian); 00058 00059 //remember that our grids are curvilinear and only 2D 00061 int getDimX(); 00063 int getDimY(); 00065 int getDimZ(); 00066 00068 float getMinX(); 00070 float getMaxX(); 00072 float getMinY(); 00074 float getMaxY(); 00075 00077 vec3 getPos(int vtxID); 00079 float getPosX(int vtxID); 00081 float getPosY(int vtxID); 00082 00084 int getRightNeigh(int vtxID); 00086 int getTopNeigh(int vtxID); 00088 int getLeftNeigh(int vtxID); 00090 int getBottomNeigh(int vtxID); 00091 00093 vec3 normalizeCoords(vec3 pos); 00095 vec3 unNormalizeCoords(vec3 pos); 00096 }; 00097 00098 #endif