@@ -34,6 +34,6 @@ namespace AZ::EMotionFXAtom
|
||||
void EditorSystemComponent::OnRegisterPlugin()
|
||||
{
|
||||
EMStudio::PluginManager* pluginManager = EMStudio::EMStudioManager::GetInstance()->GetPluginManager();
|
||||
pluginManager->RegisterPlugin(new EMStudio::AtomRenderPlugin());
|
||||
pluginManager->RegisterPlugin(aznew EMStudio::AtomRenderPlugin());
|
||||
}
|
||||
} // namespace AZ::EMotionFXAtom
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace AZ::EMotionFXAtom
|
||||
static void Reflect(ReflectContext* context);
|
||||
|
||||
protected:
|
||||
// AZ::Component
|
||||
// AZ::Component overrides
|
||||
void Activate() override;
|
||||
void Deactivate() override;
|
||||
|
||||
|
||||
@@ -59,7 +59,6 @@ namespace EMStudio
|
||||
m_frameworkScene->SetSubsystem<AzFramework::EntityContext::SceneStorageType>(m_entityContext.get());
|
||||
|
||||
// Create and register a scene with all available feature processors
|
||||
// TODO: We don't need every procesors, only register the processor we are going to use.
|
||||
AZ::RPI::SceneDescriptor sceneDesc;
|
||||
m_scene = AZ::RPI::Scene::CreateScene(sceneDesc);
|
||||
m_scene->EnableAllFeatureProcessors();
|
||||
|
||||
@@ -11,11 +11,14 @@
|
||||
|
||||
#include <Integration/Components/ActorComponent.h>
|
||||
#include <EMotionFX/CommandSystem/Source/CommandManager.h>
|
||||
#include <EMotionFX/Source/Allocators.h>
|
||||
#include <EMotionFX/Tools/EMotionStudio/EMStudioSDK/Source/EMStudioManager.h>
|
||||
#include <QHBoxLayout>
|
||||
|
||||
namespace EMStudio
|
||||
{
|
||||
AZ_CLASS_ALLOCATOR_IMPL(AtomRenderPlugin, EMotionFX::EditorAllocator, 0);
|
||||
|
||||
AtomRenderPlugin::AtomRenderPlugin()
|
||||
: DockWidgetPlugin()
|
||||
{
|
||||
@@ -74,6 +77,7 @@ namespace EMStudio
|
||||
void AtomRenderPlugin::ReinitRenderer()
|
||||
{
|
||||
m_animViewportWidget->GetAnimViewportRenderer()->Reinit();
|
||||
m_animViewportWidget->ResetCameraPosition();
|
||||
}
|
||||
|
||||
bool AtomRenderPlugin::Init()
|
||||
@@ -89,10 +93,10 @@ namespace EMStudio
|
||||
verticalLayout->addWidget(m_animViewportWidget);
|
||||
|
||||
// Register command callbacks.
|
||||
m_createActorInstanceCallback = new CreateActorInstanceCallback(false);
|
||||
m_removeActorInstanceCallback = new RemoveActorInstanceCallback(false);
|
||||
EMStudioManager::GetInstance()->GetCommandManager()->RegisterCommandCallback("CreateActorInstance", m_createActorInstanceCallback);
|
||||
EMStudioManager::GetInstance()->GetCommandManager()->RegisterCommandCallback("RemoveActorInstance", m_removeActorInstanceCallback);
|
||||
m_importActorCallback = new ImportActorCallback(false);
|
||||
m_removeActorCallback = new RemoveActorCallback(false);
|
||||
EMStudioManager::GetInstance()->GetCommandManager()->RegisterCommandCallback("ImportActor", m_importActorCallback);
|
||||
EMStudioManager::GetInstance()->GetCommandManager()->RegisterCommandCallback("RemoveActor", m_removeActorCallback);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -113,23 +117,23 @@ namespace EMStudio
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AtomRenderPlugin::CreateActorInstanceCallback::Execute(
|
||||
bool AtomRenderPlugin::ImportActorCallback::Execute(
|
||||
[[maybe_unused]] MCore::Command* command, [[maybe_unused]] const MCore::CommandLine& commandLine)
|
||||
{
|
||||
return ReinitAtomRenderPlugin();
|
||||
}
|
||||
bool AtomRenderPlugin::CreateActorInstanceCallback::Undo(
|
||||
bool AtomRenderPlugin::ImportActorCallback::Undo(
|
||||
[[maybe_unused]] MCore::Command* command, [[maybe_unused]] const MCore::CommandLine& commandLine)
|
||||
{
|
||||
return ReinitAtomRenderPlugin();
|
||||
}
|
||||
|
||||
bool AtomRenderPlugin::RemoveActorInstanceCallback::Execute(
|
||||
bool AtomRenderPlugin::RemoveActorCallback::Execute(
|
||||
[[maybe_unused]] MCore::Command* command, [[maybe_unused]] const MCore::CommandLine& commandLine)
|
||||
{
|
||||
return ReinitAtomRenderPlugin();
|
||||
}
|
||||
bool AtomRenderPlugin::RemoveActorInstanceCallback::Undo(
|
||||
bool AtomRenderPlugin::RemoveActorCallback::Undo(
|
||||
[[maybe_unused]] MCore::Command* command, [[maybe_unused]] const MCore::CommandLine& commandLine)
|
||||
{
|
||||
return ReinitAtomRenderPlugin();
|
||||
|
||||
@@ -27,6 +27,8 @@ namespace EMStudio
|
||||
: public DockWidgetPlugin
|
||||
{
|
||||
public:
|
||||
AZ_CLASS_ALLOCATOR_DECL
|
||||
|
||||
enum
|
||||
{
|
||||
CLASS_ID = 0x32b0c04d
|
||||
@@ -49,10 +51,10 @@ namespace EMStudio
|
||||
void ReinitRenderer();
|
||||
|
||||
private:
|
||||
MCORE_DEFINECOMMANDCALLBACK(CreateActorInstanceCallback);
|
||||
MCORE_DEFINECOMMANDCALLBACK(RemoveActorInstanceCallback);
|
||||
CreateActorInstanceCallback* m_createActorInstanceCallback;
|
||||
RemoveActorInstanceCallback* m_removeActorInstanceCallback;
|
||||
MCORE_DEFINECOMMANDCALLBACK(ImportActorCallback);
|
||||
MCORE_DEFINECOMMANDCALLBACK(RemoveActorCallback);
|
||||
ImportActorCallback* m_importActorCallback;
|
||||
RemoveActorCallback* m_removeActorCallback;
|
||||
|
||||
QWidget* m_innerWidget;
|
||||
AnimViewportWidget* m_animViewportWidget;
|
||||
|
||||
Reference in New Issue
Block a user