Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
44 changes: 31 additions & 13 deletions Arcane Editor/Arcane Editor.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -63,42 +63,48 @@
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(ProjectName)-$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin-int\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
<LibraryPath>$(SolutionDir)Dependencies\GLFW\lib;$(SolutionDir)Dependencies\Assimp\lib;$(SolutionDir)Dependencies\FreeType\lib;$(SolutionDir)Dependencies\FreeType-GL\lib;$(SolutionDir)Dependencies\GLEW\lib;$(LibraryPath)</LibraryPath>
<LibraryPath>$(SolutionDir)Dependencies\GLFW\lib\release;$(SolutionDir)Dependencies\Assimp\lib;$(SolutionDir)Dependencies\FreeType\lib;$(SolutionDir)Dependencies\FreeType-GL\lib;$(SolutionDir)Dependencies\GLEW\lib;$(SolutionDir)Dependencies\Physx\release;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Final|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(ProjectName)-$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin-int\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
<LibraryPath>$(SolutionDir)Dependencies\GLFW\lib;$(SolutionDir)Dependencies\Assimp\lib;$(SolutionDir)Dependencies\FreeType\lib;$(SolutionDir)Dependencies\FreeType-GL\lib;$(SolutionDir)Dependencies\GLEW\lib;$(LibraryPath)</LibraryPath>
<LibraryPath>$(SolutionDir)Dependencies\GLFW\lib\release;$(SolutionDir)Dependencies\Assimp\lib;$(SolutionDir)Dependencies\FreeType\lib;$(SolutionDir)Dependencies\FreeType-GL\lib;$(SolutionDir)Dependencies\GLEW\lib;$(SolutionDir)Dependencies\Physx\release;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(ProjectName)-$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin-int\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
<LibraryPath>$(SolutionDir)Dependencies\GLFW\lib;$(SolutionDir)Dependencies\Assimp\lib;$(SolutionDir)Dependencies\FreeType\lib;$(SolutionDir)Dependencies\FreeType-GL\lib;$(SolutionDir)Dependencies\GLEW\lib;$(LibraryPath)</LibraryPath>
<LibraryPath>$(SolutionDir)Dependencies\GLFW\lib\debug;$(SolutionDir)Dependencies\Assimp\lib;$(SolutionDir)Dependencies\FreeType\lib;$(SolutionDir)Dependencies\FreeType-GL\lib;$(SolutionDir)Dependencies\GLEW\lib;$(SolutionDir)Dependencies\Physx\debug;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>ARC_RELEASE;ARC_PLATFORM_WINDOWS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;ARC_RELEASE;ARC_PLATFORM_WINDOWS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\Arcane\src;..\Dependencies\GLFW\include;..\Dependencies\GLEW\include;..\Dependencies\GLM\include;..\Dependencies\Assimp\include;..\Dependencies\FreeType\include;..\Dependencies\FreeType-GL\include;..\Dependencies\spdlog\include;src;..\Arcane\src\Arcane\Vendor\entt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\Arcane\src;..\Dependencies\GLFW\include;..\Dependencies\GLEW\include;..\Dependencies\GLM\include;..\Dependencies\Assimp\include;..\Dependencies\FreeType\include;..\Dependencies\FreeType-GL\include;..\Dependencies\spdlog\include;src;..\Arcane\src\Arcane\Vendor\entt\include;..\Arcane\src\Arcane\Vendor\physx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>glfw3.lib;opengl32.lib;glew32s.lib;assimp-vc141-mt.lib;legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>glfw3.lib;opengl32.lib;glew32s.lib;assimp-vc141-mt.lib;legacy_stdio_definitions.lib;PhysX_64.lib;PhysXCommon_64.lib;PhysXCooking_64.lib;PhysXFoundation_64.lib;PhysXExtensions_static_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "$(SolutionDir)Dependencies\Assimp\lib\assimp-vc141-mt.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\RenderDoc\renderdoc.dll" "$(OutDir)"</Command>
xcopy /y /d "$(SolutionDir)Dependencies\RenderDoc\renderdoc.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysX_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysXCommon_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysXCooking_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysXFoundation_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PVDRuntime_64.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Final|x64'">
Expand All @@ -110,18 +116,24 @@ xcopy /y /d "$(SolutionDir)Dependencies\RenderDoc\renderdoc.dll" "$(OutDir)"</Co
<PreprocessorDefinitions>ARC_FINAL;ARC_PLATFORM_WINDOWS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\Arcane\src;..\Dependencies\GLFW\include;..\Dependencies\GLEW\include;..\Dependencies\GLM\include;..\Dependencies\Assimp\include;..\Dependencies\FreeType\include;..\Dependencies\FreeType-GL\include;..\Dependencies\spdlog\include;src;..\Arcane\src\Arcane\Vendor\entt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\Arcane\src;..\Dependencies\GLFW\include;..\Dependencies\GLEW\include;..\Dependencies\GLM\include;..\Dependencies\Assimp\include;..\Dependencies\FreeType\include;..\Dependencies\FreeType-GL\include;..\Dependencies\spdlog\include;src;..\Arcane\src\Arcane\Vendor\entt\include;..\Arcane\src\Arcane\Vendor\physx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>glfw3.lib;opengl32.lib;glew32s.lib;assimp-vc141-mt.lib;legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>glfw3.lib;opengl32.lib;glew32s.lib;assimp-vc141-mt.lib;legacy_stdio_definitions.lib;PhysX_64.lib;PhysXCommon_64.lib;PhysXCooking_64.lib;PhysXFoundation_64.lib;PhysXTask_static_64.lib;PhysXExtensions_static_64.lib;PhysXCharacterKinematic_static_64.lib;PhysXPvdSDK_static_64.lib;PhysXVehicle_static_64.lib;PhysXVehicle2_static_64.lib;SceneQuery_static_64.lib;SimulationController_static_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "$(SolutionDir)Dependencies\Assimp\lib\assimp-vc141-mt.dll" "$(OutDir)"</Command>
<Command>xcopy /y /d "$(SolutionDir)Dependencies\Assimp\lib\assimp-vc141-mt.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysX_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysXCommon_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysXCooking_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PhysXFoundation_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\release\PVDRuntime_64.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand All @@ -131,16 +143,22 @@ xcopy /y /d "$(SolutionDir)Dependencies\RenderDoc\renderdoc.dll" "$(OutDir)"</Co
<PreprocessorDefinitions>ARC_DEBUG;ARC_PLATFORM_WINDOWS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\Arcane\src;..\Dependencies\GLFW\include;..\Dependencies\GLEW\include;..\Dependencies\GLM\include;..\Dependencies\Assimp\include;..\Dependencies\FreeType\include;..\Dependencies\FreeType-GL\include;..\Dependencies\spdlog\include;src;..\Arcane\src\Arcane\Vendor\entt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\Arcane\src;..\Dependencies\GLFW\include;..\Dependencies\GLEW\include;..\Dependencies\GLM\include;..\Dependencies\Assimp\include;..\Dependencies\FreeType\include;..\Dependencies\FreeType-GL\include;..\Dependencies\spdlog\include;src;..\Arcane\src\Arcane\Vendor\entt\include;..\Arcane\src\Arcane\Vendor\physx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>glfw3.lib;opengl32.lib;glew32s.lib;assimp-vc141-mt.lib;legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>glfw3.lib;opengl32.lib;glew32s.lib;assimp-vc141-mt.lib;legacy_stdio_definitions.lib;PhysX_64.lib;PhysXCommon_64.lib;PhysXCooking_64.lib;PhysXFoundation_64.lib;PhysXExtensions_static_64.lib;PVDRuntime_64.lib;PhysXPvdSDK_static_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "$(SolutionDir)Dependencies\Assimp\lib\assimp-vc141-mt.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\RenderDoc\renderdoc.dll" "$(OutDir)"</Command>
xcopy /y /d "$(SolutionDir)Dependencies\RenderDoc\renderdoc.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\debug\PhysX_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\debug\PhysXCommon_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\debug\PhysXCooking_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\debug\PhysXFoundation_64.dll" "$(OutDir)"
xcopy /y /d "$(SolutionDir)Dependencies\Physx\debug\PVDRuntime_64.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion Arcane Editor/imgui.ini
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Collapsed=0
DockId=0x0000000E,0

