-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDisplayPairDose.h
77 lines (63 loc) · 2.42 KB
/
DisplayPairDose.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//---------------------------------------------------------------------------
#pragma once
#ifndef DisplayPairDoseH
#define DisplayPairDoseH
#include "IObserver.h"
#include "HandledPairDose.h"
#include "doseshell.h"
#include "Util.h"
//-----------------------Class:DisplayPairDose----------------------------
class DisplayPairDose:public IObserver{
private:
Dose* measureDisplayDose;
Dose* calcDisplayDose;
Dose* NormMeasureDisplayDose;
Dose* NormCalcDisplayDose;
public:
/*Constructor*/
DisplayPairDose();
/*Destructor*/
~DisplayPairDose();
/*Copy Constructor*/
DisplayPairDose(const DisplayPairDose &r);
/*Overload operator = */
DisplayPairDose operator = (const DisplayPairDose &r);
public:
void update(Message_Notify message);
public:
/*Get and Set*/
Dose* getMeasureDisplayDose();
void setMeasureDisplayDose(Dose& r);
Dose copyMeasureDisplayDose();
void allocateMeasureDisplayDose();
void cleanMeasureDisplayDose();
Dose* getCalcDisplayDose();
void setCalcDisplayDose(Dose& r);
Dose copyCalcDisplayDose();
void allocateCalcDisplayDose();
void cleanCalcDisplayDose();
Dose* getNormMeasureDisplayDose();
void setNormMeasureDisplayDose(Dose& r);
Dose copyNormMeasureDisplayDose();
void allocateNormMeasureDisplayDose();
void cleanNormMeasureDisplayDose();
Dose* getNormCalcDisplayDose();
void setNormCalcDisplayDose(Dose& r);
Dose copyNormCalcDisplayDose();
void allocateNormCalcDisplayDose();
void cleanNormCalcDisplayDose();
/*Functions*/
void MapCHECKMeasureBlineInterpolation(); //双线性插值
void MapCHECKMeasureInterpolationX(); //作x方向插值
void MapCHECKMeasureInterpolationY(); //作y方向插值
void dataEnhance();
void smoothing();
private:
inline bool FindFourBasePoints(int x,int y,std::vector<int> positiveSlopeSeries,std::vector<int> negativeSlopeSeries,MatrixData<int>& result); //对于MapCHECK不规则探测器阵列,对双线性插值,为每个待插值点找到4个插值基点
inline void neighbor(int num,std::vector<int> Series,int start,int end,int* result); //在众多斜率为1和-1的探测器排列线簇中找到待插值点所最相邻的两个斜探测器线(探测器刚好在这两个斜探测器线之间)
void MapCHECKMeasureBlineInterpolation(Dose* dose);
void MapCHECKMeasureInterpolationX(Dose* dose);
void MapCHECKMeasureInterpolationY(Dose* dose);
};
//---------------------------------------------------------------------------
#endif