Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

CVolumeDialog Class Reference

#include <VolumeDialog.h>

List of all members.

Public Methods

 CVolumeDialog (CWnd *pParent=NULL)

Protected Methods

virtual void DoDataExchange (CDataExchange *pDX)
afx_msg void OnShowWindow (BOOL bShow, UINT nStatus)
afx_msg void OnRadioFirsthit ()
afx_msg void OnRadioStandard ()
afx_msg void OnRadioMip ()
afx_msg void OnRadioVolXy ()
afx_msg void OnRadioVolXz ()
afx_msg void OnRadioVolYz ()
afx_msg void OnChangeEditFhThreshold ()
afx_msg void OnChangeEditZoom ()
afx_msg void OnChangeEditHeight ()
afx_msg void OnChangeEditWidth ()
afx_msg void OnChangeEditAmbient ()
afx_msg void OnChangeEditDiffuse ()
afx_msg void OnButtonBgcolor ()
afx_msg void OnPaint ()
afx_msg void OnChangeEditX ()
afx_msg void OnChangeEditY ()
afx_msg void OnChangeEditZ ()
afx_msg void OnCheckLight ()
afx_msg void OnChangeEditLightposX ()
afx_msg void OnChangeEditLightposY ()
afx_msg void OnChangeEditLightposZ ()
afx_msg void OnChangeEditHighlight ()
afx_msg void OnChangeEditSpecular ()
afx_msg void OnRadioXray ()

Private Types

enum  { IDD = IDD_VOLUME_DIALOG }

Private Attributes

int m_dRotateTo
int m_dRenderMode
int m_dRenderPlane
bool m_bfirst
COLORREF m_BGColor
int m_dFHTreshold
float m_fAmbient
float m_fDiffuse
int m_dHeight
int m_dWidth
float m_fZoom
int m_dX
int m_dY
int m_dZ
int m_dHighlight
int m_dLX
int m_dLY
int m_dLZ
float m_fSpecular
BOOL m_bLight


Member Enumeration Documentation

anonymous enum [private]
 

Enumeration values:
IDD 

Definition at line 32 of file VolumeDialog.h.

00032 { IDD = IDD_VOLUME_DIALOG };


Constructor & Destructor Documentation

CVolumeDialog::CVolumeDialog CWnd *    pParent = NULL
 

Definition at line 39 of file VolumeDialog.cpp.

References FH, m_bfirst, m_BGColor, m_bLight, m_dFHTreshold, m_dHeight, m_dHighlight, m_dLX, m_dLY, m_dLZ, m_dRenderMode, m_dRenderPlane, m_dRotateTo, m_dWidth, m_dX, m_dY, m_dZ, m_fAmbient, m_fDiffuse, m_fSpecular, m_fZoom, NONE, and XZ.

00040         : CDialog(CVolumeDialog::IDD, pParent) {
00041         //{{AFX_DATA_INIT(CVolumeDialog)
00042         m_dFHTreshold = 1500;
00043         m_fAmbient = 0.2f;
00044         m_fDiffuse = 0.2f;
00045         m_dHeight = 0;
00046         m_dWidth = 0;
00047         m_fZoom = 1.1f;
00048         m_dHighlight = 8.0f;
00049         m_dLX = 300;
00050         m_dLY = 300;
00051         m_dLZ = 300;
00052         m_fSpecular = 0.2f;
00053         m_bLight = FALSE;
00054         //}}AFX_DATA_INIT
00055 
00056 
00057         m_dRotateTo = NONE;
00058         m_dRenderPlane = XZ;
00059         m_dRenderMode = FH;
00060 
00061         //black
00062         m_BGColor = 0x00000000;
00063         m_dX = 92;
00064         m_dY = -300;
00065         m_dZ = 85;
00066 
00067         m_bfirst = true;
00068 }


Member Function Documentation

void CVolumeDialog::DoDataExchange CDataExchange *    pDX [protected, virtual]
 

Definition at line 71 of file VolumeDialog.cpp.

00071                                                      {
00072         CDialog::DoDataExchange(pDX);
00073         //{{AFX_DATA_MAP(CVolumeDialog)
00074         DDX_Text(pDX, IDC_EDIT_FH_THRESHOLD, m_dFHTreshold);
00075         DDV_MinMaxInt(pDX, m_dFHTreshold, 0, 4095);
00076         DDX_Text(pDX, IDC_EDIT_AMBIENT, m_fAmbient);
00077         DDV_MinMaxFloat(pDX, m_fAmbient, 0.f, 1.f);
00078         DDX_Text(pDX, IDC_EDIT_DIFFUSE, m_fDiffuse);
00079         DDV_MinMaxFloat(pDX, m_fDiffuse, 0.f, 1.f);
00080         DDX_Text(pDX, IDC_EDIT_HEIGHT, m_dHeight);
00081         DDV_MinMaxInt(pDX, m_dHeight, 0, 1600);
00082         DDX_Text(pDX, IDC_EDIT_WIDTH, m_dWidth);
00083         DDV_MinMaxInt(pDX, m_dWidth, 0, 1800);
00084         DDX_Text(pDX, IDC_EDIT_ZOOM, m_fZoom);
00085         DDV_MinMaxFloat(pDX, m_fZoom, 0.1f, 10.f);
00086         DDX_Text(pDX, IDC_EDIT_X, m_dX);
00087         DDV_MinMaxInt(pDX, m_dX, -1000, 1000);
00088         DDX_Text(pDX, IDC_EDIT_Y, m_dY);
00089         DDV_MinMaxInt(pDX, m_dY, -1000, 1000);
00090         DDX_Text(pDX, IDC_EDIT_Z, m_dZ);
00091         DDV_MinMaxInt(pDX, m_dZ, -1000, 1000);
00092         DDX_Text(pDX, IDC_EDIT_HIGHLIGHT, m_dHighlight);
00093         DDX_Text(pDX, IDC_EDIT_LIGHTPOS_X, m_dLX);
00094         DDX_Text(pDX, IDC_EDIT_LIGHTPOS_Y, m_dLY);
00095         DDX_Text(pDX, IDC_EDIT_LIGHTPOS_Z, m_dLZ);
00096         DDX_Text(pDX, IDC_EDIT_SPECULAR, m_fSpecular);
00097         DDX_Check(pDX, IDC_CHECK_LIGHT, m_bLight);
00098         //}}AFX_DATA_MAP
00099 }

void CVolumeDialog::OnButtonBgcolor   [protected]
 

Definition at line 295 of file VolumeDialog.cpp.

References m_BGColor, raycaster, and Raycaster::SetBackgroundColor().

00295                                     {
00296         CColorDialog colDiag;
00297         if (colDiag.DoModal() != IDOK)
00298                 return;
00299 
00300         m_BGColor = colDiag.GetColor();
00301 
00302         CDC *cdc = (CDC *)this->GetDC();
00303         cdc->FillSolidRect(117, 380, 30, 22, m_BGColor);
00304 
00305         unsigned char col[3] = { m_BGColor & 0x000000FF,
00306                                                         (m_BGColor & 0x0000FF00) >> 8,
00307                                                         (m_BGColor & 0x00FF0000) >> 16 };
00308 
00309         raycaster->SetBackgroundColor(col[0], col[1], col[2]);
00310 }

void CVolumeDialog::OnChangeEditAmbient   [protected]
 

Definition at line 285 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetAmbient().

00285                                         {
00286         UpdateData(TRUE);
00287         raycaster->SetAmbient(m_fAmbient);
00288 }

void CVolumeDialog::OnChangeEditDiffuse   [protected]
 

Definition at line 290 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetDiffuse().

00290                                         {
00291         UpdateData(TRUE);
00292         raycaster->SetDiffuse(m_fDiffuse);
00293 }

void CVolumeDialog::OnChangeEditFhThreshold   [protected]
 

Definition at line 265 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetTreshold().

00265                                             {
00266         UpdateData(TRUE);
00267         raycaster->SetTreshold(m_dFHTreshold);
00268 }

