コード例 #1
0
ファイル: CubeRenderer.cs プロジェクト: modulexcite/xbuilder
		public CubeRenderer(GraphicsDeviceControl parentControl, CameraController cameraController)
		{
			parentControl.MouseDown += (sender, e) =>
			{
				if (IsWithinCameraCube(parentControl, e.Location))
				{
					cameraController.MouseDown(ToXnaPoint(e.Location));
					_isCubeActive = true;
					parentControl.Invalidate();
				}
			};
			parentControl.MouseMove += (sender, e) =>
			{
				bool isCubeActive = _isCubeActive;
				_isCubeActive = IsWithinCameraCube(parentControl, e.Location) || cameraController.IsMouseButtonDown;
				if (cameraController.MouseMove(ToXnaPoint(e.Location)) || isCubeActive != _isCubeActive)
					parentControl.Invalidate();
			};
			parentControl.MouseUp += (sender, e) =>
			{
				if (!IsWithinCameraCube(parentControl, e.Location))
				{
					_isCubeActive = false;
					parentControl.Invalidate();
				}
				cameraController.MouseUp(ToXnaPoint(e.Location));
			};

			_size = 100; // TODO: Make this a configurable setting.
		}
コード例 #2
0
ファイル: CubeRenderer.cs プロジェクト: netdebug/xbuilder
        public CubeRenderer(GraphicsDeviceControl parentControl, CameraController cameraController)
        {
            parentControl.MouseDown += (sender, e) =>
            {
                if (IsWithinCameraCube(parentControl, e.Location))
                {
                    cameraController.MouseDown(ToXnaPoint(e.Location));
                    _isCubeActive = true;
                    parentControl.Invalidate();
                }
            };
            parentControl.MouseMove += (sender, e) =>
            {
                bool isCubeActive = _isCubeActive;
                _isCubeActive = IsWithinCameraCube(parentControl, e.Location) || cameraController.IsMouseButtonDown;
                if (cameraController.MouseMove(ToXnaPoint(e.Location)) || isCubeActive != _isCubeActive)
                {
                    parentControl.Invalidate();
                }
            };
            parentControl.MouseUp += (sender, e) =>
            {
                if (!IsWithinCameraCube(parentControl, e.Location))
                {
                    _isCubeActive = false;
                    parentControl.Invalidate();
                }
                cameraController.MouseUp(ToXnaPoint(e.Location));
            };

            _size = 100;             // TODO: Make this a configurable setting.
        }
コード例 #3
0
ファイル: ModelRenderer.cs プロジェクト: netdebug/xbuilder
        public override void Initialize(IServiceProvider serviceProvider, GraphicsDevice graphicsDevice)
        {
            _serviceProvider = serviceProvider;
            _optionsService  = (IOptionsService)serviceProvider.GetService(typeof(IOptionsService));
            _optionsService.OptionsChanged += (sender, e) =>
            {
                SetOptions();
                _parentControl.Invalidate();
            };
            SetOptions();

            foreach (ModelRendererWidget widget in _widgets)
            {
                widget.Initialize(serviceProvider, graphicsDevice);
            }
        }
コード例 #4
0
ファイル: GridRenderer.cs プロジェクト: netdebug/xbuilder
        public override void Initialize(IServiceProvider serviceProvider, GraphicsDevice graphicsDevice)
        {
            IOptionsService optionsService = (IOptionsService)serviceProvider.GetService(typeof(IOptionsService));

            optionsService.OptionsChanged += (sender, e) =>
            {
                RecreateGrid(graphicsDevice, optionsService);
                _parentControl.Invalidate();
            };

            _lineEffect = new BasicEffect(graphicsDevice);
            ((BasicEffect)_lineEffect).VertexColorEnabled = true;
            ((BasicEffect)_lineEffect).LightingEnabled    = false;
            ((BasicEffect)_lineEffect).TextureEnabled     = false;

            RecreateGrid(graphicsDevice, optionsService);
        }
コード例 #5
0
ファイル: ModelRenderer.cs プロジェクト: modulexcite/xbuilder
		public ModelRenderer(GraphicsDeviceControl parentControl)
		{
			_parentControl = parentControl;
			_ballController = new CameraController();

			parentControl.MouseWheelWpf += (sender, e) =>
			{
				_cameraPosition += _viewDirection * e.Delta * _modelRadius * 0.001f;
				parentControl.Invalidate();
			};

			_widgets = new ModelRendererWidget[4];
			_widgets[0] = new GridRenderer(parentControl);
			_widgets[1] = new CubeRenderer(parentControl, _ballController);

			_normalsRenderer = new NormalsRenderer(parentControl, this);
			_widgets[2] = _normalsRenderer;

			_bboxRenderer = new BoundingBoxRenderer(parentControl, this);
			_widgets[3] = _bboxRenderer;
		}
コード例 #6
0
ファイル: ModelRenderer.cs プロジェクト: netdebug/xbuilder
        public ModelRenderer(GraphicsDeviceControl parentControl)
        {
            _parentControl  = parentControl;
            _ballController = new CameraController();

            parentControl.MouseWheelWpf += (sender, e) =>
            {
                _cameraPosition += _viewDirection * e.Delta * _modelRadius * 0.001f;
                parentControl.Invalidate();
            };

            _widgets    = new ModelRendererWidget[4];
            _widgets[0] = new GridRenderer(parentControl);
            _widgets[1] = new CubeRenderer(parentControl, _ballController);

            _normalsRenderer = new NormalsRenderer(parentControl, this);
            _widgets[2]      = _normalsRenderer;

            _bboxRenderer = new BoundingBoxRenderer(parentControl, this);
            _widgets[3]   = _bboxRenderer;
        }