Пример #1
0
        public Matrix44 <T> SetShear(Shear6 <T> h, T unit)
        {
            x[0][0] = unit;
            x[0][1] = h.YX;
            x[0][2] = h.ZX;
            x[0][3] = Numeric <T> .Zero();

            x[1][0] = h.XY;
            x[1][1] = unit;
            x[1][2] = h.ZY;
            x[1][3] = Numeric <T> .Zero();

            x[2][0] = h.XZ;
            x[2][1] = h.YZ;
            x[2][2] = unit;
            x[2][3] = Numeric <T> .Zero();

            x[3][0] = Numeric <T> .Zero();

            x[3][1] = Numeric <T> .Zero();

            x[3][2] = Numeric <T> .Zero();

            x[3][3] = unit;

            return(this);
        }
 private static bool Equals(ref Shear6 <T> v1, ref Shear6 <T> v2)
 {
     return(EqualityComparer <T> .Default.Equals(v1.xy, v2.xy) &&
            EqualityComparer <T> .Default.Equals(v1.xz, v2.xz) &&
            EqualityComparer <T> .Default.Equals(v1.yz, v2.yz) &&
            EqualityComparer <T> .Default.Equals(v1.yx, v2.yx) &&
            EqualityComparer <T> .Default.Equals(v1.zx, v2.zx) &&
            EqualityComparer <T> .Default.Equals(v1.zy, v2.zy));
 }
 public override bool Equals(object obj)
 {
     if (obj != null && obj is Shear6 <T> )
     {
         Shear6 <T> other = (Shear6 <T>)obj;
         return(Equals(ref this, ref other));
     }
     return(base.Equals(obj));
 }
 public Shear6(Shear6 <T> h)
 {
     xy = h.xy;
     xz = h.xz;
     yz = h.yz;
     yx = h.yx;
     zx = h.zx;
     zy = h.zy;
 }
Пример #5
0
        public Matrix44 <T> Shear(Shear6 <T> h)
        {
            Matrix44 <T> P = new Matrix44 <T>(this);

            for (int i = 0; i < 4; i++)
            {
                x[0][i] = P[0][i] + h.YX * P[1][i] + h.ZX * P[2][i];
                x[1][i] = h.XY * P[0][i] + P[1][i] + h.ZY * P[2][i];
                x[2][i] = h.XZ * P[0][i] + h.YZ * P[1][i] + P[2][i];
            }

            return(this);
        }
 public bool Equals(Shear6 <T> other)
 {
     return(Equals(this, other));
 }