Mercurial > hg > orthanc-stone
diff UnitTestsSources/VolumeRenderingTests.cpp @ 1775:fca942f4b4a7
fix conversion from voxel centers to texture borders
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 12 May 2021 19:57:50 +0200 |
parents | 95ece40bb298 |
children | de5c965f0697 |
line wrap: on
line diff
--- a/UnitTestsSources/VolumeRenderingTests.cpp Wed May 12 17:43:51 2021 +0200 +++ b/UnitTestsSources/VolumeRenderingTests.cpp Wed May 12 19:57:50 2021 +0200 @@ -21,6 +21,7 @@ #include "../OrthancStone/Sources/Scene2D/CairoCompositor.h" #include "../OrthancStone/Sources/Scene2D/CopyStyleConfigurator.h" +#include "../OrthancStone/Sources/Scene2D/ColorTextureSceneLayer.h" #include "../OrthancStone/Sources/Volumes/DicomVolumeImageMPRSlicer.h" #include "../OrthancStone/Sources/Volumes/DicomVolumeImageReslicer.h" @@ -29,7 +30,7 @@ #include <gtest/gtest.h> -TEST(VolumeRendering, Basic) +TEST(VolumeRendering, Axial) { Orthanc::DicomMap dicom; dicom.SetValue(Orthanc::DICOM_TAG_STUDY_INSTANCE_UID, "study", false); @@ -43,7 +44,7 @@ OrthancStone::VolumeImageGeometry geometry; geometry.SetSizeInVoxels(3, 3, 1); geometry.SetAxialGeometry(axial); - + boost::shared_ptr<OrthancStone::DicomVolumeImage> volume(new OrthancStone::DicomVolumeImage); volume->Initialize(geometry, Orthanc::PixelFormat_Grayscale8, false); volume->SetDicomParameters(OrthancStone::DicomInstanceParameters(dicom)); @@ -62,6 +63,11 @@ } } + OrthancStone::Vector v = volume->GetGeometry().GetVoxelDimensions(OrthancStone::VolumeProjection_Axial); + ASSERT_FLOAT_EQ(1, v[0]); + ASSERT_FLOAT_EQ(1, v[1]); + ASSERT_FLOAT_EQ(1, v[2]); + OrthancStone::CoordinateSystem3D viewpoint; for (unsigned int mode = 0; mode < 2; mode++) @@ -83,6 +89,15 @@ OrthancStone::CopyStyleConfigurator configurator; std::unique_ptr<OrthancStone::ISceneLayer> layer(slice->CreateSceneLayer(&configurator, viewpoint)); + ASSERT_EQ(OrthancStone::ISceneLayer::Type_FloatTexture, layer->GetType()); + + OrthancStone::Extent2D box; + layer->GetBoundingBox(box); + ASSERT_FLOAT_EQ(-1.0f, box.GetX1()); + ASSERT_FLOAT_EQ(-1.0f, box.GetY1()); + ASSERT_FLOAT_EQ(2.0f, box.GetX2()); + ASSERT_FLOAT_EQ(2.0f, box.GetY2()); + { const Orthanc::ImageAccessor& a = dynamic_cast<OrthancStone::TextureBaseSceneLayer&>(*layer).GetTexture(); Orthanc::Image i(Orthanc::PixelFormat_Grayscale8, a.GetWidth(), a.GetHeight(), false); @@ -144,4 +159,3 @@ Orthanc::ImageTraits<Orthanc::PixelFormat_RGB24>::GetPixel(pixel, j, 4, 4); ASSERT_EQ(200, pixel.red_); } } -