void LoadPathsAndWalls(MainGameViewModel context) { foreach (var path in context.Maze.Paths) { FileModelVisual3D fmv3D = new FileModelVisual3D(); fmv3D.Source = context.AssemblyPath + ViewConstants.GiftModelPath; var transformGroup = new Transform3DGroup(); Binding binding = new Binding(); binding.Path = new PropertyPath(ViewConstants.PropertyPathHaveGift); binding.Source = path; binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; binding.Converter = FindResource(ViewConstants.ResourceNameConverterBoolToVisibility) as BooleanToVisibilityConverter; BindingOperations.SetBinding(fmv3D, FileModelVisual3D.VisibilityProperty, binding); Vector3D vector = new Vector3D(path.Row * ViewConstants.OneTailSize, ViewConstants.GiftsYPos, path.Cell * -ViewConstants.OneTailSize); transformGroup.Children.Add(new TranslateTransform3D(vector)); transformGroup.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1.0, 0.0, 0.0), 90))); transformGroup.Children.Add(new ScaleTransform3D(ViewConstants.ScaleAll, ViewConstants.ScaleAll, ViewConstants.ScaleAll)); fmv3D.Transform = transformGroup; Viewport.Children.Add(fmv3D); } foreach (var wall in context.ListBricks) { FileModelVisual3D fmv3D = new FileModelVisual3D(); fmv3D.Source = context.AssemblyPath + ViewConstants.WallModelPath; var transformGroup = new Transform3DGroup(); Vector3D vector = new Vector3D(wall.X * ViewConstants.OneTailSize, 0.0, wall.Y * -ViewConstants.OneTailSize); transformGroup.Children.Add(new TranslateTransform3D(vector)); transformGroup.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1.0, 0.0, 0.0), 90))); transformGroup.Children.Add(new ScaleTransform3D(ViewConstants.ScaleAll, ViewConstants.ScaleAll, ViewConstants.ScaleAll)); fmv3D.Transform = transformGroup; Viewport.Children.Add(fmv3D); } }
FileModelVisual3D LoadModelPath(MainGameViewModel context, string path) { FileModelVisual3D fmv3D = new FileModelVisual3D(); fmv3D.Source = context.AssemblyPath + path; return(fmv3D); }
Transform3DGroup LoadModelPositionScaleAndBaseRot(MainGameViewModel context, object Source) { var transformGroup = new Transform3DGroup(); Binding bindingAngleRot = new Binding(); var axisAngleRotation3D = new AxisAngleRotation3D(); axisAngleRotation3D.Axis = new Vector3D(0.0, 1.0, 0.0); bindingAngleRot.Path = new PropertyPath(ViewConstants.PropertyPathDirection); bindingAngleRot.Source = Source; bindingAngleRot.Converter = new DirectionToRotationConverter(); bindingAngleRot.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; BindingOperations.SetBinding(axisAngleRotation3D, AxisAngleRotation3D.AngleProperty, bindingAngleRot); transformGroup.Children.Add(new RotateTransform3D(axisAngleRotation3D)); var translateTransform = new TranslateTransform3D(); Binding bindingX = new Binding(); bindingX.Path = new PropertyPath(ViewConstants.PropertyPathRow); bindingX.Source = Source; bindingX.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; bindingX.Converter = new GridToPosXConverter(); BindingOperations.SetBinding(translateTransform, TranslateTransform3D.OffsetXProperty, bindingX); Binding bindingZ = new Binding(); bindingZ.Path = new PropertyPath(ViewConstants.PropertyPathCell); bindingZ.Source = Source; bindingZ.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; bindingZ.Converter = new GridToPosZConverter(); BindingOperations.SetBinding(translateTransform, TranslateTransform3D.OffsetZProperty, bindingZ); transformGroup.Children.Add(translateTransform); transformGroup.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1.0, 0.0, 0.0), 90))); transformGroup.Children.Add(new ScaleTransform3D(ViewConstants.ScaleAll, ViewConstants.ScaleAll, ViewConstants.ScaleAll)); return(transformGroup); }
public MainGamePage() { this.InitializeComponent(); DataContext = new MainGameViewModel(); }
public MainGamePage() { InitializeComponent(); BindingContext = new MainGameViewModel(); }