---------------------------------------------------------------------------------------- Check
| 177 | //---------------------------------------------------------------------------------------- |
| 178 | // Check |
| 179 | bool CCudaForwardProjectionAlgorithm3D::check() |
| 180 | { |
| 181 | // check pointers |
| 182 | //ASTRA_CONFIG_CHECK(m_pProjector, "Reconstruction2D", "Invalid Projector Object."); |
| 183 | ASTRA_CONFIG_CHECK(m_pProjections, "FP3D_CUDA", "Invalid Projection Data Object."); |
| 184 | ASTRA_CONFIG_CHECK(m_pVolume, "FP3D_CUDA", "Invalid Volume Data Object."); |
| 185 | |
| 186 | // check initializations |
| 187 | //ASTRA_CONFIG_CHECK(m_pProjector->isInitialized(), "Reconstruction2D", "Projector Object Not Initialized."); |
| 188 | ASTRA_CONFIG_CHECK(m_pProjections->isInitialized(), "FP3D_CUDA", "Projection Data Object Not Initialized."); |
| 189 | ASTRA_CONFIG_CHECK(m_pVolume->isInitialized(), "FP3D_CUDA", "Volume Data Object Not Initialized."); |
| 190 | |
| 191 | ASTRA_CONFIG_CHECK(m_iDetectorSuperSampling >= 1, "FP3D_CUDA", "DetectorSuperSampling must be a positive integer."); |
| 192 | |
| 193 | // check compatibility between projector and data classes |
| 194 | // ASTRA_CONFIG_CHECK(m_pSinogram->getGeometry()->isEqual(m_pProjector->getProjectionGeometry()), "SIRT_CUDA", "Projection Data not compatible with the specified Projector."); |
| 195 | // ASTRA_CONFIG_CHECK(m_pReconstruction->getGeometry()->isEqual(m_pProjector->getVolumeGeometry()), "SIRT_CUDA", "Reconstruction Data not compatible with the specified Projector."); |
| 196 | |
| 197 | // todo: turn some of these back on |
| 198 | |
| 199 | // ASTRA_CONFIG_CHECK(m_pProjectionGeometry, "SIRT_CUDA", "ProjectionGeometry not specified."); |
| 200 | // ASTRA_CONFIG_CHECK(m_pProjectionGeometry->isInitialized(), "SIRT_CUDA", "ProjectionGeometry not initialized."); |
| 201 | // ASTRA_CONFIG_CHECK(m_pReconstructionGeometry, "SIRT_CUDA", "ReconstructionGeometry not specified."); |
| 202 | // ASTRA_CONFIG_CHECK(m_pReconstructionGeometry->isInitialized(), "SIRT_CUDA", "ReconstructionGeometry not initialized."); |
| 203 | |
| 204 | // check dimensions |
| 205 | //ASTRA_CONFIG_CHECK(m_pSinogram->getAngleCount() == m_pProjectionGeometry->getProjectionAngleCount(), "SIRT_CUDA", "Sinogram data object size mismatch."); |
| 206 | //ASTRA_CONFIG_CHECK(m_pSinogram->getDetectorCount() == m_pProjectionGeometry->getDetectorCount(), "SIRT_CUDA", "Sinogram data object size mismatch."); |
| 207 | //ASTRA_CONFIG_CHECK(m_pReconstruction->getWidth() == m_pReconstructionGeometry->getGridColCount(), "SIRT_CUDA", "Reconstruction data object size mismatch."); |
| 208 | //ASTRA_CONFIG_CHECK(m_pReconstruction->getHeight() == m_pReconstructionGeometry->getGridRowCount(), "SIRT_CUDA", "Reconstruction data object size mismatch."); |
| 209 | |
| 210 | // check restrictions |
| 211 | // TODO: check restrictions built into cuda code |
| 212 | |
| 213 | // success |
| 214 | m_bIsInitialized = true; |
| 215 | return true; |
| 216 | } |
| 217 | |
| 218 | //---------------------------------------------------------------------------------------- |
| 219 | // Run |
nothing calls this directly
no test coverage detected