/** FEdMode: Called once per frame */ void FEdModeHaste::Tick(FEditorViewportClient* ViewportClient, float DeltaTime) { if (bToolActive) { //ApplyBrush(ViewportClient); } FEdMode::Tick(ViewportClient, DeltaTime); // Trace the brush HasteBrushTrace(ViewportClient, LastMousePosition.X, LastMousePosition.Y); // Update the position and size of the brush component if (bBrushTraceValid) { // Scale adjustment is due to default sphere SM size. BrushMeshComponent->SetRelativeTransform(BrushCursorTransform); if (!BrushMeshComponent->IsRegistered()) { BrushMeshComponent->RegisterComponentWithWorld(ViewportClient->GetWorld()); } } else { if (BrushMeshComponent->IsRegistered()) { BrushMeshComponent->UnregisterComponent(); } } }
/** * Called when the mouse is moved while a window input capture is in effect * * @param InViewportClient Level editor viewport client that captured the mouse input * @param InViewport Viewport that captured the mouse input * @param InMouseX New mouse cursor X coordinate * @param InMouseY New mouse cursor Y coordinate * * @return true if input was handled */ bool FEdModeHaste::CapturedMouseMove(FEditorViewportClient* ViewportClient, FViewport* Viewport, int32 MouseX, int32 MouseY) { FIntVector CurrentMousePosition(MouseX, MouseY, 0); if (LastMousePosition != CurrentMousePosition && !bMeshRotating) { //UE_LOG(LogHasteMode, Log, TEXT("CapturedMouseMove (%d, %d)"), MouseX, MouseY); LastMousePosition = CurrentMousePosition; HasteBrushTrace(ViewportClient, MouseX, MouseY); return bBrushTraceValid; } return false; }