Browse Source

Pass at splitting out 3D functionality to Atomic3D module

Josh Engebretson 10 years ago
parent
commit
1523500534
61 changed files with 201 additions and 113 deletions
  1. 8 3
      CMakeLists.txt
  2. 3 3
      Source/Atomic/Atomic3D/AnimatedModel.cpp
  3. 3 3
      Source/Atomic/Atomic3D/AnimatedModel.h
  4. 1 1
      Source/Atomic/Atomic3D/Animation.cpp
  5. 0 0
      Source/Atomic/Atomic3D/Animation.h
  6. 4 4
      Source/Atomic/Atomic3D/AnimationController.cpp
  7. 0 0
      Source/Atomic/Atomic3D/AnimationController.h
  8. 3 3
      Source/Atomic/Atomic3D/AnimationState.cpp
  9. 0 0
      Source/Atomic/Atomic3D/AnimationState.h
  10. 36 0
      Source/Atomic/Atomic3D/Atomic3D.cpp
  11. 9 0
      Source/Atomic/Atomic3D/Atomic3D.h
  12. 1 1
      Source/Atomic/Atomic3D/BillboardSet.cpp
  13. 0 0
      Source/Atomic/Atomic3D/BillboardSet.h
  14. 1 1
      Source/Atomic/Atomic3D/CustomGeometry.cpp
  15. 0 0
      Source/Atomic/Atomic3D/CustomGeometry.h
  16. 2 2
      Source/Atomic/Atomic3D/DecalSet.cpp
  17. 1 1
      Source/Atomic/Atomic3D/DecalSet.h
  18. 1 1
      Source/Atomic/Atomic3D/LMStaticModel.cpp
  19. 1 1
      Source/Atomic/Atomic3D/LMStaticModel.h
  20. 1 1
      Source/Atomic/Atomic3D/Model.cpp
  21. 1 1
      Source/Atomic/Atomic3D/Model.h
  22. 1 1
      Source/Atomic/Atomic3D/ParticleEffect.cpp
  23. 0 0
      Source/Atomic/Atomic3D/ParticleEffect.h
  24. 2 2
      Source/Atomic/Atomic3D/ParticleEmitter.cpp
  25. 1 1
      Source/Atomic/Atomic3D/ParticleEmitter.h
  26. 1 1
      Source/Atomic/Atomic3D/Skeleton.cpp
  27. 0 0
      Source/Atomic/Atomic3D/Skeleton.h
  28. 1 1
      Source/Atomic/Atomic3D/Skybox.cpp
  29. 1 1
      Source/Atomic/Atomic3D/Skybox.h
  30. 2 2
      Source/Atomic/Atomic3D/StaticModel.cpp
  31. 0 0
      Source/Atomic/Atomic3D/StaticModel.h
  32. 1 1
      Source/Atomic/Atomic3D/StaticModelGroup.cpp
  33. 1 1
      Source/Atomic/Atomic3D/StaticModelGroup.h
  34. 2 2
      Source/Atomic/Atomic3D/Terrain.cpp
  35. 0 0
      Source/Atomic/Atomic3D/Terrain.h
  36. 2 2
      Source/Atomic/Atomic3D/TerrainPatch.cpp
  37. 0 0
      Source/Atomic/Atomic3D/TerrainPatch.h
  38. 10 5
      Source/Atomic/CMakeLists.txt
  39. 9 0
      Source/Atomic/Engine/Engine.cpp
  40. 8 1
      Source/Atomic/Graphics/DebugRenderer.cpp
  41. 0 26
      Source/Atomic/Graphics/OpenGL/OGLGraphics.cpp
  42. 8 2
      Source/Atomic/Graphics/View.cpp
  43. 3 3
      Source/Atomic/Navigation/NavigationMesh.cpp
  44. 3 3
      Source/Atomic/Physics/CollisionShape.cpp
  45. 1 1
      Source/Atomic/Physics/PhysicsWorld.cpp
  46. 4 0
      Source/Atomic/UI/Text3D.cpp
  47. 5 0
      Source/Atomic/UI/Text3D.h
  48. 2 0
      Source/Atomic/UI/UI.cpp
  49. 4 4
      Source/AtomicEditor/Source/Editors/ModelResourceEditor.cpp
  50. 1 1
      Source/AtomicEditor/Source/Editors/SceneEditor3D/Gizmo3D.cpp
  51. 1 1
      Source/AtomicEditor/Source/Editors/SceneEditor3D/Gizmo3D.h
  52. 1 1
      Source/AtomicEditor/Source/Editors/SceneEditor3D/SceneView3D.cpp
  53. 5 5
      Source/AtomicEditor/Source/Import/AEJSONSceneProcess.cpp
  54. 1 1
      Source/AtomicEditor/Source/Import/AEJSONSceneProcess.h
  55. 28 0
      Source/AtomicJS/JSBind/modules/Atomic3D.json
  56. 6 13
      Source/AtomicJS/JSBind/modules/Graphics.json
  57. 1 1
      Source/AtomicJS/JSBind/modules/Modules.json
  58. 1 1
      Source/AtomicJS/JSBind/modules/Physics.json
  59. 1 1
      Source/AtomicJS/JSBind/modules/UI.json
  60. 2 0
      Source/AtomicJS/Javascript/JSComponent.cpp
  61. 5 2
      Source/ThirdParty/CMakeLists.txt

+ 8 - 3
CMakeLists.txt

@@ -5,15 +5,20 @@ cmake_minimum_required (VERSION 3.0.2)
 
 set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules)
 
-add_definitions( -DATOMIC_API= -DATOMIC_STATIC_DEFINE -DATOMIC_LOGGING -DATOMIC_PHYSICS -DATOMIC_ATOMIC2D )
+add_definitions( -DATOMIC_API= -DATOMIC_STATIC_DEFINE -DATOMIC_ATOMIC2D )
 
 # this is here as QtCreator is having trouble picking up #include <Atomic/*> without it
 include_directories(${CMAKE_SOURCE_DIR}/Source ${CMAKE_SOURCE_DIR}/Source/AtomicEditor/Source)
 