[Docking][Data]
DockSpace ID=0x4668469E Window=0x4647B76E Pos=239,292 Size=2560,1421 Split=X
DockSpace ID=0x4668469E Window=0x4647B76E Pos=332,292 Size=2560,1421 Split=X
DockNode ID=0x00000009 Parent=0x4668469E SizeRef=1936,1421 Split=X
DockNode ID=0x00000007 Parent=0x00000009 SizeRef=2031,1421 Split=X
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=1048,881 Split=Y Selected=0x7B1E6A28
Expand Down
42 changes: 41 additions & 1 deletion Arcane Editor/src/EditorLayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,19 @@
#include <Arcane/Core/Application.h>
#include <Arcane/Graphics/Renderer/Renderpass/EditorPass.h>
#include <Arcane/Vendor/Imgui/imgui.h>

#include "Arcane/Physics/3D/PhysicsDefs.h"
#include "Arcane/Physics/3d/PhysicsFactory.h"
#include "Arcane/Physics/3D/RbBody.h"
#include "Arcane/Physics/3D/PhysicsScene.h"
#include "Arcane/Physics/3D/RbManager.h"
#include "Arcane/Scene/Components.h"

#include <Testbed.h>

extern bool g_ApplicationRunning;
Arcane::Entity box;

namespace Arcane
{
EditorLayer::EditorLayer() : m_EditorScene(Arcane::Application::GetInstance().GetScene()), m_EditorViewport(), m_ConsolePanel(), m_GraphicsSettings(Arcane::Application::GetInstance().GetMasterRenderPass()),
Expand Down Expand Up @@ -54,15 +64,45 @@ namespace Arcane
//Model *sponza = new Arcane::Model("res/3D_Models/Sponza/sponza.obj");
//m_RenderableModels.push_back(new RenderableModel(glm::vec3(67.0f, 110.0f, 133.0f), glm::vec3(0.05f, 0.05f, 0.05f), glm::vec3(0.0f, 1.0f, 0.0f), glm::radians(180.0f), sponza, nullptr, true, false));
#endif


{
Cube* cube = new Cube();
Model* boxModel = new Model(*cube);
box = m_EditorScene->CreateEntity("box");
Arcane::TransformComponent& transformComponent = box.GetComponent<TransformComponent>();
transformComponent.Translation = { 0.f, 10.f, -10.f };
//transformComponent.Rotation = { 0.0f, glm::radians(180.0f), 0.0f };
//transformComponent.Scale = { 10.0f, 10.0f, 10.0f };

phGeometry* boxGeom = PhysicsFactory::CreateBoxGeometry(0.5f, 0.5f, 0.5f);
RbComponent& rbComponent = box.AddComponent<RbComponent>(transformComponent, boxGeom, true);
m_EditorScene->GetRigidBodyManager().AddRb(&rbComponent.m_RbBody);

auto& meshComponent = box.AddComponent<MeshComponent>(boxModel);
meshComponent.IsStatic = false;
meshComponent.IsTransparent = false;
}
}

