Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __cmtkVolumeClipping_h_included_
00034 #define __cmtkVolumeClipping_h_included_
00035
00036 #include <cmtkconfig.h>
00037
00038 #include <Base/cmtkTypes.h>
00039 #include <Base/cmtkVector3D.h>
00040 #include <Base/cmtkUniformVolume.h>
00041
00042 namespace
00043 cmtk
00044 {
00045
00048
00067 class VolumeClipping
00068 {
00069 public:
00073 void SetClippingBoundaries( const UniformVolume::CoordinateRegionType& region );
00074
00081 void SetDeltaX( const Vector3D& deltaX )
00082 {
00083 this->DeltaX = deltaX;
00084 }
00085
00094 void SetDeltaY( const Vector3D& deltaY )
00095 {
00096 this->DeltaY = deltaY;
00097 }
00098
00107 void SetDeltaZ( const Vector3D& deltaZ )
00108 {
00109 this->DeltaZ = deltaZ;
00110 }
00111
00144 int ClipX ( Types::Coordinate& fromFactor, Types::Coordinate& toFactor,
00145 const Vector3D& offset,
00146 const Types::Coordinate initFromFactor = 0,
00147 const Types::Coordinate initToFactor = 1,
00148 const bool lowerClosed = false,
00149 const bool upperClosed = false ) const;
00150
00159 int ClipY ( Types::Coordinate& fromFactor, Types::Coordinate& toFactor,
00160 const Vector3D& offset,
00161 const Types::Coordinate initFromFactor = 0,
00162 const Types::Coordinate initToFactor = 1 ) const;
00163
00173 int ClipZ ( Types::Coordinate& fromFactor, Types::Coordinate& toFactor,
00174 const Vector3D& offset,
00175 const Types::Coordinate initFromFactor = 0,
00176 const Types::Coordinate initToFactor = 1 ) const;
00177
00178 private:
00180 UniformVolume::CoordinateRegionType m_ClippingRegion;
00181
00183 Vector3D DeltaX;
00184
00186 Vector3D DeltaY;
00187
00189 Vector3D DeltaZ;
00190
00191 };
00192
00194
00195 }
00196
00197 #endif // #ifndef __cmtkVolumeClipping_h_included_