#include <slice.h>
Public Types | |
| enum | { XY, XZ, YZ } |
Public Methods | |
| Slice () | |
| slice.cpp erstellt slice-view für die drei Hauptebenen | |
| ~Slice () | |
| bool | SetType (int tp) |
| int | GetType () |
| int | GetSliceNumber (Data *dat=NULL) |
| void | SetTransferfunction (Transfunc *transferfunction) |
| bool | SetPixels (Data *dat, int dp) |
| void | SetZoom (bool zoom) |
| bool | GetZoom () |
| void | SetTransfer (bool transfer) |
| bool | GetTransfer () |
| bool | SetPixels (Transfunc *tf, Data *dat, int dp) |
| bool | DrawSlice (int width, int height) |
| void | GetImageInfo (int &width, int &height, int &x, int &y, int &plane, int &depth) |
| rgb * | GetScreenShotImage (int &width, int &height) |
Private Attributes | |
| int | m_depth |
| int | m_type |
| int | m_x |
| int | m_y |
| int | m_width |
| int | m_height |
| rgb * | slice_data |
| bool | m_bZoom |
| bool | m_bUseTransfer |
| int | m_dSliceNumber |
| Transfunc * | m_tTransferfunction |
|
|
Definition at line 27 of file slice.h.
|
|
|
slice.cpp erstellt slice-view für die drei Hauptebenen
Definition at line 5 of file slice.cpp. References m_bUseTransfer, m_bZoom, m_depth, m_dSliceNumber, m_height, m_tTransferfunction, m_type, m_width, and slice_data.
00006 {
00007 m_depth=0;
00008 m_height=0;
00009 m_width=0;
00010 m_type=0; // xy Plane as default value
00011 slice_data = NULL;
00012 m_dSliceNumber = -1;
00013 m_bZoom = false;
00014 m_bUseTransfer = false;
00015 m_tTransferfunction = NULL;
00016 }
|
|
|
Definition at line 19 of file slice.cpp. References slice_data.
00020 {
00021 if(slice_data != NULL) delete slice_data;
00022 }
|
|
||||||||||||
|
Definition at line 158 of file slice.cpp. References m_bZoom, m_height, m_width, m_x, m_y, and slice_data. Referenced by CMy3dvisView::RenderScene().
00159 {
00160 float zoomx = (float)width / (float)m_width;
00161 float zoomy = (float)height / (float)m_height;
00162 float zoom;
00163
00164
00165 if (zoomx < zoomy) {
00166 zoom = zoomx;
00167 m_x = 0;
00168 m_y = height / 2 - (m_height * zoom) / 2;
00169 }
00170 else {
00171 zoom = zoomy;
00172 m_y = 0;
00173 m_x = width / 2 - (m_width * zoom) / 2;
00174 }
00175
00176
00177 if (!m_bZoom) {
00178 zoom = 1.0f;
00179 m_x = width / 2 - m_width / 2;
00180 m_y = height / 2 - m_height / 2;
00181 }
00182
00183
00184 if(slice_data == NULL) return false;
00185 glRasterPos2i(m_x, m_y);
00186 glPixelStorei(GL_UNPACK_ALIGNMENT,1);
00187 glPixelZoom(zoom, zoom);
00188 glDrawPixels(m_width, m_height, GL_RGB, GL_UNSIGNED_BYTE, slice_data);
00189 return true;
00190 }
|
|
||||||||||||||||||||||||||||
|
Definition at line 195 of file slice.cpp. References m_depth, m_height, m_type, m_width, m_x, and m_y.
|
|
||||||||||||
|
Definition at line 48 of file slice.h. Referenced by CMy3dvisView::OnFileSaveImage().
00048 { width = m_width;
00049 height = m_height;
00050 return slice_data; };
|
|
|
Definition at line 39 of file slice.cpp. References Data::GetXDim(), Data::GetYDim(), Data::GetZDim(), m_dSliceNumber, XY, XZ, and YZ. Referenced by dialogbar::OnShowWindow().
00039 {
00040 if (dat == NULL)
00041 return m_dSliceNumber;
00042
00043 switch (m_type) {
00044 case XY:
00045 m_dSliceNumber = dat->GetZDim() - 1;
00046 break;
00047 case XZ:
00048 m_dSliceNumber = dat->GetYDim() - 1;
00049 break;
00050 case YZ:
00051 m_dSliceNumber = dat->GetXDim() - 1;
00052 break;
00053 }
00054 return m_dSliceNumber;
00055 }
|
|
|
Definition at line 43 of file slice.h. Referenced by dialogbar::OnCheckUseTransfer().
00043 { return m_bUseTransfer; }
|
|
|
Definition at line 33 of file slice.cpp. References m_type.
00034 {
00035 return m_type;
00036 }
|
|
|
Definition at line 40 of file slice.h. Referenced by dialogbar::OnCheckZoom().
00040 { return m_bZoom; }
|
|
||||||||||||||||
|
Definition at line 59 of file slice.cpp. References rgb::b, CLAMP0255, rgb::g, Data::GetDensity(), Data::GetXDim(), Data::GetYDim(), Data::GetZDim(), m_bUseTransfer, m_depth, m_height, m_type, m_width, rgb::r, slice_data, XY, XZ, and YZ.
00060 {
00061 if (m_bUseTransfer && tf == NULL)
00062 m_bUseTransfer = false;
00063
00064 int size = 0;
00065 if(slice_data != NULL) delete slice_data;
00066 m_depth = dp;
00067 int density;
00068
00069 if(m_type == XY)
00070 { // XY Plane
00071 m_width = (int)dat->GetXDim();
00072 m_height = (int)dat->GetYDim();
00073 size = m_width*m_height;
00074 slice_data = new rgb[size];
00075 for(int i = 0; i < m_height; i++)
00076 {
00077 for(int j = 0; j < m_width; j++)
00078 {
00079 if (m_bUseTransfer) {
00080 density = dat->GetDensity(j,i,m_depth);
00081 slice_data[i*m_width+j] = tf->GetDensityColor(density);
00082 }
00083 else {
00084 density = dat->GetDensity(j, i, m_depth) / 16;
00085 density = CLAMP0255(density);
00086 rgb col;
00087 col.r = density;
00088 col.g = density;
00089 col.b = density;
00090 slice_data[i * m_width + j] = col;
00091 }
00092 }
00093 }
00094 }
00095
00096 if(m_type == XZ)
00097 { // XZ Plane
00098 m_width = dat->GetXDim();
00099 m_height = dat->GetZDim();
00100 size = m_width*m_height;
00101 slice_data = new rgb[size];
00102 for(int i = 0; i < m_height; i++)
00103 {
00104 for(int j = 0; j < m_width; j++)
00105 {
00106 if (m_bUseTransfer) {
00107 density = dat->GetDensity(j,m_depth,i);
00108 slice_data[i*m_width+j] = tf->GetDensityColor(density);
00109 }
00110 else {
00111 density = dat->GetDensity(j, m_depth, i) / 16;
00112 density = CLAMP0255(density);
00113 rgb col;
00114 col.r = density;
00115 col.g = density;
00116 col.b = density;
00117 slice_data[i * m_width + j] = col;
00118 }
00119 }
00120 }
00121 }
00122
00123 if(m_type == YZ)
00124 { //YZ Plane
00125 m_width = dat->GetYDim();
00126 m_height = dat->GetZDim();
00127 size = m_width*m_height;
00128 slice_data = new rgb[size];
00129 for(int i = 0; i < m_height; i++)
00130 {
00131 for(int j = 0; j < m_width; j++)
00132 {
00133 if (m_bUseTransfer) {
00134 density = dat->GetDensity(m_depth,j,i);
00135 slice_data[i*m_width+j] = tf->GetDensityColor(density);
00136 }
00137 else {
00138 density = dat->GetDensity(m_depth, j, i) / 16;
00139 density = CLAMP0255(density);
00140 rgb col;
00141 col.r = density;
00142 col.g = density;
00143 col.b = density;
00144 slice_data[i * m_width + j] = col;
00145 }
00146 }
00147 }
00148 }
00149
00150 return true;
00151 }
|
|
||||||||||||
|
Definition at line 37 of file slice.h. Referenced by ON_BN_CLICKED(), dialogbar::OnCheckUseTransfer(), dialogbar::OnHScroll(), dialogbar::OnRadioXz(), dialogbar::OnRadioYz(), and dialogbar::OnShowWindow().
00037 { return SetPixels(m_tTransferfunction, dat, dp == -1 ? m_depth : dp); }
|
|
|
Definition at line 42 of file slice.h. Referenced by dialogbar::OnCheckUseTransfer().
00042 { m_bUseTransfer = transfer; }
|
|
|
Definition at line 36 of file slice.h.
00036 { m_tTransferfunction = transferfunction; }
|
|
|
Definition at line 25 of file slice.cpp. References m_type. Referenced by ON_BN_CLICKED(), dialogbar::OnRadioXz(), and dialogbar::OnRadioYz().
00026 {
00027 if ((tp < 0)||(tp > 2)) return false;
00028 m_type = tp;
00029 return true;
00030 }
|
|
|
Definition at line 39 of file slice.h. Referenced by dialogbar::OnCheckZoom().
00039 { m_bZoom = zoom; }
|
|
|
Definition at line 20 of file slice.h. Referenced by SetPixels(), and Slice(). |
|
|
Definition at line 19 of file slice.h. Referenced by DrawSlice(), and Slice(). |
|
|
Definition at line 13 of file slice.h. Referenced by GetImageInfo(), SetPixels(), and Slice(). |
|
|
Definition at line 21 of file slice.h. Referenced by GetSliceNumber(), and Slice(). |
|
|
Definition at line 16 of file slice.h. Referenced by DrawSlice(), GetImageInfo(), SetPixels(), and Slice(). |
|
|
Definition at line 22 of file slice.h. Referenced by Slice(). |
|
|
Definition at line 14 of file slice.h. Referenced by GetImageInfo(), GetType(), SetPixels(), SetType(), and Slice(). |
|
|
Definition at line 16 of file slice.h. Referenced by DrawSlice(), GetImageInfo(), SetPixels(), and Slice(). |
|
|
Definition at line 15 of file slice.h. Referenced by DrawSlice(), and GetImageInfo(). |
|
|
Definition at line 15 of file slice.h. Referenced by DrawSlice(), and GetImageInfo(). |
|
|
Definition at line 17 of file slice.h. Referenced by DrawSlice(), SetPixels(), Slice(), and ~Slice(). |
1.3-rc2