Class: Numerix::Vector3
- Inherits:
-
VectorBase
- Object
- Structure
- VectorBase
- Numerix::Vector3
- Defined in:
- lib/numerix/vector3.rb
Overview
A structure encapsulating three single precision floating point values.
Instance Attribute Summary collapse
-
#x ⇒ Float
The X component of the vector.
-
#y ⇒ Float
The Y component of the vector.
-
#z ⇒ Float
The Z component of the vector.
Class Method Summary collapse
-
.clamp(vector, min, max) ⇒ Vector3
Returns a vector that is result of clamping a vector between the specified minimum and maximum values.
-
.create_norm(x, y, z) ⇒ Vector3
Creates and returns a normalized vector from the specified components.
-
.lerp(vector1, vector2, amount) ⇒ Vector3
Linearly interpolates between two vectors based on the given weighting.
-
.max(vector, other) ⇒ Vector3
Returns a vector with a maximum set of values.
-
.min(vector, other) ⇒ Vector3
Returns a vector with a minimum set of values.
-
.one ⇒ Vector3
The vector
<1.0, 1.0, 1.0>. -
.unit_x ⇒ Vector3
The vector
<1.0, 0.0, 0.0>. -
.unit_y ⇒ Vector3
The vector
<0.0, 1.0, 0.0>. -
.unit_z ⇒ Vector3
The vector
<0.0, 0.0, 1.0>. -
.zero ⇒ Vector3
The vector
<0.0, 0.0, 0.0>.
Instance Method Summary collapse
-
#*(other) ⇒ Vector3
Vector multiplication.
-
#**(exponent) ⇒ Vector3
Raises the vector to the given power.
-
#+(other) ⇒ Vector3
Adds this vector with another.
-
#-(other) ⇒ Vector3
Gets the difference of this vector and another.
-
#-@ ⇒ Vector3
Performs unary negation on this vector instance.
-
#/(other) ⇒ Vector3
Vector division.
-
#==(other) ⇒ Boolean
Returns flag if this vector instance is equal to the given object.
-
#abs ⇒ Vector3
A vector whose elements are the absolute values of each of this vector's elements.
-
#angle(other) ⇒ Float
Computes the angle between this vector and another.
-
#clamp(min, max) ⇒ Vector3
Returns a vector that is result of clamping this vector between the specified minimum and maximum values.
-
#clamp!(min, max) ⇒ Vector3
Clamps this vector between the specified minimum and maximum values.
-
#cross(other) ⇒ Vector3
Computes the cross product of two vectors.
-
#cross!(other) ⇒ self
Computes the cross product of two vectors, altering the values of this vector.
-
#distance(vector) ⇒ Float
Returns the Euclidean distance between this vector and another.
-
#distance_squared(vector) ⇒ Float
Returns the squared Euclidean distance between this vector and another.
-
#dot(other) ⇒ Float
Returns the dot product of this vector and another.
-
#initialize(*args) ⇒ Vector3
constructor
A new instance of Vector3.
-
#length ⇒ Float
(also: #magnitude)
The length of the vector.
-
#length_squared ⇒ Float
The length of the vector squared.
-
#lerp(vector, amount) ⇒ Vector3
Linearly interpolates between this vector and another based on the given weighting.
-
#lerp!(vector, amount) ⇒ self
Linearly interpolates between this vector and another based on the given weighting, altering the values of this vector.
- #map ⇒ Object (also: #collect)
-
#map! {|component| ... } ⇒ self
(also: #collect!)
Invokes the given block once for each element of self, replacing the element with the value returned by the block.
-
#max_value ⇒ Float
The greatest value of the vector's components.
-
#min_value ⇒ Float
The lowest value of the vector's components.
-
#normalize ⇒ Vector3
Returns a new vector with the same direction as the given vector, but with a length of
1.0. -
#normalize! ⇒ self
Alters this vector instance to maintain same direction, but adjust values so that vector has a length of
1.0. -
#one? ⇒ Boolean
Flag indicating if all values of the vector are equal to
1.0. -
#reflect(other) ⇒ Vector3
Alters this vector to be the reflection of the specified normal.
-
#reflect!(other) ⇒ self
Returns the reflection of a vector off a surface that has the specified normal.
-
#sqrt ⇒ Vector3
A vector whose elements are the square root of each of this vector's elements.
-
#to_a ⇒ Array<Float>
(also: #elements)
An Array representation of this instance.
-
#to_h ⇒ Hash{Symbol => Float}
A Hash representation of this instance.
-
#to_plane ⇒ Plane
A Plane representation of this instance.
-
#to_quaternion ⇒ Quaternion
A Quaternion representation of this instance.
-
#to_s ⇒ String
A String representation of this instance.
-
#to_vec2 ⇒ Vector2
A Vector2 representation of this instance.
-
#to_vec4 ⇒ Vector4
A Vector4 representation of this instance.
-
#transform(other) ⇒ Vector3
Returns a new vector by applying a transformation.
-
#transform!(other) ⇒ self
Transforms this vector by the given matrix.
-
#transform_normal(matrix) ⇒ Vector3
Transforms a vector normal by the given matrix.
-
#transform_normal!(matrix) ⇒ self
Transforms a vector normal by the given matrix.
-
#zero? ⇒ Boolean
Flag indicating if all values of the vector are equal to
0.0.
Methods inherited from Structure
#[], #[]=, #address, #dup, #each, #pack, #ptr, size, unpack
Constructor Details
Instance Attribute Details
#x ⇒ Float
Returns the X component of the vector.
9 10 11 |
# File 'lib/numerix/vector3.rb', line 9 def x @x end |
#y ⇒ Float
Returns the Y component of the vector.
13 14 15 |
# File 'lib/numerix/vector3.rb', line 13 def y @y end |
#z ⇒ Float
Returns the Z component of the vector.
17 18 19 |
# File 'lib/numerix/vector3.rb', line 17 def z @z end |
Class Method Details
.clamp(min, max) ⇒ Vector3 .clamp(min, max) ⇒ Vector3
Returns a vector that is result of clamping a vector between the specified minimum and maximum values.
514 515 |
# File 'lib/numerix/vector3.rb', line 514 def clamp(vector, min, max) end |
.create_norm(x, y, z) ⇒ Vector3
Creates and returns a normalized vector from the specified components.
This is more efficient than creating and then normalizing.
493 494 |
# File 'lib/numerix/vector3.rb', line 493 def create_norm(x, y, z) end |
.lerp(vector1, vector2, amount) ⇒ Vector3
Linearly interpolates between two vectors based on the given weighting.
526 527 |
# File 'lib/numerix/vector3.rb', line 526 def lerp(vector1, vector2, amount) end |
.max(vector, other) ⇒ Vector3 .max(vector, value) ⇒ Vector3
Returns a vector with a maximum set of values.
568 569 |
# File 'lib/numerix/vector3.rb', line 568 def max(vector, other) end |
.min(vector, other) ⇒ Vector3 .min(vector, value) ⇒ Vector3
Returns a vector with a minimum set of values.
547 548 |
# File 'lib/numerix/vector3.rb', line 547 def min(vector, other) end |
.one ⇒ Vector3
Returns the vector <1.0, 1.0, 1.0>.
465 466 |
# File 'lib/numerix/vector3.rb', line 465 def one end |
.unit_x ⇒ Vector3
Returns the vector <1.0, 0.0, 0.0>.
470 471 |
# File 'lib/numerix/vector3.rb', line 470 def unit_x end |
.unit_y ⇒ Vector3
Returns the vector <0.0, 1.0, 0.0>.
475 476 |
# File 'lib/numerix/vector3.rb', line 475 def unit_y end |
.unit_z ⇒ Vector3
Returns the vector <0.0, 0.0, 1.0>.
480 481 |
# File 'lib/numerix/vector3.rb', line 480 def unit_z end |
.zero ⇒ Vector3
Returns the vector <0.0, 0.0, 0.0>.
460 461 |
# File 'lib/numerix/vector3.rb', line 460 def zero end |
Instance Method Details
#*(scalar) ⇒ Vector3 #*(other) ⇒ Vector3
Vector multiplication.
318 319 |
# File 'lib/numerix/vector3.rb', line 318 def *(other) end |
#**(exponent) ⇒ Vector3
Raises the vector to the given power.
97 98 |
# File 'lib/numerix/vector3.rb', line 97 def **(exponent) end |
#+(other) ⇒ Vector3
Adds this vector with another.
292 293 |
# File 'lib/numerix/vector3.rb', line 292 def +(other) end |
#-(other) ⇒ Vector3
Gets the difference of this vector and another.
301 302 |
# File 'lib/numerix/vector3.rb', line 301 def -(other) end |
#-@ ⇒ Vector3
Performs unary negation on this vector instance.
351 352 |
# File 'lib/numerix/vector3.rb', line 351 def -@ end |
#*(scalar) ⇒ Vector3 #*(other) ⇒ Vector3
Vector division.
335 336 |
# File 'lib/numerix/vector3.rb', line 335 def /(other) end |
#==(other) ⇒ Boolean
Returns flag if this vector instance is equal to the given object.
344 345 |
# File 'lib/numerix/vector3.rb', line 344 def ==(other) end |
#abs ⇒ Vector3
Returns a vector whose elements are the absolute values of each of this vector's elements.
186 187 |
# File 'lib/numerix/vector3.rb', line 186 def abs end |
#angle(other) ⇒ Float
Computes the angle between this vector and another.
453 454 |
# File 'lib/numerix/vector3.rb', line 453 def angle(other) end |
#clamp(min, max) ⇒ Vector3 #clamp(min, max) ⇒ Vector3
Returns a vector that is result of clamping this vector between the specified minimum and maximum values.
224 225 |
# File 'lib/numerix/vector3.rb', line 224 def clamp(min, max) end |
#clamp!(min, max) ⇒ Vector3 #clamp!(min, max) ⇒ Vector3
Clamps this vector between the specified minimum and maximum values.
246 247 |
# File 'lib/numerix/vector3.rb', line 246 def clamp!(min, max) end |
#cross(other) ⇒ Vector3
Computes the cross product of two vectors.
416 417 |
# File 'lib/numerix/vector3.rb', line 416 def cross(other) end |
#cross!(other) ⇒ self
Computes the cross product of two vectors, altering the values of this vector.
425 426 |
# File 'lib/numerix/vector3.rb', line 425 def cross!(other) end |
#distance(vector) ⇒ Float
Returns the Euclidean distance between this vector and another.
128 129 |
# File 'lib/numerix/vector3.rb', line 128 def distance(vector) end |
#distance_squared(vector) ⇒ Float
Returns the squared Euclidean distance between this vector and another.
136 137 |
# File 'lib/numerix/vector3.rb', line 136 def distance_squared(vector) end |
#dot(other) ⇒ Float
Returns the dot product of this vector and another.
201 202 |
# File 'lib/numerix/vector3.rb', line 201 def dot(other) end |
#length ⇒ Float Also known as: magnitude
Returns the length of the vector.
46 47 |
# File 'lib/numerix/vector3.rb', line 46 def length end |
#length_squared ⇒ Float
Returns the length of the vector squared.
53 54 |
# File 'lib/numerix/vector3.rb', line 53 def length_squared end |
#lerp(vector, amount) ⇒ Vector3
Linearly interpolates between this vector and another based on the given weighting.
166 167 |
# File 'lib/numerix/vector3.rb', line 166 def lerp(vector, amount) end |
#lerp!(vector, amount) ⇒ self
Linearly interpolates between this vector and another based on the given weighting, altering the values of this vector.
180 181 |
# File 'lib/numerix/vector3.rb', line 180 def lerp!(vector, amount) end |
#map ⇒ Object Also known as: collect
70 71 |
# File 'lib/numerix/vector3.rb', line 70 def map end |
#map! {|component| ... } ⇒ self Also known as: collect!
Invokes the given block once for each element of self, replacing the element with the value returned by the block.
The values of the vector are altered without creating a ne object.
85 86 |
# File 'lib/numerix/vector3.rb', line 85 def map! end |
#max_value ⇒ Float
Returns the greatest value of the vector's components.
119 120 |
# File 'lib/numerix/vector3.rb', line 119 def max_value end |
#min_value ⇒ Float
Returns the lowest value of the vector's components.
114 115 |
# File 'lib/numerix/vector3.rb', line 114 def min_value end |
#normalize ⇒ Vector3
Returns a new vector with the same direction as the given vector, but with
a length of 1.0.
144 145 |
# File 'lib/numerix/vector3.rb', line 144 def normalize end |
#normalize! ⇒ self
Alters this vector instance to maintain same direction, but adjust values
so that vector has a length of 1.0.
152 153 |
# File 'lib/numerix/vector3.rb', line 152 def normalize! end |
#one? ⇒ Boolean
Returns flag indicating if all values of the vector are equal
to 1.0.
103 104 |
# File 'lib/numerix/vector3.rb', line 103 def one? end |
#reflect(other) ⇒ Vector3
Alters this vector to be the reflection of the specified normal.
434 435 |
# File 'lib/numerix/vector3.rb', line 434 def reflect(other) end |
#reflect!(other) ⇒ self
Returns the reflection of a vector off a surface that has the specified normal.
444 445 |
# File 'lib/numerix/vector3.rb', line 444 def reflect!(other) end |
#sqrt ⇒ Vector3
Returns a vector whose elements are the square root of each of this vector's elements.
192 193 |
# File 'lib/numerix/vector3.rb', line 192 def sqrt end |
#to_a ⇒ Array<Float> Also known as: elements
Returns an Array representation of this instance.
256 257 |
# File 'lib/numerix/vector3.rb', line 256 def to_a end |
#to_h ⇒ Hash{Symbol => Float}
Returns a Hash representation of this instance.
263 264 |
# File 'lib/numerix/vector3.rb', line 263 def to_h end |
#to_plane ⇒ Plane
Returns a Plane representation of this instance.
273 274 |
# File 'lib/numerix/vector3.rb', line 273 def to_plane end |
#to_quaternion ⇒ Quaternion
Returns a Quaternion representation of this instance.
268 269 |
# File 'lib/numerix/vector3.rb', line 268 def to_quaternion end |
#to_s ⇒ String
Returns a String representation of this instance.
251 252 |
# File 'lib/numerix/vector3.rb', line 251 def to_s end |
#to_vec2 ⇒ Vector2
Returns a Numerix::Vector2 representation of this instance.
278 279 |
# File 'lib/numerix/vector3.rb', line 278 def to_vec2 end |
#to_vec4 ⇒ Vector4
Returns a Numerix::Vector4 representation of this instance.
283 284 |
# File 'lib/numerix/vector3.rb', line 283 def to_vec4 end |
#transform(matrix) ⇒ Vector3 #transform(rotation) ⇒ Vector3
Returns a new vector by applying a transformation.
370 371 |
# File 'lib/numerix/vector3.rb', line 370 def transform(other) end |
#transform(matrix) ⇒ self #transform(rotation) ⇒ self
Transforms this vector by the given matrix.
389 390 |
# File 'lib/numerix/vector3.rb', line 389 def transform!(other) end |
#transform_normal(matrix) ⇒ Vector3
Transforms a vector normal by the given matrix.
398 399 |
# File 'lib/numerix/vector3.rb', line 398 def transform_normal(matrix) end |
#transform_normal!(matrix) ⇒ self
Transforms a vector normal by the given matrix.
407 408 |
# File 'lib/numerix/vector3.rb', line 407 def transform_normal!(matrix) end |
#zero? ⇒ Boolean
Returns flag indicating if all values of the vector are equal
to 0.0.
109 110 |
# File 'lib/numerix/vector3.rb', line 109 def zero? end |