Rename Vector*() functions to Vector3*()

This commit is contained in:
Milan Nikolic 2017-10-26 19:01:14 +02:00
parent 0f4ce7d6d9
commit 2a0340eb70

View file

@ -136,28 +136,50 @@ func Mat2MultiplyVector2(matrix raylib.Mat2, vector raylib.Vector2) raylib.Vecto
return raylib.NewVector2(matrix.M00*vector.X+matrix.M01*vector.Y, matrix.M10*vector.X+matrix.M11*vector.Y) return raylib.NewVector2(matrix.M00*vector.X+matrix.M01*vector.Y, matrix.M10*vector.X+matrix.M11*vector.Y)
} }
// VectorZero - Vector with components value 0.0 // Vector3Zero - Vector with components value 0.0
func VectorZero() raylib.Vector3 { func Vector3Zero() raylib.Vector3 {
return raylib.NewVector3(0.0, 0.0, 0.0) return raylib.NewVector3(0.0, 0.0, 0.0)
} }
// VectorOne - Vector with components value 1.0 // Vector3One - Vector with components value 1.0
func VectorOne() raylib.Vector3 { func Vector3One() raylib.Vector3 {
return raylib.NewVector3(1.0, 1.0, 1.0) return raylib.NewVector3(1.0, 1.0, 1.0)
} }
// VectorAdd - Add two vectors // Vector3Add - Add two vectors
func VectorAdd(v1, v2 raylib.Vector3) raylib.Vector3 { func Vector3Add(v1, v2 raylib.Vector3) raylib.Vector3 {
return raylib.NewVector3(v1.X+v2.X, v1.Y+v2.Y, v1.Z+v2.Z) return raylib.NewVector3(v1.X+v2.X, v1.Y+v2.Y, v1.Z+v2.Z)
} }
// VectorSubtract - Subtract two vectors // Vector3Multiply - Multiply vector by scalar
func VectorSubtract(v1, v2 raylib.Vector3) raylib.Vector3 { func Vector3Multiply(v raylib.Vector3, scalar float32) raylib.Vector3 {
result := raylib.Vector3{}
result.X = v.X * scalar
result.Y = v.Y * scalar
result.Z = v.Z * scalar
return result
}
// Vector3MultiplyV - Multiply vector by vector
func Vector3MultiplyV(v1, v2 raylib.Vector3) raylib.Vector3 {
result := raylib.Vector3{}
result.X = v1.X * v2.X
result.Y = v1.Y * v2.Y
result.Z = v1.Z * v2.Z
return result
}
// Vector3Subtract - Subtract two vectors
func Vector3Subtract(v1, v2 raylib.Vector3) raylib.Vector3 {
return raylib.NewVector3(v1.X-v2.X, v1.Y-v2.Y, v1.Z-v2.Z) return raylib.NewVector3(v1.X-v2.X, v1.Y-v2.Y, v1.Z-v2.Z)
} }
// VectorCrossProduct - Calculate two vectors cross product // Vector3CrossProduct - Calculate two vectors cross product
func VectorCrossProduct(v1, v2 raylib.Vector3) raylib.Vector3 { func Vector3CrossProduct(v1, v2 raylib.Vector3) raylib.Vector3 {
result := raylib.Vector3{} result := raylib.Vector3{}
result.X = v1.Y*v2.Z - v1.Z*v2.Y result.X = v1.Y*v2.Z - v1.Z*v2.Y
@ -167,8 +189,8 @@ func VectorCrossProduct(v1, v2 raylib.Vector3) raylib.Vector3 {
return result return result
} }
// VectorPerpendicular - Calculate one vector perpendicular vector // Vector3Perpendicular - Calculate one vector perpendicular vector
func VectorPerpendicular(v raylib.Vector3) raylib.Vector3 { func Vector3Perpendicular(v raylib.Vector3) raylib.Vector3 {
result := raylib.Vector3{} result := raylib.Vector3{}
min := math.Abs(float64(v.X)) min := math.Abs(float64(v.X))
@ -183,23 +205,23 @@ func VectorPerpendicular(v raylib.Vector3) raylib.Vector3 {
cardinalAxis = raylib.NewVector3(0.0, 0.0, 1.0) cardinalAxis = raylib.NewVector3(0.0, 0.0, 1.0)
} }
result = VectorCrossProduct(v, cardinalAxis) result = Vector3CrossProduct(v, cardinalAxis)
return result return result
} }
// VectorLength - Calculate vector length // Vector3Length - Calculate vector length
func VectorLength(v raylib.Vector3) float32 { func Vector3Length(v raylib.Vector3) float32 {
return float32(math.Sqrt(float64(v.X*v.X + v.Y*v.Y + v.Z*v.Z))) return float32(math.Sqrt(float64(v.X*v.X + v.Y*v.Y + v.Z*v.Z)))
} }
// VectorDotProduct - Calculate two vectors dot product // Vector3DotProduct - Calculate two vectors dot product
func VectorDotProduct(v1, v2 raylib.Vector3) float32 { func Vector3DotProduct(v1, v2 raylib.Vector3) float32 {
return v1.X*v2.X + v1.Y*v2.Y + v1.Z*v2.Z return v1.X*v2.X + v1.Y*v2.Y + v1.Z*v2.Z
} }
// VectorDistance - Calculate distance between two vectors // Vector3Distance - Calculate distance between two vectors
func VectorDistance(v1, v2 raylib.Vector3) float32 { func Vector3Distance(v1, v2 raylib.Vector3) float32 {
dx := v2.X - v1.X dx := v2.X - v1.X
dy := v2.Y - v1.Y dy := v2.Y - v1.Y
dz := v2.Z - v1.Z dz := v2.Z - v1.Z
@ -207,25 +229,25 @@ func VectorDistance(v1, v2 raylib.Vector3) float32 {
return float32(math.Sqrt(float64(dx*dx + dy*dy + dz*dz))) return float32(math.Sqrt(float64(dx*dx + dy*dy + dz*dz)))
} }
// VectorScale - Scale provided vector // Vector3Scale - Scale provided vector
func VectorScale(v *raylib.Vector3, scale float32) { func Vector3Scale(v *raylib.Vector3, scale float32) {
v.X *= scale v.X *= scale
v.Y *= scale v.Y *= scale
v.Z *= scale v.Z *= scale
} }
// VectorNegate - Negate provided vector (invert direction) // Vector3Negate - Negate provided vector (invert direction)
func VectorNegate(v *raylib.Vector3) { func Vector3Negate(v *raylib.Vector3) {
v.X = -v.X v.X = -v.X
v.Y = -v.Y v.Y = -v.Y
v.Z = -v.Z v.Z = -v.Z
} }
// VectorNormalize - Normalize provided vector // Vector3Normalize - Normalize provided vector
func VectorNormalize(v *raylib.Vector3) { func Vector3Normalize(v *raylib.Vector3) {
var length, ilength float32 var length, ilength float32
length = VectorLength(*v) length = Vector3Length(*v)
if length == 0 { if length == 0 {
length = 1.0 length = 1.0
@ -238,8 +260,8 @@ func VectorNormalize(v *raylib.Vector3) {
v.Z *= ilength v.Z *= ilength
} }
// VectorTransform - Transforms a Vector3 by a given Matrix // Vector3Transform - Transforms a Vector3 by a given Matrix
func VectorTransform(v *raylib.Vector3, mat raylib.Matrix) { func Vector3Transform(v *raylib.Vector3, mat raylib.Matrix) {
x := v.X x := v.X
y := v.Y y := v.Y
z := v.Z z := v.Z
@ -249,8 +271,8 @@ func VectorTransform(v *raylib.Vector3, mat raylib.Matrix) {
v.Z = mat.M2*x + mat.M6*y + mat.M10*z + mat.M14 v.Z = mat.M2*x + mat.M6*y + mat.M10*z + mat.M14
} }
// VectorLerp - Calculate linear interpolation between two vectors // Vector3Lerp - Calculate linear interpolation between two vectors
func VectorLerp(v1, v2 raylib.Vector3, amount float32) raylib.Vector3 { func Vector3Lerp(v1, v2 raylib.Vector3, amount float32) raylib.Vector3 {
result := raylib.Vector3{} result := raylib.Vector3{}
result.X = v1.X + amount*(v2.X-v1.X) result.X = v1.X + amount*(v2.X-v1.X)
@ -260,15 +282,15 @@ func VectorLerp(v1, v2 raylib.Vector3, amount float32) raylib.Vector3 {
return result return result
} }
// VectorReflect - Calculate reflected vector to normal // Vector3Reflect - Calculate reflected vector to normal
func VectorReflect(vector, normal raylib.Vector3) raylib.Vector3 { func Vector3Reflect(vector, normal raylib.Vector3) raylib.Vector3 {
// I is the original vector // I is the original vector
// N is the normal of the incident plane // N is the normal of the incident plane
// R = I - (2*N*( DotProduct[ I,N] )) // R = I - (2*N*( DotProduct[ I,N] ))
result := raylib.Vector3{} result := raylib.Vector3{}
dotProduct := VectorDotProduct(vector, normal) dotProduct := Vector3DotProduct(vector, normal)
result.X = vector.X - (2.0*normal.X)*dotProduct result.X = vector.X - (2.0*normal.X)*dotProduct
result.Y = vector.Y - (2.0*normal.Y)*dotProduct result.Y = vector.Y - (2.0*normal.Y)*dotProduct
@ -277,8 +299,8 @@ func VectorReflect(vector, normal raylib.Vector3) raylib.Vector3 {
return result return result
} }
// VectorMin - Return min value for each pair of components // Vector3Min - Return min value for each pair of components
func VectorMin(vec1, vec2 raylib.Vector3) raylib.Vector3 { func Vector3Min(vec1, vec2 raylib.Vector3) raylib.Vector3 {
result := raylib.Vector3{} result := raylib.Vector3{}
result.X = float32(math.Min(float64(vec1.X), float64(vec2.X))) result.X = float32(math.Min(float64(vec1.X), float64(vec2.X)))
@ -288,8 +310,8 @@ func VectorMin(vec1, vec2 raylib.Vector3) raylib.Vector3 {
return result return result
} }
// VectorMax - Return max value for each pair of components // Vector3Max - Return max value for each pair of components
func VectorMax(vec1, vec2 raylib.Vector3) raylib.Vector3 { func Vector3Max(vec1, vec2 raylib.Vector3) raylib.Vector3 {
result := raylib.Vector3{} result := raylib.Vector3{}
result.X = float32(math.Max(float64(vec1.X), float64(vec2.X))) result.X = float32(math.Max(float64(vec1.X), float64(vec2.X)))
@ -299,16 +321,16 @@ func VectorMax(vec1, vec2 raylib.Vector3) raylib.Vector3 {
return result return result
} }
// VectorBarycenter - Barycenter coords for p in triangle abc // Vector3Barycenter - Barycenter coords for p in triangle abc
func VectorBarycenter(p, a, b, c raylib.Vector3) raylib.Vector3 { func Vector3Barycenter(p, a, b, c raylib.Vector3) raylib.Vector3 {
v0 := VectorSubtract(b, a) v0 := Vector3Subtract(b, a)
v1 := VectorSubtract(c, a) v1 := Vector3Subtract(c, a)
v2 := VectorSubtract(p, a) v2 := Vector3Subtract(p, a)
d00 := VectorDotProduct(v0, v0) d00 := Vector3DotProduct(v0, v0)
d01 := VectorDotProduct(v0, v1) d01 := Vector3DotProduct(v0, v1)
d11 := VectorDotProduct(v1, v1) d11 := Vector3DotProduct(v1, v1)
d20 := VectorDotProduct(v2, v0) d20 := Vector3DotProduct(v2, v0)
d21 := VectorDotProduct(v2, v1) d21 := Vector3DotProduct(v2, v1)
denom := d00*d11 - d01*d01 denom := d00*d11 - d01*d01
@ -746,12 +768,12 @@ func MatrixOrtho(left, right, bottom, top, near, far float32) raylib.Matrix {
func MatrixLookAt(eye, target, up raylib.Vector3) raylib.Matrix { func MatrixLookAt(eye, target, up raylib.Vector3) raylib.Matrix {
var result raylib.Matrix var result raylib.Matrix
z := VectorSubtract(eye, target) z := Vector3Subtract(eye, target)
VectorNormalize(&z) Vector3Normalize(&z)
x := VectorCrossProduct(up, z) x := Vector3CrossProduct(up, z)
VectorNormalize(&x) Vector3Normalize(&x)
y := VectorCrossProduct(z, x) y := Vector3CrossProduct(z, x)
VectorNormalize(&y) Vector3Normalize(&y)
result.M0 = x.X result.M0 = x.X
result.M1 = x.Y result.M1 = x.Y
@ -961,11 +983,11 @@ func QuaternionToMatrix(q raylib.Quaternion) raylib.Matrix {
func QuaternionFromAxisAngle(axis raylib.Vector3, angle float32) raylib.Quaternion { func QuaternionFromAxisAngle(axis raylib.Vector3, angle float32) raylib.Quaternion {
result := raylib.NewQuaternion(0.0, 0.0, 0.0, 1.0) result := raylib.NewQuaternion(0.0, 0.0, 0.0, 1.0)
if VectorLength(axis) != 0.0 { if Vector3Length(axis) != 0.0 {
angle *= 0.5 angle *= 0.5
} }
VectorNormalize(&axis) Vector3Normalize(&axis)
sinres := float32(math.Sin(float64(angle))) sinres := float32(math.Sin(float64(angle)))
cosres := float32(math.Cos(float64(angle))) cosres := float32(math.Cos(float64(angle)))