public static void Animate(MeshDataModel obj, int millisecs, double bx, double by, double bz, double x, double y, double z) { obj.Transform = new System.Windows.Media.Media3D.TranslateTransform3D(x, y, z); var moveAnimationX = new DoubleAnimation { From = bx, To = x, AutoReverse = false, Duration = TimeSpan.FromMilliseconds(millisecs), }; var moveAnimationY = new DoubleAnimation { From = by, To = y, AutoReverse = false, Duration = TimeSpan.FromMilliseconds(millisecs), }; var moveAnimationZ = new DoubleAnimation { From = bz, To = z, AutoReverse = false, Duration = TimeSpan.FromMilliseconds(millisecs), //FillBehavior = FillBehavior.Stop, }; obj.Transform.BeginAnimation(System.Windows.Media.Media3D.TranslateTransform3D.OffsetXProperty, moveAnimationX, HandoffBehavior.SnapshotAndReplace); obj.Transform.BeginAnimation(System.Windows.Media.Media3D.TranslateTransform3D.OffsetYProperty, moveAnimationY, HandoffBehavior.SnapshotAndReplace); obj.Transform.BeginAnimation(System.Windows.Media.Media3D.TranslateTransform3D.OffsetZProperty, moveAnimationZ, HandoffBehavior.SnapshotAndReplace); }
public Carrier(int _unit_id, Material mat, double x, double y, double z) { unit_id = _unit_id; StartBrush = mat; carrrier = new MeshDataModel(); carrrier.Material = mat; var b1 = new MeshBuilder(); b1.AddBox(new SharpDX.Vector3(0, 0, -1f * (float)z / 2f), x + 0.3, 0.3, 0.3); b1.AddBox(new SharpDX.Vector3(0, 0, (float)z / 2f), x + 0.3, 0.3, 0.3); b1.AddBox(new SharpDX.Vector3(-1f * (float)x / 2f, 0, 0), 0.7, 0.3, z); b1.AddBox(new SharpDX.Vector3((float)x / 2f, 0, 0), 0.7, 0.3, z); carrrier.Geometry = b1.ToMeshGeometry3D(); ItemsSource.Add(carrrier); }