FSceneView* FJavascriptUMGViewportClient::CalcSceneView(FSceneViewFamily* ViewFamily) { FSceneViewInitOptions ViewInitOptions; const FVector& ViewLocation = GetViewLocation(); const FRotator& ViewRotation = GetViewRotation(); const FIntPoint ViewportSizeXY = Viewport->GetSizeXY(); FIntRect ViewRect = FIntRect(0, 0, ViewportSizeXY.X, ViewportSizeXY.Y); ViewInitOptions.SetViewRectangle(ViewRect); ViewInitOptions.ViewOrigin = ViewLocation; ViewInitOptions.ViewRotationMatrix = FInverseRotationMatrix(ViewRotation); ViewInitOptions.ViewRotationMatrix = ViewInitOptions.ViewRotationMatrix * FMatrix( FPlane(0, 0, 1, 0), FPlane(1, 0, 0, 0), FPlane(0, 1, 0, 0), FPlane(0, 0, 0, 1)); //@TODO: Should probably be locally configurable (or just made into a FMinimalViewInfo property) const EAspectRatioAxisConstraint AspectRatioAxisConstraint = GetDefault<ULocalPlayer>()->AspectRatioAxisConstraint; FMinimalViewInfo::CalculateProjectionMatrixGivenView(ViewInfo, AspectRatioAxisConstraint, Viewport, /*inout*/ ViewInitOptions); ViewInitOptions.ViewFamily = ViewFamily; ViewInitOptions.SceneViewStateInterface = ViewState.GetReference(); ViewInitOptions.ViewElementDrawer = this; ViewInitOptions.BackgroundColor = GetBackgroundColor(); //ViewInitOptions.EditorViewBitflag = 0, // send the bit for this view - each actor will check it's visibility bits against this // for ortho views to steal perspective view origin //ViewInitOptions.OverrideLODViewOrigin = FVector::ZeroVector; //ViewInitOptions.bUseFauxOrthoViewPos = true; //ViewInitOptions.CursorPos = CurrentMousePos; FSceneView* View = new FSceneView(ViewInitOptions); ViewFamily->Views.Add(View); View->StartFinalPostprocessSettings(ViewLocation); //OverridePostProcessSettings(*View); View->EndFinalPostprocessSettings(ViewInitOptions); return View; }
void FStaticMeshEditorViewportClient::PerspectiveCameraMoved() { FEditorViewportClient::PerspectiveCameraMoved(); // The static mesh editor saves the camera position in terms of an orbit camera, so ensure // that orbit mode is enabled before we store the current transform information const bool bWasOrbit = bUsingOrbitCamera; ToggleOrbitCamera(true); const FVector OrbitPoint = ViewTransform.GetLookAt(); const FVector OrbitZoom = GetViewLocation() - OrbitPoint; StaticMesh->EditorCameraPosition = FAssetEditorOrbitCameraPosition( OrbitPoint, OrbitZoom, GetViewRotation() ); ToggleOrbitCamera(bWasOrbit); }
void APawn::GetActorEyesViewPoint( FVector& out_Location, FRotator& out_Rotation ) const { out_Location = GetPawnViewLocation(); out_Rotation = GetViewRotation(); }