📄 volumedata.h
字号:
#ifndef __VOLUMEDATA_H__#define __VOLUMEDATA_H__#include "Matrix4D.h"#include "BlockData.h"#include "VoxelShader.h"#include "FusionEnum.h"#include "MaskVolume.h"class RxDicomObject;class RxProgressWnd;class RxVolumeData{//Attributesprotected: //volume狼 dimension // m_iItplVolZ 绰 interpolated 等 Z slice 俺荐 int m_iBigVolX, m_iBigVolY, m_iItplVolZ, m_iSliceNum; int m_iModality; float m_fSliceThickness; BOOL m_bFirst3DRender, m_bFirstVRRender; int m_iFilterLevel; RxMaskVolume m_maskEditVolume; // result of automatic segmentation of the lungs // yeni RxMaskVolume m_maskEdgeVolume; // result of edge detection of the lungs RxMaskVolume m_maskVesselVolume; // result of vessel segmentation RxMaskVolume m_maskAirwayVolume; // result of airway segmentation RxMaskVolume m_maskLeftEditVolume; // result of automatic segmentation of the lungs RxMaskVolume m_maskRightEditVolume; // result of automatic segmentation of the lungs RxMaskVolume m_maskSkeleton; RxMaskVolume m_maskVesselEdge; double m_afGantryAxes[6]; RxBlockData m_bdBlockData; RxVoxelShader m_VoxelShader; // mask information for nodules// RxMaskVolume m_maskNoduleVolume;//Attributespublic: int m_nMode; int m_iBlockSize; int m_iVolumeSizeInByte; //角力 皋葛府俊 且寸等 Z狼 肮荐 int m_iAllocedZ; double m_fSliceInterval, m_fPixelSpace, m_fRatioZ; int m_iRatioZ; float m_fMaxMPRThickness; // interploated -> original 谅钎肺 map窍绰 table int *m_piInterpolatedMap; int *m_piReverseInterpolatedMap; double *m_pfInterpolatedWeightTable; UINT *m_puInterpolatedWeightTable; unsigned short *m_pnVolume; RxDicomObject* m_pDicomInfo; BOOL m_bVolumeEdited; BOOL m_bExistOriginalVol; short m_nNumNodule; double m_nNoduleCenterX[100]; double m_nNoduleCenterY[100]; double m_nNoduleCenterZ[100];//Operationsprivate://Operationspublic: RxProgressWnd * m_pWndProgress; RxVolumeData(); ~RxVolumeData(); BOOL VolumeFiltering(int iFilterLevel); unsigned short *MakeBigVolume(int iVolX, int iVolY, int iSliceNum); void SetBigVolume(unsigned short *pVolume, int iVolX, int iVolY, int iSliceNum); void SetInfos(RxDicomObject *pDicomInfo, float fSliceInterval, double afImageOrientation[]); void GetBigVolumeDmsn(int *x, int *y, int *z){*x=m_iBigVolX; *y=m_iBigVolY; *z=m_iSliceNum; } void GetVoxelSize(double *fx, double *fy, double *fz) {*fx=m_fPixelSpace; *fy=m_fPixelSpace; *fz=m_fSliceInterval;} double GetVoxelLength() {return m_fPixelSpace;}; double GetVoxelVolume() {return m_fPixelSpace*m_fPixelSpace*m_fSliceInterval;}; void GetSliceThickness(float *ft) {*ft=m_fSliceThickness;} BOOL IsFisrt3DRender(void){ return m_bFirst3DRender; }; void SetFirst3DRenderFlag(BOOL bFlag) { m_bFirst3DRender = bFlag; } BOOL IsFisrtVRRender(void){ return m_bFirstVRRender; }; void SetFirstVRRenderFlag(BOOL bFlag) { m_bFirstVRRender = bFlag; } BOOL InitMinMaxMap(int iSeriesNum, int iLoadedSeriesCount); BOOL InitMinMaxMapFailed(); BOOL DestroyMinMaxMap(); BOOL DestroyVolumeData(); int GetInterpolatedSliceNum() {return m_iItplVolZ;} // unsigned char 屈怕狼 label table阑 罐酒辑 // bit 窜困肺, m_pSeg2DSlices 俊 update void UpdateLabel(int nSliceIdx, unsigned char *pLabel, bool bNotInvert); BOOL MakeInterpolatedMap(); unsigned short *GetBigVolume() { return m_pnVolume; } unsigned short *GetOriginalVolume() { return m_pnVolume; } RxBlockData * GetBlockData() { return &m_bdBlockData; } RxVoxelShader * GetVoxelShader() { return &m_VoxelShader; } RxMaskVolume *GetEditVolume() { return &m_maskEditVolume; } RxMaskVolume *GetNoduleVolume() { return &m_maskEdgeVolume; }//m_maskNoduleVolume; } RxMaskVolume *GetEdgeVolume() { return &m_maskEdgeVolume; } RxMaskVolume *GetEdgeVolumeR() { return &m_maskEdgeVolume; } RxMaskVolume *GetEdgeVolumeL() { return &m_maskEdgeVolume; } RxMaskVolume *GetVesselVolume() { return &m_maskVesselVolume; } RxMaskVolume *GetAirwayVolume() { return &m_maskAirwayVolume; } RxMaskVolume *GetLeftEditVolume() { return &m_maskLeftEditVolume; } RxMaskVolume *GetRightEditVolume() { return &m_maskRightEditVolume; } RxMaskVolume *GetEditVolumeL() { return &m_maskLeftEditVolume; } RxMaskVolume *GetEditVolumeR() { return &m_maskRightEditVolume; } RxMaskVolume *GetSkeleton() { return &m_maskSkeleton; } RxMaskVolume *GetVesselEdge() { return &m_maskVesselEdge; } double *GetGantryAxes() { return m_afGantryAxes; }};#endif //__VOLUMEDATA_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -