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;
}