TIFFView.h
上传用户:lbr_007
上传日期:2019-05-31
资源大小:282k
文件大小:4k
源码类别:

传真(Fax)编程

开发平台:

Visual C++

  1. // TIFFView.h : interface of the TIFFView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_TIFFVIEW_H__FDF19EE0_643F_4117_AC68_91332826153B__INCLUDED_)
  5. #define AFX_TIFFVIEW_H__FDF19EE0_643F_4117_AC68_91332826153B__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "TIFFDirDLG.h"
  10. #include <dibsect.h>
  11. #include <utmproj.h>
  12. #include <Earth3D.h>
  13. #include <Matrix3D.h>
  14. class ClickPoint {
  15. public:
  16. double m_lat;
  17. double m_lon;
  18. double m_alt;
  19. std::string m_name;
  20. ClickPoint(void){ m_lat = m_lon = m_alt = 0.0;}
  21. ClickPoint(double lat, double lon, const char * name, double alt = 1000.0)
  22. {
  23. m_lat = lat;
  24. m_lon = lon;
  25. m_name = name;
  26. m_alt = alt;
  27. }
  28. ClickPoint(const ClickPoint& pt){ Copy(pt);}
  29. ~ClickPoint(void){}
  30. void Copy(const ClickPoint& pt)
  31. {
  32. m_lat = pt.m_lat;
  33. m_lon = pt.m_lon;
  34. m_name = pt.m_name;
  35. m_alt = pt.m_alt;
  36. }
  37. ClickPoint& operator = (const ClickPoint& pt)
  38. {
  39. Copy(pt);
  40. return *this;
  41. }
  42. };
  43. class V3D {
  44. public:
  45. double m_x, m_y, m_z;
  46. V3D(void){ m_x = m_y = m_z = 0.0;}
  47. V3D(const V3D& v){ m_x = v.m_x; m_y = v.m_y; m_z = v.m_z;}
  48. V3D(double x, double y, double z){ m_x = x; m_y = y; m_z = z;}
  49. void Copy(const V3D& v){ m_x = v.m_x; m_y = v.m_y; m_z = v.m_z;}
  50. V3D& operator = (const V3D& v){ Copy(v); return *this;}
  51. };
  52. class TIFFView : public CScrollView
  53. {
  54. protected: // create from serialization only
  55. TIFFView();
  56. DECLARE_DYNCREATE(TIFFView)
  57. // Attributes
  58. TIFFDirDLG m_dlg;
  59. int m_shownImage;
  60. bool m_leftDown;
  61. CPoint m_clickPoint;
  62. CSize m_cs;
  63. GEORef m_gr;
  64. bool m_isGeo;
  65. char m_status1[80];
  66. char m_status2[80];
  67. char m_status3[80];
  68. char m_status[80];
  69. UTMProjection m_utmProj;
  70. double m_scaleFactor;
  71. DIBSection m_viewDIB;
  72. bool m_view2D;
  73. bool m_registrationMode;
  74. CPoint m_registrationPt;
  75. Earth3D m_earth3D;
  76. Matrix3D m_view_matrix;
  77. std::vector<ClickPoint> m_pts;
  78. UINT32 m_flyTimer;
  79. UINT32 m_flyStart;
  80. UINT32 m_flyDuration;
  81. bool m_flyFirstPerson;
  82. std::vector<V3D> m_flyWayPoints;
  83. UINT32 m_totalFrames;
  84. public:
  85. TIFFDoc* GetDocument();
  86. void ShowImage(void);
  87. void PlotClickPoints(CClientDC& dc);
  88. void SetImage(UINT32 ndx);
  89. void StretchImage(double scale_factor);
  90. void Stretched2Unstretched(int xin, int yin, int& xout, int& yout);
  91. std::vector<ClickPoint>& GetClickPoints(void){ return m_pts;}
  92. // Operations
  93. public:
  94. // Overrides
  95. // ClassWizard generated virtual function overrides
  96. //{{AFX_VIRTUAL(TIFFView)
  97. public:
  98. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  99. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  100. protected:
  101. virtual void OnInitialUpdate(); // called first time after construct
  102. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  103. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  104. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  105. virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  106. //}}AFX_VIRTUAL
  107. // Implementation
  108. public:
  109. virtual ~TIFFView();
  110. #ifdef _DEBUG
  111. virtual void AssertValid() const;
  112. virtual void Dump(CDumpContext& dc) const;
  113. #endif
  114. protected:
  115. // Generated message map functions
  116. protected:
  117. //{{AFX_MSG(TIFFView)
  118. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  119. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  120. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  121. afx_msg void OnUpdateImageList(CCmdUI* pCmdUI);
  122. afx_msg void OnImageList();
  123. afx_msg void OnUpdateView2D(CCmdUI* pCmdUI);
  124. afx_msg void OnView2D();
  125. afx_msg void OnUpdateView3D(CCmdUI* pCmdUI);
  126. afx_msg void OnView3D();
  127. afx_msg void OnUpdateRegistration(CCmdUI* pCmdUI);
  128. afx_msg void OnRegistration();
  129. afx_msg void OnSize(UINT nType, int cx, int cy);
  130. afx_msg void OnUpdateToolsFly(CCmdUI* pCmdUI);
  131. afx_msg void OnToolsFly();
  132. afx_msg void OnTimer(UINT nIDEvent);
  133. afx_msg void OnUpdateViewStopflight(CCmdUI* pCmdUI);
  134. afx_msg void OnViewStopflight();
  135. //}}AFX_MSG
  136. DECLARE_MESSAGE_MAP()
  137. };
  138. #ifndef _DEBUG  // debug version in TIFFView.cpp
  139. inline TIFFDoc* TIFFView::GetDocument()
  140.    { return (TIFFDoc*)m_pDocument; }
  141. #endif
  142. /////////////////////////////////////////////////////////////////////////////
  143. //{{AFX_INSERT_LOCATION}}
  144. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  145. #endif // !defined(AFX_TIFFVIEW_H__FDF19EE0_643F_4117_AC68_91332826153B__INCLUDED_)