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; } }
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); }
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); }
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); }
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); }
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; } }
public void Transform(CMatrix matrix, bool isFromSaved) { Matrix m = MathConverter.ToXNAMatrix(matrix); if (isFromSaved) { _transform = m * _savedTransform; } else { _transform = m * _transform; } }
public void Transform(CMatrix matrix) { ModelMesh.ParentBone.Transform = matrix * ModelMesh.ParentBone.Transform; }
public void Draw(CMatrix world, CMatrix view, CMatrix projection) { throw new NotImplementedException(); }