# HG changeset patch # User Benjamin Golinvaux # Date 1592912663 -7200 # Node ID 7f16987131e1f6f45c389e2b6ffb15a6addd3ba0 # Parent b931ddbe070e748ee607cf3273a4469e71e5d442 Missing include + docs + public getter for volume geometry in multiframe loader diff -r b931ddbe070e -r 7f16987131e1 Framework/Loaders/OrthancMultiframeVolumeLoader.h --- a/Framework/Loaders/OrthancMultiframeVolumeLoader.h Tue Jun 23 07:50:14 2020 +0200 +++ b/Framework/Loaders/OrthancMultiframeVolumeLoader.h Tue Jun 23 13:44:23 2020 +0200 @@ -90,9 +90,6 @@ void SetUncompressedPixelData(const std::string& pixelData); - bool HasGeometry() const; - const OrthancStone::VolumeImageGeometry& GetImageGeometry() const; - protected: OrthancMultiframeVolumeLoader( OrthancStone::ILoadersContext& loadersContext, @@ -107,6 +104,9 @@ virtual ~OrthancMultiframeVolumeLoader(); + bool HasGeometry() const; + const OrthancStone::VolumeImageGeometry& GetImageGeometry() const; + bool IsPixelDataLoaded() const { return pixelDataLoaded_; diff -r b931ddbe070e -r 7f16987131e1 Framework/Oracle/WebAssemblyOracle.h --- a/Framework/Oracle/WebAssemblyOracle.h Tue Jun 23 07:50:14 2020 +0200 +++ b/Framework/Oracle/WebAssemblyOracle.h Tue Jun 23 13:44:23 2020 +0200 @@ -41,6 +41,7 @@ #include +#include namespace OrthancStone { diff -r b931ddbe070e -r 7f16987131e1 Framework/Toolbox/SubvoxelReader.h --- a/Framework/Toolbox/SubvoxelReader.h Tue Jun 23 07:50:14 2020 +0200 +++ b/Framework/Toolbox/SubvoxelReader.h Tue Jun 23 13:44:23 2020 +0200 @@ -33,6 +33,13 @@ { namespace Internals { + /* + WARNING : the slice order is different between this class and ImageBuffer3D + + See the comment above ImageBuffer3D declaration. + + The slices are supposed to be stored in INCREASING z-order in this class! + */ class SubvoxelReaderBase : public boost::noncopyable { private: @@ -84,11 +91,25 @@ } + /* + WARNING : the slice order is different between this class and ImageBuffer3D + + See the comment above ImageBuffer3D declaration. + + The slices are supposed to be stored in INCREASING z-order in this class! + */ template class SubvoxelReader; + /* + WARNING : the slice order is different between this class and ImageBuffer3D + + See the comment above ImageBuffer3D declaration. + + The slices are supposed to be stored in INCREASING z-order in this class! + */ template class SubvoxelReader : public Internals::SubvoxelReaderBase @@ -114,6 +135,13 @@ }; + /* + WARNING : the slice order is different between this class and ImageBuffer3D + + See the comment above ImageBuffer3D declaration. + + The slices are supposed to be stored in INCREASING z-order in this class! + */ template class SubvoxelReader : public Internals::SubvoxelReaderBase @@ -147,6 +175,13 @@ }; + /* + WARNING : the slice order is different between this class and ImageBuffer3D + + See the comment above ImageBuffer3D declaration. + + The slices are supposed to be stored in INCREASING z-order in this class! + */ template class SubvoxelReader : public Internals::SubvoxelReaderBase @@ -176,6 +211,9 @@ }; + /* + See important comment above + */ template bool SubvoxelReader::GetValue(PixelType& target, @@ -230,6 +268,9 @@ } + /* + See important comment above + */ template bool SubvoxelReader::Sample(float& f00, @@ -284,6 +325,9 @@ } + /* + See important comment above + */ template bool SubvoxelReader::GetFloatValue(float& target, @@ -323,6 +367,9 @@ } + /* + See important comment above + */ template bool SubvoxelReader::GetValue(PixelType& target, @@ -397,6 +444,10 @@ } + /* + See important comment above + */ + template bool SubvoxelReader::GetValue(PixelType& target, diff -r b931ddbe070e -r 7f16987131e1 Framework/Volumes/ImageBuffer3D.h --- a/Framework/Volumes/ImageBuffer3D.h Tue Jun 23 07:50:14 2020 +0200 +++ b/Framework/Volumes/ImageBuffer3D.h Tue Jun 23 13:44:23 2020 +0200 @@ -29,6 +29,44 @@ namespace OrthancStone { + /* + + This classes stores volume images sliced across the Z axis, vertically, in the decreasing Z order : + + +---------------+ + | | + | SLICE N-1 | + | | + +---------------+ + | | + | SLICE N-2 | + | | + +---------------+ + | | + | SLICE N-3 | + | | + . . + ...... ...... + . . + | | + | SLICE 2 | + | | + +---------------+ + | | + | SLICE 1 | + | | + +---------------+ + | | + | SLICE 0 | + | | + +---------------+ + + As you can see, if the 3d image has size width, height, depth, the 2d image has : + - 2d width = 3d width + - 2d height = 3d height * 3d depth + + */ + class ImageBuffer3D : public boost::noncopyable { private: