Photon Quantum 3.0.0

Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
Photon.Deterministic.FPVector2 Struct Reference

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...
 

Detailed Description

Represents a 2D Vector

Constructor & Destructor Documentation

◆ FPVector2() [1/3]

Photon.Deterministic.FPVector2.FPVector2 ( Int32  x,
Int32  y 
)
inline

Initializes a new instance of the FPVector2 struct.

Parameters
xThe x-coordinate of the vector.
yThe y-coordinate of the vector.

◆ FPVector2() [2/3]

Photon.Deterministic.FPVector2.FPVector2 ( FP  x,
FP  y 
)
inline

Creates a new FPVector2 instance.

Parameters
xX component
yY component

◆ FPVector2() [3/3]

Photon.Deterministic.FPVector2.FPVector2 ( FP  value)
inline

Creates a new FPVector2 instance.

Parameters
valueA value to be assigned to both components

Member Function Documentation

◆ Normalize() [1/2]

static FPVector2 Photon.Deterministic.FPVector2.Normalize ( FPVector2  value)
inlinestatic

Normalizes the given vector. If the vector is too short to normalize, Zero will be returned.

Parameters
valueThe vector which should be normalized.
Returns
A normalized vector.

◆ Normalize() [2/2]

static FPVector2 Photon.Deterministic.FPVector2.Normalize ( FPVector2  value,
out FP  magnitude 
)
inlinestatic

Normalizes the given vector. If the vector is too short to normalize, Zero will be returned.

Parameters
valueThe vector which should be normalized.
magnitudeThe original vector's magnitude.
Returns
A normalized vector.

◆ Serialize()

static unsafe void Photon.Deterministic.FPVector2.Serialize ( void *  ptr,
IDeterministicFrameSerializer  serializer 
)
inlinestatic

Serializes a FPVector2 instance.

Parameters
ptrA pointer to the FPVector2 instance
serializerAn instance of IDeterministicFrameSerializer used for serialization.

◆ Equals() [1/2]

override Boolean Photon.Deterministic.FPVector2.Equals ( Object  obj)
inline

Determines whether the current FPVector2 instance is equal to another object.

Parameters
objThe object to compare with the current instance.
Returns
true if the specified object is equal to the current FPVector2 instance; otherwise, false.

◆ Equals() [2/2]

Boolean Photon.Deterministic.FPVector2.Equals ( FPVector2  other)
inline

Determines whether an FPVector2 instance is equal to another FPVector2 instance.

Parameters
otherThe other FPVector2 instance to compare to.
Returns
true if the two instances are equal; otherwise, false.

◆ GetHashCode()

override Int32 Photon.Deterministic.FPVector2.GetHashCode ( )
inline

Computes the hash code for the current FPVector2 object.

Returns
A 32-bit signed integer hash code.

◆ ToString()

override String Photon.Deterministic.FPVector2.ToString ( )
inline

Returns a string that represents the current FPVector2 instance.

Returns
A string representation of the current FPVector2 instance.

◆ Distance()

static FP Photon.Deterministic.FPVector2.Distance ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Calculates the distance between two vectors

Parameters
aFirst vector
bSecond vector
Returns
The distance between the vectors

◆ DistanceSquared()

static FP Photon.Deterministic.FPVector2.DistanceSquared ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Calculates the squared distance between two vectors

Parameters
aFirst vector
bSecond vector
Returns
The squared distance between the vectors

◆ Dot()

static FP Photon.Deterministic.FPVector2.Dot ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Calculates the dot product of two vectors.

Parameters
aThe first vector.
bThe second vector.
Returns
Returns the dot product of both vectors.

◆ ClampMagnitude()

static FPVector2 Photon.Deterministic.FPVector2.ClampMagnitude ( FPVector2  vector,
FP  maxLength 
)
inlinestatic

Clamps the magnitude of a vector

Parameters
vectorVector to clamp
maxLengthMax length of the supplied vector
Returns
The resulting (potentially clamped) vector

◆ Rotate() [1/4]

static void Photon.Deterministic.FPVector2.Rotate ( FPVector2[]  vectors,
FP  radians 
)
inlinestatic

Rotates each vector of vectors by radians radians.

Rotation is counterclockwise.

Parameters
vectors
radians

◆ Rotate() [2/4]

static FPVector2 Photon.Deterministic.FPVector2.Rotate ( FPVector2  vector,
FP  radians 
)
inlinestatic

Rotates vector by radians radians.

Rotation is counterclockwise.

Parameters
vector
radians

◆ Rotate() [3/4]

static void Photon.Deterministic.FPVector2.Rotate ( FPVector2[]  vectors,
FP  sin,
FP  cos 
)
inlinestatic

Rotates each vector of vectors by an angle sin is the sine of and cos is the cosine of.

Rotation is performed counterclockwise.

Parameters
vectors
sin
cos

◆ Rotate() [4/4]

static FPVector2 Photon.Deterministic.FPVector2.Rotate ( FPVector2  vector,
FP  sin,
FP  cos 
)
inlinestatic

Rotates vector by an angle sin is the sine of and cos is the cosine of.

Rotation is performed counterclockwise.

Parameters
vector
sin
cos
Returns

◆ Cross()

static FP Photon.Deterministic.FPVector2.Cross ( FPVector2  a,
FPVector2  b 
)
inlinestatic

The perp-dot product (a 2D equivalent of the 3D cross product) of two vectors.

Parameters
aThe first vector.
bThe second vector.
Returns
The cross product of both vectors.

◆ Reflect()

static FPVector2 Photon.Deterministic.FPVector2.Reflect ( FPVector2  vector,
FPVector2  normal 
)
inlinestatic

Reflects a vector off the line defined by a normal.

Parameters
vectorVector to be reflected.
normalNormal along which the vector is reflected. Expected to be normalized.
Returns

◆ Clamp()

static FPVector2 Photon.Deterministic.FPVector2.Clamp ( FPVector2  value,
FPVector2  min,
FPVector2  max 
)
inlinestatic

Clamps each component of value to the range [min , max ]

Parameters
value
min
max
Returns

◆ Lerp()

static FPVector2 Photon.Deterministic.FPVector2.Lerp ( FPVector2  start,
FPVector2  end,
FP  t 
)
inlinestatic

Linearly interpolates between start and end by t . t is clamped to the range [0, 1]

Parameters
start
end
t
Returns

◆ LerpUnclamped()

static FPVector2 Photon.Deterministic.FPVector2.LerpUnclamped ( FPVector2  start,
FPVector2  end,
FP  t 
)
inlinestatic

Linearly interpolates between start and end by t .

Parameters
start
end
t
Returns

◆ Max() [1/2]

static FPVector2 Photon.Deterministic.FPVector2.Max ( FPVector2  value1,
FPVector2  value2 
)
inlinestatic

Gets a vector with the maximum x and y values of both vectors.

Parameters
value1The first value.
value2The second value.
Returns
A vector with the maximum x and y values of both vectors.

◆ Max() [2/2]

static FPVector2 Photon.Deterministic.FPVector2.Max ( params FPVector2[]  vectors)
inlinestatic

Gets a vector with the maximum x and y values of all the vectors. If vectors is null or empty, return Zero.

Parameters
vectors
Returns

◆ Min() [1/2]

static FPVector2 Photon.Deterministic.FPVector2.Min ( FPVector2  value1,
FPVector2  value2 
)
inlinestatic

Gets a vector with the minimum x and y values of both vectors.

Parameters
value1The first value.
value2The second value.
Returns
A vector with the minimum x and y values of both vectors.

◆ Min() [2/2]

static FPVector2 Photon.Deterministic.FPVector2.Min ( params FPVector2[]  vectors)
inlinestatic

Gets a vector with the min x and y values of all the vectors. If vectors is null or empty, return Zero.

Parameters
vectors
Returns

◆ Scale()

static FPVector2 Photon.Deterministic.FPVector2.Scale ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Multiplies each component of the vector by the same components of the provided vector.

Parameters
a
b
Returns

◆ Angle()

static FP Photon.Deterministic.FPVector2.Angle ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Returns the angle in degrees between a and b .

See also: Radians,

See also
RadiansSigned, RadiansSkipNormalize, RadiansSignedSkipNormalize

, , ,

Parameters
a
b
Returns

◆ CalculateRight()

static FPVector2 Photon.Deterministic.FPVector2.CalculateRight ( FPVector2  vector)
inlinestatic

Returns vector rotated by 90 degrees clockwise.

Parameters
vector
Returns

◆ CalculateLeft()

static FPVector2 Photon.Deterministic.FPVector2.CalculateLeft ( FPVector2  vector)
inlinestatic

Returns vector rotated by 90 degrees counterclockwise.

Parameters
vector
Returns

◆ IsRightOf()

bool Photon.Deterministic.FPVector2.IsRightOf ( FPVector2  vector)
inline

Returns true if this vector is on the right side of vector

Parameters
vector
Returns

◆ IsLeftOf()

bool Photon.Deterministic.FPVector2.IsLeftOf ( FPVector2  vector)
inline

Returns true if this vector is on the left side of vector

Parameters
vector
Returns

◆ Determinant()

static FP Photon.Deterministic.FPVector2.Determinant ( FPVector2  v1,
FPVector2  v2 
)
inlinestatic

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

Parameters
v1Vector1
v2Vector2
Returns
Determinant


◆ Radians()

static FP Photon.Deterministic.FPVector2.Radians ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Returns radians between two vectors.

Parameters
a
b
Returns

◆ RadiansSkipNormalize()

static FP Photon.Deterministic.FPVector2.RadiansSkipNormalize ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Returns radians between two vectors. Vectors are assumed to be normalized.

Parameters
a
b
Returns

◆ RadiansSigned()

static FP Photon.Deterministic.FPVector2.RadiansSigned ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Returns radians between two vectors. The result will be a negative number if b is on the right side of a .

Parameters
a
b
Returns

◆ RadiansSignedSkipNormalize()

