The 
            ml::ImageVector
           class manages a 6D point/vector with 6 components
        x, y,
        z, c,
        t, u of the type
        MLint. It is the main class used for voxel
        positions, image extents, box corners or page extents. The typical
        (integer) vector arithmetics is available as well as minimum and
        maximum component search, lexicographical comparison, stride
        operations and component-wise multiplication for voxel addressing,
        etc. It offers different template specializations with 16, 32 and 64
        bit integer components, because most ML image and voxel addressing is
        done by this class. A ImageVector works with 64 bit
        integers to support very large image addressing and should be used in
        all image processing modules unless there are clear reasons for using
        specialized versions. The most important methods are:
operators +, -, *, /, <<, >>, []
Operators as they are defined on integers, applied component-wise.
getStrides()
If a ImageVector is interpreted as an
            image extent, this method returns another
            ImageVector with voxel offsets (usually called
            strides in such a context). To get from one
            voxel position to a neighbor position, e.g., to y, the
            corresponding stride getStrides().y has to
            be added. The y strides are usually identical with the x extent of
            the image, the z stride with the number of x extent multiplied by
            the y extent, the c stride with x extent*y extent*z extent , etc.
            Strides are typically needed for very fast voxel positioning with
            indices into images.
getVectorPosition(offsetPos)
If the ImageVector is interpreted as the
            extent of an image and offsetPos as an
            index into the image, getVectorPosition()
            returns the position of the voxel as
            ImageVector.
getExtDimension()
If the ImageVector is interpreted as the
            extent of an image, this method returns the highest
            ImageVector component that cannot be used to get
            the real dimension of an image.
hasNegativeComp()
This method returns true if any
            component is negative, otherwise it returns
            false. This method can be used to check
            whether the position might be an invalid image coordinate
            (negative components are not used for voxel addressing).
allBiggerZero()
This method returns true if all
            components > 0, otherwise it returns
            false.
Constructors, set and get methods to initialize the
            ImageVector in different ways, maximum/minimum
            component search, etc. are available.
The 
            ml::SubImageBox
           class manages a rectangular 6D box given by two corners
        that are specified by the Vectors
        v1 and v2. It permits
        volume intersection, calculation, etc.
        SubImageBox is available in 16, 32 and 64 bit
        template specializations (like the class
        ImageVector). Use SubImageBox
        without a number for all normal ML code. See
        
            mlSubImageBox.h
           in the project ML. A comparable
        class with 6D float vector is available as
        SubImageBoxd in file
        
            mlSubImageBoxd.h
          .
![]()  | Important | 
|---|---|
This class offers a set of useful methods, e.g.:
getSize()
Returns the number of voxels in the subimage region, i.e. the product of all extents if this is not empty; otherwise 0 is returned.
isEmpty()
Returns true if the box is empty;
            otherwise false is returned.
intersect(loc2)
Returns the regions that overlap with subimage regions
            loc2 as a SubImageBox.
            In case of non-overlapping boxes, the returned box is
            empty.
contains (pos)
Returns true if pos is within box;
            otherwise false is returned.
getExtent()
Returns a vector with the extent of the box in all 6
            dimensions (see Section 2.4.1, “ImageVector, ImageVector”).
translate(shift)
Translates the box by the vector shift.
get3DCorners(...)
Returns all eight corners of the box as vectors ( see Section 2.4.1, “ImageVector, ImageVector”).
Please refer to file 
            mlSubImageBox.h
           for more
        information.
          © 2025 MeVis Medical Solutions AG