00001
00002
00003 #pragma once
00004
00005 #include "TransferFunction.h"
00006 #include "VisVector.h"
00007
00008 class TransferFunction;
00009
00010
00041 class CVisualize3DDoc : public CDocument
00042 {
00043
00044 private:
00045 TransferFunction* tf;
00046
00047 public:
00048 unsigned short*** m_data;
00049 CVisVector*** m_gradients;
00050 unsigned short* imgSize;
00051 int minVal, maxVal;
00052 unsigned short* histogram;
00053 int m_nCurrentProgress;
00054
00055
00056 private:
00057 void CalcHistogram();
00058
00059 protected:
00060 CVisualize3DDoc();
00061 DECLARE_DYNCREATE(CVisualize3DDoc)
00062
00063 public:
00064 void ReadVolume( CString filename);
00065
00066
00067 int getDimX();
00068 int getDimY();
00069 int getDimZ();
00070
00071 bool VolumeExists();
00072 void ResetAll();
00073 TransferFunction* GetTransferFunction();
00074 unsigned short* GetHistogram();
00075 BOOL DoSave(LPCTSTR lpszPathName, BOOL bReplace);
00076 void Fill2DArray(int viewPlane, unsigned short* data2D, int sliceNo);
00077 void CalculateGradients();
00078
00079
00080
00081 virtual BOOL OnNewDocument();
00082 virtual void Serialize(CArchive& ar);
00083 virtual ~CVisualize3DDoc();
00084
00085 #ifdef _DEBUG
00086 virtual void AssertValid() const;
00087 virtual void Dump(CDumpContext& dc) const;
00088 #endif
00089
00090 protected:
00091 DECLARE_MESSAGE_MAP()
00092 };
00093
00094