SDC C-Project CF Review 프로그램
LYW
2021-09-23 c77236e1522caa3e2082dd7b5b32f6c30b125172
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#pragma once
 
#include "akGraph/akGraphBasic3.h"
#include <vector>
 
struct SPixelInfo
{
    SPixelInfo()
    {
        nWidthPixel = 0;
        nHeightPixel = 0;
        dDiagonalPixel = 0;
        dWidthRealUM = 0;
        dHeightRealUM = 0;
        dDiagonalRealUM = 0;
    }
    int        nWidthPixel;
    int        nHeightPixel;
    double    dDiagonalPixel;
 
    double    dWidthRealUM;
    double    dHeightRealUM;
    double    dDiagonalRealUM;
};
 
class CakDataImage2
{
public:
    CakDataImage2(void);
    virtual ~CakDataImage2(void);
 
    struct _DataImage2
    {
        _DataImage2()
        {
            m_nDrawPosX = m_nDrawPosY = 0;
            m_nRoate = 0;
            m_nDrawWidth = m_nDrawHeight = 0;
 
            m_bReverseX = m_bReverseY = false;
        }
        CString m_strBitmapFilename;
        CBitmap m_Bitmap;
        BITMAP    m_Bits;
 
        unsigned char* m_pBitmapData;
 
        //±×¸®±â Á¤º¸ [±èÅÂÇö 2018/12/7]
        int m_nProjectionType;
        int m_nDrawPosX, m_nDrawPosY;
        int m_nDrawWidth, m_nDrawHeight;
        float m_nRoate;
        bool m_bReverseX, m_bReverseY;
    };
 
public:
    int SetImageData(char* pFileName, int nImageIndex = 0); //add°¡ ¾Æ´Ï¸é 0¹ø À妽º¿¡ ³Ö´Â´Ù.
    int GetScaleWidth();
    int GetScaleHeight();
    BOOL GetTrackerRect(CRect & rtRect);
    void DrawROIRect(CDC * pDC);
    int GetImageDataNum() { return m_vecImageData.size(); };
public:
    std::vector<_DataImage2*> m_vecImageData;
 
    double        m_dWidthScale;
    double        m_dHeightScale;
    double        m_dResolution;
 
    BOOL            m_bDrawTracker;
    CPoint            m_ptTrackerStart;
//    CCHRectTracker    m_rectTracker;
 
    CRect            m_rtROIRect;
    SPixelInfo        m_sROIInfo;
 
    // Scroll Pos
    int            m_nVScroll;
    int            m_nHScroll;
    // Max Scroll Pos
    int            m_nMaxVScroll;
    int            m_nMaxHScroll;
};
 
class CakImageView : public CakGraphBasic3, public CakDataImage2
{
public:
    CakImageView();
    virtual ~CakImageView();
 
public:
    virtual void RenderSeries(Graphics* grfx, CDC* pDC);
 
    virtual void SetAutoScale();
    virtual void SetResize();
    virtual void RenderImage(Graphics* grfx, CDC* pDC);
    virtual void OnMouseInput(akMouseEvent mouseevent, CPoint point);
};