Vector.Copy Method

Overload List

#SignatureDescription
1function Copy(const Vec: TMtxVec): TMtxVec;Copy object values.
└ indexed: function Copy(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
2function Copy(const Src: TMtxVec; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;Copy object values.
3function Copy(const Vec1: TMtxVec; const Vec2: TMtxVec): TVec;Copies values from Vec1 and Vec2 (concatenate).
4function Copy(const Src: TVecInt): TMtxVec;Copy and convert values from TVecInt.
└ indexed: function Copy(const Src: TVecInt; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
5function Copy(const Src: TVecInt; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;Copy and convert values from TVecInt.

Overload 1: function Copy(const Vec: TMtxVec): TMtxVec;

Copy object values.

#NameTypeDescription
1VecTMtxVec

Result: stored in self (calling object), returns self for chaining

Remarks:

Copy each of Vec elements to the calling object. Size and Vector.Complex properties of the calling object are set implicitly to match Vec object.

Examples
var a,b,c: Vector;
begin
    a.SetIt(True,[1,2,3,4]);  // a = [1,2,3,4]
    b.Copy(a);                // b = [1,2,3,4]
    c.Copy(a,b);  //concatenate a and b and store in c = [1,2,3,4,1,2,3,4]
end;
var
    a, x: Vector;
begin
    x := [1.0, 2.0, 3.0, 4.0];
    a.Copy(x);
    if not a.IsEqual(x, 1e-10, TCompare.cmpAbsolute) then
        raise Exception.Create('Vector.Copy: mismatch');
end;
See Also: Vector.Assign

Indexed: function Copy(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Copy Vec elements [VecIndex]..[VecIndex+Len-1] in the calling object elements [Index]..[Index+Len-1].

#NameTypeDescription
1VecTMtxVec
2VecIndexInteger
3IndexIntegerstart index
4LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

Size and Vector.Complex properties must be set explicitly. An exception is raised if Vector.ConditionCheck is True and array borders are overrun or underrun.

Overload 2: function Copy(const Src: TMtxVec; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;

Copy object values.

#NameTypeDescription
1SrcTMtxVec
2dstFloatPrecisionTMtxFloatPrecision

Result: stored in self (calling object), returns self for chaining

Remarks:

Copy each of Src elements to the calling object. Size and Vector.Complex properties of the calling object are set implicitly to match Src object.

Examples
var a,b,c: TVec;
begin
    CreateIt(a,b,c);
    try
        a.SetIt(True,[1,2,3,4]);  // a = [1,2,3,4]
        b.Copy(a, mvSingle);               // convert to single precision
    finally
        FreeIt(a,b,c);
    end;
end;
See Also: Vector.Assign

Overload 3: function Copy(const Vec1: TMtxVec; const Vec2: TMtxVec): TVec;

Copies values from Vec1 and Vec2 (concatenate).

#NameTypeDescription
1Vec1TMtxVec
2Vec2TMtxVec

Result: stored in self (calling object), returns self for chaining

Remarks:

Copy each of Vec1 and Vec2 elements to the calling vector (concatenate). The Vector.Length and Vector.Complex properties of the calling vector are set implicitly to match Vec1 and Vec2 vector.

Examples
var a,b,c: Vector;
begin
    a.SetIt(True,[1,2,3,4]);
    b.Copy(a);
    c.Copy(a,b);  //concatenate a and b and store in c
    // c = [1,2,3,4,1,2,3,4]
end;
See Also: Vector.Assign

Overload 4: function Copy(const Src: TVecInt): TMtxVec;

Copy and convert values from TVecInt.

#NameTypeDescription
1SrcTVecInt

Result: stored in self (calling object), returns self for chaining

Remarks:

Applies appropriate conversion and copy data from TVecInt. Existing value of FloatPrecision is preserved.

Indexed: function Copy(const Src: TVecInt; SrcIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Copy and convert values from TVecInt at indexes [SrcIndex]...[SrcIndex+Len-1].

#NameTypeDescription
1SrcTVecInt
2SrcIndexIntegersource start index
3IndexIntegerstart index
4LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

Applies appropriate conversion and copy data from TVecInt. The results are stored in calling object elements [Index]...[Index+Len-1]. Size and Vector.Complex properties of the calling object must be set explicitly. An exception is raised if array borders are overrun.

Overload 5: function Copy(const Src: TVecInt; const dstFloatPrecision: TMtxFloatPrecision): TMtxVec;

Copy and convert values from TVecInt.

#NameTypeDescription
1SrcTVecInt
2dstFloatPrecisionTMtxFloatPrecision

Result: stored in self (calling object), returns self for chaining

Remarks:

Applies appropriate conversion and copy data from TVecInt.