Represents a 2D Vector More...
Classes | |
class | EqualityComparer |
Represents an equality comparer for FPVector2 objects. More... | |
Public Member Functions | |
FPVector2 (FP value) | |
Creates a new FPVector2 instance. More... | |
FPVector2 (FP x, FP y) | |
Creates a new FPVector2 instance. More... | |
FPVector2 (Int32 x, Int32 y) | |
Initializes a new instance of the FPVector2 struct. More... | |
Boolean | Equals (FPVector2 other) |
Determines whether an FPVector2 instance is equal to another FPVector2 instance. More... | |
override Boolean | Equals (Object obj) |
Determines whether the current FPVector2 instance is equal to another object. More... | |
override Int32 | GetHashCode () |
Computes the hash code for the current FPVector2 object. More... | |
bool | IsLeftOf (FPVector2 vector) |
Returns true if this vector is on the left side of vector More... | |
bool | IsRightOf (FPVector2 vector) |
Returns true if this vector is on the right side of vector More... | |
override String | ToString () |
Returns a string that represents the current FPVector2 instance. More... | |
Static Public Member Functions | |
static FP | Angle (FPVector2 a, FPVector2 b) |
Returns the angle in degrees between a and b . More... | |
static FPVector2 | Barycentric (FPVector2 value1, FPVector2 value2, FPVector2 value3, FP t1, FP t2) |
Equivalent of calling FPMath.Barycentric(FP, FP, FP, FP, FP) for each component. More... | |
static FPVector2 | CalculateLeft (FPVector2 vector) |
Returns vector rotated by 90 degrees counterclockwise. More... | |
static FP | CalculatePolygonArea (FPVector2[] vertices) |
Retruns an area of a polygon defined by vertices . More... | |
static FPVector2 | CalculatePolygonCentroid (FPVector2[] vertices) |
Returns a centroid of a polygon defined by vertices . More... | |
static FP | CalculatePolygonInertiaFactor (FPVector2[] vertices) |
Calculates the mass moment of inertia factor of a polygon defined by vertices . More... | |
static unsafe FPVector2 | CalculatePolygonLocalSupport (FPVector2 *vertices, int verticesCount, ref FPVector2 localDir) |
Calculates the local support point of a polygon in a given direction. More... | |
static FPVector2 | CalculatePolygonLocalSupport (FPVector2[] vertices, ref FPVector2 localDir) |
Calculates the support point in a direction localDir of a polygon defined by vertices . More... | |
static FPVector2[] | CalculatePolygonNormals (FPVector2[] vertices) |
Calculates a normal for each edge of a polygon defined by vertices . More... | |
static FP | CalculatePolygonRadius (FPVector2[] vertices) |
Returns a radius of a centered polygon defined by vertices . More... | |
static FPVector2 | CalculateRight (FPVector2 vector) |
Returns vector rotated by 90 degrees clockwise. More... | |
static FPVector2 | CatmullRom (FPVector2 value1, FPVector2 value2, FPVector2 value3, FPVector2 value4, FP t) |
Equivalent of calling FPMath.CatmullRom(FP, FP, FP, FP, FP) for each component. More... | |
static FPVector2 | Clamp (FPVector2 value, FPVector2 min, FPVector2 max) |
Clamps each component of value to the range [min , max ] More... | |
static FPVector2 | ClampMagnitude (FPVector2 vector, FP maxLength) |
Clamps the magnitude of a vector More... | |
static FP | Cross (FPVector2 a, FPVector2 b) |
The perp-dot product (a 2D equivalent of the 3D cross product) of two vectors. More... | |
static FP | Determinant (FPVector2 v1, FPVector2 v2) |
Returns determinant of two 2d vectors which is handy to check the angle between them (method is identical to FPVector2.Cross). Determinant == 0 -> Vector1 and Vector2 are collinear Determinant less than 0 -> Vector1 is left of Vector2 Determinant greater than 0 -> Vector1 is right of Vector2 More... | |
static FP | Distance (FPVector2 a, FPVector2 b) |
Calculates the distance between two vectors More... | |
static FP | DistanceSquared (FPVector2 a, FPVector2 b) |
Calculates the squared distance between two vectors More... | |
static FP | Dot (FPVector2 a, FPVector2 b) |
Calculates the dot product of two vectors. More... | |
static void | FlipWindingOrder (FPVector2[] vertices) |
Reverses the order of vertices in an array, effectively flipping the winding order of a polygon. More... | |
static FPVector2 | Hermite (FPVector2 value1, FPVector2 tangent1, FPVector2 value2, FPVector2 tangent2, FP t) |
Equivalent of callingFPMath.Hermite(FP, FP, FP, FP, FP) for each component. More... | |
static Boolean | IsClockWise (FPVector2[] vertices) |
Checks if the vertices of a polygon are clock-wise More... | |
static Boolean | IsCounterClockWise (FPVector2[] vertices) |
Checks if the vertices of a polygon are counter clock-wise. More... | |
static Boolean | IsPolygonConvex (FPVector2[] vertices) |
Returns true if the polygon defined by vertices is convex. More... | |
static FPVector2 | Lerp (FPVector2 start, FPVector2 end, FP t) |
Linearly interpolates between start and end by t . t is clamped to the range [0, 1] More... | |
static FPVector2 | LerpUnclamped (FPVector2 start, FPVector2 end, FP t) |
Linearly interpolates between start and end by t . More... | |
static void | MakeClockWise (FPVector2[] vertices) |
Flips the winding order of the vertices if they are in counter clock-wise order. This ensures that the vertices are in clock-wise order. More... | |
static void | MakeCounterClockWise (FPVector2[] vertices) |
Checks if the vertices of a polygon are clock-wise if not makes them counter clock-wise. More... | |
static FPVector2 | Max (FPVector2 value1, FPVector2 value2) |
Gets a vector with the maximum x and y values of both vectors. More... | |
static FPVector2 | Max (params FPVector2[] vectors) |
Gets a vector with the maximum x and y values of all the vectors. If vectors is null or empty, return Zero. More... | |
static FPVector2 | Min (FPVector2 value1, FPVector2 value2) |
Gets a vector with the minimum x and y values of both vectors. More... | |
static FPVector2 | Min (params FPVector2[] vectors) |
Gets a vector with the min x and y values of all the vectors. If vectors is null or empty, return Zero. More... | |
static FPVector2 | MoveTowards (FPVector2 from, FPVector2 to, FP maxDelta) |
Calculate a position between the points specified by from and to , moving no farther than the distance specified by maxDelta . More... | |
static FPVector2 | Normalize (FPVector2 value) |
Normalizes the given vector. If the vector is too short to normalize, Zero will be returned. More... | |
static FPVector2 | Normalize (FPVector2 value, out FP magnitude) |
Normalizes the given vector. If the vector is too short to normalize, Zero will be returned. More... | |
static Boolean | operator!= (FPVector2 a, FPVector2 b) |
Returns true if two vectors are not exactly equal. More... | |
static FPVector2 | operator* (FP s, FPVector2 v) |
Multiplies each component of v times s . More... | |
static FPVector2 | operator* (FPVector2 v, FP s) |
Multiplies each component of v times s . More... | |
static FPVector2 | operator* (FPVector2 v, Int32 s) |
Multiplies each component of v times s . More... | |
static FPVector2 | operator* (Int32 s, FPVector2 v) |
Multiplies each component of v times s . More... | |
static FPVector2 | operator+ (FPVector2 a, FPVector2 b) |
Adds two vectors. More... | |
static FPVector2 | operator- (FPVector2 a, FPVector2 b) |
Subtracts b from a More... | |
static FPVector2 | operator- (FPVector2 v) |
Negates each component of v vector. More... | |
static FPVector2 | operator/ (FPVector2 v, FP s) |
Divides each component of v by s . More... | |
static FPVector2 | operator/ (FPVector2 v, Int32 s) |
Divides each component of v by s . More... | |
static Boolean | operator== (FPVector2 a, FPVector2 b) |
Returns true if two vectors are exactly equal. More... | |
static bool | PolygonNormalsAreValid (FPVector2[] vertices) |
Returns true if all normals of a polygon defined by vertices are non-zeroed. More... | |
static FP | Radians (FPVector2 a, FPVector2 b) |
Returns radians between two vectors. More... | |
static FP | RadiansSigned (FPVector2 a, FPVector2 b) |
Returns radians between two vectors. The result will be a negative number if b is on the right side of a . More... | |
static FP | RadiansSignedSkipNormalize (FPVector2 a, FPVector2 b) |
Returns radians between two vectors. The result will be a negative number if b is on the right side of a . Vectors are assumed to be normalized. More... | |
static FP | RadiansSkipNormalize (FPVector2 a, FPVector2 b) |
Returns radians between two vectors. Vectors are assumed to be normalized. More... | |
static FPVector2[] | RecenterPolygon (FPVector2[] vertices) |
Shifts polygon defined by vertices so that (0,0) becomes its center. More... | |
static FPVector2 | Reflect (FPVector2 vector, FPVector2 normal) |
Reflects a vector off the line defined by a normal. More... | |
static FPVector2 | Rotate (FPVector2 vector, FP radians) |
Rotates vector by radians radians. More... | |
static FPVector2 | Rotate (FPVector2 vector, FP sin, FP cos) |
Rotates vector by an angle sin is the sine of and cos is the cosine of. More... | |
static void | Rotate (FPVector2[] vectors, FP radians) |
Rotates each vector of vectors by radians radians. More... | |
static void | Rotate (FPVector2[] vectors, FP sin, FP cos) |
Rotates each vector of vectors by an angle sin is the sine of and cos is the cosine of. More... | |
static FPVector2 | Scale (FPVector2 a, FPVector2 b) |
Multiplies each component of the vector by the same components of the provided vector. More... | |
static unsafe void | Serialize (void *ptr, IDeterministicFrameSerializer serializer) |
Serializes a FPVector2 instance. More... | |
static FPVector2 | SmoothStep (FPVector2 start, FPVector2 end, FP t) |
Interpolates between start and end with smoothing at the limits. Equivalent of calling FPMath.SmoothStep(FP, FP, FP) for each component pair. More... | |
Public Attributes | |
FP | X |
The X component of the vector. More... | |
FP | Y |
The Y component of the vector. More... | |
Static Public Attributes | |
const int | SIZE = FP.SIZE * 2 |
The size of the component (or struct/type) in-memory inside the Frame data-buffers or stack (when passed as value parameter). Not related to the snapshot payload this occupies, which is bit-packed and compressed. More... | |
static FPVector2 | Zero => new FPVector2() |
A vector with components (0,0); More... | |
Properties | |
static FPVector2 | Down [get] |
A vector with components (0,-1); More... | |
static FPVector2 | Left [get] |
A vector with components (-1,0); More... | |
FP | Magnitude [get] |
Gets the length of the vector. More... | |
static FPVector2 | MaxValue [get] |
A vector with components (FP.MaxValue,FP.MaxValue); More... | |
static FPVector2 | MinValue [get] |
A vector with components (FP.MinValue,FP.MinValue); More... | |
FPVector2 | Normalized [get] |
Gets a normalized version of the vector. More... | |
static FPVector2 | One [get] |
A vector with components (1,1); More... | |
FPVector3 | OXY [get] |
Returns vector (0, X, Y). More... | |
static FPVector2 | Right [get] |
A vector with components (1,0); More... | |
FP | SqrMagnitude [get] |
Gets the squared length of the vector. More... | |
static FPVector2 | Up [get] |
A vector with components (0,1); More... | |
static FPVector2 | UseableMax [get] |
A vector with components (FP.UseableMax,FP.UseableMax); More... | |
static FPVector2 | UseableMin [get] |
A vector with components (FP.UseableMin,FP.UseableMin); More... | |
FPVector3 | XOY [get] |
Returns vector (X, 0, Y). More... | |
FPVector2 | XX [get] |
Returns a new FPVector2 using the X and X components of this vector. More... | |
FPVector3 | XXX [get] |
Returns a new FPVector3 using the X, X and X components of this vector. More... | |
FPVector3 | XXY [get] |
Returns a new FPVector3 using the X, X and Y components of this vector. More... | |
FPVector2 | XY [get] |
Returns a new FPVector2 using the X and Y components of this vector. More... | |
FPVector3 | XYO [get] |
Returns vector (X, Y, 0). More... | |
FPVector3 | XYX [get] |
Returns a new FPVector3 using the X, Y and X components of this vector. More... | |
FPVector3 | XYY [get] |
Returns a new FPVector3 using the X, Y and Y components of this vector. More... | |
FPVector2 | YX [get] |
Returns a new FPVector2 using the Y and X components of this vector. More... | |
FPVector3 | YXX [get] |
Returns a new FPVector3 using the Y, X and X components of this vector. More... | |
FPVector3 | YXY [get] |
Returns a new FPVector3 using the Y, X and Y components of this vector. More... | |
FPVector2 | YY [get] |
Returns a new FPVector2 using the Y and Y components of this vector. More... | |
FPVector3 | YYX [get] |
Returns a new FPVector3 using the Y, Y and X components of this vector. More... | |
FPVector3 | YYY [get] |
Returns a new FPVector3 using the Y, Y and Y components of this vector. More... | |
Represents a 2D Vector
|
inline |
Initializes a new instance of the FPVector2 struct.
x | The x-coordinate of the vector. |
y | The y-coordinate of the vector. |
Creates a new FPVector2 instance.
x | X component |
y | Y component |
|
inline |
Creates a new FPVector2 instance.
value | A value to be assigned to both components |
Normalizes the given vector. If the vector is too short to normalize, Zero will be returned.
value | The vector which should be normalized. |
|
inlinestatic |
Normalizes the given vector. If the vector is too short to normalize, Zero will be returned.
value | The vector which should be normalized. |
magnitude | The original vector's magnitude. |
|
inlinestatic |
Serializes a FPVector2 instance.
ptr | A pointer to the FPVector2 instance |
serializer | An instance of IDeterministicFrameSerializer used for serialization. |
|
inline |
Determines whether the current FPVector2 instance is equal to another object.
obj | The object to compare with the current instance. |
true
if the specified object is equal to the current FPVector2 instance; otherwise, false
.
|
inline |
Determines whether an FPVector2 instance is equal to another FPVector2 instance.
other | The other FPVector2 instance to compare to. |
true
if the two instances are equal; otherwise, false
.
|
inline |
Computes the hash code for the current FPVector2 object.
|
inline |
Returns a string that represents the current FPVector2 instance.
Calculates the distance between two vectors
a | First vector |
b | Second vector |
Calculates the squared distance between two vectors
a | First vector |
b | Second vector |
Calculates the dot product of two vectors.
a | The first vector. |
b | The second vector. |
|
inlinestatic |
Clamps the magnitude of a vector
vector | Vector to clamp |
maxLength | Max length of the supplied vector |
Rotates each vector of vectors by radians radians.
Rotation is counterclockwise.
vectors | |
radians |
|
inlinestatic |
Rotates vector by radians radians.
Rotation is counterclockwise.
vector | |
radians |
|
inlinestatic |
Rotates each vector of vectors by an angle sin is the sine of and cos is the cosine of.
Rotation is performed counterclockwise.
vectors | |
sin | |
cos |
|
inlinestatic |
Rotates vector by an angle sin is the sine of and cos is the cosine of.
Rotation is performed counterclockwise.
vector | |
sin | |
cos |
The perp-dot product (a 2D equivalent of the 3D cross product) of two vectors.
a | The first vector. |
b | The second vector. |
|
inlinestatic |
Reflects a vector off the line defined by a normal.
vector | Vector to be reflected. |
normal | Normal along which the vector is reflected. Expected to be normalized. |
|
inlinestatic |
Clamps each component of value to the range [min , max ]
value | |
min | |
max |
|
inlinestatic |
Linearly interpolates between start and end by t . t is clamped to the range [0, 1]
start | |
end | |
t |
|
inlinestatic |
Linearly interpolates between start and end by t .
start | |
end | |
t |
|
inlinestatic |
Gets a vector with the maximum x and y values of both vectors.
value1 | The first value. |
value2 | The second value. |
Gets a vector with the maximum x and y values of all the vectors. If vectors is null
or empty, return Zero.
vectors |
|
inlinestatic |
Gets a vector with the minimum x and y values of both vectors.
value1 | The first value. |
value2 | The second value. |
Gets a vector with the min x and y values of all the vectors. If vectors is null
or empty, return Zero.
vectors |
Multiplies each component of the vector by the same components of the provided vector.
a | |
b |
Returns the angle in degrees between a and b .
See also: Radians,
, , ,
a | |
b |
Returns vector rotated by 90 degrees clockwise.
vector |
Returns vector rotated by 90 degrees counterclockwise.
vector |
|
inline |
Returns true
if this vector is on the right side of vector
vector |
|
inline |
Returns true
if this vector is on the left side of vector
vector |
Returns determinant of two 2d vectors which is handy to check the angle between them (method is identical to FPVector2.Cross). Determinant == 0 -> Vector1 and Vector2 are collinear Determinant less than 0 -> Vector1 is left of Vector2 Determinant greater than 0 -> Vector1 is right of Vector2
v1 | Vector1 |
v2 | Vector2 |
Returns radians between two vectors.
a | |
b |
|
inlinestatic |
Returns radians between two vectors. Vectors are assumed to be normalized.
a | |
b |
Returns radians between two vectors. The result will be a negative number if b is on the right side of a .
a | |
b |
|
inlinestatic |
Returns radians between two vectors. The result will be a negative number if b is on the right side of a . Vectors are assumed to be normalized.
a | |
b |
|
inlinestatic |
Interpolates between start and end with smoothing at the limits. Equivalent of calling FPMath.SmoothStep(FP, FP, FP) for each component pair.
start | |
end | |
t |
|
inlinestatic |
Equivalent of callingFPMath.Hermite(FP, FP, FP, FP, FP) for each component.
value1 | |
tangent1 | |
value2 | |
tangent2 | |
t |
|
inlinestatic |
Equivalent of calling FPMath.Barycentric(FP, FP, FP, FP, FP) for each component.
value1 | |
value2 | |
value3 | |
t1 | |
t2 |
|
inlinestatic |
Equivalent of calling FPMath.CatmullRom(FP, FP, FP, FP, FP) for each component.
value1 | |
value2 | |
value3 | |
value4 | |
t |
|
inlinestatic |
Returns true
if the polygon defined by vertices is convex.
vertices |
|
inlinestatic |
Checks if the vertices of a polygon are clock-wise
vertices | The vertices of the polygon |
true
if the vertices are clock-wise aligned.
|
inlinestatic |
Checks if the vertices of a polygon are counter clock-wise.
vertices | The vertices of the polygon |
true
if the vertices are counter clock-wise aligned.
|
inlinestatic |
Checks if the vertices of a polygon are clock-wise if not makes them counter clock-wise.
vertices | The vertices of the polygon |
|
inlinestatic |
Flips the winding order of the vertices if they are in counter clock-wise order. This ensures that the vertices are in clock-wise order.
vertices | The array of vertices |
|
inlinestatic |
Reverses the order of vertices in an array, effectively flipping the winding order of a polygon.
vertices | The array of vertices representing the polygon |
|
inlinestatic |
Calculates a normal for each edge of a polygon defined by vertices .
vertices |
|
inlinestatic |
Returns true
if all normals of a polygon defined by vertices are non-zeroed.
vertices |
|
inlinestatic |
Shifts polygon defined by vertices so that (0,0) becomes its center.
vertices |
Retruns an area of a polygon defined by vertices .
vertices |
|
inlinestatic |
Returns a centroid of a polygon defined by vertices .
vertices |
|
inlinestatic |
Calculates the mass moment of inertia factor of a polygon defined by vertices .
To compute a body mass moment of inertia, multiply the factor by the body mass.
vertices | The 2D vertices that define the polygon. |
|
inlinestatic |
Calculates the support point in a direction localDir of a polygon defined by vertices .
A support point is the furthest point of a shape in a given direction.
Both support point and direction are expressed in the local space of the polygon.
The polygon vertices are expected to be counterclockwise.
vertices | The 2D vertices that define the polygon. |
localDir | The direction, in local space, in which the support point will be calculated. |
|
inlinestatic |
Calculates the local support point of a polygon in a given direction.
vertices | An array of vertices that make up the polygon. |
verticesCount | The number of vertices in the polygon. |
localDir | The direction for which to find the local support point. |
|
inlinestatic |
Returns a radius of a centered polygon defined by vertices .
vertices |
|
inlinestatic |
Calculate a position between the points specified by from and to , moving no farther than the distance specified by maxDelta .
from | |
to | |
maxDelta |
s
Returns true
if two vectors are exactly equal.
a | |
b |
Returns true
if two vectors are not exactly equal.
a | |
b |
Negates each component of v vector.
v |
Adds two vectors.
a | |
b |
Subtracts b from a
a | |
b |
Multiplies each component of v times s .
v | |
s |
Multiplies each component of v times s .
v | |
s |
Multiplies each component of v times s .
v | |
s |
Multiplies each component of v times s .
v | |
s |
Divides each component of v by s .
v | |
s |
Divides each component of v by s .
v | |
s |
|
static |
The size of the component (or struct/type) in-memory inside the Frame data-buffers or stack (when passed as value parameter). Not related to the snapshot payload this occupies, which is bit-packed and compressed.
A vector with components (0,0);
FP Photon.Deterministic.FPVector2.X |
The X component of the vector.
FP Photon.Deterministic.FPVector2.Y |
The Y component of the vector.
|
staticget |
A vector with components (1,1);
|
staticget |
A vector with components (1,0);
|
staticget |
A vector with components (-1,0);
|
staticget |
A vector with components (0,1);
|
staticget |
A vector with components (0,-1);
|
staticget |
A vector with components (FP.MinValue,FP.MinValue);
|
staticget |
A vector with components (FP.MaxValue,FP.MaxValue);
|
staticget |
A vector with components (FP.UseableMin,FP.UseableMin);
|
staticget |
A vector with components (FP.UseableMax,FP.UseableMax);
|
get |
Gets the length of the vector.
|
get |
Gets the squared length of the vector.
|
get |
Gets a normalized version of the vector.
|
get |
Returns vector (X, 0, Y).
|
get |
Returns vector (X, Y, 0).
|
get |
Returns vector (0, X, Y).
|
get |
Returns a new FPVector3 using the X, X and X components of this vector.
|
get |
Returns a new FPVector3 using the X, X and Y components of this vector.
|
get |
Returns a new FPVector3 using the X, Y and X components of this vector.
|
get |
Returns a new FPVector3 using the X, Y and Y components of this vector.
|
get |
Returns a new FPVector2 using the X and X components of this vector.
|
get |
Returns a new FPVector2 using the X and Y components of this vector.
|
get |
Returns a new FPVector3 using the Y, Y and Y components of this vector.
|
get |
Returns a new FPVector3 using the Y, Y and X components of this vector.
|
get |
Returns a new FPVector3 using the Y, X and Y components of this vector.
|
get |
Returns a new FPVector3 using the Y, X and X components of this vector.
|
get |
Returns a new FPVector2 using the Y and Y components of this vector.
|
get |
Returns a new FPVector2 using the Y and X components of this vector.