void SStaticMeshEditorViewport::OnFocusViewportToSelection() { // If we have selected sockets, focus on them UStaticMeshSocket* SelectedSocket = StaticMeshEditorPtr.Pin()->GetSelectedSocket(); if( SelectedSocket && PreviewMeshComponent ) { FTransform SocketTransform; SelectedSocket->GetSocketTransform( SocketTransform, PreviewMeshComponent ); const FVector Extent(30.0f); const FVector Origin = SocketTransform.GetLocation(); const FBox Box(Origin - Extent, Origin + Extent); EditorViewportClient->FocusViewportOnBox( Box ); return; } // If we have selected primitives, focus on them FBox Box(0); const bool bSelectedPrim = StaticMeshEditorPtr.Pin()->CalcSelectedPrimsAABB(Box); if (bSelectedPrim) { EditorViewportClient->FocusViewportOnBox(Box); return; } // Fallback to focusing on the mesh, if nothing else if( PreviewMeshComponent ) { EditorViewportClient->FocusViewportOnBox( PreviewMeshComponent->Bounds.GetBox() ); return; } }
void SStaticMeshEditorViewport::OnFocusViewportToSelection() { UStaticMeshSocket* SelectedSocket = StaticMeshEditorPtr.Pin()->GetSelectedSocket(); if( SelectedSocket && PreviewMeshComponent ) { FTransform SocketTransform; SelectedSocket->GetSocketTransform( SocketTransform, PreviewMeshComponent ); FVector Extent(30.0f); FVector Origin = SocketTransform.GetLocation(); FBox Box( Origin - Extent, Origin + Extent); EditorViewportClient->FocusViewportOnBox( Box ); } else if( PreviewMeshComponent ) { EditorViewportClient->FocusViewportOnBox( PreviewMeshComponent->Bounds.GetBox() ); } }