00001
00002
00004
00005 #if !defined(AFX_TSTREAMLINE_H__F912A4C6_4965_4C43_A3B7_33E1D7FAB087__INCLUDED_)
00006 #define AFX_TSTREAMLINE_H__F912A4C6_4965_4C43_A3B7_33E1D7FAB087__INCLUDED_
00007
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011
00012 #include "TIntegrator.h"
00013 #include "TLinkedList.h"
00014 #include "parameter.h"
00015 #include "TIteratorInterface.h"
00016 #include <stdlib.h>
00017
00018 class TCells
00019 {
00020 private:
00021 TLinkedList <TKoo3d<float> >* cellPoints;
00022 TLinkedList <float>* cellPointDist;
00023 TLinkedList< TLinkedList <TKoo3d<float> > >* cells;
00024
00025 int translateToCellIndex(int x, int y);
00026 int translateToCellIndex(float x, float y);
00027 TLinkedList <TKoo3d<float> >* getCellPoints(float x, float y);
00028 TLinkedList< TLinkedList <TKoo3d<float> > >* getCellLines(float x, float y);
00029 TLinkedList<float>* getCellPointDist(float x, float y);
00030
00031 TLinkedList <TKoo3d<float> >* getCellPoints(int x, int y);
00032 TLinkedList< TLinkedList <TKoo3d<float> > >* getCellLines(int x, int y);
00033 TLinkedList<float>* getCellPointDist(int x, int y);
00034
00035
00036 st_parameter params;
00037
00038 TKoo3d<float> topLeft;
00039 TKoo3d<float> bottomRight;
00040
00041 int iResX;
00042 int iResY;
00043
00044
00045 public:
00046 TCells(TKoo3d<float> tl, TKoo3d<float> br, st_parameter& par);
00047 bool checkLine(TKoo3d<float>* pos, TLinkedList <TKoo3d<float> >* line, float dist, float minDist);
00048 float getMinDist(TKoo3d<float>* pos, TLinkedList <TKoo3d<float> >* line);
00049 void addLine(TKoo3d<float>* point, TLinkedList <TKoo3d<float> >* line, float dist);
00050 virtual ~TCells();
00051
00052 };
00053
00055
00059 class TStreamLines
00060 {
00061
00062 private:
00063
00064
00065 st_parameter params;
00066 TFlowModel* flowMod;
00067 TIntegrator* integrator;
00068 TLinkedList< TLinkedList <TKoo3d<float> > > streamLines;
00069
00070 TCells* cells;
00071
00072
00073
00074 public:
00075 void drawStreamLine(TLinkedList <TKoo3d<float> >* line);
00076 TStreamLines(st_parameter& par,TIntegrator* i,TFlowModel* fm);
00077 TLinkedList <TKoo3d<float> >* genStreamLine(TKoo3d<float>& startPos, bool insertToCell=true, bool noCheck=false);
00078 void genStreamLineNextTo(TLinkedList <TKoo3d<float> >* startLine);
00079 void drawStreamLines();
00080 virtual ~TStreamLines();
00081
00082 };
00083
00084 #endif // !defined(AFX_TSTREAMLINE_H__F912A4C6_4965_4C43_A3B7_33E1D7FAB087__INCLUDED_)