void CVolumeDialog::OnChangeEditHeight   [protected]
 

Definition at line 275 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetHeight().

00275                                        {
00276         UpdateData(TRUE);
00277         raycaster->SetHeight(m_dHeight);
00278 }

void CVolumeDialog::OnChangeEditHighlight   [protected]
 

Definition at line 359 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetHighlight().

00359                                           {
00360         UpdateData(TRUE);
00361         raycaster->SetHighlight(m_dHighlight);
00362 }

void CVolumeDialog::OnChangeEditLightposX   [protected]
 

Definition at line 344 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetLightpos().

00344                                           {
00345         UpdateData(TRUE);
00346         raycaster->SetLightpos(VECTOR(m_dLX, m_dLY, m_dLZ));
00347 }

void CVolumeDialog::OnChangeEditLightposY   [protected]
 

Definition at line 349 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetLightpos().

00349                                           {
00350         UpdateData(TRUE);
00351         raycaster->SetLightpos(VECTOR(m_dLX, m_dLY, m_dLZ));
00352 }

void CVolumeDialog::OnChangeEditLightposZ   [protected]
 

Definition at line 354 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetLightpos().

00354                                           {
00355         UpdateData(TRUE);
00356         raycaster->SetLightpos(VECTOR(m_dLX, m_dLY, m_dLZ));
00357 }

void CVolumeDialog::OnChangeEditSpecular   [protected]
 

Definition at line 364 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetSpecular().

00364                                          {
00365         UpdateData(TRUE);
00366         raycaster->SetSpecular(m_fSpecular);
00367 }

void CVolumeDialog::OnChangeEditWidth   [protected]
 

Definition at line 280 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetWidth().

00280                                       {
00281         UpdateData(TRUE);
00282         raycaster->SetWidth(m_dWidth);
00283 }

void CVolumeDialog::OnChangeEditX   [protected]
 

Definition at line 318 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetViewingPlanePos().

00318                                   {
00319         UpdateData(TRUE);
00320         raycaster->SetViewingPlanePos(m_dX, m_dY, m_dZ);
00321 }

void CVolumeDialog::OnChangeEditY   [protected]
 

Definition at line 323 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetViewingPlanePos().

00323                                   {
00324         UpdateData(TRUE);
00325         raycaster->SetViewingPlanePos(m_dX, m_dY, m_dZ);
00326 }

void CVolumeDialog::OnChangeEditZ   [protected]
 

Definition at line 328 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetViewingPlanePos().

00328                                   {
00329         UpdateData(TRUE);
00330         raycaster->SetViewingPlanePos(m_dX, m_dY, m_dZ);
00331 }

void CVolumeDialog::OnChangeEditZoom   [protected]
 

Definition at line 270 of file VolumeDialog.cpp.

References raycaster, and Raycaster::Zoom().

00270                                      {
00271         UpdateData(TRUE);
00272         raycaster->Zoom(m_fZoom);
00273 }

void CVolumeDialog::OnCheckLight   [protected]
 

Definition at line 336 of file VolumeDialog.cpp.

References raycaster, and Raycaster::SetLight().

00336                                  {
00337         UpdateData(TRUE);
00338         raycaster->SetLight(m_bLight);
00339 }

void CVolumeDialog::OnPaint   [protected]
 

Definition at line 312 of file VolumeDialog.cpp.

00312                             {
00313         CPaintDC dc(this); // device context for painting
00314         
00315         dc.FillSolidRect(117, 380, 30, 22, m_BGColor);
00316 }

void CVolumeDialog::OnRadioFirsthit   [protected]
 

Definition at line 192 of file VolumeDialog.cpp.

References FH, m_dRenderMode, raycaster, and Raycaster::SetRendermode().

00192                                     {
00193         raycaster->SetRendermode(FH);
00194         m_dRenderMode = FH;
00195 }

void CVolumeDialog::OnRadioMip   [protected]
 

Definition at line 203 of file VolumeDialog.cpp.

References m_dRenderMode, MI, raycaster, and Raycaster::SetRendermode().

