Class: Numerix::Vector4
- Inherits:
-
VectorBase
- Object
- Structure
- VectorBase
- Numerix::Vector4
- Defined in:
- lib/numerix/vector4.rb
Overview
A structure encapsulating four single precision floating point values.
Instance Attribute Summary collapse
-
#w ⇒ Float
The W component of the vector.
-
#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) ⇒ Vector4
Returns a vector that is result of clamping a vector between the specified minimum and maximum values.
-
.create_norm(x, y, z, w) ⇒ Vector4
Creates and returns a normalized vector from the specified components.
-
.lerp(vector1, vector2, amount) ⇒ Vector4
Linearly interpolates between two vectors based on the given weighting.
-
.max(vector, other) ⇒ Vector4
Returns a vector with a maximum set of values.
-
.min(vector, other) ⇒ Vector4
Returns a vector with a minimum set of values.
-
.one ⇒ Vector4
The vector
<1.0, 1.0, 1.0, 1.0>. -
.transform(vector, other) ⇒ Object
Creates a Vector4 by transforming the specified vector and transformation matrix or quaternion rotation.
-
.unit_w ⇒ Vector4
The vector
<0.0, 0.0, 0.0, 1.0>. -
.unit_x ⇒ Vector4
The vector
<1.0, 0.0, 0.0, 0.0>. -
.unit_y ⇒ Vector4
The vector
<0.0, 1.0, 0.0, 0.0>. -
.unit_z ⇒ Vector4
The vector
<0.0, 0.0, 1.0, 0.0>. -
.zero ⇒ Vector4
The vector
<0.0, 0.0, 0.0, 0.0>.
Instance Method Summary collapse
-
#*(other) ⇒ Vector4
Vector multiplication.
-
#**(exponent) ⇒ Vector4
Raises the vector to the given power.
-
#+(other) ⇒ Vector4
Adds this vector with another.
-
#-(other) ⇒ Vector4
Gets the difference of this vector and another.
-
#-@ ⇒ Vector4
Performs unary negation on this vector instance.
-
#/(other) ⇒ Vector4
Vector division.
-
#==(other) ⇒ Boolean
Returns flag if this vector instance is equal to the given object.
-
#abs ⇒ Vector4
A vector whose elements are the absolute values of each of this vector's elements.
-
#clamp(min, max) ⇒ Vector4
Returns a vector that is result of clamping this vector between the specified minimum and maximum values.
-
#clamp!(min, max) ⇒ Vector4
Clamps this vector between the specified minimum and maximum values.
-
#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) ⇒ Vector4
constructor
A new instance of Vector4.
-
#length ⇒ Float
(also: #magnitude)
The length of the vector.
-
#length_squared ⇒ Float
The length of the vector squared.
-
#lerp(vector, amount) ⇒ Vector4
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 ⇒ Vector4
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. -
#sqrt ⇒ Vector4
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_vec3 ⇒ Vector3
A Vector3 representation of this instance.
-
#transform(other) ⇒ Vector4
Returns a new vector by applying a transformation.
-
#transform!(other) ⇒ self
Transforms this vector.
-
#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
#w ⇒ Float
Returns the W component of the vector.
21 22 23 |
# File 'lib/numerix/vector4.rb', line 21 def w @w end |
#x ⇒ Float
Returns the X component of the vector.
9 10 11 |
# File 'lib/numerix/vector4.rb', line 9 def x @x end |
#y ⇒ Float
Returns the Y component of the vector.
13 14 15 |
# File 'lib/numerix/vector4.rb', line 13 def y @y end |
#z ⇒ Float
Returns the Z component of the vector.
17 18 19 |
# File 'lib/numerix/vector4.rb', line 17 def z @z end |
Class Method Details
.clamp(min, max) ⇒ Vector4 .clamp(min, max) ⇒ Vector4
Returns a vector that is result of clamping a vector between the specified minimum and maximum values.
471 472 |
# File 'lib/numerix/vector4.rb', line 471 def clamp(vector, min, max) end |
.create_norm(x, y, z, w) ⇒ Vector4
Creates and returns a normalized vector from the specified components.
This is more efficient than creating and then normalizing.
450 451 |
# File 'lib/numerix/vector4.rb', line 450 def create_norm(x, y, z, w) end |
.lerp(vector1, vector2, amount) ⇒ Vector4
Linearly interpolates between two vectors based on the given weighting.
483 484 |
# File 'lib/numerix/vector4.rb', line 483 def lerp(vector1, vector2, amount) end |
.max(vector, other) ⇒ Vector4 .max(vector, value) ⇒ Vector4
Returns a vector with a maximum set of values.
547 548 |
# File 'lib/numerix/vector4.rb', line 547 def max(vector, other) end |
.min(vector, other) ⇒ Vector4 .min(vector, value) ⇒ Vector4
Returns a vector with a minimum set of values.
526 527 |
# File 'lib/numerix/vector4.rb', line 526 def min(vector, other) end |
.one ⇒ Vector4
Returns the vector <1.0, 1.0, 1.0, 1.0>.
416 417 |
# File 'lib/numerix/vector4.rb', line 416 def one end |
.transform(vector, matrix) ⇒ Vector4 .transform(vector, rotation) ⇒ Vector4
Creates a Vector4 by transforming the specified vector and transformation matrix or quaternion rotation.
505 506 |
# File 'lib/numerix/vector4.rb', line 505 def transform(vector, other) end |
.unit_w ⇒ Vector4
Returns the vector <0.0, 0.0, 0.0, 1.0>.
436 437 |
# File 'lib/numerix/vector4.rb', line 436 def unit_w end |
.unit_x ⇒ Vector4
Returns the vector <1.0, 0.0, 0.0, 0.0>.
421 422 |
# File 'lib/numerix/vector4.rb', line 421 def unit_x end |
.unit_y ⇒ Vector4
Returns the vector <0.0, 1.0, 0.0, 0.0>.
426 427 |
# File 'lib/numerix/vector4.rb', line 426 def unit_y end |
.unit_z ⇒ Vector4
Returns the vector <0.0, 0.0, 1.0, 0.0>.
431 432 |
# File 'lib/numerix/vector4.rb', line 431 def unit_z end |
.zero ⇒ Vector4
Returns the vector <0.0, 0.0, 0.0, 0.0>.
411 412 |
# File 'lib/numerix/vector4.rb', line 411 def zero end |
Instance Method Details
#*(scalar) ⇒ Vector4 #*(other) ⇒ Vector4
Vector multiplication.
371 372 |
# File 'lib/numerix/vector4.rb', line 371 def *(other) end |
#**(exponent) ⇒ Vector4
Raises the vector to the given power.
103 104 |
# File 'lib/numerix/vector4.rb', line 103 def **(exponent) end |
#+(other) ⇒ Vector4
Adds this vector with another.
346 347 |
# File 'lib/numerix/vector4.rb', line 346 def +(other) end |
#-(other) ⇒ Vector4
Gets the difference of this vector and another.
354 355 |
# File 'lib/numerix/vector4.rb', line 354 def -(other) end |
#-@ ⇒ Vector4
Performs unary negation on this vector instance.
404 405 |
# File 'lib/numerix/vector4.rb', line 404 def -@ end |
#*(scalar) ⇒ Vector4 #*(other) ⇒ Vector4
Vector division.
388 389 |
# File 'lib/numerix/vector4.rb', line 388 def /(other) end |
#==(other) ⇒ Boolean
Returns flag if this vector instance is equal to the given object.
397 398 |
# File 'lib/numerix/vector4.rb', line 397 def ==(other) end |
#abs ⇒ Vector4
Returns a vector whose elements are the absolute values of each of this vector's elements.
241 242 |
# File 'lib/numerix/vector4.rb', line 241 def abs end |
#clamp(min, max) ⇒ Vector4 #clamp(min, max) ⇒ Vector4
Returns a vector that is result of clamping this vector between the specified minimum and maximum values.
278 279 |
# File 'lib/numerix/vector4.rb', line 278 def clamp(min, max) end |
#clamp!(min, max) ⇒ Vector4 #clamp!(min, max) ⇒ Vector4
Clamps this vector between the specified minimum and maximum values.
300 301 |
# File 'lib/numerix/vector4.rb', line 300 def clamp!(min, max) end |
#distance(vector) ⇒ Float
Returns the Euclidean distance between this vector and another.
146 147 |
# File 'lib/numerix/vector4.rb', line 146 def distance(vector) end |
#distance_squared(vector) ⇒ Float
Returns the squared Euclidean distance between this vector and another.
154 155 |
# File 'lib/numerix/vector4.rb', line 154 def distance_squared(vector) end |
#dot(other) ⇒ Float
Returns the dot product of this vector and another.
255 256 |
# File 'lib/numerix/vector4.rb', line 255 def dot(other) end |
#length ⇒ Float Also known as: magnitude
Returns the length of the vector.
108 109 |
# File 'lib/numerix/vector4.rb', line 108 def length end |
#length_squared ⇒ Float
Returns the length of the vector squared.
115 116 |
# File 'lib/numerix/vector4.rb', line 115 def length_squared end |
#lerp(vector, amount) ⇒ Vector4
Linearly interpolates between this vector and another based on the given weighting.
184 185 |
# File 'lib/numerix/vector4.rb', line 184 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.
198 199 |
# File 'lib/numerix/vector4.rb', line 198 def lerp!(vector, amount) end |
#map ⇒ Object Also known as: collect
76 77 |
# File 'lib/numerix/vector4.rb', line 76 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.
91 92 |
# File 'lib/numerix/vector4.rb', line 91 def map! end |
#max_value ⇒ Float
Returns the greatest value of the vector's components.
137 138 |
# File 'lib/numerix/vector4.rb', line 137 def max_value end |
#min_value ⇒ Float
Returns the lowest value of the vector's components.
132 133 |
# File 'lib/numerix/vector4.rb', line 132 def min_value end |
#normalize ⇒ Vector4
Returns a new vector with the same direction as the given vector, but with
a length of 1.0.
162 163 |
# File 'lib/numerix/vector4.rb', line 162 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.
170 171 |
# File 'lib/numerix/vector4.rb', line 170 def normalize! end |
#one? ⇒ Boolean
Returns flag indicating if all values of the vector are equal
to 1.0.
121 122 |
# File 'lib/numerix/vector4.rb', line 121 def one? end |
#sqrt ⇒ Vector4
Returns a vector whose elements are the square root of each of this vector's elements.
246 247 |
# File 'lib/numerix/vector4.rb', line 246 def sqrt end |
#to_a ⇒ Array<Float> Also known as: elements
Returns an Array representation of this instance.
310 311 |
# File 'lib/numerix/vector4.rb', line 310 def to_a end |
#to_h ⇒ Hash{Symbol => Float}
Returns a Hash representation of this instance.
317 318 |
# File 'lib/numerix/vector4.rb', line 317 def to_h end |
#to_plane ⇒ Plane
Returns a Plane representation of this instance.
327 328 |
# File 'lib/numerix/vector4.rb', line 327 def to_plane end |
#to_quaternion ⇒ Quaternion
Returns a Quaternion representation of this instance.
322 323 |
# File 'lib/numerix/vector4.rb', line 322 def to_quaternion end |
#to_s ⇒ String
Returns a String representation of this instance.
305 306 |
# File 'lib/numerix/vector4.rb', line 305 def to_s end |
#to_vec2 ⇒ Vector2
Returns a Numerix::Vector2 representation of this instance.
332 333 |
# File 'lib/numerix/vector4.rb', line 332 def to_vec2 end |
#to_vec3 ⇒ Vector3
Returns a Numerix::Vector3 representation of this instance.
337 338 |
# File 'lib/numerix/vector4.rb', line 337 def to_vec3 end |
#transform(matrix) ⇒ Vector4 #transform(rotation) ⇒ Vector4
Returns a new vector by applying a transformation.
217 218 |
# File 'lib/numerix/vector4.rb', line 217 def transform(other) end |
#transform(matrix) ⇒ self #transform(rotation) ⇒ self
Transforms this vector.
236 237 |
# File 'lib/numerix/vector4.rb', line 236 def transform!(other) end |
#zero? ⇒ Boolean
Returns flag indicating if all values of the vector are equal
to 0.0.
127 128 |
# File 'lib/numerix/vector4.rb', line 127 def zero? end |