Mercurial > hg > orthanc-stone
comparison UnitTestsSources/UnitTestsMain.cpp @ 689:93a8949a1ef7
VolumeImageGeometry::DetectSlice()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 16 May 2019 18:33:57 +0200 |
parents | ea1a5b963798 |
children | c35e98d22764 |
comparison
equal
deleted
inserted
replaced
685:ea1a5b963798 | 689:93a8949a1ef7 |
---|---|
746 ASSERT_FLOAT_EQ(-1.0 / 2.0 + 10.0 * 1.0, p[0]); | 746 ASSERT_FLOAT_EQ(-1.0 / 2.0 + 10.0 * 1.0, p[0]); |
747 ASSERT_FLOAT_EQ(-2.0 / 2.0 + 20.0 * 2.0, p[1]); | 747 ASSERT_FLOAT_EQ(-2.0 / 2.0 + 20.0 * 2.0, p[1]); |
748 ASSERT_FLOAT_EQ(-3.0 / 2.0 + 30.0 * 3.0, p[2]); | 748 ASSERT_FLOAT_EQ(-3.0 / 2.0 + 30.0 * 3.0, p[2]); |
749 | 749 |
750 OrthancStone::VolumeProjection proj; | 750 OrthancStone::VolumeProjection proj; |
751 ASSERT_TRUE(g.DetectProjection(proj, g.GetAxialGeometry())); | 751 ASSERT_TRUE(g.DetectProjection(proj, g.GetAxialGeometry().GetNormal())); |
752 ASSERT_EQ(OrthancStone::VolumeProjection_Axial, proj); | 752 ASSERT_EQ(OrthancStone::VolumeProjection_Axial, proj); |
753 ASSERT_TRUE(g.DetectProjection(proj, g.GetCoronalGeometry())); | 753 ASSERT_TRUE(g.DetectProjection(proj, g.GetCoronalGeometry().GetNormal())); |
754 ASSERT_EQ(OrthancStone::VolumeProjection_Coronal, proj); | 754 ASSERT_EQ(OrthancStone::VolumeProjection_Coronal, proj); |
755 ASSERT_TRUE(g.DetectProjection(proj, g.GetSagittalGeometry())); | 755 ASSERT_TRUE(g.DetectProjection(proj, g.GetSagittalGeometry().GetNormal())); |
756 ASSERT_EQ(OrthancStone::VolumeProjection_Sagittal, proj); | 756 ASSERT_EQ(OrthancStone::VolumeProjection_Sagittal, proj); |
757 | |
758 ASSERT_EQ(10u, g.GetProjectionWidth(OrthancStone::VolumeProjection_Axial)); | |
759 ASSERT_EQ(20u, g.GetProjectionHeight(OrthancStone::VolumeProjection_Axial)); | |
760 ASSERT_EQ(30u, g.GetProjectionDepth(OrthancStone::VolumeProjection_Axial)); | |
761 ASSERT_EQ(10u, g.GetProjectionWidth(OrthancStone::VolumeProjection_Coronal)); | |
762 ASSERT_EQ(30u, g.GetProjectionHeight(OrthancStone::VolumeProjection_Coronal)); | |
763 ASSERT_EQ(20u, g.GetProjectionDepth(OrthancStone::VolumeProjection_Coronal)); | |
764 ASSERT_EQ(20u, g.GetProjectionWidth(OrthancStone::VolumeProjection_Sagittal)); | |
765 ASSERT_EQ(30u, g.GetProjectionHeight(OrthancStone::VolumeProjection_Sagittal)); | |
766 ASSERT_EQ(10u, g.GetProjectionDepth(OrthancStone::VolumeProjection_Sagittal)); | |
767 | |
768 p = g.GetVoxelDimensions(OrthancStone::VolumeProjection_Axial); | |
769 ASSERT_EQ(3u, p.size()); | |
770 ASSERT_FLOAT_EQ(1, p[0]); | |
771 ASSERT_FLOAT_EQ(2, p[1]); | |
772 ASSERT_FLOAT_EQ(3, p[2]); | |
773 p = g.GetVoxelDimensions(OrthancStone::VolumeProjection_Coronal); | |
774 ASSERT_EQ(3u, p.size()); | |
775 ASSERT_FLOAT_EQ(1, p[0]); | |
776 ASSERT_FLOAT_EQ(3, p[1]); | |
777 ASSERT_FLOAT_EQ(2, p[2]); | |
778 p = g.GetVoxelDimensions(OrthancStone::VolumeProjection_Sagittal); | |
779 ASSERT_EQ(3u, p.size()); | |
780 ASSERT_FLOAT_EQ(2, p[0]); | |
781 ASSERT_FLOAT_EQ(3, p[1]); | |
782 ASSERT_FLOAT_EQ(1, p[2]); | |
783 | |
784 ASSERT_EQ(0, (int) OrthancStone::VolumeProjection_Axial); | |
785 ASSERT_EQ(1, (int) OrthancStone::VolumeProjection_Coronal); | |
786 ASSERT_EQ(2, (int) OrthancStone::VolumeProjection_Sagittal); | |
787 | |
788 for (int p = 0; p < 3; p++) | |
789 { | |
790 OrthancStone::VolumeProjection projection = (OrthancStone::VolumeProjection) p; | |
791 const OrthancStone::CoordinateSystem3D& s = g.GetProjectionGeometry(projection); | |
792 | |
793 for (unsigned int i = 0; i < g.GetProjectionDepth(projection); i++) | |
794 { | |
795 OrthancStone::CoordinateSystem3D plane( | |
796 s.GetOrigin() + static_cast<double>(i) * s.GetNormal() * g.GetVoxelDimensions(projection)[2], | |
797 s.GetAxisX(), | |
798 s.GetAxisY()); | |
799 | |
800 unsigned int slice; | |
801 OrthancStone::VolumeProjection q; | |
802 ASSERT_TRUE(g.DetectSlice(q, slice, plane)); | |
803 ASSERT_EQ(projection, q); | |
804 ASSERT_EQ(i, slice); | |
805 } | |
806 } | |
757 } | 807 } |
758 | 808 |
759 int main(int argc, char **argv) | 809 int main(int argc, char **argv) |
760 { | 810 { |
761 Orthanc::Logging::Initialize(); | 811 Orthanc::Logging::Initialize(); |