Beispiel #1
0
        private void cubePanel_MouseMove(object sender, MouseEventArgs e)
        {
            if (Mouse.LeftButton == MouseButtonState.Pressed)
            {
                Vector3 p = Project(e.GetPosition(cubePanel));
                //Position2 p1 = new Position2(_prevLocation.X, _prevLocation.Y);
                //Position2 p2 = new Position2(p.X, p.Y);

                /*
                 * Vector3 axis;
                 * double theta;
                 * Knoics.Interactive.Rotation.GetTransform(_prevLocation, p, out axis, out theta);
                 * System.Windows.Media.Media3D.Quaternion delta = new System.Windows.Media.Media3D.Quaternion(new Vector3D(axis.X, axis.Y, axis.Z), theta);
                 *
                 *
                 * AxisAngleRotation3D r = ((RotateTransform3D)_rubikscube.VisualModel.Transform).Rotation as AxisAngleRotation3D;// _rotation;
                 * System.Windows.Media.Media3D.Quaternion q = new System.Windows.Media.Media3D.Quaternion(r.Axis, r.Angle);
                 * q *= delta;
                 *
                 * r.Axis = q.Axis;
                 * r.Angle = q.Angle;
                 */

                Knoics.Math.Matrix m   = Knoics.Interactive.Rotation.GetRotationTransform(_prevLocation, p, true);
                Matrix3D           m3d = MathConverter.ToMatrix3D(m);
                _camera.Transform = new MatrixTransform3D(Matrix3D.Multiply(m3d, _camera.Transform.Value));// m * _model.Transform;

                _prevLocation = p;
            }
        }
Beispiel #2
0
        public static Matrix3D ToMatrix3D(CMatrix matrix)
        {
            Matrix3D m = new Matrix3D();

            m.M11     = matrix.M11; m.M12 = matrix.M12; m.M13 = matrix.M13; m.M14 = matrix.M14;
            m.M21     = matrix.M21; m.M22 = matrix.M22; m.M23 = matrix.M23; m.M24 = matrix.M24;
            m.M31     = matrix.M31; m.M32 = matrix.M32; m.M33 = matrix.M33; m.M34 = matrix.M34;
            m.OffsetX = matrix.M41; m.OffsetY = matrix.M42; m.OffsetZ = matrix.M43; m.M44 = matrix.M44;
            return(m);
        }
Beispiel #3
0
        public static CMatrix ToMatrix(Matrix3D matrix)
        {
            CMatrix m = new CMatrix();

            m.M11 = (float)matrix.M11; m.M12 = (float)matrix.M12; m.M13 = (float)matrix.M13; m.M14 = (float)matrix.M14;
            m.M21 = (float)matrix.M21; m.M22 = (float)matrix.M22; m.M23 = (float)matrix.M23; m.M24 = (float)matrix.M24;
            m.M31 = (float)matrix.M31; m.M32 = (float)matrix.M32; m.M33 = (float)matrix.M33; m.M34 = (float)matrix.M34;
            m.M41 = (float)matrix.OffsetX; m.M42 = (float)matrix.OffsetY; m.M43 = (float)matrix.OffsetZ; m.M44 = (float)matrix.M44;
            return(m);
        }
Beispiel #4
0
        public static CMatrix FromXNAMatrix(Matrix matrix)
        {
            CMatrix m = new CMatrix();

            m.M11 = matrix.M11; m.M12 = matrix.M12; m.M13 = matrix.M13; m.M14 = matrix.M14;
            m.M21 = matrix.M21; m.M22 = matrix.M22; m.M23 = matrix.M23; m.M24 = matrix.M24;
            m.M31 = matrix.M31; m.M32 = matrix.M32; m.M33 = matrix.M33; m.M34 = matrix.M34;
            m.M41 = matrix.M41; m.M42 = matrix.M42; m.M43 = matrix.M43; m.M44 = matrix.M44;
            return(m);
        }
Beispiel #5
0
        public static Matrix ToXNAMatrix(CMatrix matrix)
        {
            Matrix m = new Matrix();

            m.M11 = (float)matrix.M11; m.M12 = (float)matrix.M12; m.M13 = (float)matrix.M13; m.M14 = (float)matrix.M14;
            m.M21 = (float)matrix.M21; m.M22 = (float)matrix.M22; m.M23 = (float)matrix.M23; m.M24 = (float)matrix.M24;
            m.M31 = (float)matrix.M31; m.M32 = (float)matrix.M32; m.M33 = (float)matrix.M33; m.M34 = (float)matrix.M34;
            m.M41 = (float)matrix.M41; m.M42 = (float)matrix.M42; m.M43 = (float)matrix.M43; m.M44 = (float)matrix.M44;
            return(m);
        }
Beispiel #6
0
        public void DoTransform(CMatrix matrix, bool isFromSaved)
        {
            Matrix3D m = MathConverter.ToMatrix3D(matrix);

            if (isFromSaved)
            {
                _visualModel.Transform = new MatrixTransform3D(Matrix3D.Multiply(m, _savedTransform));// m * _model.Transform;
            }
            else
            {
                _visualModel.Transform = new MatrixTransform3D(Matrix3D.Multiply(m, _visualModel.Transform.Value));// m * _model.Transform;
            }
        }
Beispiel #7
0
        public void Transform(CMatrix matrix, bool isFromSaved)
        {
            Matrix m = MathConverter.ToXNAMatrix(matrix);

            if (isFromSaved)
            {
                _transform = m * _savedTransform;
            }
            else
            {
                _transform = m * _transform;
            }
        }
Beispiel #8
0
 public void Transform(CMatrix matrix)
 {
     ModelMesh.ParentBone.Transform = matrix * ModelMesh.ParentBone.Transform;
 }
Beispiel #9
0
 public void Draw(CMatrix world, CMatrix view, CMatrix projection)
 {
     throw new NotImplementedException();
 }