NAME
Math::Vector3D
VERSION
0.0.1
SYNOPSIS
use Math::Vector3D;
my $vec = vec(10, 20, 30);
$vec -= $other-vector;
$vec *= 42;
$vec /= 10;
$vec.normalize;
my $len = $vec.length;
SEE ALSO
- Math::Vector
Has support for any number of dimensions.
class Math::Vector3D
Vector object
has Numeric $.x
Default: 0
has Numeric $.y
Default: 0
has Numeric $.z
Default: 0
method length-squared
method length-squared() returns Numeric
Returns the squared length of the vector
method length
method length() returns Numeric
Returns the length of the vector
multi method add
multi method add( Math::Vector3D:D $v ) returns Math::Vector3D
Destructively adds a vector to this vector.
multi method add
multi method add( Numeric:D $n ) returns Math::Vector3D
Destructively adds a scalar to this vector.
multi method sub
multi method sub( Math::Vector3D:D $v ) returns Math::Vector3D
Destructively subtracts a vector from this vector.
multi method sub
multi method sub( Numeric:D $n ) returns Math::Vector3D
Destructively subtracts a scalar from this vector.
multi method mul
multi method mul( Math::Vector3D:D $v ) returns Math::Vector3D
Destructively multiplies this vector by another vector.
multi method mul
multi method mul( Numeric:D $n ) returns Math::Vector3D
Destructively multiplies this vector by a scalar value.
multi method div
multi method div( Math::Vector3D:D $v ) returns Math::Vector3D
Destructively divides this vector by another vector.
multi method div
multi method div( Numeric:D $n ) returns Math::Vector3D
Destructively divides this vector by a scalar value.
method negate
method negate() returns Math::Vector3D
Returns a new vector with negated values for x, y, and z.
method cross
method cross( Math::Vector3D:D $v ) returns Math::Vector3D
Destructively updates this vector to be the cross product of itself and another vector.
method dot
method dot( Math::Vector3D:D $v ) returns Numeric
Computes the dot product of the vector and the supplied number.
method angle-to
method angle-to( Math::Vector3D:D $v ) returns Numeric
Computes the angle to the supplied vector.
method distance-to-squared
method distance-to-squared( Math::Vector3D:D $v ) returns Numeric
Computes the square of the distance between this vector and the supplied vector.
method distance-to
method distance-to( Math::Vector3D:D $v ) returns Numeric
Computes the distance between this vector and the supplied vector.
method normalize
method normalize() returns Math::Vector3D
Destructively normalizes this vector.
method set-length
method set-length( Numeric:D $n ) returns Math::Vector3D
Destructively sets the length of the vector.
method lerp
method lerp( Math::Vector3D:D $target, Numeric:D $n ) returns Math::Vector3D
Lerps toward the target vector by the supplied value.
method List
method List() returns List
Coerces to a List of [x, y, z]
multi sub infix:<+>
multi sub infix:<+>( Math::Vector3D:D $v, $n ) returns Math::Vector3D
- is overloaded to add
multi sub infix:<->
multi sub infix:<->( Math::Vector3D:D $v, $n ) returns Math::Vector3D
- is overloaded to sub
multi sub infix:<*>
multi sub infix:<*>( Math::Vector3D:D $v, $n ) returns Math::Vector3D
- is overloaded to mul
multi sub infix:</>
multi sub infix:</>( Math::Vector3D:D $v, $n ) returns Math::Vector3D
/ is overloaded to div
multi sub infix:<==>
multi sub infix:<==>( Math::Vector3D:D $v1, Math::Vector3D:D $v2 ) returns Bool
== is overloaded to compare two vectors' x, y, and z values
multi sub vec
multi sub vec( Numeric:D $x = 0, Numeric:D $y = 0, Numeric:D $z = 0 ) returns Math::Vector3D
Syntactic sugar to construct a new vector from three numbers.
multi sub vec
multi sub vec( Math::Vector3D:D $v ) returns Math::Vector3D
Syntactic sugar to construct a new vector from another vector (clone).