-set (ATOMIC_LINK_LIBRARIES Atomic Box2D Bullet Duktape FreeType JO LZ4 PugiXml StanHull STB )
+set (ATOMIC_LINK_LIBRARIES Atomic Box2D Duktape FreeType JO LZ4 PugiXml  STB)
+
+if (NOT ATOMIC_BUILD_2D)
+    add_definitions( -DATOMIC_PHYSICS -DATOMIC_3D)
+    set (ATOMIC_LINK_LIBRARIES ${ATOMIC_LINK_LIBRARIES} Bullet StanHull)
+endif()
 
 if (NOT EMSCRIPTEN)
-    add_definitions( -DATOMIC_NETWORK )
+    add_definitions( -DATOMIC_NETWORK -DATOMIC_LOGGING)
     set (ATOMIC_LINK_LIBRARIES ${ATOMIC_LINK_LIBRARIES} SDL Civetweb Recast Detour kNet )
 endif()
 

+ 3 - 3
Source/Atomic/Graphics/AnimatedModel.cpp → Source/Atomic/Atomic3D/AnimatedModel.cpp

@@ -21,9 +21,9 @@
 //
 
 #include "Precompiled.h"
-#include "../Graphics/AnimatedModel.h"
-#include "../Graphics/Animation.h"
-#include "../Graphics/AnimationState.h"
+#include "../Atomic3D/AnimatedModel.h"
+#include "../Atomic3D/Animation.h"
+#include "../Atomic3D/AnimationState.h"
 #include "../Graphics/Batch.h"
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"

+ 3 - 3
Source/Atomic/Graphics/AnimatedModel.h → Source/Atomic/Atomic3D/AnimatedModel.h

@@ -22,9 +22,9 @@
 
 #pragma once
 