00203                                {
00204         raycaster->SetRendermode(MI);
00205         m_dRenderMode = MI;
00206 }

void CVolumeDialog::OnRadioStandard   [protected]
 

Definition at line 197 of file VolumeDialog.cpp.

References m_dRenderMode, raycaster, Raycaster::SetRendermode(), and STANDARD.

00197                                     {
00198         raycaster->SetRendermode(STANDARD);
00199         m_dRenderMode = STANDARD;
00200 }

void CVolumeDialog::OnRadioVolXy   [protected]
 

Definition at line 215 of file VolumeDialog.cpp.

References m_bfirst, m_dRotateTo, m_dX, m_dY, m_dZ, NONE, raycaster, Raycaster::SetViewingPlanePos(), and XY.

Referenced by OnShowWindow().

00215                                  {
00216         if (!raycaster)
00217                 return;
00218         
00219         if (m_bfirst) {
00220                 m_bfirst = false;
00221                 return;
00222         }
00223 
00224         m_dRotateTo = XY;
00225         m_dRotateTo = NONE;
00226         raycaster->SetViewingPlanePos(92, 128, -300);
00227 
00228         m_dX = 92;
00229         m_dY = 128;
00230         m_dZ = -300;
00231 
00232         UpdateData(FALSE);
00233 }

void CVolumeDialog::OnRadioVolXz   [protected]
 

Definition at line 235 of file VolumeDialog.cpp.

References m_dRotateTo, m_dX, m_dY, m_dZ, NONE, raycaster, Raycaster::SetViewingPlanePos(), and XZ.

Referenced by OnShowWindow().

00235                                  {
00236         if (!raycaster)
00237                 return;
00238 
00239         m_dRotateTo = XZ;
00240         m_dRotateTo = NONE;
00241         raycaster->SetViewingPlanePos(92, -300, 85);
00242 
00243         m_dX = 92;
00244         m_dY = -300;
00245         m_dZ = 85;
00246 
00247         UpdateData(FALSE);
00248 }

void CVolumeDialog::OnRadioVolYz   [protected]
 

Definition at line 250 of file VolumeDialog.cpp.

References m_dRotateTo, m_dX, m_dY, m_dZ, NONE, raycaster, Raycaster::SetViewingPlanePos(), and YZ.

Referenced by OnShowWindow().

00250                                  {
00251         if (!raycaster)
00252                 return;
00253 
00254         m_dRotateTo = YZ;
00255         m_dRotateTo = NONE;
00256         raycaster->SetViewingPlanePos(300, 128, 85);
00257 
00258         m_dX = 300;
00259         m_dY = 128;
00260         m_dZ = 85;
00261 
00262         UpdateData(FALSE);
00263 }

void CVolumeDialog::OnRadioXray   [protected]
 

Definition at line 209 of file VolumeDialog.cpp.

References m_dRenderMode, raycaster, Raycaster::SetRendermode(), and XRAY.

00209                                 {
00210         raycaster->SetRendermode(XRAY);
00211         m_dRenderMode = XRAY;
00212 }

void CVolumeDialog::OnShowWindow BOOL    bShow,
UINT    nStatus
[protected]
 

Definition at line 135 of file VolumeDialog.cpp.

References FH, Raycaster::GetScreenShotImage(), IDC_RADIO_FIRSTHIT, IDC_RADIO_STANDARD, IDC_RADIO_VOL_XY, IDC_RADIO_VOL_XZ, IDC_RADIO_VOL_YZ, OnRadioVolXy(), OnRadioVolXz(), OnRadioVolYz(), raycaster, STANDARD, XY, XZ, and YZ.