void EditorLayer::OnDetach()
{

}

void EditorLayer::OnUpdate(float deltaTime)
{
RbComponent& rbComponent = box.GetComponent<RbComponent>();
phActorRigid* rb = rbComponent.m_RbBody.GetPhRigid();
rbComponent.m_RbBody.AddForce({ 1.f, 0.f, 0.f });

// transform sync
auto t = rb->getGlobalPose().p;
glm::vec3& t1 = box.GetComponent<TransformComponent>().Translation;
t1.x = t.x;
t1.y = t.y;
t1.z = t.z;

// Make sure the editor render pass will highlight the focused entity
Arcane::Application::GetInstance().GetMasterRenderPass()->GetEditorPass()->SetFocusedEntity(m_InspectorPanel.GetFocusedEntity());
}

Expand Down
30 changes: 25 additions & 5 deletions Arcane Editor/src/Testbed.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include <Arcane/Scene/Entity.h>
#include <Arcane/Animation/AnimationClip.h>


using namespace Arcane;

void Testbed::LoadTestbedDefault()
Expand Down Expand Up @@ -71,7 +70,8 @@ void Testbed::LoadTestbedGraphics()
auto window = scene->CreateEntity("Window");
auto& transformComponent = window.GetComponent<TransformComponent>();
transformComponent.Translation = { -32.60f, 10.0f, 48.48f };
transformComponent.Rotation = { 0.0f, glm::radians(180.0f), 0.0f };
glm::vec3 rotation = { 0.0f, glm::radians(180.0f), 0.0f };
transformComponent.Rotation = glm::quat(rotation);
transformComponent.Scale = { 10.0f, 10.0f, 10.0f };
auto& meshComponent = window.AddComponent<MeshComponent>(quadModel);
meshComponent.IsStatic = true;
Expand All @@ -82,7 +82,8 @@ void Testbed::LoadTestbedGraphics()
{
auto directionalLight = scene->CreateEntity("Directional Light");
auto& transformComponent = directionalLight.GetComponent<TransformComponent>();
transformComponent.Rotation.x = glm::radians(-120.0f);
glm::vec3 rotation = { glm::radians(-120.0f), 0.0f, 0.0f };
transformComponent.Rotation = glm::quat(rotation);
auto& lightComponent = directionalLight.AddComponent<LightComponent>();
lightComponent.Type = LightType::LightType_Directional;
lightComponent.Intensity = 2.0f;
Expand Down Expand Up @@ -120,7 +121,8 @@ void Testbed::LoadTestbedGraphics()
auto spotLight = scene->CreateEntity("Spot Light1");
auto& transformComponent = spotLight.GetComponent<TransformComponent>();
transformComponent.Translation = glm::vec3(-86.9f, -5.0f, -28.2f);
transformComponent.Rotation.x = glm::radians(-50.0f);
glm::vec3 rotation = { glm::radians(-50.0f), 0.0f, 0.0f };
transformComponent.Rotation = glm::quat(rotation);
auto& lightComponent = spotLight.AddComponent<LightComponent>();
lightComponent.Type = LightType::LightType_Spot;
lightComponent.Intensity = 150.0f;
Expand Down Expand Up @@ -150,7 +152,25 @@ void Testbed::LoadTestbedGraphics()

void Testbed::LoadTestbedPhysics()
{

/*
{
Cube* cube = new Cube();
Model* boxModel = new Model(*cube);
box = m_EditorScene->CreateEntity("box");
Arcane::TransformComponent& transformComponent = box.GetComponent<TransformComponent>();
transformComponent.Translation = { 0.f, 10.f, -10.f };
//transformComponent.Rotation = { 0.0f, glm::radians(180.0f), 0.0f };
//transformComponent.Scale = { 10.0f, 10.0f, 10.0f };

// Create a test object and move it around
phGeometry* box1 = PhysicsFactory::CreateBoxGeometry(0.5f, 0.5f, 0.5f);
manager->AddRigidbodyComponent(transformComponent, box1, true);

auto& meshComponent = box.AddComponent<MeshComponent>(boxModel);
meshComponent.IsStatic = false;
meshComponent.IsTransparent = false;
}
*/
}

void Testbed::LoadTestbedAnimation()
Expand Down
Loading