Flow Visualization 1.0

FlowGeometry.h

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