コード例 #1
0
/** 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();
		}
	}
}
コード例 #2
0
/**
 * 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;
}