-#include "../Graphics/Model.h"
-#include "../Graphics/Skeleton.h"
-#include "../Graphics/StaticModel.h"
+#include "../Atomic3D/Model.h"
+#include "../Atomic3D/Skeleton.h"
+#include "../Atomic3D/StaticModel.h"
 
 namespace Atomic
 {

+ 1 - 1
Source/Atomic/Graphics/Animation.cpp → Source/Atomic/Atomic3D/Animation.cpp

@@ -21,7 +21,7 @@
 //
 
 #include "Precompiled.h"
-#include "../Graphics/Animation.h"
+#include "../Atomic3D/Animation.h"
 #include "../Core/Context.h"
 #include "../IO/Deserializer.h"
 #include "../IO/FileSystem.h"

+ 0 - 0
Source/Atomic/Graphics/Animation.h → Source/Atomic/Atomic3D/Animation.h


+ 4 - 4
Source/Atomic/Graphics/AnimationController.cpp → Source/Atomic/Atomic3D/AnimationController.cpp

@@ -21,10 +21,10 @@
 //
 
 #include "Precompiled.h"
-#include "../Graphics/AnimatedModel.h"
-#include "../Graphics/Animation.h"
-#include "../Graphics/AnimationController.h"
-#include "../Graphics/AnimationState.h"
+#include "../Atomic3D/AnimatedModel.h"
+#include "../Atomic3D/Animation.h"
+#include "../Atomic3D/AnimationController.h"
+#include "../Atomic3D/AnimationState.h"
 #include "../Core/Context.h"
 #include "../IO/Log.h"
 #include "../IO/MemoryBuffer.h"

+ 0 - 0
Source/Atomic/Graphics/AnimationController.h → Source/Atomic/Atomic3D/AnimationController.h


+ 3 - 3
Source/Atomic/Graphics/AnimationState.cpp → Source/Atomic/Atomic3D/AnimationState.cpp

@@ -21,9 +21,9 @@
 //
 
 #include "Precompiled.h"
-#include "../Graphics/AnimatedModel.h"
-#include "../Graphics/Animation.h"
-#include "../Graphics/AnimationState.h"
+#include "../Atomic3D/AnimatedModel.h"
+#include "../Atomic3D/Animation.h"
+#include "../Atomic3D/AnimationState.h"
 #include "../IO/Deserializer.h"
 #include "../Graphics/DrawableEvents.h"
 #include "../IO/Log.h"

+ 0 - 0
Source/Atomic/Graphics/AnimationState.h → Source/Atomic/Atomic3D/AnimationState.h


+ 36 - 0
Source/Atomic/Atomic3D/Atomic3D.cpp

@@ -0,0 +1,36 @@
+
+#include "StaticModel.h"
+#include "StaticModelGroup.h"
+#include "Skybox.h"
+#include "AnimatedModel.h"
+#include "AnimationController.h"
+#include "BillboardSet.h"
+#include "ParticleEffect.h"
+#include "ParticleEmitter.h"
+#include "CustomGeometry.h"
+#include "DecalSet.h"
+#include "Terrain.h"
+#include "TerrainPatch.h"
+
+
+namespace Atomic
+{
+
+
+void RegisterAtomic3DLibrary(Context* context)
+{
+    StaticModel::RegisterObject(context);
+    StaticModelGroup::RegisterObject(context);
+    Skybox::RegisterObject(context);
+    AnimatedModel::RegisterObject(context);
+    AnimationController::RegisterObject(context);
+    BillboardSet::RegisterObject(context);
+    ParticleEffect::RegisterObject(context);
+    ParticleEmitter::RegisterObject(context);
+    CustomGeometry::RegisterObject(context);
+    DecalSet::RegisterObject(context);
+    Terrain::RegisterObject(context);
+    TerrainPatch::RegisterObject(context);
+}
+
+}

+ 9 - 0
Source/Atomic/Atomic3D/Atomic3D.h

@@ -0,0 +1,9 @@
+
+#pragma once
+
+namespace Atomic
+{
+
+void RegisterAtomic3DLibrary(Context* context);
+
+}

+ 1 - 1
Source/Atomic/Graphics/BillboardSet.cpp → Source/Atomic/Atomic3D/BillboardSet.cpp

@@ -22,7 +22,7 @@
 
 #include "Precompiled.h"
 #include "../Graphics/Batch.h"
-#include "../Graphics/BillboardSet.h"
+#include "../Atomic3D/BillboardSet.h"
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"
 #include "../Graphics/Geometry.h"

+ 0 - 0
Source/Atomic/Graphics/BillboardSet.h → Source/Atomic/Atomic3D/BillboardSet.h


+ 1 - 1
Source/Atomic/Graphics/CustomGeometry.cpp → Source/Atomic/Atomic3D/CustomGeometry.cpp

@@ -24,7 +24,7 @@
 #include "../Graphics/Batch.h"
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"
-#include "../Graphics/CustomGeometry.h"
+#include "../Atomic3D/CustomGeometry.h"
 #include "../Graphics/Geometry.h"
 #include "../IO/Log.h"
 #include "../Graphics/Material.h"

+ 0 - 0
Source/Atomic/Graphics/CustomGeometry.h → Source/Atomic/Atomic3D/CustomGeometry.h


+ 2 - 2
Source/Atomic/Graphics/DecalSet.cpp → Source/Atomic/Atomic3D/DecalSet.cpp

@@ -21,11 +21,11 @@
 //
 
 #include "Precompiled.h"
-#include "../Graphics/AnimatedModel.h"
+#include "../Atomic3D/AnimatedModel.h"
 #include "../Graphics/Batch.h"
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"
-#include "../Graphics/DecalSet.h"
+#include "../Atomic3D/DecalSet.h"
 #include "../Graphics/Geometry.h"
 #include "../Graphics/Graphics.h"
 #include "../Graphics/IndexBuffer.h"

+ 1 - 1
Source/Atomic/Graphics/DecalSet.h → Source/Atomic/Atomic3D/DecalSet.h

@@ -25,7 +25,7 @@
 #include "../Graphics/Drawable.h"
 #include "../Math/Frustum.h"
 #include "../Container/List.h"
-#include "../Graphics/Skeleton.h"
+#include "../Atomic3D/Skeleton.h"
 
 namespace Atomic
 {

+ 1 - 1
Source/Atomic/Graphics/LMStaticModel.cpp → Source/Atomic/Atomic3D/LMStaticModel.cpp

@@ -6,7 +6,7 @@
 #include "../Core/Context.h"
 #include "../Resource/ResourceCache.h"
 #include "../Graphics/Technique.h"
-#include "../Graphics/LMStaticModel.h"
+#include "../Atomic3D/LMStaticModel.h"
 
 namespace Atomic
 {

+ 1 - 1
Source/Atomic/Graphics/LMStaticModel.h → Source/Atomic/Atomic3D/LMStaticModel.h

@@ -4,7 +4,7 @@
 
 #pragma once
 
-#include "../Graphics/StaticModel.h"
+#include "../Atomic3D/StaticModel.h"
 #include "../Graphics/Texture2D.h"
 #include "../Graphics/Material.h"
 

+ 1 - 1
Source/Atomic/Graphics/Model.cpp → Source/Atomic/Atomic3D/Model.cpp

@@ -26,7 +26,7 @@
 #include "../Graphics/Geometry.h"
 #include "../Graphics/IndexBuffer.h"
 #include "../IO/Log.h"
-#include "../Graphics/Model.h"
+#include "../Atomic3D/Model.h"
 #include "../Core/Profiler.h"
 #include "../Graphics/Graphics.h"
 #include "../IO/Serializer.h"

+ 1 - 1
Source/Atomic/Graphics/Model.h → Source/Atomic/Atomic3D/Model.h

@@ -25,7 +25,7 @@
 #include "../Container/ArrayPtr.h"
 #include "../Math/BoundingBox.h"
 #include "../Graphics/GraphicsDefs.h"
-#include "../Graphics/Skeleton.h"
+#include "../Atomic3D/Skeleton.h"
 #include "../Resource/Resource.h"
 #include "../Container/Ptr.h"
 

+ 1 - 1
Source/Atomic/Graphics/ParticleEffect.cpp → Source/Atomic/Atomic3D/ParticleEffect.cpp

@@ -24,7 +24,7 @@
 #include "../Core/Context.h"
 #include "../IO/Log.h"
 #include "../Graphics/Material.h"
-#include "../Graphics/ParticleEffect.h"
+#include "../Atomic3D/ParticleEffect.h"
 #include "../Resource/ResourceCache.h"
 #include "../Resource/XMLFile.h"
 

+ 0 - 0
Source/Atomic/Graphics/ParticleEffect.h → Source/Atomic/Atomic3D/ParticleEffect.h


+ 2 - 2
Source/Atomic/Graphics/ParticleEmitter.cpp → Source/Atomic/Atomic3D/ParticleEmitter.cpp

@@ -22,8 +22,8 @@
 
 #include "Precompiled.h"
 #include "../Core/Context.h"
-#include "../Graphics/ParticleEffect.h"
-#include "../Graphics/ParticleEmitter.h"
+#include "../Atomic3D/ParticleEffect.h"
+#include "../Atomic3D/ParticleEmitter.h"
 #include "../Core/Profiler.h"
 #include "../Resource/ResourceCache.h"
 #include "../Resource/ResourceEvents.h"

+ 1 - 1
Source/Atomic/Graphics/ParticleEmitter.h → Source/Atomic/Atomic3D/ParticleEmitter.h

@@ -22,7 +22,7 @@
 
 #pragma once
 
-#include "../Graphics/BillboardSet.h"
+#include "../Atomic3D/BillboardSet.h"
 
 namespace Atomic
 {

+ 1 - 1
Source/Atomic/Graphics/Skeleton.cpp → Source/Atomic/Atomic3D/Skeleton.cpp

@@ -24,7 +24,7 @@
 #include "../IO/Deserializer.h"
 #include "../IO/Log.h"
 #include "../IO/Serializer.h"
-#include "../Graphics/Skeleton.h"
+#include "../Atomic3D/Skeleton.h"
 
 #include "../DebugNew.h"
 

+ 0 - 0
Source/Atomic/Graphics/Skeleton.h → Source/Atomic/Atomic3D/Skeleton.h


+ 1 - 1
Source/Atomic/Graphics/Skybox.cpp → Source/Atomic/Atomic3D/Skybox.cpp

@@ -25,7 +25,7 @@
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"
 #include "../Scene/Node.h"
-#include "../Graphics/Skybox.h"
+#include "../Atomic3D/Skybox.h"
 
 #include "../DebugNew.h"
 

+ 1 - 1
Source/Atomic/Graphics/Skybox.h → Source/Atomic/Atomic3D/Skybox.h

@@ -22,7 +22,7 @@
 
 #pragma once
 
-#include "../Graphics/StaticModel.h"
+#include "../Atomic3D/StaticModel.h"
 
 namespace Atomic
 {

+ 2 - 2
Source/Atomic/Graphics/StaticModel.cpp → Source/Atomic/Atomic3D/StaticModel.cpp

@@ -21,7 +21,7 @@
 //
 
 #include "Precompiled.h"
-#include "../Graphics/AnimatedModel.h"
+#include "../Atomic3D/AnimatedModel.h"
 #include "../Graphics/Batch.h"
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"
@@ -29,7 +29,7 @@
 #include "../Graphics/Geometry.h"
 #include "../IO/Log.h"
 #include "../Graphics/Material.h"
-#include "../Graphics/Model.h"
+#include "../Atomic3D/Model.h"
 #include "../Graphics/OcclusionBuffer.h"
 #include "../Graphics/OctreeQuery.h"
 #include "../Core/Profiler.h"

+ 0 - 0
Source/Atomic/Graphics/StaticModel.h → Source/Atomic/Atomic3D/StaticModel.h


+ 1 - 1
Source/Atomic/Graphics/StaticModelGroup.cpp → Source/Atomic/Atomic3D/StaticModelGroup.cpp

@@ -29,7 +29,7 @@
 #include "../Graphics/OcclusionBuffer.h"
 #include "../Graphics/OctreeQuery.h"
 #include "../Scene/Scene.h"
-#include "../Graphics/StaticModelGroup.h"
+#include "../Atomic3D/StaticModelGroup.h"
 
 #include "../DebugNew.h"
 

+ 1 - 1
Source/Atomic/Graphics/StaticModelGroup.h → Source/Atomic/Atomic3D/StaticModelGroup.h

@@ -22,7 +22,7 @@
 
 #pragma once
 
-#include "../Graphics/StaticModel.h"
+#include "../Atomic3D/StaticModel.h"
 
 namespace Atomic
 {

+ 2 - 2
Source/Atomic/Graphics/Terrain.cpp → Source/Atomic/Atomic3D/Terrain.cpp

@@ -33,8 +33,8 @@
 #include "../Resource/ResourceCache.h"
 #include "../Resource/ResourceEvents.h"
 #include "../Scene/Scene.h"
-#include "../Graphics/Terrain.h"
-#include "../Graphics/TerrainPatch.h"
+#include "../Atomic3D/Terrain.h"
+#include "../Atomic3D/TerrainPatch.h"
 #include "../Graphics/VertexBuffer.h"
 
 #include "../DebugNew.h"

+ 0 - 0
Source/Atomic/Graphics/Terrain.h → Source/Atomic/Atomic3D/Terrain.h


+ 2 - 2
Source/Atomic/Graphics/TerrainPatch.cpp → Source/Atomic/Atomic3D/TerrainPatch.cpp

@@ -30,8 +30,8 @@
 #include "../Graphics/OcclusionBuffer.h"
 #include "../Graphics/OctreeQuery.h"
 #include "../Core/Profiler.h"
-#include "../Graphics/Terrain.h"
-#include "../Graphics/TerrainPatch.h"
+#include "../Atomic3D/Terrain.h"
+#include "../Atomic3D/TerrainPatch.h"
 #include "../Graphics/VertexBuffer.h"
 
 #include "../DebugNew.h"

+ 0 - 0
Source/Atomic/Graphics/TerrainPatch.h → Source/Atomic/Atomic3D/TerrainPatch.h


+ 10 - 5
Source/Atomic/CMakeLists.txt

@@ -14,14 +14,19 @@ file (GLOB INPUT_SOURCE Input/*.cpp Input/*.h)
 file (GLOB IO_SOURCE IO/*.cpp IO/*.h)
 file (GLOB RESOURCE_SOURCE Resource/*.cpp Resource/*.h)
 file (GLOB AUDIO_SOURCE Audio/*.cpp Audio/*.h)
-file (GLOB PHYSICS_SOURCE Physics/*.cpp Physics/*.h)
-file (GLOB NAVIGATION_SOURCE Navigation/*.cpp Navigation/*.h)
 file (GLOB NETWORK_SOURCE Network/*.cpp Network/*.h)
-file (GLOB ENVIRONMENT_SOURCE Environment/*.cpp Environment/*.h)
+
 file (GLOB ATOMIC2D_SOURCE Atomic2D/*.cpp Atomic2D/*.h)
 file (GLOB SCENE_SOURCE Scene/*.cpp Scene/*.h)
 file (GLOB UI_SOURCE UI/*.cpp UI/*.h)
 
+if (NOT ATOMIC_BUILD_2D)
+  file (GLOB ATOMIC3D_SOURCE Atomic3D/*.cpp Atomic3D/*.h)
+  file (GLOB PHYSICS_SOURCE Physics/*.cpp Physics/*.h)
+  file (GLOB NAVIGATION_SOURCE Navigation/*.cpp Navigation/*.h)
+  file (GLOB ENVIRONMENT_SOURCE Environment/*.cpp Environment/*.h)
+endif()
+
 file (GLOB GRAPHICS_SOURCE Graphics/*.cpp Graphics/*.h)
 
 if (MSVC)
@@ -31,7 +36,6 @@ else()
 # for kNet
     add_definitions (-DUNIX)
     file (GLOB GRAPHICS_IMPL_SOURCE Graphics/OpenGL/*.cpp Graphics/OpenGL/*.h)
-
 endif()
 
 if (ANDROID)
@@ -52,7 +56,8 @@ endif()
 set (SOURCE_FILES ${CONTAINER_SOURCE} ${CORE_SOURCE} ${ENGINE_SOURCE} ${INPUT_SOURCE}
                   ${AUDIO_SOURCE} ${IO_SOURCE} ${MATH_SOURCE} 
                   ${RESOURCE_SOURCE} ${PHYSICS_SOURCE}
-                  ${GRAPHICS_SOURCE} ${GRAPHICS_IMPL_SOURCE}                  
+                  ${GRAPHICS_SOURCE} ${GRAPHICS_IMPL_SOURCE}
+                  ${ATOMIC3D_SOURCE}
                   ${ATOMIC2D_SOURCE} ${ENVIRONMENT_SOURCE}
                   ${SCENE_SOURCE} ${UI_SOURCE}
                   ${PLATFORM_SOURCE})

+ 9 - 0
Source/Atomic/Engine/Engine.cpp

@@ -52,6 +52,9 @@
 #ifdef ATOMIC_ATOMIC2D
 #include "../Atomic2D/Atomic2D.h"
 #endif
+#ifdef ATOMIC_3D
+#include "../Atomic3D/Atomic3D.h"
+#endif
 
 #ifdef ATOMIC_TBUI
 #include "../UI/TBUI.h"
@@ -166,12 +169,18 @@ bool Engine::Initialize(const VariantMap& parameters)
     if (!headless_)
     {
         context_->RegisterSubsystem(new Graphics(context_));
+#ifdef ATOMIC_3D
+        RegisterAtomic3DLibrary(context_);
+#endif
         context_->RegisterSubsystem(new Renderer(context_));
     }
     else
     {
         // Register graphics library objects explicitly in headless mode to allow them to work without using actual GPU resources
         RegisterGraphicsLibrary(context_);
+#ifdef ATOMIC_3D
+        RegisterAtomic3DLibrary(context_);
+#endif
     }
 
 #ifdef ATOMIC_ATOMIC2D

+ 8 - 1
Source/Atomic/Graphics/DebugRenderer.cpp

@@ -22,7 +22,6 @@
 
 #include "Precompiled.h"
 
-#include "../Graphics/AnimatedModel.h"
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"
 #include "../Core/CoreEvents.h"
@@ -37,6 +36,11 @@
 
 #include "../DebugNew.h"
 
+#include "../Scene/Node.h"
+#ifdef ATOMIC_3D
+#include "../Atomic3D/AnimatedModel.h"
+#endif
+
 namespace Atomic
 {
 
@@ -242,6 +246,7 @@ void DebugRenderer::AddSphere(const Sphere& sphere, const Color& color, bool dep
     }
 }
 
+#ifdef ATOMIC_3D
 void DebugRenderer::AddSkeleton(const Skeleton& skeleton, const Color& color, bool depthTest)
 {
     const Vector<Bone>& bones = skeleton.GetBones();
@@ -276,6 +281,8 @@ void DebugRenderer::AddSkeleton(const Skeleton& skeleton, const Color& color, bo
     }
 }
 
+#endif
+
 void DebugRenderer::AddTriangleMesh(const void* vertexData, unsigned vertexSize, const void* indexData, unsigned indexSize,
     unsigned indexStart, unsigned indexCount, const Matrix3x4& transform, const Color& color, bool depthTest)
 {

+ 0 - 26
Source/Atomic/Graphics/OpenGL/OGLGraphics.cpp

@@ -20,15 +20,9 @@
 // THE SOFTWARE.
 //
 
-#include "../../Graphics/AnimatedModel.h"
-#include "../../Graphics/Animation.h"
-#include "../../Graphics/AnimationController.h"
-#include "../../Graphics/BillboardSet.h"
 #include "../../Graphics/Camera.h"
 #include "../../Core/Context.h"
-#include "../../Graphics/CustomGeometry.h"
 #include "../../Graphics/DebugRenderer.h"
-#include "../../Graphics/DecalSet.h"
 #include "../../IO/File.h"
 #include "../../Graphics/Graphics.h"
 #include "../../Graphics/GraphicsEvents.h"
@@ -38,8 +32,6 @@
 #include "../../Graphics/Material.h"
 #include "../../Core/Mutex.h"
 #include "../../Graphics/Octree.h"
-#include "../../Graphics/ParticleEffect.h"
-#include "../../Graphics/ParticleEmitter.h"
 #include "../../Core/ProcessUtils.h"
 #include "../../Core/Profiler.h"
 #include "../../Graphics/RenderSurface.h"
@@ -48,11 +40,7 @@
 #include "../../Graphics/ShaderPrecache.h"
 #include "../../Graphics/ShaderProgram.h"
 #include "../../Graphics/ShaderVariation.h"
-#include "../../Graphics/Skybox.h"
-#include "../../Graphics/StaticModelGroup.h"
 #include "../../Graphics/Technique.h"
-#include "../../Graphics/Terrain.h"
-#include "../../Graphics/TerrainPatch.h"
 #include "../../Graphics/Texture2D.h"
 #include "../../Graphics/Texture3D.h"
 #include "../../Graphics/TextureCube.h"
@@ -3086,9 +3074,7 @@ void Graphics::SetTextureUnitMappings()
 
 void RegisterGraphicsLibrary(Context* context)
 {
-    Animation::RegisterObject(context);
     Material::RegisterObject(context);
-    Model::RegisterObject(context);
     Shader::RegisterObject(context);
     Technique::RegisterObject(context);
     Texture2D::RegisterObject(context);
@@ -3097,18 +3083,6 @@ void RegisterGraphicsLibrary(Context* context)
     Camera::RegisterObject(context);
     Drawable::RegisterObject(context);
     Light::RegisterObject(context);
-    StaticModel::RegisterObject(context);
-    StaticModelGroup::RegisterObject(context);
-    Skybox::RegisterObject(context);
-    AnimatedModel::RegisterObject(context);
-    AnimationController::RegisterObject(context);
-    BillboardSet::RegisterObject(context);
-    ParticleEffect::RegisterObject(context);
-    ParticleEmitter::RegisterObject(context);
-    CustomGeometry::RegisterObject(context);
-    DecalSet::RegisterObject(context);
-    Terrain::RegisterObject(context);
-    TerrainPatch::RegisterObject(context);
     DebugRenderer::RegisterObject(context);
     Octree::RegisterObject(context);
     Zone::RegisterObject(context);

+ 8 - 2
Source/Atomic/Graphics/View.cpp

@@ -37,7 +37,9 @@
 #include "../Core/Profiler.h"
 #include "../Scene/Scene.h"
 #include "../Graphics/ShaderVariation.h"
-#include "../Graphics/Skybox.h"
+#ifdef ATOMIC_3D
+#include "../Atomic3D/Skybox.h"
+#endif
 #include "../Graphics/Technique.h"
 #include "../Graphics/Texture2D.h"
 #include "../Graphics/Texture3D.h"
@@ -218,7 +220,9 @@ void CheckVisibilityWork(const WorkItem* item, unsigned threadIndex)
                 drawable->ClearLights();
                 
                 // Expand the scene bounding box and Z range (skybox not included because of infinite size) and store the drawawble
+#ifdef ATOMIC_3D
                 if (drawable->GetType() != Skybox::GetTypeStatic())
+#endif
                 {
                     result.minZ_ = Min(result.minZ_, minZ);
                     result.maxZ_ = Max(result.maxZ_, maxZ);
@@ -2534,9 +2538,11 @@ void View::SetupDirLightShadowCamera(Camera* shadowCamera, Light* light, float n
         {
             Drawable* drawable = geometries_[i];
             
-            // Skip skyboxes as they have undefinedly large bounding box size
+#ifdef ATOMIC_3D
+            // Skip skyboxes as they have undefinedly large bounding box size            
             if (drawable->GetType() == Skybox::GetTypeStatic())
                 continue;
+#endif
             
             if (drawable->GetMinZ() <= farSplit && drawable->GetMaxZ() >= nearSplit &&
                 (GetLightMask(drawable) & light->GetLightMask()))

+ 3 - 3
Source/Atomic/Navigation/NavigationMesh.cpp

@@ -30,14 +30,14 @@
 #include "../Graphics/Geometry.h"
 #include "../IO/Log.h"
 #include "../IO/MemoryBuffer.h"
-#include "../Graphics/Model.h"
+#include "../Atomic3D/Model.h"
 #include "../Navigation/Navigable.h"
 #include "../Navigation/NavigationMesh.h"
 #include "../Navigation/OffMeshConnection.h"
 #include "../Core/Profiler.h"
 #include "../Scene/Scene.h"
-#include "../Graphics/StaticModel.h"
-#include "../Graphics/TerrainPatch.h"
+#include "../Atomic3D/StaticModel.h"
+#include "../Atomic3D/TerrainPatch.h"
 #include "../IO/VectorBuffer.h"
 
 #include <cfloat>

+ 3 - 3
Source/Atomic/Physics/CollisionShape.cpp

@@ -23,13 +23,13 @@
 #include "Precompiled.h"
 #include "../Physics/CollisionShape.h"
 #include "../Core/Context.h"
-#include "../Graphics/CustomGeometry.h"
+#include "../Atomic3D/CustomGeometry.h"
 #include "../Graphics/DebugRenderer.h"
 #include "../Graphics/DrawableEvents.h"
 #include "../Graphics/Geometry.h"
 #include "../Graphics/IndexBuffer.h"
 #include "../IO/Log.h"
-#include "../Graphics/Model.h"
+#include "../Atomic3D/Model.h"
 #include "../Physics/PhysicsUtils.h"
 #include "../Physics/PhysicsWorld.h"
 #include "../Core/Profiler.h"
@@ -37,7 +37,7 @@
 #include "../Resource/ResourceEvents.h"
 #include "../Physics/RigidBody.h"
 #include "../Scene/Scene.h"
-#include "../Graphics/Terrain.h"
+#include "../Atomic3D/Terrain.h"
 #include "../Graphics/VertexBuffer.h"
 
 #include <Bullet/src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h>

+ 1 - 1
Source/Atomic/Physics/PhysicsWorld.cpp

@@ -26,7 +26,7 @@
 #include "../Core/Context.h"
 #include "../Graphics/DebugRenderer.h"
 #include "../IO/Log.h"
-#include "../Graphics/Model.h"
+#include "../Atomic3D/Model.h"
 #include "../Core/Mutex.h"
 #include "../Physics/PhysicsEvents.h"
 #include "../Physics/PhysicsUtils.h"

+ 4 - 0
Source/Atomic/UI/Text3D.cpp

@@ -20,6 +20,8 @@
 // THE SOFTWARE.
 //
 
+#ifdef ATOMIC_3D
+
 #include "Precompiled.h"
 #include "../Graphics/Camera.h"
 #include "../Core/Context.h"
@@ -584,3 +586,5 @@ void Text3D::UpdateTextMaterials(bool forceUpdate)
 }
 
 }
+
+#endif

+ 5 - 0
Source/Atomic/UI/Text3D.h

@@ -22,6 +22,9 @@
 
 #pragma once
 
+
+#ifdef ATOMIC_3D
+
 #include "../Graphics/Drawable.h"
 #include "../Math/Matrix3x4.h"
 #include "../UI/Text.h"
@@ -187,3 +190,5 @@ private:
 
 }
 
+#endif
+

+ 2 - 0
Source/Atomic/UI/UI.cpp

@@ -1767,7 +1767,9 @@ void RegisterUILibrary(Context* context)
     CheckBox::RegisterObject(context);
     Cursor::RegisterObject(context);
     Text::RegisterObject(context);
+#ifdef ATOMIC_3D
     Text3D::RegisterObject(context);
+#endif
     Window::RegisterObject(context);
     View3D::RegisterObject(context);
     LineEdit::RegisterObject(context);

+ 4 - 4
Source/AtomicEditor/Source/Editors/ModelResourceEditor.cpp

@@ -8,10 +8,10 @@
 #include <Atomic/Graphics/Octree.h>
 #include <Atomic/Graphics/Camera.h>
 #include <Atomic/Graphics/Zone.h>
-#include <Atomic/Graphics/AnimatedModel.h>
-#include <Atomic/Graphics/Animation.h>
-#include <Atomic/Graphics/AnimationState.h>
-#include <Atomic/Graphics/AnimationController.h>
+#include <Atomic/Atomic3D/AnimatedModel.h>
+#include <Atomic/Atomic3D/Animation.h>
+#include <Atomic/Atomic3D/AnimationState.h>
+#include <Atomic/Atomic3D/AnimationController.h>
 #include <Atomic/Graphics/Material.h>
 #include <Atomic/Graphics/DebugRenderer.h>
 

+ 1 - 1
Source/AtomicEditor/Source/Editors/SceneEditor3D/Gizmo3D.cpp

@@ -6,7 +6,7 @@
 
 #include "AtomicEditor.h"
 
-#include <Atomic/Graphics/Model.h>
+#include <Atomic/Atomic3D/Model.h>
 #include <Atomic/Graphics/Material.h>
 #include <Atomic/Graphics/Octree.h>
 #include <Atomic/Resource/ResourceCache.h>

+ 1 - 1
Source/AtomicEditor/Source/Editors/SceneEditor3D/Gizmo3D.h

@@ -12,7 +12,7 @@
 #include <Atomic/Math/Ray.h>
 #include <Atomic/Scene/Scene.h>
 
-#include <Atomic/Graphics/StaticModel.h>
+#include <Atomic/Atomic3D/StaticModel.h>
 #include <Atomic/Graphics/Camera.h>
 
 

+ 1 - 1
Source/AtomicEditor/Source/Editors/SceneEditor3D/SceneView3D.cpp

@@ -14,7 +14,7 @@
 #include <Atomic/Graphics/DebugRenderer.h>
 #include <Atomic/Graphics/Viewport.h>
 #include <Atomic/Graphics/Octree.h>
-#include <Atomic/Graphics/Terrain.h>
+#include <Atomic/Atomic3D/Terrain.h>
 
 #include <Atomic/Input/Input.h>
 

+ 5 - 5
Source/AtomicEditor/Source/Import/AEJSONSceneProcess.cpp

@@ -16,11 +16,11 @@
 
 #include <Atomic/Graphics/Octree.h>
 #include <Atomic/Graphics/Zone.h>
-#include <Atomic/Graphics/AnimatedModel.h>
-#include <Atomic/Graphics/StaticModel.h>
-#include <Atomic/Graphics/LMStaticModel.h>
-#include <Atomic/Graphics/Terrain.h>
-#include <Atomic/Graphics/Animation.h>
+#include <Atomic/Atomic3D/AnimatedModel.h>
+#include <Atomic/Atomic3D/StaticModel.h>
+#include <Atomic/Atomic3D/LMStaticModel.h>
+#include <Atomic/Atomic3D/Terrain.h>
+#include <Atomic/Atomic3D/Animation.h>
 #include <Atomic/Graphics/DebugRenderer.h>
 #include <Atomic/Physics/CollisionShape.h>
 #include <Atomic/Physics/RigidBody.h>

+ 1 - 1
Source/AtomicEditor/Source/Import/AEJSONSceneProcess.h

@@ -12,7 +12,7 @@
 #include <Atomic/Graphics/Technique.h>
 #include <Atomic/Graphics/Texture2D.h>
 #include <Atomic/Graphics/Material.h>
-#include <Atomic/Graphics/Model.h>
+#include <Atomic/Atomic3D/Model.h>
 #include <Atomic/Scene/Scene.h>
 
 using namespace Atomic;

+ 28 - 0
Source/AtomicJS/JSBind/modules/Atomic3D.json

@@ -0,0 +1,28 @@
+{
+	"name" : "Graphics",
+	"sources" : ["Graphics"],
+	"includes" : ["<Atomic/Scene/Scene.h>", "<Atomic/Graphics/Animation.h>", "<Atomic/Graphics/OcclusionBuffer.h>", "<Atomic/Scene/ValueAnimation.h>"],
+	"classes" : ["Graphics", "Texture", "Texture2D", "Model", "Material", "Drawable", 
+				 "Viewport", "Renderer", "Octree", "Zone", "StaticModel", "Camera", "Light", "RenderPath",
+				 "Animation", "AnimatedModel", "AnimationController", "AnimationState", "BillboardSet", "CustomGeometry",
+				 "DebugRenderer", "DecalSet", "OcclusionBuffer", "ParticleEffect", "ParticleEmitter",
+				 "RenderSurface", "Shader", "ShaderPrecache", "ShaderVariation", 
+				 "Skybox", "StaticModelGroup", "Pass", "Technique", "Terrain", "TerrainPatch", 
+				 "Texture3D", "TextureCube", "View"],
+	"overloads" : {
+		"StaticModel" : {
+			"SetMaterial" : ["Material"]
+		},
+		"Viewport" : {
+			"Viewport" : ["Context", "Scene", "Camera", "RenderPath"]
+		},
+		"Camera" : {
+			"SetOrthoSize" : ["float"]
+		},
+		"AnimationState" : {
+			"AnimationState" : ["AnimatedModel", "Animation"]
+		}		
+
+	}
+
+}

+ 6 - 13
Source/AtomicJS/JSBind/modules/Graphics.json

@@ -1,27 +1,20 @@
 {
 	"name" : "Graphics",
 	"sources" : ["Graphics"],
-	"includes" : ["<Atomic/Scene/Scene.h>", "<Atomic/Graphics/Animation.h>", "<Atomic/Graphics/OcclusionBuffer.h>", "<Atomic/Scene/ValueAnimation.h>"],
-	"classes" : ["Graphics", "Texture", "Texture2D", "Model", "Material", "Drawable", 
-				 "Viewport", "Renderer", "Octree", "Zone", "StaticModel", "Camera", "Light", "RenderPath",
-				 "Animation", "AnimatedModel", "AnimationController", "AnimationState", "BillboardSet", "CustomGeometry",
-				 "DebugRenderer", "DecalSet", "OcclusionBuffer", "ParticleEffect", "ParticleEmitter",
+	"includes" : ["<Atomic/Scene/Scene.h>", "<Atomic/Graphics/OcclusionBuffer.h>", "<Atomic/Scene/ValueAnimation.h>"],
+	"classes" : ["Graphics", "Texture", "Texture2D", "Material", "Drawable", 
+				 "Viewport", "Renderer", "Octree", "Zone", "Camera", "Light", "RenderPath",				 
+				 "DebugRenderer", 
 				 "RenderSurface", "Shader", "ShaderPrecache", "ShaderVariation", 
-				 "Skybox", "StaticModelGroup", "Pass", "Technique", "Terrain", "TerrainPatch", 
+				 "Pass", "Technique", 
 				 "Texture3D", "TextureCube", "View"],
 	"overloads" : {
-		"StaticModel" : {
-			"SetMaterial" : ["Material"]
-		},
 		"Viewport" : {
 			"Viewport" : ["Context", "Scene", "Camera", "RenderPath"]
 		},
 		"Camera" : {
 			"SetOrthoSize" : ["float"]
-		},
-		"AnimationState" : {
-			"AnimationState" : ["AnimatedModel", "Animation"]
-		}		
+		}
 
 	}
 

+ 1 - 1
Source/AtomicJS/JSBind/modules/Modules.json

@@ -4,7 +4,7 @@
 	"Physics", "Navigation", "Input", "UI", "Resource", "Network", "IO",
 	"Engine", "Javascript", "Environment"],
 
-	"modulePlatformExclude" : {
+	"moduleExclude" : {
 		"WEB" : ["Network", "Navigation"]
 	}
 }

+ 1 - 1
Source/AtomicJS/JSBind/modules/Physics.json

@@ -1,7 +1,7 @@
 {
 	"name" : "Physics",
 	"sources" : ["Physics"],
-	"includes" : ["<Atomic/Graphics/Model.h>"],
+	"includes" : ["<Atomic/Atomic3D/Model.h>"],
 	"classes" : ["CollisionShape", "Constraint", "PhysicsWorld", "RigidBody"],
  	"overloads" : {
 		"RigidBody" : {

+ 1 - 1
Source/AtomicJS/JSBind/modules/UI.json

@@ -5,7 +5,7 @@
 	"classes" : ["Font", "UI", "UIElement", "Text", "BorderImage", "Button", "CheckBox",
 			     "Cursor", "DropDownList", "Menu", "FileSelector", "FontFace", "FontFaceBitmap", 
 			     "FontFaceFreeType", "LineEdit", "ListView", "ScrollView", "MessageBox",
-			     "ScrollBar", "Slider", "Sprite", "Text3D", "ToolTip", "Window", "View3D"],
+			     "ScrollBar", "Slider", "Sprite", "ToolTip", "Window", "View3D"],
 	"overloads" : {
 		"Text" : {
 			"SetFont" : ["Font", "int"]

+ 2 - 0
Source/AtomicJS/Javascript/JSComponent.cpp

@@ -461,6 +461,7 @@ void JSComponent::HandleScriptEvent(StringHash eventType, VariantMap& eventData)
             duk_pop(ctx);
 
         }
+#ifdef ATOMIC_PHYSICS
         else if (eventType == E_NODECOLLISION)
         {
             // Check collision contacts and see if character is standing on ground (look for a contact that has near vertical normal)
@@ -498,6 +499,7 @@ void JSComponent::HandleScriptEvent(StringHash eventType, VariantMap& eventData)
             }
 
         }
+#endif
         else
         {
             duk_push_heapptr(ctx, function);

+ 5 - 2
Source/ThirdParty/CMakeLists.txt

@@ -1,14 +1,17 @@
 
 add_subdirectory(Box2D)
-add_subdirectory(Bullet)
 add_subdirectory(Duktape)
 add_subdirectory(FreeType)
 add_subdirectory(JO)
 add_subdirectory(LZ4)
 add_subdirectory(PugiXml)
-add_subdirectory(StanHull)
 add_subdirectory(STB)
 
+if (NOT ATOMIC_BUILD_2D)
+	add_subdirectory(Bullet)
+	add_subdirectory(StanHull)
+endif()
+
 if (NOT EMSCRIPTEN)
 	add_subdirectory(SDL)
 	add_subdirectory(Recast)