00001
00002
00004
00005 #if !defined(AFX_DISTANCEMEASSUREACCELERATIOGRID_H__FB81460C_83D1_40F6_9FC8_2BBFA048FD93__INCLUDED_)
00006 #define AFX_DISTANCEMEASSUREACCELERATIOGRID_H__FB81460C_83D1_40F6_9FC8_2BBFA048FD93__INCLUDED_
00007
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011
00012 #pragma warning(disable:4786)
00013
00014 #include <vector>
00015 #include "StreamLineSamplePoint.h"
00016
00019 class DistanceMeassureAcceleratioGrid
00020 {
00021 public:
00022 typedef std::vector<StreamLineSamplePoint*> streamPointVector;
00023 typedef std::vector<streamPointVector> streamPointVectorVector;
00024 typedef std::vector<streamPointVectorVector> streamPointVectorVectorVector;
00025
00026 DistanceMeassureAcceleratioGrid();
00027 DistanceMeassureAcceleratioGrid(float resolution, float width, float height);
00028 virtual ~DistanceMeassureAcceleratioGrid();
00029
00030
00031
00032 streamPointVectorVector gridColumn;
00033 streamPointVectorVector::iterator gridColumnIterator;
00034 streamPointVectorVectorVector grid;
00035 streamPointVectorVectorVector::iterator gridIterator;
00036
00037 int reset(float resolution, float width, float height);
00038 bool testDistance(float x, float y, float dTest, float dSep);
00039
00040 void DEBUG_TraceGrid();
00041
00042 private:
00043 int freeMem();
00044 int nrColumns;
00045 int nrRows;
00046 float dsWidth;
00047 float dsHeight;
00048
00049 int generateGrid(float resolution, float width, float height);
00050 };
00051
00052 #endif // !defined(AFX_DISTANCEMEASSUREACCELERATIOGRID_H__FB81460C_83D1_40F6_9FC8_2BBFA048FD93__INCLUDED_)