00135                                                          {
00136         CDialog::OnShowWindow(bShow, nStatus);
00137         // TODO: Add your message handler code here
00138         if (!bShow || !raycaster)
00139                 return;
00140 
00141         
00142         int button;
00143         switch (m_dRenderPlane) {
00144                 case XY:
00145                         OnRadioVolXy();
00146                         button = IDC_RADIO_VOL_XY;
00147                         break;
00148                 case XZ:
00149                         OnRadioVolXz();
00150                         button = IDC_RADIO_VOL_XZ;
00151                         break;
00152                 case YZ:
00153                         OnRadioVolYz();
00154                         button = IDC_RADIO_VOL_YZ;
00155                         break;
00156                 default:
00157                         button = -1;
00158                         break;
00159         }
00160 
00161         if (button != -1)
00162                 ((CButton *)GetDlgItem(button))->SetCheck(1);
00163 
00164         
00165         switch (m_dRenderMode) {
00166                 case FH:
00167                         button = IDC_RADIO_FIRSTHIT;
00168                         break;
00169                 case STANDARD:
00170                         button = IDC_RADIO_STANDARD;
00171                         break;
00172                 default:
00173                         button = -1;
00174                         break;
00175         }
00176 
00177         if (button != -1)
00178                 ((CButton *)GetDlgItem(button))->SetCheck(1);
00179 
00180 
00181         
00182         CDC *cdc = (CDC *)this->GetDC();
00183         cdc->FillSolidRect(117, 380, 30, 22, m_BGColor);
00184 
00185 
00186         raycaster->GetScreenShotImage(m_dWidth, m_dHeight);
00187 
00188         UpdateData(FALSE);
00189 }


Member Data Documentation

bool CVolumeDialog::m_bfirst [private]
 

Definition at line 24 of file VolumeDialog.h.

Referenced by CVolumeDialog(), and OnRadioVolXy().

COLORREF CVolumeDialog::m_BGColor [private]
 

Definition at line 26 of file VolumeDialog.h.

Referenced by CVolumeDialog(), and OnButtonBgcolor().

BOOL CVolumeDialog::m_bLight [private]
 

Definition at line 47 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dFHTreshold [private]
 

Definition at line 33 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dHeight [private]
 

Definition at line 36 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dHighlight [private]
 

Definition at line 42 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dLX [private]
 

Definition at line 43 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dLY [private]
 

Definition at line 44 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dLZ [private]
 

Definition at line 45 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dRenderMode [private]
 

Definition at line 22 of file VolumeDialog.h.

Referenced by CVolumeDialog(), OnRadioFirsthit(), OnRadioMip(), OnRadioStandard(), and OnRadioXray().

int CVolumeDialog::m_dRenderPlane [private]
 

Definition at line 23 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dRotateTo [private]
 

Definition at line 21 of file VolumeDialog.h.

Referenced by CVolumeDialog(), OnRadioVolXy(), OnRadioVolXz(), and OnRadioVolYz().

int CVolumeDialog::m_dWidth [private]
 

Definition at line 37 of file VolumeDialog.h.

Referenced by CVolumeDialog().

int CVolumeDialog::m_dX [private]
 

Definition at line 39 of file VolumeDialog.h.

Referenced by CVolumeDialog(), OnRadioVolXy(), OnRadioVolXz(), and OnRadioVolYz().

int CVolumeDialog::m_dY [private]
 

Definition at line 40 of file VolumeDialog.h.

Referenced by CVolumeDialog(), OnRadioVolXy(), OnRadioVolXz(), and OnRadioVolYz().

int CVolumeDialog::m_dZ [private]
 

Definition at line 41 of file VolumeDialog.h.

Referenced by CVolumeDialog(), OnRadioVolXy(), OnRadioVolXz(), and OnRadioVolYz().

float CVolumeDialog::m_fAmbient [private]
 

Definition at line 34 of file VolumeDialog.h.

Referenced by CVolumeDialog().

float CVolumeDialog::m_fDiffuse [private]
 

Definition at line 35 of file VolumeDialog.h.

Referenced by CVolumeDialog().

float CVolumeDialog::m_fSpecular [private]
 

Definition at line 46 of file VolumeDialog.h.

Referenced by CVolumeDialog().

float CVolumeDialog::m_fZoom [private]
 

Definition at line 38 of file VolumeDialog.h.

Referenced by CVolumeDialog().


The documentation for this class was generated from the following files:
Generated on Thu Jan 23 12:32:16 2003 by doxygen1.3-rc2