Пример #1
0
        public SelectedBodyState SelectBody(SelectEvent selectEvent)
        {
            var posScene     = ViewProjection.ProjectCanvasToSceneSystem(selectEvent.selectPositionX, selectEvent.selectPositionY, selectEvent.CanvasWidth, selectEvent.CanvasHeight, selectEvent.Camera.NearPlane, selectEvent.Camera.Frame);
            var rayOffset    = selectEvent.Camera.Frame.Offset;
            var rayDirection = posScene - rayOffset;

            var(isIntersected, intersection, body) = Scene.GetIntersectionOfRayAndScene(rayOffset, rayDirection);

            return(new SelectedBodyState {
                SelectedBodyId = isIntersected ? body.Id : Guid.Empty, IsBodySelected = isIntersected, BodyIntersection = intersection
            });
        }
Пример #2
0
        public Camera Select(SelectEvent selectEvent)
        {
            var posScene     = ViewProjection.ProjectCanvasToSceneSystem(selectEvent.selectPositionX, selectEvent.selectPositionY, selectEvent.CanvasWidth, selectEvent.CanvasHeight, selectEvent.Camera.NearPlane, selectEvent.Camera.Frame);
            var rayOffset    = selectEvent.Camera.Frame.Offset;
            var rayDirection = posScene - rayOffset;

            var(isintersected, intersection, body) = Scene.GetIntersectionOfRayAndScene(rayOffset, rayDirection);
            if (isintersected)
            {
                selectEvent.Camera.MoveTargetTo(intersection);
            }

            return(selectEvent.Camera);
        }