Class: Numerix::Vector2
- Inherits:
-
VectorBase
- Object
- Structure
- VectorBase
- Numerix::Vector2
- Defined in:
- lib/numerix/vector2.rb
Overview
A structure encapsulating two 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.
Class Method Summary collapse
-
.clamp(vector, min, max) ⇒ Vector2
Returns a vector that is result of clamping a vector between the specified minimum and maximum values.
-
.create_norm(x, y) ⇒ Vector2
Creates and returns a normalized vector from the specified components.
-
.lerp(vector1, vector2, amount) ⇒ Vector2
Linearly interpolates between two vectors based on the given weighting.
-
.max(vector, other) ⇒ Vector2
Returns a vector with a maximum set of values.
-
.min(vector, other) ⇒ Vector2
Returns a vector with a minimum set of values.
-
.one ⇒ Vector2
The vector
<1.0, 1.0>. -
.unit_x ⇒ Vector2
The vector
<1.0, 0.0>. -
.unit_y ⇒ Vector2
The vector
<0.0, 1.0>. -
.zero ⇒ Vector2
The vector
<0.0, 0.0>.
Instance Method Summary collapse
-
#*(other) ⇒ Vector2
Vector multiplication.
-
#**(exponent) ⇒ Vector2
Raises the vector to the given power.
-
#+(other) ⇒ Vector2
Adds this vector with another.
-
#-(other) ⇒ Vector2
Gets the difference of this vector and another.
-
#-@ ⇒ Vector2
Performs unary negation on this vector instance.
-
#/(other) ⇒ Vector2
Vector division.
-
#==(other) ⇒ Boolean
Returns flag if this vector instance is equal to the given object.
-
#abs ⇒ Vector2
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) ⇒ Vector2
Returns a vector that is result of clamping this vector between the specified minimum and maximum values.
-
#clamp!(min, max) ⇒ Vector2
Clamps this vector between the specified minimum and maximum values.
-
#cross_product(other) ⇒ Float
Returns the cross-product between this vector and another.
-
#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) ⇒ Vector2
constructor
TODO.
-
#length_squared ⇒ Float
The length of the vector squared.
-
#lerp(vector, amount) ⇒ Vector2
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 ⇒ Vector2
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) ⇒ Vector2
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 ⇒ Vector2
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_vec3 ⇒ Vector3
A Vector3 representation of this instance.
-
#to_vec4 ⇒ Vector4
A Vector4 representation of this instance.
-
#transform(other) ⇒ Vector2
Returns a new vector by applying a transformation.
-
#transform!(other) ⇒ self
Transforms this vector by the given matrix.
-
#transform_normal(matrix) ⇒ Vector2
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
#initialize(*args) ⇒ Vector2
TODO
15 16 |
# File 'lib/numerix/vector2.rb', line 15 def initialize(*args) # TODO end |
Instance Attribute Details
#x ⇒ Float
Returns the X component of the vector.
9 10 11 |
# File 'lib/numerix/vector2.rb', line 9 def x @x end |
#y ⇒ Float
Returns the Y component of the vector.
13 14 15 |
# File 'lib/numerix/vector2.rb', line 13 def y @y end |
Class Method Details
.clamp(min, max) ⇒ Vector2 .clamp(min, max) ⇒ Vector2
Returns a vector that is result of clamping a vector between the specified minimum and maximum values.
476 477 |
# File 'lib/numerix/vector2.rb', line 476 def clamp(vector, min, max) end |
.create_norm(x, y) ⇒ Vector2
Creates and returns a normalized vector from the specified components.
This is more efficient than creating and then normalizing.
455 456 |
# File 'lib/numerix/vector2.rb', line 455 def create_norm(x, y) end |
.lerp(vector1, vector2, amount) ⇒ Vector2
Linearly interpolates between two vectors based on the given weighting.
488 489 |
# File 'lib/numerix/vector2.rb', line 488 def lerp(vector1, vector2, amount) end |
.max(vector, other) ⇒ Vector2 .max(vector, value) ⇒ Vector2
Returns a vector with a maximum set of values.
530 531 |
# File 'lib/numerix/vector2.rb', line 530 def max(vector, other) end |
.min(vector, other) ⇒ Vector2 .min(vector, value) ⇒ Vector2
Returns a vector with a minimum set of values.
509 510 |
# File 'lib/numerix/vector2.rb', line 509 def min(vector, other) end |
.one ⇒ Vector2
Returns the vector <1.0, 1.0>.
433 434 |
# File 'lib/numerix/vector2.rb', line 433 def one end |
.unit_x ⇒ Vector2
Returns the vector <1.0, 0.0>.
438 439 |
# File 'lib/numerix/vector2.rb', line 438 def unit_x end |
.unit_y ⇒ Vector2
Returns the vector <0.0, 1.0>.
443 444 |
# File 'lib/numerix/vector2.rb', line 443 def unit_y end |
.zero ⇒ Vector2
Returns the vector <0.0, 0.0>.
428 429 |
# File 'lib/numerix/vector2.rb', line 428 def zero end |
Instance Method Details
#*(scalar) ⇒ Vector2 #*(other) ⇒ Vector2
Vector multiplication.
285 286 |
# File 'lib/numerix/vector2.rb', line 285 def *(other) end |
#**(exponent) ⇒ Vector2
Raises the vector to the given power.
250 251 |
# File 'lib/numerix/vector2.rb', line 250 def **(exponent) end |
#+(other) ⇒ Vector2
Adds this vector with another.
259 260 |
# File 'lib/numerix/vector2.rb', line 259 def +(other) end |
#-(other) ⇒ Vector2
Gets the difference of this vector and another.
268 269 |
# File 'lib/numerix/vector2.rb', line 268 def -(other) end |
#-@ ⇒ Vector2
Performs unary negation on this vector instance.
318 319 |
# File 'lib/numerix/vector2.rb', line 318 def -@ end |
#*(scalar) ⇒ Vector2 #*(other) ⇒ Vector2
Vector division.
302 303 |
# File 'lib/numerix/vector2.rb', line 302 def /(other) end |
#==(other) ⇒ Boolean
Returns flag if this vector instance is equal to the given object.
311 312 |
# File 'lib/numerix/vector2.rb', line 311 def ==(other) end |
#abs ⇒ Vector2
Returns a vector whose elements are the absolute values of each of this vector's elements.
109 110 |
# File 'lib/numerix/vector2.rb', line 109 def abs end |
#angle(other) ⇒ Float
Computes the angle between this vector and another.
346 347 |
# File 'lib/numerix/vector2.rb', line 346 def angle(other) end |
#clamp(min, max) ⇒ Vector2 #clamp(min, max) ⇒ Vector2
Returns a vector that is result of clamping this vector between the specified minimum and maximum values.
147 148 |
# File 'lib/numerix/vector2.rb', line 147 def clamp(min, max) end |
#clamp!(min, max) ⇒ Vector2 #clamp!(min, max) ⇒ Vector2
Clamps this vector between the specified minimum and maximum values.
169 170 |
# File 'lib/numerix/vector2.rb', line 169 def clamp!(min, max) end |
#cross_product(other) ⇒ Float
Returns the cross-product between this vector and another.
355 356 |
# File 'lib/numerix/vector2.rb', line 355 def cross_product(other) end |
#distance(vector) ⇒ Float
Returns the Euclidean distance between this vector and another.
51 52 |
# File 'lib/numerix/vector2.rb', line 51 def distance(vector) end |
#distance_squared(vector) ⇒ Float
Returns the squared Euclidean distance between this vector and another.
59 60 |
# File 'lib/numerix/vector2.rb', line 59 def distance_squared(vector) end |
#dot(other) ⇒ Float
Returns the dot product of this vector and another.
124 125 |
# File 'lib/numerix/vector2.rb', line 124 def dot(other) end |
#length_squared ⇒ Float
Returns the length of the vector squared.
20 21 |
# File 'lib/numerix/vector2.rb', line 20 def length_squared end |
#lerp(vector, amount) ⇒ Vector2
Linearly interpolates between this vector and another based on the given weighting.
89 90 |
# File 'lib/numerix/vector2.rb', line 89 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.
103 104 |
# File 'lib/numerix/vector2.rb', line 103 def lerp!(vector, amount) end |
#map ⇒ Object Also known as: collect
223 224 |
# File 'lib/numerix/vector2.rb', line 223 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.
238 239 |
# File 'lib/numerix/vector2.rb', line 238 def map! end |
#max_value ⇒ Float
Returns the greatest value of the vector's components.
42 43 |
# File 'lib/numerix/vector2.rb', line 42 def max_value end |
#min_value ⇒ Float
Returns the lowest value of the vector's components.
37 38 |
# File 'lib/numerix/vector2.rb', line 37 def min_value end |
#normalize ⇒ Vector2
Returns a new vector with the same direction as the given vector, but with
a length of 1.0.
67 68 |
# File 'lib/numerix/vector2.rb', line 67 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.
75 76 |
# File 'lib/numerix/vector2.rb', line 75 def normalize! end |
#one? ⇒ Boolean
Returns flag indicating if all values of the vector are equal
to 1.0.
26 27 |
# File 'lib/numerix/vector2.rb', line 26 def one? end |
#reflect(other) ⇒ Vector2
Alters this vector to be the reflection of the specified normal.
327 328 |
# File 'lib/numerix/vector2.rb', line 327 def reflect(other) end |
#reflect!(other) ⇒ self
Returns the reflection of a vector off a surface that has the specified normal.
337 338 |
# File 'lib/numerix/vector2.rb', line 337 def reflect!(other) end |
#sqrt ⇒ Vector2
Returns a vector whose elements are the square root of each of this vector's elements.
115 116 |
# File 'lib/numerix/vector2.rb', line 115 def sqrt end |
#to_a ⇒ Array<Float> Also known as: elements
Returns an Array representation of this instance.
179 180 |
# File 'lib/numerix/vector2.rb', line 179 def to_a end |
#to_h ⇒ Hash{Symbol => Float}
Returns a Hash representation of this instance.
186 187 |
# File 'lib/numerix/vector2.rb', line 186 def to_h end |
#to_plane ⇒ Plane
Returns a Plane representation of this instance.
196 197 |
# File 'lib/numerix/vector2.rb', line 196 def to_plane end |
#to_quaternion ⇒ Quaternion
Returns a Quaternion representation of this instance.
191 192 |
# File 'lib/numerix/vector2.rb', line 191 def to_quaternion end |
#to_s ⇒ String
Returns a String representation of this instance.
174 175 |
# File 'lib/numerix/vector2.rb', line 174 def to_s end |
#to_vec3 ⇒ Vector3
Returns a Numerix::Vector3 representation of this instance.
201 202 |
# File 'lib/numerix/vector2.rb', line 201 def to_vec3 end |
#to_vec4 ⇒ Vector4
Returns a Numerix::Vector4 representation of this instance.
206 207 |
# File 'lib/numerix/vector2.rb', line 206 def to_vec4 end |
#transform(matrix) ⇒ Vector2 #transform(matrix) ⇒ Vector2 #transform(rotation) ⇒ Vector2
Returns a new vector by applying a transformation.
379 380 |
# File 'lib/numerix/vector2.rb', line 379 def transform(other) end |
#transform(matrix) ⇒ self #transform(matrix) ⇒ self #transform(rotation) ⇒ self
Transforms this vector by the given matrix.
403 404 |
# File 'lib/numerix/vector2.rb', line 403 def transform!(other) end |
#transform_normal(matrix) ⇒ Vector2
Transforms a vector normal by the given matrix.
412 413 |
# File 'lib/numerix/vector2.rb', line 412 def transform_normal(matrix) end |
#transform_normal!(matrix) ⇒ self
Transforms a vector normal by the given matrix.
421 422 |
# File 'lib/numerix/vector2.rb', line 421 def transform_normal!(matrix) end |
#zero? ⇒ Boolean
Returns flag indicating if all values of the vector are equal
to 0.0.
32 33 |
# File 'lib/numerix/vector2.rb', line 32 def zero? end |