00001 #pragma once
00002
00003 #include<vector>
00004 #include <string>
00005
00036
00037 class CEditTransferFunction : public CDialog
00038 {
00039 DECLARE_DYNAMIC(CEditTransferFunction)
00040 #pragma pack (push)
00041 #pragma pack (1)
00042
00043 struct {
00044 BYTE m_pcName[10];
00045 BYTE m_bNumber;
00046 } m_sTransHeader;
00047
00048 struct {
00049 int m_nPoint;
00050 COLORREF m_pColor;
00051 int m_opacity;
00052 } m_sTransData;
00053
00054 #pragma pack (pop)
00055
00056
00057 private:
00058 int m_width, m_height;
00059 int startX, startY;
00060 double xratio;
00061
00062 std::vector<short> vec;
00063 std::vector<short> vecY;
00064 std::map<int, COLORREF> m;
00065 std::map<int, int> mOp;
00066
00067 CPen** myPen;
00068 CVisualize3DDoc* m_doc;
00069
00070 unsigned short* histogram;
00071 COLORREF cf;
00072 TransferFunction* tf;
00073 enum { IDD = IDD_EDIT_TRANSFERFUNCTION };
00074
00075 private:
00076 void UpdatePens();
00077 afx_msg void OnBnClickedOk();
00078 afx_msg void OnPaint();
00079 afx_msg void OnLButtonUp( UINT nFlags,CPoint point );
00080 afx_msg void OnBnClickedOk2();
00081 afx_msg void OnBnClickedSaveTf();
00082 afx_msg void OnBnClickedLoadTf();
00083
00084
00085 protected:
00086 virtual void DoDataExchange(CDataExchange* pDX);
00087 DECLARE_MESSAGE_MAP()
00088
00089 public:
00090 CEditTransferFunction(CWnd* pParent = NULL);
00091 virtual ~CEditTransferFunction();
00092
00093
00094 };