示例#1
0
 public void Cross(Vector3F v1, Vector3F v2)
 {
     Set(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
 }
示例#2
0
 protected bool Equals(Vector3F other)
 {
     return(x.Equals(other.x) && y.Equals(other.y) && z.Equals(other.z));
 }
示例#3
0
 public void Scale(Vector3F p)
 {
     x *= p.x;
     y *= p.y;
     z *= p.z;
 }
示例#4
0
 public void Average(Vector3F a, Vector3F b)
 {
     x = (a.x + b.x) / 2f;
     y = (a.y + b.y) / 2f;
     z = (a.z + b.z) / 2f;
 }
示例#5
0
 public float Angle(Vector3F v1)
 {
     double xx = y*v1.z - z*v1.y;
     double yy = z*v1.x - x*v1.z;
     double zz = x*v1.y - y*v1.x;
     double cross = Math.Sqrt(xx*xx + yy*yy + zz*zz);
     return (float) Math.Abs(Math.Atan2(cross, Dot(v1)));
 }
示例#6
0
 public static Vector3F SubtractNew(Vector3F t1, Vector3F t2)
 {
     return(new Vector3F(t1.x - t2.x, t1.y - t2.y, t1.z - t2.z));
 }
示例#7
0
 public void Scale(Vector3F p)
 {
     x *= p.x;
     y *= p.y;
     z *= p.z;
 }
示例#8
0
 public void Rotate(Vector3F t)
 {
     Rotate(t, t);
 }
示例#9
0
 public float DistanceSquared(Vector3F p1)
 {
     double dx = x - p1.x;
     double dy = y - p1.y;
     double dz = z - p1.z;
     return (float) (dx*dx + dy*dy + dz*dz);
 }
示例#10
0
 public float Dot(Vector3F v)
 {
     return x*v.x + y*v.y + z*v.z;
 }
示例#11
0
 public float Distance(Vector3F p1)
 {
     return (float) Math.Sqrt(DistanceSquared(p1));
 }
示例#12
0
 public void Cross(Vector3F v1, Vector3F v2)
 {
     Set(v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x);
 }
示例#13
0
 public void Average(Vector3F a, Vector3F b)
 {
     x = (a.x + b.x)/2f;
     y = (a.y + b.y)/2f;
     z = (a.z + b.z)/2f;
 }
示例#14
0
 public static Vector3F Abs(Vector3F v)
 {
     return(new Vector3F(Math.Abs(v.x), Math.Abs(v.y), Math.Abs(v.z)));
 }
示例#15
0
 public void ScaleAdd(float s, Vector3F t1, Vector3F t2)
 {
     x = s*t1.x + t2.x;
     y = s*t1.y + t2.y;
     z = s*t1.z + t2.z;
 }
示例#16
0
 public void Add(Vector3F t1, Vector3F t2)
 {
     x = t1.x + t2.x;
     y = t1.y + t2.y;
     z = t1.z + t2.z;
 }
示例#17
0
 public void Set(Vector3F t1)
 {
     x = t1.x;
     y = t1.y;
     z = t1.z;
 }
示例#18
0
 public Quat(Vector3F v, float theta)
 {
     Set(v, theta);
 }
示例#19
0
 public void Subtract(Vector3F t1, Vector3F t2)
 {
     x = t1.x - t2.x;
     y = t1.y - t2.y;
     z = t1.z - t2.z;
 }
示例#20
0
 public void Subtract(Vector3F t1, Vector3F t2)
 {
     x = t1.x - t2.x;
     y = t1.y - t2.y;
     z = t1.z - t2.z;
 }
示例#21
0
 public void Subtract(Vector3F t1)
 {
     x -= t1.x;
     y -= t1.y;
     z -= t1.z;
 }
示例#22
0
 public void Subtract(Vector3F t1)
 {
     x -= t1.x;
     y -= t1.y;
     z -= t1.z;
 }
示例#23
0
 protected bool Equals(Vector3F other)
 {
     return x.Equals(other.x) && y.Equals(other.y) && z.Equals(other.z);
 }
示例#24
0
 public void ScaleAdd(float s, Vector3F t1, Vector3F t2)
 {
     x = s * t1.x + t2.x;
     y = s * t1.y + t2.y;
     z = s * t1.z + t2.z;
 }
示例#25
0
 public Vector3F(Vector3F vec)
 {
     x = vec.x;
     y = vec.y;
     z = vec.z;
 }
示例#26
0
 public float Dot(Vector3F v)
 {
     return(x * v.x + y * v.y + z * v.z);
 }
示例#27
0
 public static Vector3F Abs(Vector3F v)
 {
     return new Vector3F(Math.Abs(v.x), Math.Abs(v.y), Math.Abs(v.z));
 }
示例#28
0
 public Vector3F(Vector3F vec)
 {
     x = vec.x;
     y = vec.y;
     z = vec.z;
 }
示例#29
0
 public static Vector3F Clamp(Vector3F x, Vector3F min, Vector3F max)
 {
     return new Vector3F(NumUtils.Clamp(x.x, min.x, max.x), NumUtils.Clamp(x.y, min.y, max.y),
         NumUtils.Clamp(x.z, min.z, max.z));
 }
示例#30
0
 public static Vector3F Clamp(Vector3F x, Vector3F min, Vector3F max)
 {
     return(new Vector3F(NumUtils.Clamp(x.x, min.x, max.x), NumUtils.Clamp(x.y, min.y, max.y),
                         NumUtils.Clamp(x.z, min.z, max.z)));
 }
示例#31
0
 public static Vector3F SubtractNew(Vector3F t1, Vector3F t2)
 {
     return new Vector3F(t1.x - t2.x, t1.y - t2.y, t1.z - t2.z);
 }
示例#32
0
 public void Set(Vector3F t1)
 {
     x = t1.x;
     y = t1.y;
     z = t1.z;
 }
示例#33
0
 public void Add(Vector3F t1, Vector3F t2)
 {
     x = t1.x + t2.x;
     y = t1.y + t2.y;
     z = t1.z + t2.z;
 }
示例#34
0
 public void Add(Vector3F t1)
 {
     x += t1.x;
     y += t1.y;
     z += t1.z;
 }
示例#35
0
 public AxisVector3F(Vector3F axis, float angle)
 {
     Set(axis, angle);
 }
示例#36
0
 public void Rotate(Vector3F t, Vector3F result)
 {
     result.Set(m00 * t.x + m01 * t.y + m02 * t.z, m10 * t.x + m11 * t.y + m12 * t.z, m20 * t.x + m21 * t.y + m22 * t.z);
 }
示例#37
0
 public float Distance(Vector3F p1)
 {
     return((float)Math.Sqrt(DistanceSquared(p1)));
 }
示例#38
0
 public Vector3F Get3DProjection(Vector3F v3D)
 {
     v3D.Set(q1, q2, q3);
     return(v3D);
 }
示例#39
0
 public void Add(Vector3F t1)
 {
     x += t1.x;
     y += t1.y;
     z += t1.z;
 }