Accessing a FCurveEditor from a ICurveAssetEditor

Please expose the curve editor to ICurveAssetEditor .

/** Curve Asset Editor public interface */
class ICurveAssetEditor : public FAssetEditorToolkit
{

public:

	// ...

};

I’ve created a custom curve asset, and since it won’t open with the curve editor by default, look what I have to do. I’ve redeclared a private header and reinterpret cast to it.

EAssetCommandResult UCustomCurveAssetDefinition::OpenAssets(const FAssetOpenArgs& OpenArgs) const
{
	FSimpleAssetEditor::CreateEditor(EToolkitMode::Standalone, OpenArgs.ToolkitHost, OpenArgs.LoadObjects<UObject>());

	FCurveAssetEditorModule& CurveAssetEditorModule = FModuleManager::LoadModuleChecked<FCurveAssetEditorModule>("CurveAssetEditor");

	for (UCurveBase* Curve : OpenArgs.LoadObjects<UCurveBase>())
	{
		auto ed = reinterpret_cast<FCurveAssetEditor*>(& CurveAssetEditorModule.CreateCurveAssetEditor(OpenArgs.GetToolkitMode(), OpenArgs.ToolkitHost, Curve).Get());
		if (ed->CurveEditor)
		{
			ed->CurveEditor->ZoomToFitAll();
		}
	}

	return EAssetCommandResult::Handled;
}