static FP Photon.Deterministic.FPVector2.RadiansSignedSkipNormalize ( FPVector2  a,
FPVector2  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.

Parameters
a
b
Returns

◆ SmoothStep()

static FPVector2 Photon.Deterministic.FPVector2.SmoothStep ( FPVector2  start,
FPVector2  end,
FP  t 
)
inlinestatic

Interpolates between start and end with smoothing at the limits. Equivalent of calling FPMath.SmoothStep(FP, FP, FP) for each component pair.

Parameters
start
end
t
Returns

◆ Hermite()

static FPVector2 Photon.Deterministic.FPVector2.Hermite ( FPVector2  value1,
FPVector2  tangent1,
FPVector2  value2,
FPVector2  tangent2,
FP  t 
)
inlinestatic

Equivalent of callingFPMath.Hermite(FP, FP, FP, FP, FP) for each component.

Parameters
value1
tangent1
value2
tangent2
t
Returns

◆ Barycentric()

static FPVector2 Photon.Deterministic.FPVector2.Barycentric ( FPVector2  value1,
FPVector2  value2,
FPVector2  value3,
FP  t1,
FP  t2 
)
inlinestatic

Equivalent of calling FPMath.Barycentric(FP, FP, FP, FP, FP) for each component.

Parameters
value1
value2
value3
t1
t2
Returns

◆ CatmullRom()

static FPVector2 Photon.Deterministic.FPVector2.CatmullRom ( FPVector2  value1,
FPVector2  value2,
FPVector2  value3,
FPVector2  value4,
FP  t 
)
inlinestatic

Equivalent of calling FPMath.CatmullRom(FP, FP, FP, FP, FP) for each component.

Parameters
value1
value2
value3
value4
t
Returns

◆ IsPolygonConvex()

static Boolean Photon.Deterministic.FPVector2.IsPolygonConvex ( FPVector2[]  vertices)
inlinestatic

Returns true if the polygon defined by vertices is convex.

Parameters
vertices
Returns

◆ IsClockWise()

static Boolean Photon.Deterministic.FPVector2.IsClockWise ( FPVector2[]  vertices)
inlinestatic

Checks if the vertices of a polygon are clock-wise

Parameters
verticesThe vertices of the polygon
Returns
true if the vertices are clock-wise aligned.

◆ IsCounterClockWise()

static Boolean Photon.Deterministic.FPVector2.IsCounterClockWise ( FPVector2[]  vertices)
inlinestatic

Checks if the vertices of a polygon are counter clock-wise.

Parameters
verticesThe vertices of the polygon
Returns
true if the vertices are counter clock-wise aligned.

◆ MakeCounterClockWise()

static void Photon.Deterministic.FPVector2.MakeCounterClockWise ( FPVector2[]  vertices)
inlinestatic

Checks if the vertices of a polygon are clock-wise if not makes them counter clock-wise.

Parameters
verticesThe vertices of the polygon

◆ MakeClockWise()

static void Photon.Deterministic.FPVector2.MakeClockWise ( FPVector2[]  vertices)
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.

Parameters
verticesThe array of vertices

◆ FlipWindingOrder()

static void Photon.Deterministic.FPVector2.FlipWindingOrder ( FPVector2[]  vertices)
inlinestatic

Reverses the order of vertices in an array, effectively flipping the winding order of a polygon.

Parameters
verticesThe array of vertices representing the polygon

◆ CalculatePolygonNormals()

static FPVector2 [] Photon.Deterministic.FPVector2.CalculatePolygonNormals ( FPVector2[]  vertices)
inlinestatic

Calculates a normal for each edge of a polygon defined by vertices .

Parameters
vertices
Returns

◆ PolygonNormalsAreValid()

static bool Photon.Deterministic.FPVector2.PolygonNormalsAreValid ( FPVector2[]  vertices)
inlinestatic

Returns true if all normals of a polygon defined by vertices are non-zeroed.

Parameters
vertices
Returns

◆ RecenterPolygon()

static FPVector2 [] Photon.Deterministic.FPVector2.RecenterPolygon ( FPVector2[]  vertices)
inlinestatic

Shifts polygon defined by vertices so that (0,0) becomes its center.

Parameters
vertices
Returns

◆ CalculatePolygonArea()

static FP Photon.Deterministic.FPVector2.CalculatePolygonArea ( FPVector2[]  vertices)
inlinestatic

Retruns an area of a polygon defined by vertices .

Parameters
vertices
Returns

◆ CalculatePolygonCentroid()

static FPVector2 Photon.Deterministic.FPVector2.CalculatePolygonCentroid ( FPVector2[]  vertices)
inlinestatic

Returns a centroid of a polygon defined by vertices .

Parameters
vertices
Returns

◆ CalculatePolygonInertiaFactor()

static FP Photon.Deterministic.FPVector2.CalculatePolygonInertiaFactor ( FPVector2[]  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.

Parameters
verticesThe 2D vertices that define the polygon.
Returns
The mass moment of inertia factor of the polygon.

◆ CalculatePolygonLocalSupport() [1/2]

static FPVector2 Photon.Deterministic.FPVector2.CalculatePolygonLocalSupport ( FPVector2[]  vertices,
ref FPVector2  localDir 
)
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.

Parameters
verticesThe 2D vertices that define the polygon.
localDirThe direction, in local space, in which the support point will be calculated.
Returns
The support point, in local space.

◆ CalculatePolygonLocalSupport() [2/2]

static unsafe FPVector2 Photon.Deterministic.FPVector2.CalculatePolygonLocalSupport ( FPVector2 vertices,
int  verticesCount,
ref FPVector2  localDir 
)
inlinestatic

Calculates the local support point of a polygon in a given direction.

Parameters
verticesAn array of vertices that make up the polygon.
verticesCountThe number of vertices in the polygon.
localDirThe direction for which to find the local support point.
Returns
The local support point of the polygon in the given direction.

◆ CalculatePolygonRadius()

static FP Photon.Deterministic.FPVector2.CalculatePolygonRadius ( FPVector2[]  vertices)
inlinestatic

Returns a radius of a centered polygon defined by vertices .

Parameters
vertices
Returns

◆ MoveTowards()

static FPVector2 Photon.Deterministic.FPVector2.MoveTowards ( FPVector2  from,
FPVector2  to,
FP  maxDelta 
)
inlinestatic

Calculate a position between the points specified by from and to , moving no farther than the distance specified by maxDelta .

Parameters
from
to
maxDelta
Returns

s

◆ operator==()

static Boolean Photon.Deterministic.FPVector2.operator== ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Returns true if two vectors are exactly equal.

Parameters
a
b
Returns

◆ operator!=()

static Boolean Photon.Deterministic.FPVector2.operator!= ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Returns true if two vectors are not exactly equal.

Parameters
a
b
Returns

◆ operator-() [1/2]

static FPVector2 Photon.Deterministic.FPVector2.operator- ( FPVector2  v)
inlinestatic

Negates each component of v vector.

Parameters
v
Returns

◆ operator+()

static FPVector2 Photon.Deterministic.FPVector2.operator+ ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Adds two vectors.

Parameters
a
b
Returns

◆ operator-() [2/2]

static FPVector2 Photon.Deterministic.FPVector2.operator- ( FPVector2  a,
FPVector2  b 
)
inlinestatic

Subtracts b from a

Parameters
a
b
Returns

◆ operator*() [1/4]

static FPVector2 Photon.Deterministic.FPVector2.operator* ( FPVector2  v,
FP  s 
)
inlinestatic

Multiplies each component of v times s .

Parameters
v
s
Returns

◆ operator*() [2/4]

static FPVector2 Photon.Deterministic.FPVector2.operator* ( FP  s,
FPVector2  v 
)
inlinestatic

Multiplies each component of v times s .

Parameters
v
s
Returns

◆ operator*() [3/4]

static FPVector2 Photon.Deterministic.FPVector2.operator* ( FPVector2  v,
Int32  s 
)
inlinestatic

Multiplies each component of v times s .

Parameters
v
s
Returns

◆ operator*() [4/4]

static FPVector2 Photon.Deterministic.FPVector2.operator* ( Int32  s,
FPVector2  v 
)
inlinestatic

Multiplies each component of v times s .

Parameters
v
s
Returns

◆ operator/() [1/2]

static FPVector2 Photon.Deterministic.FPVector2.operator/ ( FPVector2  v,
FP  s 
)
inlinestatic

Divides each component of v by s .

Parameters
v
s
Returns

◆ operator/() [2/2]

static FPVector2 Photon.Deterministic.FPVector2.operator/ ( FPVector2  v,
Int32  s 
)
inlinestatic

Divides each component of v by s .

Parameters
v
s
Returns

Member Data Documentation

◆ SIZE

const int Photon.Deterministic.FPVector2.SIZE = FP.SIZE * 2
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.

◆ Zero

FPVector2 Photon.Deterministic.FPVector2.Zero => new FPVector2()
static

A vector with components (0,0);

◆ X

FP Photon.Deterministic.FPVector2.X

The X component of the vector.

◆ Y

FP Photon.Deterministic.FPVector2.Y

The Y component of the vector.

Property Documentation

◆ One

FPVector2 Photon.Deterministic.FPVector2.One
staticget

A vector with components (1,1);

◆ Right

FPVector2 Photon.Deterministic.FPVector2.Right
staticget

A vector with components (1,0);

◆ Left

FPVector2 Photon.Deterministic.FPVector2.Left
staticget

A vector with components (-1,0);

◆ Up

FPVector2 Photon.Deterministic.FPVector2.Up
staticget

A vector with components (0,1);

◆ Down

FPVector2 Photon.Deterministic.FPVector2.Down
staticget

A vector with components (0,-1);

◆ MinValue

FPVector2 Photon.Deterministic.FPVector2.MinValue
staticget

A vector with components (FP.MinValue,FP.MinValue);

◆ MaxValue

FPVector2 Photon.Deterministic.FPVector2.MaxValue
staticget

A vector with components (FP.MaxValue,FP.MaxValue);

◆ UseableMin

FPVector2 Photon.Deterministic.FPVector2.UseableMin
staticget

A vector with components (FP.UseableMin,FP.UseableMin);

◆ UseableMax

FPVector2 Photon.Deterministic.FPVector2.UseableMax
staticget

A vector with components (FP.UseableMax,FP.UseableMax);

◆ Magnitude

FP Photon.Deterministic.FPVector2.Magnitude
get

Gets the length of the vector.

Returns
Returns the length of the vector.

◆ SqrMagnitude

FP Photon.Deterministic.FPVector2.SqrMagnitude
get

Gets the squared length of the vector.

Returns
Returns the squared length of the vector.

◆ Normalized

FPVector2 Photon.Deterministic.FPVector2.Normalized
get

Gets a normalized version of the vector.

Returns
Returns a normalized version of the vector.

◆ XOY

FPVector3 Photon.Deterministic.FPVector2.XOY
get

Returns vector (X, 0, Y).

◆ XYO

FPVector3 Photon.Deterministic.FPVector2.XYO
get

Returns vector (X, Y, 0).

◆ OXY

FPVector3 Photon.Deterministic.FPVector2.OXY
get

Returns vector (0, X, Y).

◆ XXX

FPVector3 Photon.Deterministic.FPVector2.XXX
get

Returns a new FPVector3 using the X, X and X components of this vector.

◆ XXY

FPVector3 Photon.Deterministic.FPVector2.XXY
get

Returns a new FPVector3 using the X, X and Y components of this vector.

◆ XYX

FPVector3 Photon.Deterministic.FPVector2.XYX
get

Returns a new FPVector3 using the X, Y and X components of this vector.

◆ XYY

FPVector3 Photon.Deterministic.FPVector2.XYY
get

Returns a new FPVector3 using the X, Y and Y components of this vector.

◆ XX

FPVector2 Photon.Deterministic.FPVector2.XX
get

Returns a new FPVector2 using the X and X components of this vector.

◆ XY

FPVector2 Photon.Deterministic.FPVector2.XY
get

Returns a new FPVector2 using the X and Y components of this vector.

◆ YYY

FPVector3 Photon.Deterministic.FPVector2.YYY
get

Returns a new FPVector3 using the Y, Y and Y components of this vector.

◆ YYX

FPVector3 Photon.Deterministic.FPVector2.YYX
get

Returns a new FPVector3 using the Y, Y and X components of this vector.

◆ YXY

FPVector3 Photon.Deterministic.FPVector2.YXY
get

Returns a new FPVector3 using the Y, X and Y components of this vector.

◆ YXX

FPVector3 Photon.Deterministic.FPVector2.YXX
get

Returns a new FPVector3 using the Y, X and X components of this vector.

◆ YY

FPVector2 Photon.Deterministic.FPVector2.YY
get

Returns a new FPVector2 using the Y and Y components of this vector.

◆ YX

FPVector2 Photon.Deterministic.FPVector2.YX
get

Returns a new FPVector2 using the Y and X components of this vector.