public ChasedOrientation(ChasedBall ball) { _ball = ball; InitializeComponent(); this.DataContext = this; _initialized = true; // Fire the events to set the properties trkSpeed_ValueChanged(this, new EventArgs()); trkDelay_ValueChanged(this, new EventArgs()); }
public ChasedPosition(ChasedBall ball) { _ball = ball; InitializeComponent(); this.DataContext = this; _initialized = true; // Fire the events to set the properties chkBoundCube_Checked(this, new RoutedEventArgs()); trkSpeed_ValueChanged(this, new EventArgs()); trkDelay_ValueChanged(this, new EventArgs()); }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { _itemOptions = new ItemOptions(); #region Init World _boundryMin = new Point3D(-BOUNDRYSIZEHALF, -BOUNDRYSIZEHALF, -BOUNDRYSIZEHALF); _boundryMax = new Point3D(BOUNDRYSIZEHALF, BOUNDRYSIZEHALF, BOUNDRYSIZEHALF); _world = new World(); _world.Updating += new EventHandler<WorldUpdatingArgs>(World_Updating); List<Point3D[]> innerLines, outerLines; _world.SetCollisionBoundry(out innerLines, out outerLines, _boundryMin, _boundryMax); #endregion #region Materials _materialManager = new MaterialManager(_world); // Wall Game.Newt.v2.NewtonDynamics.Material material = new Game.Newt.v2.NewtonDynamics.Material(); material.Elasticity = .1d; _material_Wall = _materialManager.AddMaterial(material); // Ball material = new Game.Newt.v2.NewtonDynamics.Material(); _material_Ball = _materialManager.AddMaterial(material); #endregion #region Trackball // Trackball _trackball = new TrackBallRoam(_camera); _trackball.KeyPanScale = 15d; _trackball.EventSource = grdViewPort; //NOTE: If this control doesn't have a background color set, the trackball won't see events (I think transparent is ok, just not null) _trackball.AllowZoomOnMouseWheel = true; _trackball.Mappings.AddRange(TrackBallMapping.GetPrebuilt(TrackBallMapping.PrebuiltMapping.MouseComplete_NoLeft)); _trackball.Mappings.AddRange(TrackBallMapping.GetPrebuilt(TrackBallMapping.PrebuiltMapping.Keyboard_ASDW_In)); _trackball.ShouldHitTestOnOrbit = true; //_trackball.UserMovedCamera += new EventHandler<UserMovedCameraArgs>(Trackball_UserMovedCamera); //_trackball.GetOrbitRadius += new EventHandler<GetOrbitRadiusArgs>(Trackball_GetOrbitRadius); #endregion #region Chased Ball _chasedBall = new ChasedBall(); _chasedBall.MotionType_Position = MotionType_Position.Stop; _chasedBall.MotionType_Orientation = MotionType_Orientation.Stop; _chasedBall.BoundrySizeChanged += new EventHandler(ChasedBall_BoundrySizeChanged); // Ball visual _chasedBallVisual = GetChaseBallVisual_Position(); _chasedBallTransform = new TranslateTransform3D(); _chasedBallVisual.Transform = _chasedBallTransform; _viewport.Children.Add(_chasedBallVisual); // Direction Visual var directionVisual = GetChaseBallVisual_Orientation(); _chasedDirectionModel = directionVisual.Item1; _chasedDirectionVisual = directionVisual.Item2; _viewport.Children.Add(_chasedDirectionVisual); // Panels (the act of instantiating them will update the ball's properties) pnlChasePosition.Content = new ChasedPosition(_chasedBall) { Foreground = Brushes.White, }; pnlChaseOrientation.Content = new ChasedOrientation(_chasedBall) { Foreground = Brushes.White, }; #endregion #region Debug Visuals // Put these on the viewport before the ball so that it is propertly semitransparent //TODO: Draw the bounding box. Use XYZ colors. This will help the user stay oriented #endregion #region Body Ball _bodyBall = new BodyBall(_world); //_bodyBall.PhysicsBody.AngularDamping = new Vector3D(.0001, .0001, .0001); //_bodyBall.PhysicsBody.AngularVelocity = new Vector3D(0, 0, 4 * Math.PI); _viewport.Children.AddRange(_bodyBall.Visuals3D); #endregion RedrawBoundry(); _world.UnPause(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), this.Title, MessageBoxButton.OK, MessageBoxImage.Error); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { _itemOptions = new ItemOptions(); #region Init World _boundryMin = new Point3D(-BOUNDRYSIZEHALF, -BOUNDRYSIZEHALF, -BOUNDRYSIZEHALF); _boundryMax = new Point3D(BOUNDRYSIZEHALF, BOUNDRYSIZEHALF, BOUNDRYSIZEHALF); _world = new World(); _world.Updating += new EventHandler <WorldUpdatingArgs>(World_Updating); _world.SetCollisionBoundry(_boundryMin, _boundryMax); #endregion #region Materials _materialManager = new MaterialManager(_world); // Wall Game.Newt.v2.NewtonDynamics.Material material = new Game.Newt.v2.NewtonDynamics.Material(); material.Elasticity = .1d; _material_Wall = _materialManager.AddMaterial(material); // Ball material = new Game.Newt.v2.NewtonDynamics.Material(); _material_Ball = _materialManager.AddMaterial(material); #endregion #region Trackball // Trackball _trackball = new TrackBallRoam(_camera); _trackball.KeyPanScale = 15d; _trackball.EventSource = grdViewPort; //NOTE: If this control doesn't have a background color set, the trackball won't see events (I think transparent is ok, just not null) _trackball.AllowZoomOnMouseWheel = true; _trackball.Mappings.AddRange(TrackBallMapping.GetPrebuilt(TrackBallMapping.PrebuiltMapping.MouseComplete_NoLeft)); _trackball.Mappings.AddRange(TrackBallMapping.GetPrebuilt(TrackBallMapping.PrebuiltMapping.Keyboard_ASDW_In)); _trackball.ShouldHitTestOnOrbit = true; //_trackball.UserMovedCamera += new EventHandler<UserMovedCameraArgs>(Trackball_UserMovedCamera); //_trackball.GetOrbitRadius += new EventHandler<GetOrbitRadiusArgs>(Trackball_GetOrbitRadius); #endregion #region Chased Ball _chasedBall = new ChasedBall(); _chasedBall.MotionType_Position = MotionType_Position.Stop; _chasedBall.MotionType_Orientation = MotionType_Orientation.Stop; _chasedBall.BoundrySizeChanged += new EventHandler(ChasedBall_BoundrySizeChanged); // Ball visual _chasedBallVisual = GetChaseBallVisual_Position(); _chasedBallTransform = new TranslateTransform3D(); _chasedBallVisual.Transform = _chasedBallTransform; _viewport.Children.Add(_chasedBallVisual); // Direction Visual var directionVisual = GetChaseBallVisual_Orientation(); _chasedDirectionModel = directionVisual.Item1; _chasedDirectionVisual = directionVisual.Item2; _viewport.Children.Add(_chasedDirectionVisual); // Panels (the act of instantiating them will update the ball's properties) pnlChasePosition.Content = new ChasedPosition(_chasedBall) { Foreground = Brushes.White, }; pnlChaseOrientation.Content = new ChasedOrientation(_chasedBall) { Foreground = Brushes.White, }; #endregion #region Debug Visuals // Put these on the viewport before the ball so that it is propertly semitransparent //TODO: Draw the bounding box. Use XYZ colors. This will help the user stay oriented #endregion #region Body Ball _bodyBall = new BodyBall(_world); //_bodyBall.PhysicsBody.AngularDamping = new Vector3D(.0001, .0001, .0001); //_bodyBall.PhysicsBody.AngularVelocity = new Vector3D(0, 0, 4 * Math.PI); _viewport.Children.AddRange(_bodyBall.Visuals3D); #endregion RedrawBoundry(); _world.UnPause(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), this.Title, MessageBoxButton.OK, MessageBoxImage.Error); } }