imCopy

copy src image from copy_reg to dst image in paste_pos with repack

  1. void imCopy(Image dst, Vector!(A, T) paste_pos, Image src, Region!(B, E) copy_reg, ImRepack repack, size_t[2] repack_dim)
    void
    imCopy
    (
    string file = __FILE__
    size_t line = __LINE__
    size_t A
    size_t B
    T
    E
    )
    (,
    in Vector!(A, T) paste_pos
    ,,
    in Region!(B, E) copy_reg
    ,,
    size_t[2] repack_dim = [0, 1]
    )
    if (
    isIntegral!T &&
    isIntegral!E
    )
  2. void imCopy(Image dst, Vector!(A, T) paste_pos, Image src, ImRepack repack, size_t[2] repack_dim)

Examples

auto etype = ElemInfo( 1, DataType.INT );
auto dst = Image( ivec2(3,3), etype );

auto src = Image( ivec2(2,2), etype, [ 1,2, 3,4 ]);

imCopy( dst, ivec2(1,1), src, CrdRegionD(0,0,2,2), ImRepack.ROT90 );

assertEq( dst.data, [ 0,0,0,
                      0,2,4,
                      0,1,3 ] );

imCopy( dst, ivec2(0,0), src, CrdRegionD(0,0,2,2), ImRepack.ROT270 );

assertEq( dst.data, [ 3,1,0,
                      4,2,4,
                      0,1,3 ] );
auto etype = ElemInfo( 1, DataType.INT );
auto dst = Image( ivec3(3,3,3), etype );
auto src = Image( CrdVectorD(3), etype, [1,2,4] );

imCopy( dst, ivec3(0,0,0), src, CrdRegionD(0,0,0,3,1,1), ImRepack.ROT270 );
assertEq( dst.mapAs!int, [ 1,0,0,
                           2,0,0,
                           4,0,0, // z=0

                           0,0,0,
                           0,0,0,
                           0,0,0, // z=1

                           0,0,0,
                           0,0,0,
                           0,0,0, // z=2
                         ] );

imCopy( dst, ivec3(1,0,0), src, CrdRegionD(0,0,0,3,1,1), ImRepack.ROT90, [0,2] );
assertEq( dst.mapAs!int, [ 1,4,0,
                           2,0,0,
                           4,0,0, // z=0

                           0,2,0,
                           0,0,0,
                           0,0,0, // z=1

                           0,1,0,
                           0,0,0,
                           0,0,0, // z=2
                         ] );
auto etype = ElemInfo( 1, DataType.INT );
auto dst = Image( ivec3(3,3,3), etype );
auto src = Image( CrdVectorD(3), etype, [1,2,4] );

imCopy( dst, ivec3(1,0,0), src, CrdRegionD(1,0,0,2,1,1), ImRepack.ROT270 );
assertEq( dst.mapAs!int, [ 0,2,0,
                           0,4,0,
                           0,0,0, // z=0

                           0,0,0,
                           0,0,0,
                           0,0,0, // z=1

                           0,0,0,
                           0,0,0,
                           0,0,0, // z=2
                         ] );

Meta