void FEdModeGeometry::PostUndo() { // Rebuild the geometry data from the current brush state GetFromSource(); // Restore selection information. for( int32 o = 0 ; o < GeomObjects.Num() ; ++o ) { int32 Idx = 0; FGeomObject* go = GeomObjects[o]; ABrush* Actor = go->GetActualBrush(); // First, clear the current selection go->SelectNone(); // Next, restore the cached selection int32 res = go->SetPivotFromSelectionArray( Actor->SavedSelections ); //use the centre of the actor if we didnt find a suitable selection if( res == INDEX_NONE ) { FEditorModeTools& Tools = GEditorModeTools(); Tools.SetPivotLocation( Actor->GetActorLocation() , false ); } go->ForceLastSelectionIndex( res ); } }
void FEdModeGeometry::Enter() { FEdMode::Enter(); if (!Toolkit.IsValid()) { Toolkit = MakeShareable(new FGeometryMode); Toolkit->Init(Owner->GetToolkitHost()); } GetFromSource(); }
void FEdModeGeometry::Enter() { FEdMode::Enter(); if (!Toolkit.IsValid()) { // @todo: Remove this assumption when we make modes per level editor instead of global auto ToolkitHost = FModuleManager::LoadModuleChecked< FLevelEditorModule >( "LevelEditor" ).GetFirstLevelEditor(); Toolkit = MakeShareable(new FGeometryMode); Toolkit->Init(ToolkitHost); } GetFromSource(); }
void FEdModeGeometry::MapChangeNotify() { // If the map changes in some major way, just refresh all the geometry data. GetFromSource(); }
void FEdModeGeometry::ActorSelectionChangeNotify() { GetFromSource(); }
void FEdModeGeometry::UpdateInternalData() { GetFromSource(); }