From 23dcc340d2a33eb9bf20c6e3bb910d5238ad4051 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Wed, 13 Dec 2023 15:52:41 +0100 Subject: [PATCH] Cleanup --- armorforge/Sources/arm/{ui => }/TabObjects.hx | 6 +- .../Sources/arm/{shader => }/MakeMaterial.hx | 5 +- armorlab/Sources/arm/{shader => }/MakeMesh.hx | 9 +- .../Sources/arm/{shader => }/MakePaint.hx | 9 +- .../Sources/arm/{logic => }/NodesBrush.hx | 20 +- .../arm/{render => }/RenderPathPaint.hx | 11 +- armorlab/Sources/arm/{ui => }/UINodesExt.hx | 25 +- .../arm/{logic => nodes}/BrushOutputNode.hx | 4 +- .../arm/{logic => nodes}/ImageTextureNode.hx | 6 +- .../arm/{logic => nodes}/InpaintNode.hx | 8 +- .../arm/{logic => nodes}/PhotoToPBRNode.hx | 6 +- .../Sources/arm/{logic => nodes}/RGBNode.hx | 8 +- .../arm/{logic => nodes}/TextToPhotoNode.hx | 9 +- .../arm/{logic => nodes}/TilingNode.hx | 8 +- .../arm/{logic => nodes}/UpscaleNode.hx | 6 +- .../arm/{logic => nodes}/VarianceNode.hx | 8 +- armorpaint/Assets/plugins/embed/uv_unwrap.js | 4 +- armorpaint/Assets/plugins/hello_node.js | 10 +- armorpaint/Assets/plugins/hello_node_brush.js | 4 +- armorpaint/Assets/plugins/wasm/uv_unwrap.js | 4 +- .../Sources/arm/{io => }/ImportFolder.hx | 13 +- .../Sources/arm/{shader => }/MakeBake.hx | 15 +- .../Sources/arm/{shader => }/MakeBlur.hx | 4 +- .../Sources/arm/{shader => }/MakeBrush.hx | 5 +- .../Sources/arm/{shader => }/MakeClone.hx | 4 +- .../arm/{shader => }/MakeColorIdPicker.hx | 5 +- .../Sources/arm/{shader => }/MakeDiscard.hx | 4 +- .../Sources/arm/{shader => }/MakeMaterial.hx | 50 ++- .../Sources/arm/{shader => }/MakeMesh.hx | 14 +- .../arm/{shader => }/MakeMeshPreview.hx | 29 +- .../arm/{shader => }/MakeNodePreview.hx | 39 +-- .../Sources/arm/{shader => }/MakePaint.hx | 41 +-- .../Sources/arm/{shader => }/MakeParticle.hx | 6 +- .../Sources/arm/{shader => }/MakeTexcoord.hx | 4 +- .../Sources/arm/{logic => }/NodesBrush.hx | 22 +- .../arm/{render => }/RenderPathPaint.hx | 15 +- .../arm/{render => }/RenderPathPreview.hx | 19 +- .../arm/{data/BrushSlot.hx => SlotBrush.hx} | 4 +- .../arm/{data/FontSlot.hx => SlotFont.hx} | 4 +- .../arm/{data/LayerSlot.hx => SlotLayer.hx} | 40 +-- .../{data/MaterialSlot.hx => SlotMaterial.hx} | 7 +- armorpaint/Sources/arm/{ui => }/TabLayers.hx | 54 ++- .../arm/{logic => nodes}/BrushOutputNode.hx | 12 +- .../Sources/arm/{logic => nodes}/InputNode.hx | 4 +- .../Sources/arm/{logic => nodes}/TEX_IMAGE.hx | 6 +- armorsculpt/Sources/arm/{io => }/ExportObj.hx | 2 +- .../Sources/arm/{io => }/ImportMesh.hx | 15 +- .../Sources/arm/{shader => }/MakeBrush.hx | 4 +- .../Sources/arm/{shader => }/MakeMaterial.hx | 25 +- .../Sources/arm/{shader => }/MakeMesh.hx | 14 +- .../arm/{shader => }/MakeMeshPreview.hx | 29 +- .../Sources/arm/{shader => }/MakeSculpt.hx | 9 +- armorsculpt/Sources/arm/{ui => }/TabLayers.hx | 32 +- .../arm/{logic => nodes}/BrushOutputNode.hx | 10 +- base/Sources/Main.hx | 10 +- base/Sources/arm/Args.hx | 16 - base/Sources/arm/Base.hx | 144 ++++---- base/Sources/arm/{ui => }/BoxExport.hx | 12 +- base/Sources/arm/{ui => }/BoxPreferences.hx | 15 +- base/Sources/arm/{ui => }/BoxProjects.hx | 17 +- base/Sources/arm/Camera.hx | 1 - base/Sources/arm/Config.hx | 5 - base/Sources/arm/ConfigFormat.hx | 2 +- base/Sources/arm/Console.hx | 1 - base/Sources/arm/Context.hx | 47 +-- base/Sources/arm/ContextFormat.hx | 21 +- base/Sources/arm/{io => }/ExportArm.hx | 11 +- base/Sources/arm/{io => }/ExportGpl.hx | 2 +- base/Sources/arm/{io => }/ExportMesh.hx | 2 +- base/Sources/arm/{io => }/ExportObj.hx | 2 +- base/Sources/arm/{io => }/ExportTexture.hx | 31 +- base/Sources/arm/{sys => }/File.hx | 2 +- .../arm/{geom/Plane.hx => GeomPlane.hx} | 4 +- .../arm/{geom/UVSphere.hx => GeomUVSphere.hx} | 4 +- base/Sources/arm/{render => }/Gizmo.hx | 8 +- base/Sources/arm/History.hx | 35 +- base/Sources/arm/{io => }/ImportArm.hx | 58 ++-- base/Sources/arm/{io => }/ImportAsset.hx | 11 +- .../arm/{io => }/ImportBlendMaterial.hx | 18 +- base/Sources/arm/{io => }/ImportBlendMesh.hx | 7 +- base/Sources/arm/{io => }/ImportEnvmap.hx | 2 +- base/Sources/arm/{io => }/ImportFbx.hx | 9 +- base/Sources/arm/{io => }/ImportFont.hx | 12 +- base/Sources/arm/{io => }/ImportGpl.hx | 2 +- base/Sources/arm/{io => }/ImportKeymap.hx | 9 +- base/Sources/arm/{io => }/ImportMesh.hx | 31 +- base/Sources/arm/{io => }/ImportObj.hx | 2 +- base/Sources/arm/{io => }/ImportPlugin.hx | 7 +- base/Sources/arm/{io => }/ImportTexture.hx | 4 +- base/Sources/arm/{io => }/ImportTheme.hx | 9 +- base/Sources/arm/{render => }/LineDraw.hx | 2 +- base/Sources/arm/{logic => }/LogicNode.hx | 2 +- base/Sources/arm/{shader => }/MakeVoxel.hx | 2 +- base/Sources/arm/{shader => }/NodeShader.hx | 2 +- .../arm/{shader => }/NodeShaderContext.hx | 4 +- .../arm/{shader => }/NodeShaderData.hx | 2 +- .../Sources/arm/{shader => }/NodesMaterial.hx | 28 +- .../{format/BlendParser.hx => ParserBlend.hx} | 10 +- .../arm/{format/ExrWriter.hx => ParserExr.hx} | 4 +- .../{format/FbxLibrary.hx => ParserFbx.hx} | 320 +++++++++++++++++- .../{logic/LogicParser.hx => ParserLogic.hx} | 7 +- .../MaterialParser.hx => ParserMaterial.hx} | 5 +- base/Sources/arm/{sys => }/Path.hx | 2 +- base/Sources/arm/{plugin => }/PhysicsBody.hx | 104 +++--- .../arm/{plugin/Bt.hx => PhysicsBullet.hx} | 4 +- base/Sources/arm/{plugin => }/PhysicsWorld.hx | 50 +-- base/Sources/arm/Plugin.hx | 58 ++-- base/Sources/arm/Project.hx | 64 ++-- base/Sources/arm/ProjectFormat.hx | 10 +- .../arm/{render => }/RenderPathBase.hx | 13 +- .../arm/{render => }/RenderPathDeferred.hx | 2 +- .../arm/{render => }/RenderPathForward.hx | 2 +- .../arm/{render => }/RenderPathRaytrace.hx | 4 +- .../{render => }/RenderPathRaytraceBake.hx | 2 +- .../arm/{shader => }/ShaderFunctions.hx | 2 +- base/Sources/arm/{ui => }/TabBrowser.hx | 7 +- base/Sources/arm/{ui => }/TabBrushes.hx | 15 +- base/Sources/arm/{ui => }/TabConsole.hx | 3 +- base/Sources/arm/{ui => }/TabFonts.hx | 8 +- base/Sources/arm/{ui => }/TabHistory.hx | 2 +- base/Sources/arm/{ui => }/TabMaterials.hx | 17 +- base/Sources/arm/{ui => }/TabMeshes.hx | 31 +- base/Sources/arm/{ui => }/TabParticles.hx | 2 +- base/Sources/arm/{ui => }/TabPlugins.hx | 2 +- base/Sources/arm/{ui => }/TabScript.hx | 3 +- base/Sources/arm/{ui => }/TabSwatches.hx | 2 +- base/Sources/arm/{ui => }/TabTextures.hx | 11 +- base/Sources/arm/Translator.hx | 2 - base/Sources/arm/{ui => }/UIBase.hx | 45 +-- base/Sources/arm/{ui => }/UIBox.hx | 2 +- base/Sources/arm/{ui => }/UIFiles.hx | 4 +- base/Sources/arm/{ui => }/UIHeader.hx | 32 +- base/Sources/arm/{ui => }/UIMenu.hx | 16 +- base/Sources/arm/{ui => }/UIMenubar.hx | 6 +- base/Sources/arm/{ui => }/UINodes.hx | 33 +- base/Sources/arm/{ui => }/UIStatus.hx | 2 +- base/Sources/arm/{ui => }/UIToolbar.hx | 2 +- base/Sources/arm/{ui => }/UIView2D.hx | 15 +- base/Sources/arm/{render => }/UniformsExt.hx | 43 +-- .../arm/{util/MeshUtil.hx => UtilMesh.hx} | 10 +- .../{util/ParticleUtil.hx => UtilParticle.hx} | 16 +- .../arm/{util/RenderUtil.hx => UtilRender.hx} | 20 +- .../Sources/arm/{util/UVUtil.hx => UtilUV.hx} | 6 +- base/Sources/arm/Viewport.hx | 1 - base/Sources/arm/format/FbxBinaryParser.hx | 210 ------------ base/Sources/arm/format/FbxParser.hx | 104 ------ .../arm/{logic => nodes}/BooleanNode.hx | 4 +- .../Sources/arm/{logic => nodes}/ColorNode.hx | 3 +- .../Sources/arm/{logic => nodes}/FloatNode.hx | 4 +- .../arm/{logic => nodes}/IntegerNode.hx | 4 +- base/Sources/arm/{logic => nodes}/MathNode.hx | 4 +- base/Sources/arm/{logic => nodes}/NullNode.hx | 4 +- .../arm/{logic => nodes}/RandomNode.hx | 4 +- .../{logic => nodes}/SeparateVectorNode.hx | 6 +- .../arm/{logic => nodes}/StringNode.hx | 4 +- base/Sources/arm/{logic => nodes}/TimeNode.hx | 4 +- .../arm/{logic => nodes}/VectorMathNode.hx | 6 +- .../arm/{logic => nodes}/VectorNode.hx | 6 +- base/project.js | 2 +- 159 files changed, 1174 insertions(+), 1561 deletions(-) rename armorforge/Sources/arm/{ui => }/TabObjects.hx (97%) rename armorlab/Sources/arm/{shader => }/MakeMaterial.hx (97%) rename armorlab/Sources/arm/{shader => }/MakeMesh.hx (98%) rename armorlab/Sources/arm/{shader => }/MakePaint.hx (98%) rename armorlab/Sources/arm/{logic => }/NodesBrush.hx (62%) rename armorlab/Sources/arm/{render => }/RenderPathPaint.hx (97%) rename armorlab/Sources/arm/{ui => }/UINodesExt.hx (85%) rename armorlab/Sources/arm/{logic => nodes}/BrushOutputNode.hx (97%) rename armorlab/Sources/arm/{logic => nodes}/ImageTextureNode.hx (94%) rename armorlab/Sources/arm/{logic => nodes}/InpaintNode.hx (98%) rename armorlab/Sources/arm/{logic => nodes}/PhotoToPBRNode.hx (98%) rename armorlab/Sources/arm/{logic => nodes}/RGBNode.hx (90%) rename armorlab/Sources/arm/{logic => nodes}/TextToPhotoNode.hx (99%) rename armorlab/Sources/arm/{logic => nodes}/TilingNode.hx (96%) rename armorlab/Sources/arm/{logic => nodes}/UpscaleNode.hx (98%) rename armorlab/Sources/arm/{logic => nodes}/VarianceNode.hx (96%) rename armorpaint/Sources/arm/{io => }/ImportFolder.hx (91%) rename armorpaint/Sources/arm/{shader => }/MakeBake.hx (94%) rename armorpaint/Sources/arm/{shader => }/MakeBlur.hx (99%) rename armorpaint/Sources/arm/{shader => }/MakeBrush.hx (97%) rename armorpaint/Sources/arm/{shader => }/MakeClone.hx (96%) rename armorpaint/Sources/arm/{shader => }/MakeColorIdPicker.hx (96%) rename armorpaint/Sources/arm/{shader => }/MakeDiscard.hx (97%) rename armorpaint/Sources/arm/{shader => }/MakeMaterial.hx (92%) rename armorpaint/Sources/arm/{shader => }/MakeMesh.hx (98%) rename armorpaint/Sources/arm/{shader => }/MakeMeshPreview.hx (88%) rename armorpaint/Sources/arm/{shader => }/MakeNodePreview.hx (70%) rename armorpaint/Sources/arm/{shader => }/MakePaint.hx (94%) rename armorpaint/Sources/arm/{shader => }/MakeParticle.hx (97%) rename armorpaint/Sources/arm/{shader => }/MakeTexcoord.hx (98%) rename armorpaint/Sources/arm/{logic => }/NodesBrush.hx (60%) rename armorpaint/Sources/arm/{render => }/RenderPathPaint.hx (99%) rename armorpaint/Sources/arm/{render => }/RenderPathPreview.hx (88%) rename armorpaint/Sources/arm/{data/BrushSlot.hx => SlotBrush.hx} (95%) rename armorpaint/Sources/arm/{data/FontSlot.hx => SlotFont.hx} (91%) rename armorpaint/Sources/arm/{data/LayerSlot.hx => SlotLayer.hx} (94%) rename armorpaint/Sources/arm/{data/MaterialSlot.hx => SlotMaterial.hx} (93%) rename armorpaint/Sources/arm/{ui => }/TabLayers.hx (95%) rename armorpaint/Sources/arm/{logic => nodes}/BrushOutputNode.hx (97%) rename armorpaint/Sources/arm/{logic => nodes}/InputNode.hx (98%) rename armorpaint/Sources/arm/{logic => nodes}/TEX_IMAGE.hx (93%) rename armorsculpt/Sources/arm/{io => }/ExportObj.hx (99%) rename armorsculpt/Sources/arm/{io => }/ImportMesh.hx (94%) rename armorsculpt/Sources/arm/{shader => }/MakeBrush.hx (96%) rename armorsculpt/Sources/arm/{shader => }/MakeMaterial.hx (93%) rename armorsculpt/Sources/arm/{shader => }/MakeMesh.hx (97%) rename armorsculpt/Sources/arm/{shader => }/MakeMeshPreview.hx (88%) rename armorsculpt/Sources/arm/{shader => }/MakeSculpt.hx (93%) rename armorsculpt/Sources/arm/{ui => }/TabLayers.hx (92%) rename armorsculpt/Sources/arm/{logic => nodes}/BrushOutputNode.hx (96%) rename base/Sources/arm/{ui => }/BoxExport.hx (98%) rename base/Sources/arm/{ui => }/BoxPreferences.hx (98%) rename base/Sources/arm/{ui => }/BoxProjects.hx (93%) rename base/Sources/arm/{io => }/ExportArm.hx (98%) rename base/Sources/arm/{io => }/ExportGpl.hx (96%) rename base/Sources/arm/{io => }/ExportMesh.hx (95%) rename base/Sources/arm/{io => }/ExportObj.hx (99%) rename base/Sources/arm/{io => }/ExportTexture.hx (95%) rename base/Sources/arm/{sys => }/File.hx (99%) rename base/Sources/arm/{geom/Plane.hx => GeomPlane.hx} (98%) rename base/Sources/arm/{geom/UVSphere.hx => GeomUVSphere.hx} (98%) rename base/Sources/arm/{render => }/Gizmo.hx (98%) rename base/Sources/arm/{io => }/ImportArm.hx (93%) rename base/Sources/arm/{io => }/ImportAsset.hx (92%) rename base/Sources/arm/{io => }/ImportBlendMaterial.hx (95%) rename base/Sources/arm/{io => }/ImportBlendMesh.hx (99%) rename base/Sources/arm/{io => }/ImportEnvmap.hx (99%) rename base/Sources/arm/{io => }/ImportFbx.hx (64%) rename base/Sources/arm/{io => }/ImportFont.hx (75%) rename base/Sources/arm/{io => }/ImportGpl.hx (98%) rename base/Sources/arm/{io => }/ImportKeymap.hx (66%) rename base/Sources/arm/{io => }/ImportMesh.hx (90%) rename base/Sources/arm/{io => }/ImportObj.hx (99%) rename base/Sources/arm/{io => }/ImportPlugin.hx (76%) rename base/Sources/arm/{io => }/ImportTexture.hx (96%) rename base/Sources/arm/{io => }/ImportTheme.hx (69%) rename base/Sources/arm/{render => }/LineDraw.hx (99%) rename base/Sources/arm/{logic => }/LogicNode.hx (98%) rename base/Sources/arm/{shader => }/MakeVoxel.hx (99%) rename base/Sources/arm/{shader => }/NodeShader.hx (99%) rename base/Sources/arm/{shader => }/NodeShaderContext.hx (98%) rename base/Sources/arm/{shader => }/NodeShaderData.hx (95%) rename base/Sources/arm/{shader => }/NodesMaterial.hx (98%) rename base/Sources/arm/{format/BlendParser.hx => ParserBlend.hx} (98%) rename base/Sources/arm/{format/ExrWriter.hx => ParserExr.hx} (99%) rename base/Sources/arm/{format/FbxLibrary.hx => ParserFbx.hx} (74%) rename base/Sources/arm/{logic/LogicParser.hx => ParserLogic.hx} (98%) rename base/Sources/arm/{shader/MaterialParser.hx => ParserMaterial.hx} (99%) rename base/Sources/arm/{sys => }/Path.hx (99%) rename base/Sources/arm/{plugin => }/PhysicsBody.hx (78%) rename base/Sources/arm/{plugin/Bt.hx => PhysicsBullet.hx} (99%) rename base/Sources/arm/{plugin => }/PhysicsWorld.hx (76%) rename base/Sources/arm/{render => }/RenderPathBase.hx (97%) rename base/Sources/arm/{render => }/RenderPathDeferred.hx (99%) rename base/Sources/arm/{render => }/RenderPathForward.hx (97%) rename base/Sources/arm/{render => }/RenderPathRaytrace.hx (98%) rename base/Sources/arm/{render => }/RenderPathRaytraceBake.hx (99%) rename base/Sources/arm/{shader => }/ShaderFunctions.hx (99%) rename base/Sources/arm/{ui => }/TabBrowser.hx (97%) rename base/Sources/arm/{ui => }/TabBrushes.hx (93%) rename base/Sources/arm/{ui => }/TabConsole.hx (97%) rename base/Sources/arm/{ui => }/TabFonts.hx (96%) rename base/Sources/arm/{ui => }/TabHistory.hx (97%) rename base/Sources/arm/{ui => }/TabMaterials.hx (96%) rename base/Sources/arm/{ui => }/TabMeshes.hx (87%) rename base/Sources/arm/{ui => }/TabParticles.hx (95%) rename base/Sources/arm/{ui => }/TabPlugins.hx (96%) rename base/Sources/arm/{ui => }/TabScript.hx (98%) rename base/Sources/arm/{ui => }/TabSwatches.hx (99%) rename base/Sources/arm/{ui => }/TabTextures.hx (97%) rename base/Sources/arm/{ui => }/UIBase.hx (98%) rename base/Sources/arm/{ui => }/UIBox.hx (99%) rename base/Sources/arm/{ui => }/UIFiles.hx (99%) rename base/Sources/arm/{ui => }/UIHeader.hx (96%) rename base/Sources/arm/{ui => }/UIMenu.hx (98%) rename base/Sources/arm/{ui => }/UIMenubar.hx (98%) rename base/Sources/arm/{ui => }/UINodes.hx (97%) rename base/Sources/arm/{ui => }/UIStatus.hx (98%) rename base/Sources/arm/{ui => }/UIToolbar.hx (99%) rename base/Sources/arm/{ui => }/UIView2D.hx (97%) rename base/Sources/arm/{render => }/UniformsExt.hx (94%) rename base/Sources/arm/{util/MeshUtil.hx => UtilMesh.hx} (98%) rename base/Sources/arm/{util/ParticleUtil.hx => UtilParticle.hx} (87%) rename base/Sources/arm/{util/RenderUtil.hx => UtilRender.hx} (97%) rename base/Sources/arm/{util/UVUtil.hx => UtilUV.hx} (98%) delete mode 100644 base/Sources/arm/format/FbxBinaryParser.hx delete mode 100644 base/Sources/arm/format/FbxParser.hx rename base/Sources/arm/{logic => nodes}/BooleanNode.hx (89%) rename base/Sources/arm/{logic => nodes}/ColorNode.hx (95%) rename base/Sources/arm/{logic => nodes}/FloatNode.hx (96%) rename base/Sources/arm/{logic => nodes}/IntegerNode.hx (89%) rename base/Sources/arm/{logic => nodes}/MathNode.hx (98%) rename base/Sources/arm/{logic => nodes}/NullNode.hx (77%) rename base/Sources/arm/{logic => nodes}/RandomNode.hx (97%) rename base/Sources/arm/{logic => nodes}/SeparateVectorNode.hx (93%) rename base/Sources/arm/{logic => nodes}/StringNode.hx (89%) rename base/Sources/arm/{logic => nodes}/TimeNode.hx (95%) rename base/Sources/arm/{logic => nodes}/VectorMathNode.hx (97%) rename base/Sources/arm/{logic => nodes}/VectorNode.hx (96%) diff --git a/armorforge/Sources/arm/ui/TabObjects.hx b/armorforge/Sources/arm/TabObjects.hx similarity index 97% rename from armorforge/Sources/arm/ui/TabObjects.hx rename to armorforge/Sources/arm/TabObjects.hx index 6d841717..a9f8a9a0 100644 --- a/armorforge/Sources/arm/ui/TabObjects.hx +++ b/armorforge/Sources/arm/TabObjects.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import haxe.Json; import zui.Zui; @@ -111,7 +111,7 @@ class TabObjects { Data.getMaterial("Scene", "TempMaterial" + materialId, function(md: MaterialData) { var mo: MeshObject = cast currentObject; mo.materials = [md]; - arm.shader.MakeMaterial.parseMeshPreviewMaterial(md); + MakeMaterial.parseMeshPreviewMaterial(md); }); } }, 1); @@ -197,7 +197,7 @@ class TabObjects { Context.raw.selectedObject.transform.rot.fromEuler(rot.x, rot.y, rot.z); Context.raw.selectedObject.transform.buildMatrix(); // #if arm_physics - // var rb = Context.raw.selectedObject.getTrait(armory.trait.physics.RigidBody); + // var rb = Context.raw.selectedObject.getTrait(RigidBody); // if (rb != null) rb.syncTransform(); // #end } diff --git a/armorlab/Sources/arm/shader/MakeMaterial.hx b/armorlab/Sources/arm/MakeMaterial.hx similarity index 97% rename from armorlab/Sources/arm/shader/MakeMaterial.hx rename to armorlab/Sources/arm/MakeMaterial.hx index b5ea298d..e7550619 100644 --- a/armorlab/Sources/arm/shader/MakeMaterial.hx +++ b/armorlab/Sources/arm/MakeMaterial.hx @@ -1,10 +1,9 @@ -package arm.shader; +package arm; import zui.Zui.Nodes; import iron.SceneFormat; import iron.ShaderData; import iron.MaterialData; -import arm.shader.NodeShaderData; class MakeMaterial { @@ -45,7 +44,7 @@ class MakeMaterial { #end #if (krom_direct3d12 || krom_vulkan) - arm.render.RenderPathRaytrace.dirty = 1; + RenderPathRaytrace.dirty = 1; #end } diff --git a/armorlab/Sources/arm/shader/MakeMesh.hx b/armorlab/Sources/arm/MakeMesh.hx similarity index 98% rename from armorlab/Sources/arm/shader/MakeMesh.hx rename to armorlab/Sources/arm/MakeMesh.hx index 24de5d64..b4b36491 100644 --- a/armorlab/Sources/arm/shader/MakeMesh.hx +++ b/armorlab/Sources/arm/MakeMesh.hx @@ -1,9 +1,4 @@ -package arm.shader; - -import arm.shader.MaterialParser; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; -import arm.shader.ShaderFunctions; +package arm; class MakeMesh { @@ -234,7 +229,7 @@ class MakeMesh { frag.write('vec2 posb = (prevwvpposition.xy / prevwvpposition.w) * 0.5 + 0.5;'); frag.write('fragColor[2] = vec4(posa - posb, texCoord.xy);'); - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); con_mesh.data.shader_from_source = true; con_mesh.data.vertex_shader = vert.get(); con_mesh.data.fragment_shader = frag.get(); diff --git a/armorlab/Sources/arm/shader/MakePaint.hx b/armorlab/Sources/arm/MakePaint.hx similarity index 98% rename from armorlab/Sources/arm/shader/MakePaint.hx rename to armorlab/Sources/arm/MakePaint.hx index 9f4bc0fd..084e4772 100644 --- a/armorlab/Sources/arm/shader/MakePaint.hx +++ b/armorlab/Sources/arm/MakePaint.hx @@ -1,10 +1,7 @@ -package arm.shader; +package arm; import iron.SceneFormat; import zui.Zui.Nodes; -import arm.shader.MaterialParser; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; class MakePaint { @@ -273,8 +270,8 @@ class MakePaint { frag.write('fragColor[3] = vec4(str, 0.0, 0.0, 1.0);'); - MaterialParser.finalize(con_paint); - MaterialParser.sample_keep_aspect = false; + ParserMaterial.finalize(con_paint); + ParserMaterial.sample_keep_aspect = false; con_paint.data.shader_from_source = true; con_paint.data.vertex_shader = vert.get(); con_paint.data.fragment_shader = frag.get(); diff --git a/armorlab/Sources/arm/logic/NodesBrush.hx b/armorlab/Sources/arm/NodesBrush.hx similarity index 62% rename from armorlab/Sources/arm/logic/NodesBrush.hx rename to armorlab/Sources/arm/NodesBrush.hx index 0b290909..79bc7e38 100644 --- a/armorlab/Sources/arm/logic/NodesBrush.hx +++ b/armorlab/Sources/arm/NodesBrush.hx @@ -1,4 +1,4 @@ -package arm.logic; +package arm; import zui.Zui.Nodes; import arm.Translator._tr; @@ -9,16 +9,16 @@ class NodesBrush { public static var list: Array> = [ [ // Input - ImageTextureNode.def, - RGBNode.def, + arm.nodes.ImageTextureNode.def, + arm.nodes.RGBNode.def, ], [ // Model - InpaintNode.def, - PhotoToPBRNode.def, - TextToPhotoNode.def, - TilingNode.def, - UpscaleNode.def, - VarianceNode.def, + arm.nodes.InpaintNode.def, + arm.nodes.PhotoToPBRNode.def, + arm.nodes.TextToPhotoNode.def, + arm.nodes.TilingNode.def, + arm.nodes.UpscaleNode.def, + arm.nodes.VarianceNode.def, ] ]; @@ -28,7 +28,7 @@ class NodesBrush { if (n.type == nodeType) { var canvas = Project.canvas; var nodes = Project.nodes; - var node = arm.ui.UINodes.makeNode(n, nodes, canvas); + var node = arm.UINodes.makeNode(n, nodes, canvas); canvas.nodes.push(node); return node; } diff --git a/armorlab/Sources/arm/render/RenderPathPaint.hx b/armorlab/Sources/arm/RenderPathPaint.hx similarity index 97% rename from armorlab/Sources/arm/render/RenderPathPaint.hx rename to armorlab/Sources/arm/RenderPathPaint.hx index 58f7cc2f..b0e00ca7 100644 --- a/armorlab/Sources/arm/render/RenderPathPaint.hx +++ b/armorlab/Sources/arm/RenderPathPaint.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.System; import iron.Mat4; @@ -6,8 +6,7 @@ import iron.MeshObject; import iron.SceneFormat; import iron.RenderPath; import iron.Scene; -import arm.ui.UIHeader; -import arm.ui.UINodes; +import iron.App; class RenderPathPaint { @@ -270,7 +269,7 @@ class RenderPathPaint { var canvas = UINodes.inst.getCanvas(true); if (nodes.nodesSelectedId.length > 0) { var node = nodes.getNode(canvas.nodes, nodes.nodesSelectedId[0]); - var brushNode = arm.logic.LogicParser.getLogicNode(node); + var brushNode = ParserLogic.getLogicNode(node); if (brushNode != null) { image = brushNode.getCachedImage(); } @@ -304,8 +303,8 @@ class RenderPathPaint { var node = nodes.getNode(canvas.nodes, nodes.nodesSelectedId[0]); var inpaint = node.type == "InpaintNode"; if (inpaint) { - var brushNode = arm.logic.LogicParser.getLogicNode(node); - path.renderTargets.get("texpaint_node_target").image = cast(brushNode, arm.logic.InpaintNode).getTarget(); + var brushNode = ParserLogic.getLogicNode(node); + path.renderTargets.get("texpaint_node_target").image = cast(brushNode, arm.nodes.InpaintNode).getTarget(); } } else { diff --git a/armorlab/Sources/arm/ui/UINodesExt.hx b/armorlab/Sources/arm/UINodesExt.hx similarity index 85% rename from armorlab/Sources/arm/ui/UINodesExt.hx rename to armorlab/Sources/arm/UINodesExt.hx index da0ff5d1..265d884d 100644 --- a/armorlab/Sources/arm/ui/UINodesExt.hx +++ b/armorlab/Sources/arm/UINodesExt.hx @@ -1,7 +1,8 @@ -package arm.ui; +package arm; import js.lib.DataView; import js.lib.ArrayBuffer; +import iron.App; import iron.System; import iron.Time; import iron.Scene; @@ -32,21 +33,21 @@ class UINodesExt { App.removeRender2D(delayIdleSleep); #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } } Base.notifyOnNextFrame(function() { var timer = Time.time(); - arm.logic.LogicParser.parse(Project.canvas); + ParserLogic.parse(Project.canvas); - arm.logic.PhotoToPBRNode.cachedSource = null; - arm.logic.BrushOutputNode.inst.getAsImage(ChannelBaseColor, function(texbase: Image) { - arm.logic.BrushOutputNode.inst.getAsImage(ChannelOcclusion, function(texocc: Image) { - arm.logic.BrushOutputNode.inst.getAsImage(ChannelRoughness, function(texrough: Image) { - arm.logic.BrushOutputNode.inst.getAsImage(ChannelNormalMap, function(texnor: Image) { - arm.logic.BrushOutputNode.inst.getAsImage(ChannelHeight, function(texheight: Image) { + arm.nodes.PhotoToPBRNode.cachedSource = null; + arm.nodes.BrushOutputNode.inst.getAsImage(ChannelBaseColor, function(texbase: Image) { + arm.nodes.BrushOutputNode.inst.getAsImage(ChannelOcclusion, function(texocc: Image) { + arm.nodes.BrushOutputNode.inst.getAsImage(ChannelRoughness, function(texrough: Image) { + arm.nodes.BrushOutputNode.inst.getAsImage(ChannelNormalMap, function(texnor: Image) { + arm.nodes.BrushOutputNode.inst.getAsImage(ChannelHeight, function(texheight: Image) { if (texbase != null) { var texpaint = RenderPath.active.renderTargets.get("texpaint").image; @@ -94,7 +95,7 @@ class UINodesExt { texpaint_pack.g4.end(); if (UIHeader.inst.worktab.position == Space3D && - !Std.isOfType(arm.logic.BrushOutputNode.inst.inputs[ChannelHeight].node, arm.logic.FloatNode)) { + !Std.isOfType(arm.nodes.BrushOutputNode.inst.inputs[ChannelHeight].node, arm.nodes.FloatNode)) { // Make copy of vertices before displacement var o = Project.paintObjects[0]; @@ -120,8 +121,8 @@ class UINodesExt { Console.progress(tr("Apply Displacement")); Base.notifyOnNextFrame(function() { var uv_scale = Scene.active.meshes[0].data.scaleTex * Context.raw.brushScale; - arm.util.MeshUtil.applyDisplacement(texpaint_pack, 0.05 * Config.raw.displace_strength, uv_scale); - arm.util.MeshUtil.calcNormals(); + UtilMesh.applyDisplacement(texpaint_pack, 0.05 * Config.raw.displace_strength, uv_scale); + UtilMesh.calcNormals(); taskDone(); }); }); diff --git a/armorlab/Sources/arm/logic/BrushOutputNode.hx b/armorlab/Sources/arm/nodes/BrushOutputNode.hx similarity index 97% rename from armorlab/Sources/arm/logic/BrushOutputNode.hx rename to armorlab/Sources/arm/nodes/BrushOutputNode.hx index 58f59ea9..ba5c1363 100644 --- a/armorlab/Sources/arm/logic/BrushOutputNode.hx +++ b/armorlab/Sources/arm/nodes/BrushOutputNode.hx @@ -1,8 +1,8 @@ -package arm.logic; +package arm.nodes; import iron.System; import iron.RenderPath; -import arm.logic.LogicNode; +import arm.LogicNode; @:keep class BrushOutputNode extends LogicNode { diff --git a/armorlab/Sources/arm/logic/ImageTextureNode.hx b/armorlab/Sources/arm/nodes/ImageTextureNode.hx similarity index 94% rename from armorlab/Sources/arm/logic/ImageTextureNode.hx rename to armorlab/Sources/arm/nodes/ImageTextureNode.hx index b51c6f64..c2e7a511 100644 --- a/armorlab/Sources/arm/logic/ImageTextureNode.hx +++ b/armorlab/Sources/arm/nodes/ImageTextureNode.hx @@ -1,9 +1,9 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep diff --git a/armorlab/Sources/arm/logic/InpaintNode.hx b/armorlab/Sources/arm/nodes/InpaintNode.hx similarity index 98% rename from armorlab/Sources/arm/logic/InpaintNode.hx rename to armorlab/Sources/arm/nodes/InpaintNode.hx index 1591f10c..2c93e275 100644 --- a/armorlab/Sources/arm/logic/InpaintNode.hx +++ b/armorlab/Sources/arm/nodes/InpaintNode.hx @@ -1,11 +1,11 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; import iron.Data; import iron.ConstData; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep @@ -219,7 +219,7 @@ class InpaintNode extends LogicNode { output: 0 }, { - name: "arm.logic.InpaintNode.buttons", + name: "arm.nodes.InpaintNode.buttons", type: "CUSTOM", height: 0 } diff --git a/armorlab/Sources/arm/logic/PhotoToPBRNode.hx b/armorlab/Sources/arm/nodes/PhotoToPBRNode.hx similarity index 98% rename from armorlab/Sources/arm/logic/PhotoToPBRNode.hx rename to armorlab/Sources/arm/nodes/PhotoToPBRNode.hx index 3383b42e..dc1570f2 100644 --- a/armorlab/Sources/arm/logic/PhotoToPBRNode.hx +++ b/armorlab/Sources/arm/nodes/PhotoToPBRNode.hx @@ -1,10 +1,10 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; import iron.Data; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep diff --git a/armorlab/Sources/arm/logic/RGBNode.hx b/armorlab/Sources/arm/nodes/RGBNode.hx similarity index 90% rename from armorlab/Sources/arm/logic/RGBNode.hx rename to armorlab/Sources/arm/nodes/RGBNode.hx index 1ad9df66..e20fa463 100644 --- a/armorlab/Sources/arm/logic/RGBNode.hx +++ b/armorlab/Sources/arm/nodes/RGBNode.hx @@ -1,10 +1,10 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; import iron.Vec4; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep @@ -24,7 +24,7 @@ class RGBNode extends LogicNode { } var f32 = new js.lib.Float32Array(4); - var raw = LogicParser.getRawNode(this); + var raw = ParserLogic.getRawNode(this); var default_value = raw.outputs[0].default_value; f32[0] = default_value[0]; f32[1] = default_value[1]; diff --git a/armorlab/Sources/arm/logic/TextToPhotoNode.hx b/armorlab/Sources/arm/nodes/TextToPhotoNode.hx similarity index 99% rename from armorlab/Sources/arm/logic/TextToPhotoNode.hx rename to armorlab/Sources/arm/nodes/TextToPhotoNode.hx index 4c27b80c..3bad3f41 100644 --- a/armorlab/Sources/arm/logic/TextToPhotoNode.hx +++ b/armorlab/Sources/arm/nodes/TextToPhotoNode.hx @@ -1,10 +1,11 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; import iron.Data; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import iron.App; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep @@ -276,7 +277,7 @@ class TextToPhotoNode extends LogicNode { output: 0 }, { - name: "arm.logic.TextToPhotoNode.buttons", + name: "arm.nodes.TextToPhotoNode.buttons", type: "CUSTOM", height: 1 } diff --git a/armorlab/Sources/arm/logic/TilingNode.hx b/armorlab/Sources/arm/nodes/TilingNode.hx similarity index 96% rename from armorlab/Sources/arm/logic/TilingNode.hx rename to armorlab/Sources/arm/nodes/TilingNode.hx index a0fa8fb6..f98f79e4 100644 --- a/armorlab/Sources/arm/logic/TilingNode.hx +++ b/armorlab/Sources/arm/nodes/TilingNode.hx @@ -1,9 +1,9 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep @@ -129,7 +129,7 @@ class TilingNode extends LogicNode { output: 0 }, { - name: "arm.logic.TilingNode.buttons", + name: "arm.nodes.TilingNode.buttons", type: "CUSTOM", height: 0 } diff --git a/armorlab/Sources/arm/logic/UpscaleNode.hx b/armorlab/Sources/arm/nodes/UpscaleNode.hx similarity index 98% rename from armorlab/Sources/arm/logic/UpscaleNode.hx rename to armorlab/Sources/arm/nodes/UpscaleNode.hx index caaa7d76..1b48b4be 100644 --- a/armorlab/Sources/arm/logic/UpscaleNode.hx +++ b/armorlab/Sources/arm/nodes/UpscaleNode.hx @@ -1,10 +1,10 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; import iron.Data; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep diff --git a/armorlab/Sources/arm/logic/VarianceNode.hx b/armorlab/Sources/arm/nodes/VarianceNode.hx similarity index 96% rename from armorlab/Sources/arm/logic/VarianceNode.hx rename to armorlab/Sources/arm/nodes/VarianceNode.hx index 8b7c3ec6..79cca0f9 100644 --- a/armorlab/Sources/arm/logic/VarianceNode.hx +++ b/armorlab/Sources/arm/nodes/VarianceNode.hx @@ -1,10 +1,10 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import iron.System; import iron.Data; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep @@ -123,7 +123,7 @@ class VarianceNode extends LogicNode { ], buttons: [ { - name: "arm.logic.VarianceNode.buttons", + name: "arm.nodes.VarianceNode.buttons", type: "CUSTOM", height: 1 } diff --git a/armorpaint/Assets/plugins/embed/uv_unwrap.js b/armorpaint/Assets/plugins/embed/uv_unwrap.js index f812e156..b2ecfd04 100644 --- a/armorpaint/Assets/plugins/embed/uv_unwrap.js +++ b/armorpaint/Assets/plugins/embed/uv_unwrap.js @@ -92,12 +92,12 @@ plugin.drawUI = function(ui) { geom.ready = false; geom.build(); } - arm.MeshUtil.mergeMesh(); + arm.UtilMesh.mergeMesh(); } } } -let unwrappers = arm.MeshUtil.unwrappers; +let unwrappers = arm.UtilMesh.unwrappers; unwrappers.h["uv_unwrap.js"] = unwrap_mesh; plugin.delete = function() { unwrappers.h["uv_unwrap.js"] = null; diff --git a/armorpaint/Assets/plugins/hello_node.js b/armorpaint/Assets/plugins/hello_node.js index d4fae6ec..64f0441b 100644 --- a/armorpaint/Assets/plugins/hello_node.js +++ b/armorpaint/Assets/plugins/hello_node.js @@ -54,10 +54,10 @@ let nodes = [ arm.NodesMaterial.list.push(nodes); // Node shader -arm.MaterialParser.customNodes.set(nodeType, function(node, socket) { - let frag = arm.MaterialParser.frag; - let scale = arm.MaterialParser.parse_value_input(node.inputs[0]); - let my_out = arm.MaterialParser.node_name(node) + "_out"; +arm.ParserMaterial.customNodes.set(nodeType, function(node, socket) { + let frag = arm.ParserMaterial.frag; + let scale = arm.ParserMaterial.parse_value_input(node.inputs[0]); + let my_out = arm.ParserMaterial.node_name(node) + "_out"; frag.write(` float ${my_out} = cos(sin(texCoord.x * 200.0 * ${scale}) + cos(texCoord.y * 200.0 * ${scale})); @@ -73,7 +73,7 @@ arm.MaterialParser.customNodes.set(nodeType, function(node, socket) { // Cleanup plugin.delete = function() { - arm.MaterialParser.customNodes.delete(nodeType); + arm.ParserMaterial.customNodes.delete(nodeType); arm.NodesMaterial.list.splice(arm.NodesMaterial.list.indexOf(nodes), 1); categories.splice(categories.indexOf(categoryName), 1); }; diff --git a/armorpaint/Assets/plugins/hello_node_brush.js b/armorpaint/Assets/plugins/hello_node_brush.js index fc88ff4a..4194eb62 100644 --- a/armorpaint/Assets/plugins/hello_node_brush.js +++ b/armorpaint/Assets/plugins/hello_node_brush.js @@ -46,13 +46,13 @@ let nodes = [ arm.NodesBrush.list.push(nodes); // Brush node -arm.LogicParser.customNodes.set(nodeType, function(node, from) { +arm.ParserLogic.customNodes.set(nodeType, function(node, from) { return Math.sin(iron.Time.time() * node.inputs[0].get(0)); }); // Cleanup plugin.delete = function() { - arm.LogicParser.customNodes.delete(nodeType); + arm.ParserLogic.customNodes.delete(nodeType); arm.NodesBrush.list.splice(arm.NodesBrush.list.indexOf(nodes), 1); categories.splice(categories.indexOf(categoryName), 1); }; diff --git a/armorpaint/Assets/plugins/wasm/uv_unwrap.js b/armorpaint/Assets/plugins/wasm/uv_unwrap.js index 40a39b65..c59f2702 100644 --- a/armorpaint/Assets/plugins/wasm/uv_unwrap.js +++ b/armorpaint/Assets/plugins/wasm/uv_unwrap.js @@ -114,12 +114,12 @@ plugin.drawUI = function(ui) { geom.ready = false; geom.build(); } - arm.MeshUtil.mergeMesh(); + arm.UtilMesh.mergeMesh(); } } } -let unwrappers = arm.MeshUtil.unwrappers; +let unwrappers = arm.UtilMesh.unwrappers; unwrappers.h["uv_unwrap.js"] = unwrap_mesh; plugin.delete = function() { unwrappers.h["uv_unwrap.js"] = null; diff --git a/armorpaint/Sources/arm/io/ImportFolder.hx b/armorpaint/Sources/arm/ImportFolder.hx similarity index 91% rename from armorpaint/Sources/arm/io/ImportFolder.hx rename to armorpaint/Sources/arm/ImportFolder.hx index a37947ec..2f047800 100644 --- a/armorpaint/Sources/arm/io/ImportFolder.hx +++ b/armorpaint/Sources/arm/ImportFolder.hx @@ -1,16 +1,9 @@ -package arm.io; +package arm; import zui.Zui.Nodes; import zui.Zui.TNodeCanvas; import zui.Zui.TNode; import zui.Zui.TNodeLink; -import arm.ui.UIBase; -import arm.util.RenderUtil; -import arm.sys.Path; -import arm.sys.File; -import arm.shader.NodesMaterial; -import arm.shader.MakeMaterial; -import arm.data.MaterialSlot; class ImportFolder { @@ -74,7 +67,7 @@ class ImportFolder { } // Create material - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); Project.materials.push(Context.raw.material); var nodes = Context.raw.material.nodes; var canvas = Context.raw.material.canvas; @@ -128,7 +121,7 @@ class ImportFolder { } MakeMaterial.parsePaintMaterial(); - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); UIBase.inst.hwnds[1].redraws = 2; History.newMaterial(); } diff --git a/armorpaint/Sources/arm/shader/MakeBake.hx b/armorpaint/Sources/arm/MakeBake.hx similarity index 94% rename from armorpaint/Sources/arm/shader/MakeBake.hx rename to armorpaint/Sources/arm/MakeBake.hx index 838faed5..37c2e7bb 100644 --- a/armorpaint/Sources/arm/shader/MakeBake.hx +++ b/armorpaint/Sources/arm/MakeBake.hx @@ -1,9 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; -import arm.shader.NodeShaderContext; -import arm.shader.ShaderFunctions; -import arm.shader.MaterialParser; +package arm; class MakeBake { @@ -42,10 +37,10 @@ class MakeBake { #end } else if (Context.raw.bakeType == BakeCurvature) { - var pass = MaterialParser.bake_passthrough; - var strength = pass ? MaterialParser.bake_passthrough_strength : Context.raw.bakeCurvStrength + ""; - var radius = pass ? MaterialParser.bake_passthrough_radius : Context.raw.bakeCurvRadius + ""; - var offset = pass ? MaterialParser.bake_passthrough_offset : Context.raw.bakeCurvOffset + ""; + var pass = ParserMaterial.bake_passthrough; + var strength = pass ? ParserMaterial.bake_passthrough_strength : Context.raw.bakeCurvStrength + ""; + var radius = pass ? ParserMaterial.bake_passthrough_radius : Context.raw.bakeCurvRadius + ""; + var offset = pass ? ParserMaterial.bake_passthrough_offset : Context.raw.bakeCurvOffset + ""; strength = 'float($strength)'; radius = 'float($radius)'; offset = 'float($offset)'; diff --git a/armorpaint/Sources/arm/shader/MakeBlur.hx b/armorpaint/Sources/arm/MakeBlur.hx similarity index 99% rename from armorpaint/Sources/arm/shader/MakeBlur.hx rename to armorpaint/Sources/arm/MakeBlur.hx index 5c80e8ef..d05a488d 100644 --- a/armorpaint/Sources/arm/shader/MakeBlur.hx +++ b/armorpaint/Sources/arm/MakeBlur.hx @@ -1,6 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; +package arm; class MakeBlur { diff --git a/armorpaint/Sources/arm/shader/MakeBrush.hx b/armorpaint/Sources/arm/MakeBrush.hx similarity index 97% rename from armorpaint/Sources/arm/shader/MakeBrush.hx rename to armorpaint/Sources/arm/MakeBrush.hx index 38ff0e4c..669496cc 100644 --- a/armorpaint/Sources/arm/shader/MakeBrush.hx +++ b/armorpaint/Sources/arm/MakeBrush.hx @@ -1,7 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; -import arm.shader.ShaderFunctions; +package arm; class MakeBrush { diff --git a/armorpaint/Sources/arm/shader/MakeClone.hx b/armorpaint/Sources/arm/MakeClone.hx similarity index 96% rename from armorpaint/Sources/arm/shader/MakeClone.hx rename to armorpaint/Sources/arm/MakeClone.hx index 78feeb0b..5ba25eb0 100644 --- a/armorpaint/Sources/arm/shader/MakeClone.hx +++ b/armorpaint/Sources/arm/MakeClone.hx @@ -1,6 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; +package arm; class MakeClone { diff --git a/armorpaint/Sources/arm/shader/MakeColorIdPicker.hx b/armorpaint/Sources/arm/MakeColorIdPicker.hx similarity index 96% rename from armorpaint/Sources/arm/shader/MakeColorIdPicker.hx rename to armorpaint/Sources/arm/MakeColorIdPicker.hx index 67327122..4e1409c9 100644 --- a/armorpaint/Sources/arm/shader/MakeColorIdPicker.hx +++ b/armorpaint/Sources/arm/MakeColorIdPicker.hx @@ -1,7 +1,4 @@ -package arm.shader; - -import arm.shader.ShaderFunctions; -import arm.shader.NodeShader; +package arm; class MakeColorIdPicker { diff --git a/armorpaint/Sources/arm/shader/MakeDiscard.hx b/armorpaint/Sources/arm/MakeDiscard.hx similarity index 97% rename from armorpaint/Sources/arm/shader/MakeDiscard.hx rename to armorpaint/Sources/arm/MakeDiscard.hx index ac0566d6..92da2554 100644 --- a/armorpaint/Sources/arm/shader/MakeDiscard.hx +++ b/armorpaint/Sources/arm/MakeDiscard.hx @@ -1,6 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; +package arm; class MakeDiscard { diff --git a/armorpaint/Sources/arm/shader/MakeMaterial.hx b/armorpaint/Sources/arm/MakeMaterial.hx similarity index 92% rename from armorpaint/Sources/arm/shader/MakeMaterial.hx rename to armorpaint/Sources/arm/MakeMaterial.hx index 488ef143..ab25b2e3 100644 --- a/armorpaint/Sources/arm/shader/MakeMaterial.hx +++ b/armorpaint/Sources/arm/MakeMaterial.hx @@ -1,4 +1,4 @@ -package arm.shader; +package arm; import zui.Zui.Nodes; import zui.Zui.TNode; @@ -8,14 +8,6 @@ import iron.SceneFormat; import iron.ShaderData; import iron.MaterialData; import iron.RenderPath; -import arm.ui.UIHeader; -import arm.ui.UINodes; -import arm.shader.NodeShader; -import arm.shader.NodeShaderData; -import arm.shader.ShaderFunctions; -import arm.shader.MaterialParser; -import arm.render.RenderPathPaint; -import arm.util.RenderUtil; class MakeMaterial { @@ -113,7 +105,7 @@ class MakeMaterial { #end #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.dirty = 1; + RenderPathRaytrace.dirty = 1; #end } @@ -273,7 +265,7 @@ class MakeMaterial { static function bakeNodePreview(node: TNode, group: TNodeCanvas, parents: Array) { if (node.type == "BLUR") { - var id = MaterialParser.node_name(node, parents); + var id = ParserMaterial.node_name(node, parents); var image = Context.raw.nodePreviews.get(id); Context.raw.nodePreviewsUsed.push(id); var resX = Std.int(Config.getTextureResX() / 4); @@ -284,12 +276,12 @@ class MakeMaterial { Context.raw.nodePreviews.set(id, image); } - MaterialParser.blur_passthrough = true; - RenderUtil.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); - MaterialParser.blur_passthrough = false; + ParserMaterial.blur_passthrough = true; + UtilRender.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); + ParserMaterial.blur_passthrough = false; } else if (node.type == "DIRECT_WARP") { - var id = MaterialParser.node_name(node, parents); + var id = ParserMaterial.node_name(node, parents); var image = Context.raw.nodePreviews.get(id); Context.raw.nodePreviewsUsed.push(id); var resX = Std.int(Config.getTextureResX()); @@ -300,12 +292,12 @@ class MakeMaterial { Context.raw.nodePreviews.set(id, image); } - MaterialParser.warp_passthrough = true; - RenderUtil.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); - MaterialParser.warp_passthrough = false; + ParserMaterial.warp_passthrough = true; + UtilRender.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); + ParserMaterial.warp_passthrough = false; } else if (node.type == "BAKE_CURVATURE") { - var id = MaterialParser.node_name(node, parents); + var id = ParserMaterial.node_name(node, parents); var image = Context.raw.nodePreviews.get(id); Context.raw.nodePreviewsUsed.push(id); var resX = Std.int(Config.getTextureResX()); @@ -317,7 +309,7 @@ class MakeMaterial { } if (RenderPathPaint.liveLayer == null) { - RenderPathPaint.liveLayer = new arm.data.LayerSlot("_live"); + RenderPathPaint.liveLayer = new SlotLayer("_live"); } var _space = UIHeader.inst.worktab.position; @@ -327,15 +319,15 @@ class MakeMaterial { Context.raw.tool = ToolBake; Context.raw.bakeType = BakeCurvature; - MaterialParser.bake_passthrough = true; - MaterialParser.start_node = node; - MaterialParser.start_group = group; - MaterialParser.start_parents = parents; + ParserMaterial.bake_passthrough = true; + ParserMaterial.start_node = node; + ParserMaterial.start_group = group; + ParserMaterial.start_parents = parents; parsePaintMaterial(false); - MaterialParser.bake_passthrough = false; - MaterialParser.start_node = null; - MaterialParser.start_group = null; - MaterialParser.start_parents = null; + ParserMaterial.bake_passthrough = false; + ParserMaterial.start_node = null; + ParserMaterial.start_group = null; + ParserMaterial.start_parents = null; Context.raw.pdirty = 1; RenderPathPaint.useLiveLayer(true); RenderPathPaint.commandsPaint(false); @@ -372,7 +364,7 @@ class MakeMaterial { } public static function parseBrush() { - arm.logic.LogicParser.parse(Context.raw.brush.canvas); + ParserLogic.parse(Context.raw.brush.canvas); } public static function blendMode(frag: NodeShader, blending: Int, cola: String, colb: String, opac: String): String { diff --git a/armorpaint/Sources/arm/shader/MakeMesh.hx b/armorpaint/Sources/arm/MakeMesh.hx similarity index 98% rename from armorpaint/Sources/arm/shader/MakeMesh.hx rename to armorpaint/Sources/arm/MakeMesh.hx index a44321d7..8d173d79 100644 --- a/armorpaint/Sources/arm/shader/MakeMesh.hx +++ b/armorpaint/Sources/arm/MakeMesh.hx @@ -1,10 +1,4 @@ -package arm.shader; - -import arm.shader.MaterialParser; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; -import arm.shader.ShaderFunctions; -import arm.data.LayerSlot; +package arm; class MakeMesh { @@ -148,7 +142,7 @@ class MakeMesh { // Get layers for this pass layerPassCount = 1; - var layers: Array = []; + var layers: Array = []; var startCount = textureCount; var isMaterialTool = Context.raw.tool == ToolMaterial; for (l in Project.layers) { @@ -320,7 +314,7 @@ class MakeMesh { frag.write('fragColor[0] = vec4(basecol, opacity);'); frag.write('fragColor[1] = vec4(ntex, matid);'); frag.write('fragColor[2] = vec4(occlusion, roughness, metallic, height);'); - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); con_mesh.data.shader_from_source = true; con_mesh.data.vertex_shader = vert.get(); con_mesh.data.fragment_shader = frag.get(); @@ -478,7 +472,7 @@ class MakeMesh { frag.write('vec2 posb = (prevwvpposition.xy / prevwvpposition.w) * 0.5 + 0.5;'); frag.write('fragColor[2] = vec4(posa - posb, texCoord.xy);'); - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); con_mesh.data.shader_from_source = true; con_mesh.data.vertex_shader = vert.get(); con_mesh.data.fragment_shader = frag.get(); diff --git a/armorpaint/Sources/arm/shader/MakeMeshPreview.hx b/armorpaint/Sources/arm/MakeMeshPreview.hx similarity index 88% rename from armorpaint/Sources/arm/shader/MakeMeshPreview.hx rename to armorpaint/Sources/arm/MakeMeshPreview.hx index 77ec449d..3831bb95 100644 --- a/armorpaint/Sources/arm/shader/MakeMeshPreview.hx +++ b/armorpaint/Sources/arm/MakeMeshPreview.hx @@ -1,12 +1,7 @@ -package arm.shader; +package arm; import iron.MeshObject; import iron.SceneFormat; -import arm.ui.UINodes; -import arm.shader.MaterialParser; -import arm.shader.NodeShaderData; -import arm.shader.NodeShaderContext; -import arm.shader.ShaderFunctions; class MakeMeshPreview { @@ -57,21 +52,21 @@ class MakeMeshPreview { vert.write_attrib('texCoord = tex * float(${brushScale});'); var decal = Context.raw.decalPreview; - MaterialParser.sample_keep_aspect = decal; - MaterialParser.sample_uv_scale = brushScale; - MaterialParser.parse_height = MakeMaterial.heightUsed; - MaterialParser.parse_height_as_channel = true; - var sout = MaterialParser.parse(UINodes.inst.getCanvasMaterial(), con_mesh, vert, frag, matcon); - MaterialParser.parse_height = false; - MaterialParser.parse_height_as_channel = false; - MaterialParser.sample_keep_aspect = false; + ParserMaterial.sample_keep_aspect = decal; + ParserMaterial.sample_uv_scale = brushScale; + ParserMaterial.parse_height = MakeMaterial.heightUsed; + ParserMaterial.parse_height_as_channel = true; + var sout = ParserMaterial.parse(UINodes.inst.getCanvasMaterial(), con_mesh, vert, frag, matcon); + ParserMaterial.parse_height = false; + ParserMaterial.parse_height_as_channel = false; + ParserMaterial.sample_keep_aspect = false; var base = sout.out_basecol; var rough = sout.out_roughness; var met = sout.out_metallic; var occ = sout.out_occlusion; var opac = sout.out_opacity; var height = sout.out_height; - var nortan = MaterialParser.out_normaltan; + var nortan = ParserMaterial.out_normaltan; frag.write('vec3 basecol = pow($base, vec3(2.2, 2.2, 2.2));'); frag.write('float roughness = $rough;'); frag.write('float metallic = $met;'); @@ -80,7 +75,7 @@ class MakeMeshPreview { frag.write('vec3 nortan = $nortan;'); frag.write('float height = $height;'); - // MaterialParser.parse_height_as_channel = false; + // ParserMaterial.parse_height_as_channel = false; // vert.write('float vheight = $height;'); // vert.add_out('float height'); // vert.write('height = vheight;'); @@ -151,7 +146,7 @@ class MakeMeshPreview { } frag.write('fragColor[2] = vec4(0.0, 0.0, 0.0, 0.0);'); // veloc - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); #if arm_skin if (skin) { diff --git a/armorpaint/Sources/arm/shader/MakeNodePreview.hx b/armorpaint/Sources/arm/MakeNodePreview.hx similarity index 70% rename from armorpaint/Sources/arm/shader/MakeNodePreview.hx rename to armorpaint/Sources/arm/MakeNodePreview.hx index e9441de3..655e55e3 100644 --- a/armorpaint/Sources/arm/shader/MakeNodePreview.hx +++ b/armorpaint/Sources/arm/MakeNodePreview.hx @@ -1,13 +1,10 @@ -package arm.shader; +package arm; import zui.Zui.Nodes; import zui.Zui.TNode; import zui.Zui.TNodeCanvas; import zui.Zui.TNodeLink; import iron.SceneFormat; -import arm.shader.MaterialParser; -import arm.shader.NodeShaderData; -import arm.shader.NodeShaderContext; class MakeNodePreview { @@ -35,32 +32,32 @@ class MakeNodePreview { vert.write_attrib('texCoord.y = 1.0 - texCoord.y;'); #end - MaterialParser.init(); - MaterialParser.canvases = [Context.raw.material.canvas]; - MaterialParser.nodes = Context.raw.material.canvas.nodes; - MaterialParser.links = Context.raw.material.canvas.links; + ParserMaterial.init(); + ParserMaterial.canvases = [Context.raw.material.canvas]; + ParserMaterial.nodes = Context.raw.material.canvas.nodes; + ParserMaterial.links = Context.raw.material.canvas.links; if (group != null) { - MaterialParser.push_group(group); - MaterialParser.parents = parents; + ParserMaterial.push_group(group); + ParserMaterial.parents = parents; } - var links = MaterialParser.links; + var links = ParserMaterial.links; var nodes = Context.raw.material.nodes; var link: TNodeLink = { id: nodes.getLinkId(links), from_id: node.id, from_socket: Context.raw.nodePreviewSocket, to_id: -1, to_socket: -1 }; links.push(link); - MaterialParser.con = con_mesh; - MaterialParser.vert = vert; - MaterialParser.frag = frag; - MaterialParser.curshader = frag; - MaterialParser.matcon = matcon; + ParserMaterial.con = con_mesh; + ParserMaterial.vert = vert; + ParserMaterial.frag = frag; + ParserMaterial.curshader = frag; + ParserMaterial.matcon = matcon; - MaterialParser.transform_color_space = false; - var res = MaterialParser.write_result(link); - MaterialParser.transform_color_space = true; + ParserMaterial.transform_color_space = false; + var res = ParserMaterial.write_result(link); + ParserMaterial.transform_color_space = true; var st = node.outputs[link.from_socket].type; if (st != "RGB" && st != "RGBA" && st != "VECTOR") { - res = MaterialParser.to_vec3(res); + res = ParserMaterial.to_vec3(res); } links.remove(link); @@ -72,7 +69,7 @@ class MakeNodePreview { // vert.add_out('vec4 ndc'); // vert.write_attrib('ndc = vec4(gl_Position.xyz * vec3(0.5, 0.5, 0.0) + vec3(0.5, 0.5, 0.0), 1.0);'); - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); con_mesh.data.shader_from_source = true; con_mesh.data.vertex_shader = vert.get(); diff --git a/armorpaint/Sources/arm/shader/MakePaint.hx b/armorpaint/Sources/arm/MakePaint.hx similarity index 94% rename from armorpaint/Sources/arm/shader/MakePaint.hx rename to armorpaint/Sources/arm/MakePaint.hx index 67120be5..7b8beada 100644 --- a/armorpaint/Sources/arm/shader/MakePaint.hx +++ b/armorpaint/Sources/arm/MakePaint.hx @@ -1,11 +1,6 @@ -package arm.shader; +package arm; import iron.SceneFormat; -import arm.ui.UINodes; -import arm.shader.MaterialParser; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; -import arm.shader.ShaderFunctions; class MakePaint { @@ -198,24 +193,24 @@ class MakePaint { } } else { - MaterialParser.parse_emission = Context.raw.material.paintEmis; - MaterialParser.parse_subsurface = Context.raw.material.paintSubs; - MaterialParser.parse_height = Context.raw.material.paintHeight; - MaterialParser.parse_height_as_channel = true; + ParserMaterial.parse_emission = Context.raw.material.paintEmis; + ParserMaterial.parse_subsurface = Context.raw.material.paintSubs; + ParserMaterial.parse_height = Context.raw.material.paintHeight; + ParserMaterial.parse_height_as_channel = true; var uvType = Context.raw.layer.fill_layer != null ? Context.raw.layer.uvType : Context.raw.brushPaint; - MaterialParser.triplanar = uvType == UVTriplanar && !decal; - MaterialParser.sample_keep_aspect = decal; - MaterialParser.sample_uv_scale = 'brushScale'; - var sout = MaterialParser.parse(UINodes.inst.getCanvasMaterial(), con_paint, vert, frag, matcon); - MaterialParser.parse_emission = false; - MaterialParser.parse_subsurface = false; - MaterialParser.parse_height_as_channel = false; - MaterialParser.parse_height = false; + ParserMaterial.triplanar = uvType == UVTriplanar && !decal; + ParserMaterial.sample_keep_aspect = decal; + ParserMaterial.sample_uv_scale = 'brushScale'; + var sout = ParserMaterial.parse(UINodes.inst.getCanvasMaterial(), con_paint, vert, frag, matcon); + ParserMaterial.parse_emission = false; + ParserMaterial.parse_subsurface = false; + ParserMaterial.parse_height_as_channel = false; + ParserMaterial.parse_height = false; var base = sout.out_basecol; var rough = sout.out_roughness; var met = sout.out_metallic; var occ = sout.out_occlusion; - var nortan = MaterialParser.out_normaltan; + var nortan = ParserMaterial.out_normaltan; var height = sout.out_height; var opac = sout.out_opacity; var emis = sout.out_emission; @@ -348,7 +343,7 @@ class MakePaint { if (Context.raw.pickerMaskHandle.position == MaskMaterial) { matid = Context.raw.materialIdPicked / 255; // Keep existing material id in place when mask is set } - var matidString = MaterialParser.vec1(matid * 3.0); + var matidString = ParserMaterial.vec1(matid * 3.0); frag.write('float matid = $matidString;'); // matid % 3 == 0 - normal, 1 - emission, 2 - subsurface @@ -473,9 +468,9 @@ class MakePaint { MakeBake.run(con_paint, vert, frag); } - MaterialParser.finalize(con_paint); - MaterialParser.triplanar = false; - MaterialParser.sample_keep_aspect = false; + ParserMaterial.finalize(con_paint); + ParserMaterial.triplanar = false; + ParserMaterial.sample_keep_aspect = false; con_paint.data.shader_from_source = true; con_paint.data.vertex_shader = vert.get(); con_paint.data.fragment_shader = frag.get(); diff --git a/armorpaint/Sources/arm/shader/MakeParticle.hx b/armorpaint/Sources/arm/MakeParticle.hx similarity index 97% rename from armorpaint/Sources/arm/shader/MakeParticle.hx rename to armorpaint/Sources/arm/MakeParticle.hx index 976e0e41..92f83984 100644 --- a/armorpaint/Sources/arm/shader/MakeParticle.hx +++ b/armorpaint/Sources/arm/MakeParticle.hx @@ -1,8 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; +package arm; class MakeParticle { diff --git a/armorpaint/Sources/arm/shader/MakeTexcoord.hx b/armorpaint/Sources/arm/MakeTexcoord.hx similarity index 98% rename from armorpaint/Sources/arm/shader/MakeTexcoord.hx rename to armorpaint/Sources/arm/MakeTexcoord.hx index 75e578c5..991d88ee 100644 --- a/armorpaint/Sources/arm/shader/MakeTexcoord.hx +++ b/armorpaint/Sources/arm/MakeTexcoord.hx @@ -1,6 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; +package arm; class MakeTexcoord { diff --git a/armorpaint/Sources/arm/logic/NodesBrush.hx b/armorpaint/Sources/arm/NodesBrush.hx similarity index 60% rename from armorpaint/Sources/arm/logic/NodesBrush.hx rename to armorpaint/Sources/arm/NodesBrush.hx index 64af2f74..4154a40e 100644 --- a/armorpaint/Sources/arm/logic/NodesBrush.hx +++ b/armorpaint/Sources/arm/NodesBrush.hx @@ -1,4 +1,4 @@ -package arm.logic; +package arm; import zui.Zui.Nodes; import zui.Zui.TNode; @@ -10,15 +10,15 @@ class NodesBrush { public static var list: Array> = [ [ // Category 0 - TEX_IMAGE.def, - InputNode.def, - MathNode.def, - RandomNode.def, - SeparateVectorNode.def, - TimeNode.def, - FloatNode.def, - VectorNode.def, - VectorMathNode.def + arm.nodes.TEX_IMAGE.def, + arm.nodes.InputNode.def, + arm.nodes.MathNode.def, + arm.nodes.RandomNode.def, + arm.nodes.SeparateVectorNode.def, + arm.nodes.TimeNode.def, + arm.nodes.FloatNode.def, + arm.nodes.VectorNode.def, + arm.nodes.VectorMathNode.def ] ]; @@ -28,7 +28,7 @@ class NodesBrush { if (n.type == nodeType) { var canvas = Context.raw.brush.canvas; var nodes = Context.raw.brush.nodes; - var node = arm.ui.UINodes.makeNode(n, nodes, canvas); + var node = arm.UINodes.makeNode(n, nodes, canvas); canvas.nodes.push(node); return node; } diff --git a/armorpaint/Sources/arm/render/RenderPathPaint.hx b/armorpaint/Sources/arm/RenderPathPaint.hx similarity index 99% rename from armorpaint/Sources/arm/render/RenderPathPaint.hx rename to armorpaint/Sources/arm/RenderPathPaint.hx index 4bc8a901..d11b62f3 100644 --- a/armorpaint/Sources/arm/render/RenderPathPaint.hx +++ b/armorpaint/Sources/arm/RenderPathPaint.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.App; import iron.Mat4; @@ -14,17 +14,10 @@ import iron.Uniforms; import iron.MaterialData; import iron.ShaderData; import iron.ConstData; -import arm.ui.UIView2D; -import arm.Viewport; -#if is_paint -import arm.ui.UIHeader; -import arm.ui.UIBase; -import arm.shader.MakeMaterial; -#end class RenderPathPaint { - public static var liveLayer: arm.data.LayerSlot = null; + public static var liveLayer: SlotLayer = null; public static var liveLayerDrawn = 0; public static var liveLayerLocked = false; static var path: RenderPath; @@ -436,7 +429,7 @@ class RenderPathPaint { if (liveLayerLocked) return; if (liveLayer == null) { - liveLayer = new arm.data.LayerSlot("_live"); + liveLayer = new SlotLayer("_live"); } var tid = Context.raw.layer.id; @@ -930,7 +923,7 @@ class RenderPathPaint { public static function dilate(base: Bool, nor_pack: Bool) { #if is_paint if (Config.raw.dilate_radius > 0 && !Context.raw.paint2d) { - arm.util.UVUtil.cacheDilateMap(); + UtilUV.cacheDilateMap(); Base.makeTempImg(); var tid = Context.raw.layer.id; if (base) { diff --git a/armorpaint/Sources/arm/render/RenderPathPreview.hx b/armorpaint/Sources/arm/RenderPathPreview.hx similarity index 88% rename from armorpaint/Sources/arm/render/RenderPathPreview.hx rename to armorpaint/Sources/arm/RenderPathPreview.hx index b436a45f..23eea472 100644 --- a/armorpaint/Sources/arm/render/RenderPathPreview.hx +++ b/armorpaint/Sources/arm/RenderPathPreview.hx @@ -1,7 +1,6 @@ -package arm.render; +package arm; import iron.RenderPath; -import arm.util.RenderUtil; class RenderPathPreview { @@ -32,8 +31,8 @@ class RenderPathPreview { { var t = new RenderTargetRaw(); t.name = "mtex"; - t.width = Std.int(RenderUtil.materialPreviewSize * 2.0); - t.height = Std.int(RenderUtil.materialPreviewSize * 2.0); + t.width = Std.int(UtilRender.materialPreviewSize * 2.0); + t.height = Std.int(UtilRender.materialPreviewSize * 2.0); t.format = "RGBA64"; t.scale = RenderPathBase.getSuperSampling(); #if krom_opengl @@ -45,8 +44,8 @@ class RenderPathPreview { { var t = new RenderTargetRaw(); t.name = "mgbuffer0"; - t.width = Std.int(RenderUtil.materialPreviewSize * 2.0); - t.height = Std.int(RenderUtil.materialPreviewSize * 2.0); + t.width = Std.int(UtilRender.materialPreviewSize * 2.0); + t.height = Std.int(UtilRender.materialPreviewSize * 2.0); t.format = "RGBA64"; t.scale = RenderPathBase.getSuperSampling(); t.depth_buffer = "mmain"; @@ -56,8 +55,8 @@ class RenderPathPreview { { var t = new RenderTargetRaw(); t.name = "mgbuffer1"; - t.width = Std.int(RenderUtil.materialPreviewSize * 2.0); - t.height = Std.int(RenderUtil.materialPreviewSize * 2.0); + t.width = Std.int(UtilRender.materialPreviewSize * 2.0); + t.height = Std.int(UtilRender.materialPreviewSize * 2.0); t.format = "RGBA64"; t.scale = RenderPathBase.getSuperSampling(); path.createRenderTarget(t); @@ -66,8 +65,8 @@ class RenderPathPreview { { var t = new RenderTargetRaw(); t.name = "mgbuffer2"; - t.width = Std.int(RenderUtil.materialPreviewSize * 2.0); - t.height = Std.int(RenderUtil.materialPreviewSize * 2.0); + t.width = Std.int(UtilRender.materialPreviewSize * 2.0); + t.height = Std.int(UtilRender.materialPreviewSize * 2.0); t.format = "RGBA64"; t.scale = RenderPathBase.getSuperSampling(); path.createRenderTarget(t); diff --git a/armorpaint/Sources/arm/data/BrushSlot.hx b/armorpaint/Sources/arm/SlotBrush.hx similarity index 95% rename from armorpaint/Sources/arm/data/BrushSlot.hx rename to armorpaint/Sources/arm/SlotBrush.hx index e330d085..2d7856e7 100644 --- a/armorpaint/Sources/arm/data/BrushSlot.hx +++ b/armorpaint/Sources/arm/SlotBrush.hx @@ -1,4 +1,4 @@ -package arm.data; +package arm; import zui.Zui.Nodes; import zui.Zui.TNodeCanvas; @@ -6,7 +6,7 @@ import iron.System; import iron.Data; import iron.ArmPack; -class BrushSlot { +class SlotBrush { public var nodes = new Nodes(); public var canvas: TNodeCanvas; public var image: Image = null; // 200px diff --git a/armorpaint/Sources/arm/data/FontSlot.hx b/armorpaint/Sources/arm/SlotFont.hx similarity index 91% rename from armorpaint/Sources/arm/data/FontSlot.hx rename to armorpaint/Sources/arm/SlotFont.hx index e8a4eeb9..0142e78e 100644 --- a/armorpaint/Sources/arm/data/FontSlot.hx +++ b/armorpaint/Sources/arm/SlotFont.hx @@ -1,8 +1,8 @@ -package arm.data; +package arm; import iron.System; -class FontSlot { +class SlotFont { public var image: Image = null; // 200px public var previewReady = false; public var id = 0; diff --git a/armorpaint/Sources/arm/data/LayerSlot.hx b/armorpaint/Sources/arm/SlotLayer.hx similarity index 94% rename from armorpaint/Sources/arm/data/LayerSlot.hx rename to armorpaint/Sources/arm/SlotLayer.hx index fca1cf12..f39aeb09 100644 --- a/armorpaint/Sources/arm/data/LayerSlot.hx +++ b/armorpaint/Sources/arm/SlotLayer.hx @@ -1,21 +1,15 @@ -package arm.data; +package arm; import iron.System; import iron.RenderPath; import iron.Mat4; -import arm.ui.UIBase; -import arm.ui.TabLayers; -import arm.shader.MakeMaterial; -#if is_paint -import arm.util.RenderUtil; -#end -class LayerSlot { +class SlotLayer { public var id = 0; public var name: String; public var ext = ""; public var visible = true; - public var parent: LayerSlot = null; // Group (for layers) or layer (for masks) + public var parent: SlotLayer = null; // Group (for layers) or layer (for masks) public var texpaint: Image = null; // Base or mask #if is_paint @@ -25,7 +19,7 @@ class LayerSlot { #end public var maskOpacity = 1.0; // Opacity mask - public var fill_layer: MaterialSlot = null; + public var fill_layer: SlotMaterial = null; public var show_panel = true; public var blending = BlendMix; public var objectMask = 0; @@ -45,7 +39,7 @@ class LayerSlot { public var paintSubs = true; public var decalMat = Mat4.identity(); // Decal layer - public function new(ext = "", type = SlotLayer, parent: LayerSlot = null) { + public function new(ext = "", type = SlotLayer, parent: SlotLayer = null) { if (ext == "") { id = 0; for (l in Project.layers) if (l.id >= id) id = l.id + 1; @@ -96,7 +90,7 @@ class LayerSlot { texpaint_pack = RenderPath.active.createRenderTarget(t).image; } - texpaint_preview = Image.createRenderTarget(RenderUtil.layerPreviewSize, RenderUtil.layerPreviewSize, TextureFormat.RGBA32); + texpaint_preview = Image.createRenderTarget(UtilRender.layerPreviewSize, UtilRender.layerPreviewSize, TextureFormat.RGBA32); #end } @@ -115,7 +109,7 @@ class LayerSlot { texpaint = RenderPath.active.createRenderTarget(t).image; } - texpaint_preview = Image.createRenderTarget(RenderUtil.layerPreviewSize, RenderUtil.layerPreviewSize, TextureFormat.RGBA32); + texpaint_preview = Image.createRenderTarget(UtilRender.layerPreviewSize, UtilRender.layerPreviewSize, TextureFormat.RGBA32); } #end } @@ -173,7 +167,7 @@ class LayerSlot { #end } - public function swap(other: LayerSlot) { + public function swap(other: SlotLayer) { if ((isLayer() || isMask()) && (other.isLayer() || other.isMask())) { RenderPath.active.renderTargets.get("texpaint" + ext).image = other.texpaint; RenderPath.active.renderTargets.get("texpaint" + other.ext).image = texpaint; @@ -262,10 +256,10 @@ class LayerSlot { delete(); } - public function duplicate(): LayerSlot { + public function duplicate(): SlotLayer { var layers = Project.layers; var i = layers.indexOf(this) + 1; - var l = new LayerSlot("", isLayer() ? SlotLayer : isMask() ? SlotMask : SlotGroup, parent); + var l = new SlotLayer("", isLayer() ? SlotLayer : isMask() ? SlotMask : SlotGroup, parent); layers.insert(i, l); if (Base.pipeMerge == null) Base.makePipe(); @@ -429,8 +423,8 @@ class LayerSlot { return visible && (parent == null || parent.visible); } - public function getChildren(): Array { - var children: Array = null; // Child layers of a group + public function getChildren(): Array { + var children: Array = null; // Child layers of a group for (l in Project.layers) { if (l.parent == this && l.isLayer()) { if (children == null) children = []; @@ -440,8 +434,8 @@ class LayerSlot { return children; } - public function getRecursiveChildren(): Array { - var children: Array = null; + public function getRecursiveChildren(): Array { + var children: Array = null; for (l in Project.layers) { if (l.parent == this) { // Child layers and group masks if (children == null) children = []; @@ -455,10 +449,10 @@ class LayerSlot { return children; } - public function getMasks(includeGroupMasks = true): Array { + public function getMasks(includeGroupMasks = true): Array { if (this.isMask()) return null; - var children: Array = null; + var children: Array = null; // Child masks of a layer for (l in Project.layers) { if (l.parent == this && l.isMask()) { @@ -521,7 +515,7 @@ class LayerSlot { return texpaint == null; } - public function getContainingGroup(): LayerSlot { + public function getContainingGroup(): SlotLayer { if (parent != null && parent.isGroup()) return parent; else if (parent != null && parent.parent != null && parent.parent.isGroup()) diff --git a/armorpaint/Sources/arm/data/MaterialSlot.hx b/armorpaint/Sources/arm/SlotMaterial.hx similarity index 93% rename from armorpaint/Sources/arm/data/MaterialSlot.hx rename to armorpaint/Sources/arm/SlotMaterial.hx index 9a9f09bc..27fd764b 100644 --- a/armorpaint/Sources/arm/data/MaterialSlot.hx +++ b/armorpaint/Sources/arm/SlotMaterial.hx @@ -1,4 +1,4 @@ -package arm.data; +package arm; import zui.Zui.Nodes; import zui.Zui.TNodeCanvas; @@ -6,9 +6,8 @@ import iron.System; import iron.MaterialData; import iron.Data; import iron.ArmPack; -import arm.util.RenderUtil; -class MaterialSlot { +class SlotMaterial { public var nodes = new Nodes(); public var canvas: TNodeCanvas; public var image: Image = null; @@ -32,7 +31,7 @@ class MaterialSlot { for (mat in Project.materials) if (mat.id >= id) id = mat.id + 1; data = m; - var w = RenderUtil.materialPreviewSize; + var w = UtilRender.materialPreviewSize; var wIcon = 50; image = Image.createRenderTarget(w, w); imageIcon = Image.createRenderTarget(wIcon, wIcon); diff --git a/armorpaint/Sources/arm/ui/TabLayers.hx b/armorpaint/Sources/arm/TabLayers.hx similarity index 95% rename from armorpaint/Sources/arm/ui/TabLayers.hx rename to armorpaint/Sources/arm/TabLayers.hx index 2932cf43..4ce325a3 100644 --- a/armorpaint/Sources/arm/ui/TabLayers.hx +++ b/armorpaint/Sources/arm/TabLayers.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import zui.Zui; import zui.Zui.Nodes; @@ -7,12 +7,6 @@ import iron.System; import iron.Time; import iron.Input; import iron.MeshObject; -import arm.data.LayerSlot; -import arm.shader.MakeMaterial; -import arm.util.UVUtil; -import arm.util.MeshUtil; -import arm.util.RenderUtil; -import arm.sys.Path; class TabLayers { @@ -183,18 +177,18 @@ class TabLayers { p.visible = Context.raw.layerFilter == 0 || p.name == ar[Context.raw.layerFilter] || Project.isAtlasObject(p); } if (Context.raw.layerFilter == 0 && Context.raw.mergedObjectIsAtlas) { // All - MeshUtil.mergeMesh(); + UtilMesh.mergeMesh(); } else if (Context.raw.layerFilter > Project.paintObjects.length) { // Atlas var visibles: Array = []; for (p in Project.paintObjects) if (p.visible) visibles.push(p); - MeshUtil.mergeMesh(visibles); + UtilMesh.mergeMesh(visibles); } Base.setObjectMask(); - UVUtil.uvmapCached = false; + UtilUV.uvmapCached = false; Context.raw.ddirty = 2; #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } } @@ -210,26 +204,26 @@ class TabLayers { } } - public static function initLayerMap(): Map { - var res: Map = []; + public static function initLayerMap(): Map { + var res: Map = []; for (i in 0...Project.layers.length) res.set(Project.layers[i], i); return res; } - public static function fillLayerMap(map: Map): Map { + public static function fillLayerMap(map: Map): Map { var res: Map = []; for (l in map.keys()) res.set(map.get(l), Project.layers.indexOf(l) > -1 ? Project.layers.indexOf(l) : 9999); return res; } - static function setDragLayer(layer: LayerSlot, offX: Float, offY: Float) { + static function setDragLayer(layer: SlotLayer, offX: Float, offY: Float) { Base.dragOffX = offX; Base.dragOffY = offY; Base.dragLayer = layer; Context.raw.dragDestination = Project.layers.indexOf(layer); } - static function drawLayerSlot(l: LayerSlot, i: Int, mini: Bool) { + static function drawLayerSlot(l: SlotLayer, i: Int, mini: Bool) { var ui = UIBase.inst.ui; if (Context.raw.layerFilter > 0 && @@ -295,7 +289,7 @@ class TabLayers { } } - static function drawLayerSlotMini(l: LayerSlot, i: Int) { + static function drawLayerSlotMini(l: SlotLayer, i: Int) { var ui = UIBase.inst.ui; ui.row([1, 1]); @@ -309,7 +303,7 @@ class TabLayers { ui._y -= ui.ELEMENT_OFFSET(); } - static function drawLayerSlotFull(l: LayerSlot, i: Int) { + static function drawLayerSlotFull(l: SlotLayer, i: Int) { var ui = UIBase.inst.ui; var step = ui.t.ELEMENT_H; @@ -463,7 +457,7 @@ class TabLayers { ui._y -= ui.ELEMENT_OFFSET(); } - static function comboObject(ui: Zui, l: LayerSlot, label = false): Handle { + static function comboObject(ui: Zui, l: SlotLayer, label = false): Handle { var ar = [tr("Shared")]; for (p in Project.paintObjects) ar.push(p.name); var atlases = Project.getUsedAtlases(); @@ -489,7 +483,7 @@ class TabLayers { return objectHandle; } - static function comboBlending(ui: Zui, l: LayerSlot, label = false): Handle { + static function comboBlending(ui: Zui, l: SlotLayer, label = false): Handle { var blendingHandle = Zui.handle("tablayers_3").nest(l.id); blendingHandle.position = l.blending; ui.combo(blendingHandle, [ @@ -521,13 +515,13 @@ class TabLayers { return blendingHandle; } - static function layerToggleVisible(l: LayerSlot) { + static function layerToggleVisible(l: SlotLayer) { l.visible = !l.visible; UIView2D.inst.hwnd.redraws = 2; MakeMaterial.parseMeshMaterial(); } - static function drawLayerHighlight(l: LayerSlot, mini: Bool) { + static function drawLayerHighlight(l: SlotLayer, mini: Bool) { var ui = UIBase.inst.ui; var step = ui.t.ELEMENT_H; @@ -545,7 +539,7 @@ class TabLayers { } } - static function handleLayerIconState(l: LayerSlot, i: Int, state: State, uix: Float, uiy: Float) { + static function handleLayerIconState(l: SlotLayer, i: Int, state: State, uix: Float, uiy: Float) { var ui = UIBase.inst.ui; #if is_paint @@ -592,7 +586,7 @@ class TabLayers { } } - static function drawLayerIcon(l: LayerSlot, i: Int, uix: Float, uiy: Float, mini: Bool) { + static function drawLayerIcon(l: SlotLayer, i: Int, uix: Float, uiy: Float, mini: Bool) { var ui = UIBase.inst.ui; var icons = Res.get("icons.k"); var iconH = (ui.ELEMENT_H() - (mini ? 2 : 3)) * 2; @@ -669,7 +663,7 @@ class TabLayers { } } - static function canMergeDown(l: LayerSlot) : Bool { + static function canMergeDown(l: SlotLayer) : Bool { var index = Project.layers.indexOf(l); // Lowest layer if (index == 0) return false; @@ -682,7 +676,7 @@ class TabLayers { return true; } - static function drawLayerContextMenu(l: LayerSlot, mini: Bool) { + static function drawLayerContextMenu(l: SlotLayer, mini: Bool) { var add = 0; if (l.fill_layer == null) add += 1; // Clear @@ -991,10 +985,10 @@ class TabLayers { }, menuElements); } - public static function makeMaskPreviewRgba32(l: LayerSlot) { + public static function makeMaskPreviewRgba32(l: SlotLayer) { #if is_paint if (Context.raw.maskPreviewRgba32 == null) { - Context.raw.maskPreviewRgba32 = Image.createRenderTarget(RenderUtil.layerPreviewSize, RenderUtil.layerPreviewSize); + Context.raw.maskPreviewRgba32 = Image.createRenderTarget(UtilRender.layerPreviewSize, UtilRender.layerPreviewSize); } // Convert from R8 to RGBA32 for tooltip display if (Context.raw.maskPreviewLast != l) { @@ -1011,7 +1005,7 @@ class TabLayers { #end } - static function deleteLayer(l: LayerSlot) { + static function deleteLayer(l: SlotLayer) { var pointers = initLayerMap(); if (l.isLayer() && l.hasMasks(false)) { @@ -1071,7 +1065,7 @@ class TabLayers { for (m in Project.materials) remapLayerPointers(m.canvas.nodes, fillLayerMap(pointers)); } - static function canDelete(l: LayerSlot) { + static function canDelete(l: SlotLayer) { var numLayers = 0; if (l.isMask()) return true; diff --git a/armorpaint/Sources/arm/logic/BrushOutputNode.hx b/armorpaint/Sources/arm/nodes/BrushOutputNode.hx similarity index 97% rename from armorpaint/Sources/arm/logic/BrushOutputNode.hx rename to armorpaint/Sources/arm/nodes/BrushOutputNode.hx index b04aed5f..6ddb6abe 100644 --- a/armorpaint/Sources/arm/logic/BrushOutputNode.hx +++ b/armorpaint/Sources/arm/nodes/BrushOutputNode.hx @@ -1,11 +1,11 @@ -package arm.logic; +package arm.nodes; import iron.Input; -import arm.logic.LogicNode; -import arm.shader.MakeMaterial; -import arm.ui.UIToolbar; -import arm.ui.UIBase; -import arm.ui.UIView2D; +import arm.LogicNode; +import arm.MakeMaterial; +import arm.UIToolbar; +import arm.UIBase; +import arm.UIView2D; @:keep class BrushOutputNode extends LogicNode { diff --git a/armorpaint/Sources/arm/logic/InputNode.hx b/armorpaint/Sources/arm/nodes/InputNode.hx similarity index 98% rename from armorpaint/Sources/arm/logic/InputNode.hx rename to armorpaint/Sources/arm/nodes/InputNode.hx index dfdac531..8dfeb01b 100644 --- a/armorpaint/Sources/arm/logic/InputNode.hx +++ b/armorpaint/Sources/arm/nodes/InputNode.hx @@ -1,11 +1,11 @@ -package arm.logic; +package arm.nodes; import iron.App; import iron.Input; import iron.Vec4; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; +import arm.LogicNode; import arm.Translator._tr; @:keep diff --git a/armorpaint/Sources/arm/logic/TEX_IMAGE.hx b/armorpaint/Sources/arm/nodes/TEX_IMAGE.hx similarity index 93% rename from armorpaint/Sources/arm/logic/TEX_IMAGE.hx rename to armorpaint/Sources/arm/nodes/TEX_IMAGE.hx index d2755a8a..d7d7eba1 100644 --- a/armorpaint/Sources/arm/logic/TEX_IMAGE.hx +++ b/armorpaint/Sources/arm/nodes/TEX_IMAGE.hx @@ -1,9 +1,9 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep diff --git a/armorsculpt/Sources/arm/io/ExportObj.hx b/armorsculpt/Sources/arm/ExportObj.hx similarity index 99% rename from armorsculpt/Sources/arm/io/ExportObj.hx rename to armorsculpt/Sources/arm/ExportObj.hx index 090b63ea..2f2d78c0 100644 --- a/armorsculpt/Sources/arm/io/ExportObj.hx +++ b/armorsculpt/Sources/arm/ExportObj.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import js.lib.Int16Array; import iron.MeshObject; diff --git a/armorsculpt/Sources/arm/io/ImportMesh.hx b/armorsculpt/Sources/arm/ImportMesh.hx similarity index 94% rename from armorsculpt/Sources/arm/io/ImportMesh.hx rename to armorsculpt/Sources/arm/ImportMesh.hx index 0881d6e1..914e504b 100644 --- a/armorsculpt/Sources/arm/io/ImportMesh.hx +++ b/armorsculpt/Sources/arm/ImportMesh.hx @@ -1,16 +1,11 @@ -package arm.io; +package arm; import iron.SceneFormat; import iron.MeshData; import iron.Data; import iron.Scene; import iron.System; -import arm.util.MeshUtil; -import arm.Viewport; -import arm.sys.Path; -import arm.ui.UIBase; -import arm.ui.UIView2D; -import arm.Project; +import iron.App; class ImportMesh { @@ -65,7 +60,7 @@ class ImportMesh { // No mask by default for (p in Project.paintObjects) p.visible = true; - if (Context.raw.mergedObject == null) MeshUtil.mergeMesh(); + if (Context.raw.mergedObject == null) UtilMesh.mergeMesh(); Context.raw.paintObject.skip_context = "paint"; Context.raw.mergedObject.visible = true; } @@ -73,8 +68,8 @@ class ImportMesh { Viewport.scaleToBounds(); if (Context.raw.paintObject.name == "") Context.raw.paintObject.name = "Object"; - arm.shader.MakeMaterial.parsePaintMaterial(); - arm.shader.MakeMaterial.parseMeshMaterial(); + MakeMaterial.parsePaintMaterial(); + MakeMaterial.parseMeshMaterial(); UIView2D.inst.hwnd.redraws = 2; diff --git a/armorsculpt/Sources/arm/shader/MakeBrush.hx b/armorsculpt/Sources/arm/MakeBrush.hx similarity index 96% rename from armorsculpt/Sources/arm/shader/MakeBrush.hx rename to armorsculpt/Sources/arm/MakeBrush.hx index 13b6e730..6630675e 100644 --- a/armorsculpt/Sources/arm/shader/MakeBrush.hx +++ b/armorsculpt/Sources/arm/MakeBrush.hx @@ -1,6 +1,4 @@ -package arm.shader; - -import arm.shader.NodeShader; +package arm; class MakeBrush { diff --git a/armorsculpt/Sources/arm/shader/MakeMaterial.hx b/armorsculpt/Sources/arm/MakeMaterial.hx similarity index 93% rename from armorsculpt/Sources/arm/shader/MakeMaterial.hx rename to armorsculpt/Sources/arm/MakeMaterial.hx index a62e1e32..2139f2fa 100644 --- a/armorsculpt/Sources/arm/shader/MakeMaterial.hx +++ b/armorsculpt/Sources/arm/MakeMaterial.hx @@ -1,4 +1,4 @@ -package arm.shader; +package arm; import zui.Zui; import zui.Zui.Nodes; @@ -6,11 +6,6 @@ import iron.System; import iron.SceneFormat; import iron.ShaderData; import iron.MaterialData; -import arm.ui.UINodes; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; -import arm.shader.MaterialParser; -import arm.util.RenderUtil; class MakeMaterial { @@ -264,7 +259,7 @@ class MakeMaterial { static function bakeNodePreview(node: TNode, group: TNodeCanvas, parents: Array) { if (node.type == "BLUR") { - var id = MaterialParser.node_name(node, parents); + var id = ParserMaterial.node_name(node, parents); var image = Context.raw.nodePreviews.get(id); Context.raw.nodePreviewsUsed.push(id); var resX = Std.int(Config.getTextureResX() / 4); @@ -275,12 +270,12 @@ class MakeMaterial { Context.raw.nodePreviews.set(id, image); } - MaterialParser.blur_passthrough = true; - RenderUtil.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); - MaterialParser.blur_passthrough = false; + ParserMaterial.blur_passthrough = true; + UtilRender.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); + ParserMaterial.blur_passthrough = false; } else if (node.type == "DIRECT_WARP") { - var id = MaterialParser.node_name(node, parents); + var id = ParserMaterial.node_name(node, parents); var image = Context.raw.nodePreviews.get(id); Context.raw.nodePreviewsUsed.push(id); var resX = Std.int(Config.getTextureResX()); @@ -291,9 +286,9 @@ class MakeMaterial { Context.raw.nodePreviews.set(id, image); } - MaterialParser.warp_passthrough = true; - RenderUtil.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); - MaterialParser.warp_passthrough = false; + ParserMaterial.warp_passthrough = true; + UtilRender.makeNodePreview(UINodes.inst.getCanvasMaterial(), node, image, group, parents); + ParserMaterial.warp_passthrough = false; } } @@ -312,7 +307,7 @@ class MakeMaterial { } public static function parseBrush() { - arm.logic.LogicParser.parse(Context.raw.brush.canvas); + ParserLogic.parse(Context.raw.brush.canvas); } public static inline function getDisplaceStrength():Float { diff --git a/armorsculpt/Sources/arm/shader/MakeMesh.hx b/armorsculpt/Sources/arm/MakeMesh.hx similarity index 97% rename from armorsculpt/Sources/arm/shader/MakeMesh.hx rename to armorsculpt/Sources/arm/MakeMesh.hx index 41b7ad5a..6eb24c5f 100644 --- a/armorsculpt/Sources/arm/shader/MakeMesh.hx +++ b/armorsculpt/Sources/arm/MakeMesh.hx @@ -1,10 +1,4 @@ -package arm.shader; - -import arm.shader.MaterialParser; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; -import arm.shader.ShaderFunctions; -import arm.data.LayerSlot; +package arm; class MakeMesh { @@ -120,7 +114,7 @@ class MakeMesh { // Get layers for this pass layerPassCount = 1; - var layers: Array = []; + var layers: Array = []; var startCount = textureCount; for (l in Project.layers) { if (!l.isLayer() || !l.isVisible()) continue; @@ -226,7 +220,7 @@ class MakeMesh { frag.write('fragColor[0] = vec4(basecol, opacity);'); frag.write('fragColor[1] = vec4(ntex, matid);'); frag.write('fragColor[2] = vec4(occlusion, roughness, metallic, height);'); - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); con_mesh.data.shader_from_source = true; con_mesh.data.vertex_shader = vert.get(); con_mesh.data.fragment_shader = frag.get(); @@ -328,7 +322,7 @@ class MakeMesh { frag.write('vec2 posb = (prevwvpposition.xy / prevwvpposition.w) * 0.5 + 0.5;'); frag.write('fragColor[2] = vec4(posa - posb, texCoord.xy);'); - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); con_mesh.data.shader_from_source = true; con_mesh.data.vertex_shader = vert.get(); con_mesh.data.fragment_shader = frag.get(); diff --git a/armorsculpt/Sources/arm/shader/MakeMeshPreview.hx b/armorsculpt/Sources/arm/MakeMeshPreview.hx similarity index 88% rename from armorsculpt/Sources/arm/shader/MakeMeshPreview.hx rename to armorsculpt/Sources/arm/MakeMeshPreview.hx index 1aa67d9d..1b95d490 100644 --- a/armorsculpt/Sources/arm/shader/MakeMeshPreview.hx +++ b/armorsculpt/Sources/arm/MakeMeshPreview.hx @@ -1,12 +1,7 @@ -package arm.shader; +package arm; import iron.MeshObject; import iron.SceneFormat; -import arm.ui.UINodes; -import arm.shader.MaterialParser; -import arm.shader.NodeShaderData; -import arm.shader.NodeShaderContext; -import arm.shader.ShaderFunctions; class MakeMeshPreview { @@ -58,21 +53,21 @@ class MakeMeshPreview { vert.write_attrib('texCoord = tex * float(${brushScale});'); var decal = Context.raw.decalPreview; - MaterialParser.sample_keep_aspect = decal; - MaterialParser.sample_uv_scale = brushScale; - MaterialParser.parse_height = MakeMaterial.heightUsed; - MaterialParser.parse_height_as_channel = true; - // var sout = MaterialParser.parse(UINodes.inst.getCanvasMaterial(), con_mesh, vert, frag, matcon); - MaterialParser.parse_height = false; - MaterialParser.parse_height_as_channel = false; - MaterialParser.sample_keep_aspect = false; + ParserMaterial.sample_keep_aspect = decal; + ParserMaterial.sample_uv_scale = brushScale; + ParserMaterial.parse_height = MakeMaterial.heightUsed; + ParserMaterial.parse_height_as_channel = true; + // var sout = ParserMaterial.parse(UINodes.inst.getCanvasMaterial(), con_mesh, vert, frag, matcon); + ParserMaterial.parse_height = false; + ParserMaterial.parse_height_as_channel = false; + ParserMaterial.sample_keep_aspect = false; var base = "vec3(1.0, 1.0, 1.0)";//sout.out_basecol; var rough = "0.0";//sout.out_roughness; var met = "0.0";//sout.out_metallic; var occ = "0.0";//sout.out_occlusion; var opac = "0.0";//sout.out_opacity; var height = "0.0";//sout.out_height; - var nortan = "vec3(1.0, 1.0, 1.0)";//MaterialParser.out_normaltan; + var nortan = "vec3(1.0, 1.0, 1.0)";//ParserMaterial.out_normaltan; frag.write('vec3 basecol = pow($base, vec3(2.2, 2.2, 2.2));'); frag.write('float roughness = $rough;'); frag.write('float metallic = $met;'); @@ -81,7 +76,7 @@ class MakeMeshPreview { frag.write('vec3 nortan = $nortan;'); frag.write('float height = $height;'); - // MaterialParser.parse_height_as_channel = false; + // ParserMaterial.parse_height_as_channel = false; // vert.write('float vheight = $height;'); // vert.add_out('float height'); // vert.write('height = vheight;'); @@ -152,7 +147,7 @@ class MakeMeshPreview { } frag.write('fragColor[2] = vec4(0.0, 0.0, 0.0, 0.0);'); // veloc - MaterialParser.finalize(con_mesh); + ParserMaterial.finalize(con_mesh); #if arm_skin if (skin) { diff --git a/armorsculpt/Sources/arm/shader/MakeSculpt.hx b/armorsculpt/Sources/arm/MakeSculpt.hx similarity index 93% rename from armorsculpt/Sources/arm/shader/MakeSculpt.hx rename to armorsculpt/Sources/arm/MakeSculpt.hx index 9cdd1f21..a4adc284 100644 --- a/armorsculpt/Sources/arm/shader/MakeSculpt.hx +++ b/armorsculpt/Sources/arm/MakeSculpt.hx @@ -1,12 +1,7 @@ -package arm.shader; +package arm; import iron.SceneFormat; import zui.Zui.Nodes; -import arm.ui.UINodes; -import arm.shader.MaterialParser; -import arm.shader.NodeShaderContext; -import arm.shader.NodeShaderData; -import arm.shader.ShaderFunctions; class MakeSculpt { @@ -90,7 +85,7 @@ class MakeSculpt { frag.write('fragColor[1] = vec4(str, 0.0, 0.0, 1.0);'); - MaterialParser.finalize(con_paint); + ParserMaterial.finalize(con_paint); con_paint.data.shader_from_source = true; con_paint.data.vertex_shader = vert.get(); con_paint.data.fragment_shader = frag.get(); diff --git a/armorsculpt/Sources/arm/ui/TabLayers.hx b/armorsculpt/Sources/arm/TabLayers.hx similarity index 92% rename from armorsculpt/Sources/arm/ui/TabLayers.hx rename to armorsculpt/Sources/arm/TabLayers.hx index b42d39db..8164d4ed 100644 --- a/armorsculpt/Sources/arm/ui/TabLayers.hx +++ b/armorsculpt/Sources/arm/TabLayers.hx @@ -1,16 +1,10 @@ -package arm.ui; +package arm; import zui.Zui; import zui.Zui.Nodes; import iron.Time; import iron.Input; import iron.MeshObject; -import arm.data.LayerSlot; -import arm.shader.MakeMaterial; -import arm.util.UVUtil; -import arm.util.MeshUtil; -import arm.util.RenderUtil; -import arm.sys.Path; class TabLayers { @@ -114,26 +108,26 @@ class TabLayers { } } - public static function initLayerMap(): Map { - var res: Map = []; + public static function initLayerMap(): Map { + var res: Map = []; for (i in 0...Project.layers.length) res.set(Project.layers[i], i); return res; } - public static function fillLayerMap(map: Map): Map { + public static function fillLayerMap(map: Map): Map { var res: Map = []; for (l in map.keys()) res.set(map.get(l), Project.layers.indexOf(l) > -1 ? Project.layers.indexOf(l) : 9999); return res; } - static function setDragLayer(layer: LayerSlot, offX: Float, offY: Float) { + static function setDragLayer(layer: SlotLayer, offX: Float, offY: Float) { Base.dragOffX = offX; Base.dragOffY = offY; Base.dragLayer = layer; Context.raw.dragDestination = Project.layers.indexOf(layer); } - static function drawLayerSlot(l: LayerSlot, i: Int, mini: Bool) { + static function drawLayerSlot(l: SlotLayer, i: Int, mini: Bool) { var ui = UIBase.inst.ui; if (Context.raw.layerFilter > 0 && @@ -199,7 +193,7 @@ class TabLayers { } } - static function drawLayerSlotMini(l: LayerSlot, i: Int) { + static function drawLayerSlotMini(l: SlotLayer, i: Int) { var ui = UIBase.inst.ui; ui.row([1, 1]); @@ -212,7 +206,7 @@ class TabLayers { ui._y -= ui.ELEMENT_OFFSET(); } - static function drawLayerSlotFull(l: LayerSlot, i: Int) { + static function drawLayerSlotFull(l: SlotLayer, i: Int) { var ui = UIBase.inst.ui; var step = ui.t.ELEMENT_H; @@ -350,7 +344,7 @@ class TabLayers { ui._y -= ui.ELEMENT_OFFSET(); } - static function comboObject(ui: Zui, l: LayerSlot, label = false): Handle { + static function comboObject(ui: Zui, l: SlotLayer, label = false): Handle { var ar = [tr("Shared")]; var objectHandle = Zui.handle("tablayers_2").nest(l.id); objectHandle.position = l.objectMask; @@ -358,13 +352,13 @@ class TabLayers { return objectHandle; } - static function layerToggleVisible(l: LayerSlot) { + static function layerToggleVisible(l: SlotLayer) { l.visible = !l.visible; UIView2D.inst.hwnd.redraws = 2; MakeMaterial.parseMeshMaterial(); } - static function drawLayerHighlight(l: LayerSlot, mini: Bool) { + static function drawLayerHighlight(l: SlotLayer, mini: Bool) { var ui = UIBase.inst.ui; var step = ui.t.ELEMENT_H; @@ -382,7 +376,7 @@ class TabLayers { } } - static function canMergeDown(l: LayerSlot) : Bool { + static function canMergeDown(l: SlotLayer) : Bool { var index = Project.layers.indexOf(l); // Lowest layer if (index == 0) return false; @@ -395,7 +389,7 @@ class TabLayers { return true; } - static function drawLayerContextMenu(l: LayerSlot, mini: Bool) { + static function drawLayerContextMenu(l: SlotLayer, mini: Bool) { } diff --git a/armorsculpt/Sources/arm/logic/BrushOutputNode.hx b/armorsculpt/Sources/arm/nodes/BrushOutputNode.hx similarity index 96% rename from armorsculpt/Sources/arm/logic/BrushOutputNode.hx rename to armorsculpt/Sources/arm/nodes/BrushOutputNode.hx index d99d5c87..81ce0353 100644 --- a/armorsculpt/Sources/arm/logic/BrushOutputNode.hx +++ b/armorsculpt/Sources/arm/nodes/BrushOutputNode.hx @@ -1,10 +1,10 @@ -package arm.logic; +package arm.nodes; import iron.Input; -import arm.logic.LogicNode; -import arm.shader.MakeMaterial; -import arm.ui.UIBase; -import arm.ui.UIView2D; +import arm.LogicNode; +import arm.MakeMaterial; +import arm.UIBase; +import arm.UIView2D; @:keep class BrushOutputNode extends LogicNode { diff --git a/base/Sources/Main.hx b/base/Sources/Main.hx index 9c326773..1dc33b0c 100644 --- a/base/Sources/Main.hx +++ b/base/Sources/Main.hx @@ -5,11 +5,11 @@ import iron.System; import iron.Object; import iron.Scene; import iron.RenderPath; -import arm.render.RenderPathBase; -import arm.render.RenderPathForward; -import arm.render.RenderPathDeferred; -import arm.render.RenderPathRaytrace; -import arm.render.UniformsExt; +import arm.RenderPathBase; +import arm.RenderPathForward; +import arm.RenderPathDeferred; +import arm.RenderPathRaytrace; +import arm.UniformsExt; import arm.Config; import arm.Context; import arm.Res; diff --git a/base/Sources/arm/Args.hx b/base/Sources/arm/Args.hx index c69c683a..bbabaace 100644 --- a/base/Sources/arm/Args.hx +++ b/base/Sources/arm/Args.hx @@ -4,22 +4,6 @@ import haxe.Json; import iron.App; import iron.System; import iron.Data; -import arm.sys.Path; -import arm.io.ImportAsset; -import arm.io.ImportArm; -#if is_paint -import arm.io.ExportArm; -#end -#if (is_paint || is_sculpt) -import arm.io.ExportMesh; -import arm.ui.UIFiles; -import arm.ui.UIBase; -#end -#if (is_paint || is_lab) -import arm.sys.File; -import arm.io.ExportTexture; -import arm.ui.BoxExport; -#end class Args { diff --git a/base/Sources/arm/Base.hx b/base/Sources/arm/Base.hx index 6f298456..bf0c116d 100644 --- a/base/Sources/arm/Base.hx +++ b/base/Sources/arm/Base.hx @@ -11,19 +11,9 @@ import iron.Data; import iron.Time; import iron.RenderPath; import iron.ConstData; -import arm.ui.*; -import arm.io.ImportAsset; -import arm.shader.MakeMaterial; -import arm.Viewport; -import arm.Camera; -import arm.Res; -import arm.ProjectFormat; -#if (is_paint || is_sculpt) import iron.Mat4; -import arm.data.*; -import arm.util.*; -import arm.render.RenderPathPaint; -#end +import arm.ProjectFormat; +import arm.Res; class Base { @@ -59,8 +49,8 @@ class Base { static var lastWindowWidth = 0; static var lastWindowHeight = 0; #if (is_paint || is_sculpt) - public static var dragMaterial: MaterialSlot = null; - public static var dragLayer: LayerSlot = null; + public static var dragMaterial: SlotMaterial = null; + public static var dragLayer: SlotLayer = null; #end public static var pipeCopy: PipelineState; @@ -209,7 +199,7 @@ class Base { new UIView2D(); #if is_lab - arm.logic.RandomNode.setSeed(Std.int(Time.time() * 4294967295)); + arm.nodes.RandomNode.setSeed(Std.int(Time.time() * 4294967295)); #end App.notifyOnUpdate(update); @@ -247,7 +237,7 @@ class Base { #end if (Config.raw.splash_screen && hasProjects) { - arm.ui.BoxProjects.show(); + BoxProjects.show(); } }); }); @@ -264,12 +254,12 @@ class Base { public static function w(): Int { // Drawing material preview if (UIBase.inst != null && Context.raw.materialPreview) { - return RenderUtil.materialPreviewSize; + return UtilRender.materialPreviewSize; } // Drawing decal preview if (UIBase.inst != null && Context.raw.decalPreview) { - return RenderUtil.decalPreviewSize; + return UtilRender.decalPreviewSize; } var res = 0; @@ -299,12 +289,12 @@ class Base { public static function h(): Int { // Drawing material preview if (UIBase.inst != null && Context.raw.materialPreview) { - return RenderUtil.materialPreviewSize; + return UtilRender.materialPreviewSize; } // Drawing decal preview if (UIBase.inst != null && Context.raw.decalPreview) { - return RenderUtil.decalPreviewSize; + return UtilRender.decalPreviewSize; } var res = System.height; @@ -521,7 +511,7 @@ class Base { else if (Context.inViewport()) { if (dragAsset.file.toLowerCase().endsWith(".hdr")) { var image = Project.getImage(dragAsset); - arm.io.ImportEnvmap.run(dragAsset.file, image); + ImportEnvmap.run(dragAsset.file, image); } } #if (is_paint || is_sculpt) @@ -629,12 +619,12 @@ class Base { // Material drag and dropped onto viewport or layers tab if (Context.inViewport()) { var uvType = Input.getKeyboard().down("control") ? UVProject : UVMap; - var decalMat = uvType == UVProject ? RenderUtil.getDecalMat() : null; + var decalMat = uvType == UVProject ? UtilRender.getDecalMat() : null; Base.createFillLayer(uvType, decalMat); } if (Context.inLayers() && TabLayers.canDropNewLayer(Context.raw.dragDestination)) { var uvType = Input.getKeyboard().down("control") ? UVProject : UVMap; - var decalMat = uvType == UVProject ? RenderUtil.getDecalMat() : null; + var decalMat = uvType == UVProject ? UtilRender.getDecalMat() : null; Base.createFillLayer(uvType, decalMat, Context.raw.dragDestination); } else if (Context.inNodes()) { @@ -720,7 +710,7 @@ class Base { if (Context.raw.frame == 2) { #if (is_paint || is_sculpt) - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); UIBase.inst.hwnds[TabSidebar1].redraws = 2; #end @@ -732,7 +722,7 @@ class Base { if (History.undoLayers == null) { History.undoLayers = []; for (i in 0...Config.raw.undo_steps) { - var l = new LayerSlot("_undo" + History.undoLayers.length); + var l = new SlotLayer("_undo" + History.undoLayers.length); History.undoLayers.push(l); } } @@ -913,14 +903,14 @@ class Base { } public static function redrawStatus() { - if (arm.ui.UIStatus.inst != null) { + if (UIStatus.inst != null) { UIBase.inst.hwnds[TabStatus].redraws = 2; } } public static function redrawConsole() { var statush = Config.raw.layout[LayoutStatusH]; - if (arm.ui.UIStatus.inst != null && arm.ui.UIBase.inst != null && arm.ui.UIBase.inst.ui != null && statush > arm.ui.UIStatus.defaultStatusH * arm.ui.UIBase.inst.ui.SCALE()) { + if (UIStatus.inst != null && UIBase.inst != null && UIBase.inst.ui != null && statush > UIStatus.defaultStatusH * UIBase.inst.ui.SCALE()) { UIBase.inst.hwnds[TabStatus].redraws = 2; } } @@ -1117,7 +1107,7 @@ class Base { } if (RenderPathPaint.liveLayer != null) RenderPathPaint.liveLayer.resizeAndSetBits(); #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; // Rebuild baketex + RenderPathRaytrace.ready = false; // Rebuild baketex #end Context.raw.ddirty = 2; } @@ -1368,7 +1358,7 @@ class Base { var l = Project.layers[0]; #end #if is_lab - var l = arm.logic.BrushOutputNode.inst; + var l = arm.nodes.BrushOutputNode.inst; #end if (tempImage != null && (tempImage.width != l.texpaint.width || tempImage.height != l.texpaint.height || tempImage.format != l.texpaint.format)) { @@ -1419,7 +1409,7 @@ class Base { var l = Project.layers[0]; #end #if is_lab - var l = arm.logic.BrushOutputNode.inst; + var l = arm.nodes.BrushOutputNode.inst; #end if (expa != null && (expa.width != l.texpaint.width || expa.height != l.texpaint.height || expa.format != l.texpaint.format)) { @@ -1475,7 +1465,7 @@ class Base { } #if (is_paint || is_sculpt) - public static function duplicateLayer(l: LayerSlot) { + public static function duplicateLayer(l: SlotLayer) { if (!l.isGroup()) { var newLayer = l.duplicate(); Context.setLayer(newLayer); @@ -1523,7 +1513,7 @@ class Base { } } - public static function applyMasks(l: LayerSlot) { + public static function applyMasks(l: SlotLayer) { var masks = l.getMasks(); if (masks != null) { @@ -1563,7 +1553,7 @@ class Base { Context.raw.layerPreviewDirty = true; } - public static function mergeGroup(l: LayerSlot) { + public static function mergeGroup(l: SlotLayer) { if (!l.isGroup()) return null; var children = l.getChildren(); @@ -1595,7 +1585,7 @@ class Base { return children[0]; } - public static function mergeLayer(l0 : LayerSlot, l1: LayerSlot, use_mask = false) { + public static function mergeLayer(l0 : SlotLayer, l1: SlotLayer, use_mask = false) { if (!l1.visible || l1.isGroup()) return; if (pipeMerge == null) makePipe(); @@ -1689,7 +1679,7 @@ class Base { } } - public static function flatten(heightToNormal = false, layers: Array = null): Dynamic { + public static function flatten(heightToNormal = false, layers: Array = null): Dynamic { if (layers == null) layers = Project.layers; Base.makeTempImg(); Base.makeExportImg(); @@ -1829,7 +1819,7 @@ class Base { return untyped l0; } - public static function applyMask(l: LayerSlot, m: LayerSlot) { + public static function applyMask(l: SlotLayer, m: SlotLayer) { if (!l.isLayer() || !m.isMask()) return; if (Base.pipeMerge == null) Base.makePipe(); @@ -1888,7 +1878,7 @@ class Base { #if is_paint if (Context.raw.tool == ToolMaterial) { if (RenderPathPaint.liveLayer == null) { - RenderPathPaint.liveLayer = new arm.data.LayerSlot("_live"); + RenderPathPaint.liveLayer = new SlotLayer("_live"); } current = Graphics2.current; @@ -2019,18 +2009,18 @@ class Base { var isAtlas = Context.raw.layer.getObjectMask() > 0 && Context.raw.layer.getObjectMask() <= Project.paintObjects.length; if (Context.raw.mergedObject == null || isAtlas || Context.raw.mergedObjectIsAtlas) { var visibles = isAtlas ? Project.getAtlasObjects(Context.raw.layer.getObjectMask()) : null; - MeshUtil.mergeMesh(visibles); + UtilMesh.mergeMesh(visibles); } Context.selectPaintObject(Context.mainObject()); Context.raw.paintObject.skip_context = "paint"; Context.raw.mergedObject.visible = true; } - UVUtil.dilatemapCached = false; + UtilUV.dilatemapCached = false; } - public static function newLayer(clear = true, position = -1): LayerSlot { + public static function newLayer(clear = true, position = -1): SlotLayer { if (Project.layers.length > maxLayers) return null; - var l = new LayerSlot(); + var l = new SlotLayer(); l.objectMask = Context.raw.layerFilter; if (position == -1) { if (Context.raw.layer.isMask()) Context.setLayer(Context.raw.layer.parent); @@ -2053,9 +2043,9 @@ class Base { return l; } - public static function newMask(clear = true, parent: LayerSlot, position = -1): LayerSlot { + public static function newMask(clear = true, parent: SlotLayer, position = -1): SlotLayer { if (Project.layers.length > maxLayers) return null; - var l = new LayerSlot("", SlotMask, parent); + var l = new SlotLayer("", SlotMask, parent); if (position == -1) position = Project.layers.indexOf(parent); Project.layers.insert(position, l); Context.setLayer(l); @@ -2064,9 +2054,9 @@ class Base { return l; } - public static function newGroup(): LayerSlot { + public static function newGroup(): SlotLayer { if (Project.layers.length > maxLayers) return null; - var l = new LayerSlot("", SlotGroup); + var l = new SlotLayer("", SlotGroup); Project.layers.push(l); Context.setLayer(l); return l; @@ -2113,7 +2103,7 @@ class Base { Base.resizeLayers(); var _layer = Context.raw.layer; var _material = Context.raw.material; - for (l in arm.Project.layers) { + for (l in Project.layers) { if (l.fill_layer != null) { Context.raw.layer = l; Context.raw.material = l.fill_layer; @@ -2124,28 +2114,28 @@ class Base { Context.raw.material = _material; MakeMaterial.parsePaintMaterial(); }); - UVUtil.uvmap = null; - UVUtil.uvmapCached = false; - UVUtil.trianglemap = null; - UVUtil.trianglemapCached = false; - UVUtil.dilatemapCached = false; + UtilUV.uvmap = null; + UtilUV.uvmapCached = false; + UtilUV.trianglemap = null; + UtilUV.trianglemapCached = false; + UtilUV.dilatemapCached = false; #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } #end #if is_lab public static function flatten(heightToNormal = false): Dynamic { - var texpaint = arm.logic.BrushOutputNode.inst.texpaint; - var texpaint_nor = arm.logic.BrushOutputNode.inst.texpaint_nor; - var texpaint_pack = arm.logic.BrushOutputNode.inst.texpaint_pack; + var texpaint = arm.nodes.BrushOutputNode.inst.texpaint; + var texpaint_nor = arm.nodes.BrushOutputNode.inst.texpaint_nor; + var texpaint_pack = arm.nodes.BrushOutputNode.inst.texpaint_pack; var nodes = UINodes.inst.getNodes(); var canvas = UINodes.inst.getCanvas(true); if (nodes.nodesSelectedId.length > 0) { var node = nodes.getNode(canvas.nodes, nodes.nodesSelectedId[0]); - var brushNode = arm.logic.LogicParser.getLogicNode(node); + var brushNode = ParserLogic.getLogicNode(node); if (brushNode != null && brushNode.getCachedImage() != null) { texpaint = brushNode.getCachedImage(); texpaint_nor = RenderPath.active.renderTargets.get("texpaint_nor_empty").image; @@ -2157,31 +2147,31 @@ class Base { } public static function onLayersResized() { - arm.logic.BrushOutputNode.inst.texpaint.unload(); - arm.logic.BrushOutputNode.inst.texpaint = RenderPath.active.renderTargets.get("texpaint").image = Image.createRenderTarget(Config.getTextureResX(), Config.getTextureResY()); - arm.logic.BrushOutputNode.inst.texpaint_nor.unload(); - arm.logic.BrushOutputNode.inst.texpaint_nor = RenderPath.active.renderTargets.get("texpaint_nor").image = Image.createRenderTarget(Config.getTextureResX(), Config.getTextureResY()); - arm.logic.BrushOutputNode.inst.texpaint_pack.unload(); - arm.logic.BrushOutputNode.inst.texpaint_pack = RenderPath.active.renderTargets.get("texpaint_pack").image = Image.createRenderTarget(Config.getTextureResX(), Config.getTextureResY()); + arm.nodes.BrushOutputNode.inst.texpaint.unload(); + arm.nodes.BrushOutputNode.inst.texpaint = RenderPath.active.renderTargets.get("texpaint").image = Image.createRenderTarget(Config.getTextureResX(), Config.getTextureResY()); + arm.nodes.BrushOutputNode.inst.texpaint_nor.unload(); + arm.nodes.BrushOutputNode.inst.texpaint_nor = RenderPath.active.renderTargets.get("texpaint_nor").image = Image.createRenderTarget(Config.getTextureResX(), Config.getTextureResY()); + arm.nodes.BrushOutputNode.inst.texpaint_pack.unload(); + arm.nodes.BrushOutputNode.inst.texpaint_pack = RenderPath.active.renderTargets.get("texpaint_pack").image = Image.createRenderTarget(Config.getTextureResX(), Config.getTextureResY()); - if (arm.logic.InpaintNode.image != null) { - arm.logic.InpaintNode.image.unload(); - arm.logic.InpaintNode.image = null; - arm.logic.InpaintNode.mask.unload(); - arm.logic.InpaintNode.mask = null; - arm.logic.InpaintNode.init(); + if (arm.nodes.InpaintNode.image != null) { + arm.nodes.InpaintNode.image.unload(); + arm.nodes.InpaintNode.image = null; + arm.nodes.InpaintNode.mask.unload(); + arm.nodes.InpaintNode.mask = null; + arm.nodes.InpaintNode.init(); } - if (arm.logic.PhotoToPBRNode.images != null) { - for (image in arm.logic.PhotoToPBRNode.images) image.unload(); - arm.logic.PhotoToPBRNode.images = null; - arm.logic.PhotoToPBRNode.init(); + if (arm.nodes.PhotoToPBRNode.images != null) { + for (image in arm.nodes.PhotoToPBRNode.images) image.unload(); + arm.nodes.PhotoToPBRNode.images = null; + arm.nodes.PhotoToPBRNode.init(); } - if (arm.logic.TilingNode.image != null) { - arm.logic.TilingNode.image.unload(); - arm.logic.TilingNode.image = null; - arm.logic.TilingNode.init(); + if (arm.nodes.TilingNode.image != null) { + arm.nodes.TilingNode.image.unload(); + arm.nodes.TilingNode.image = null; + arm.nodes.TilingNode.init(); } RenderPath.active.renderTargets.get("texpaint_blend0").image.unload(); @@ -2201,7 +2191,7 @@ class Base { }); #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } #end diff --git a/base/Sources/arm/ui/BoxExport.hx b/base/Sources/arm/BoxExport.hx similarity index 98% rename from base/Sources/arm/ui/BoxExport.hx rename to base/Sources/arm/BoxExport.hx index b90a441e..6e110ff2 100644 --- a/base/Sources/arm/ui/BoxExport.hx +++ b/base/Sources/arm/BoxExport.hx @@ -1,19 +1,11 @@ -package arm.ui; +package arm; import haxe.Json; import zui.Zui; import iron.App; import iron.System; import iron.Data; -import arm.io.ExportMesh; -import arm.sys.Path; -#if (is_paint || is_sculpt) -import arm.io.ExportArm; -#end -#if (is_paint || is_lab) -import arm.io.ExportTexture; -import arm.sys.File; -#end +import arm.ExportTexture; class BoxExport { diff --git a/base/Sources/arm/ui/BoxPreferences.hx b/base/Sources/arm/BoxPreferences.hx similarity index 98% rename from base/Sources/arm/ui/BoxPreferences.hx rename to base/Sources/arm/BoxPreferences.hx index c25fc3be..186cf2cf 100644 --- a/base/Sources/arm/ui/BoxPreferences.hx +++ b/base/Sources/arm/BoxPreferences.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import haxe.Json; import zui.Zui; @@ -6,15 +6,6 @@ import iron.App; import iron.System; import iron.Data; import iron.Scene; -import arm.shader.MakeMaterial; -import arm.io.ImportPlugin; -import arm.io.ImportKeymap; -import arm.io.ImportTheme; -import arm.sys.Path; -import arm.sys.File; -#if (is_paint || is_sculpt) -import arm.data.LayerSlot; -#end class BoxPreferences { @@ -292,7 +283,7 @@ class BoxPreferences { #if (is_paint || is_sculpt) while (History.undoLayers.length < Config.raw.undo_steps) { - var l = new LayerSlot("_undo" + History.undoLayers.length); + var l = new SlotLayer("_undo" + History.undoLayers.length); History.undoLayers.push(l); } while (History.undoLayers.length > Config.raw.undo_steps) { @@ -432,7 +423,7 @@ class BoxPreferences { var hpathtracemode = Zui.handle("boxpreferences_40", { position: Context.raw.pathTraceMode }); Context.raw.pathTraceMode = ui.combo(hpathtracemode, [tr("Core"), tr("Full")], tr("Path Tracer"), true); if (hpathtracemode.changed) { - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; } #end diff --git a/base/Sources/arm/ui/BoxProjects.hx b/base/Sources/arm/BoxProjects.hx similarity index 93% rename from base/Sources/arm/ui/BoxProjects.hx rename to base/Sources/arm/BoxProjects.hx index e294059e..d65010f3 100644 --- a/base/Sources/arm/ui/BoxProjects.hx +++ b/base/Sources/arm/BoxProjects.hx @@ -1,12 +1,9 @@ -package arm.ui; +package arm; import iron.App; import iron.System; import iron.Data; import zui.Zui; -import arm.io.ImportArm; -import arm.sys.Path; -import arm.sys.File; class BoxProjects { @@ -59,7 +56,7 @@ class BoxProjects { var title = tr("untitled") + i; while (j < Config.raw.recent_projects.length) { var base = Config.raw.recent_projects[j]; - base = base.substring(base.lastIndexOf(arm.sys.Path.sep) + 1, base.lastIndexOf(".")); + base = base.substring(base.lastIndexOf(Path.sep) + 1, base.lastIndexOf(".")); j++; if (title == base) { i++; @@ -139,16 +136,16 @@ class BoxProjects { #end } - var name = path.substring(path.lastIndexOf(arm.sys.Path.sep) + 1, path.lastIndexOf(".")); + var name = path.substring(path.lastIndexOf(Path.sep) + 1, path.lastIndexOf(".")); if (ui.isHovered && ui.inputReleasedR) { UIMenu.draw(function(ui: Zui) { // if (UIMenu.menuButton(ui, tr("Duplicate"))) {} if (UIMenu.menuButton(ui, tr("Delete"))) { App.notifyOnInit(function() { - arm.sys.File.delete(path); - arm.sys.File.delete(iconPath); + File.delete(path); + File.delete(iconPath); var dataPath = path.substr(0, path.length - 4); - arm.sys.File.delete(dataPath); + File.delete(dataPath); recent_projects.splice(i, 1); }); } @@ -198,7 +195,7 @@ class BoxProjects { if (file.toLowerCase().indexOf(hsearch.text.toLowerCase()) < 0) continue; // Search filter - if (ui.button(file, Left) && arm.sys.File.exists(path)) { + if (ui.button(file, Left) && File.exists(path)) { var current = Graphics2.current; if (current != null) current.end(); diff --git a/base/Sources/arm/Camera.hx b/base/Sources/arm/Camera.hx index 58c34490..48eacbf0 100644 --- a/base/Sources/arm/Camera.hx +++ b/base/Sources/arm/Camera.hx @@ -6,7 +6,6 @@ import iron.Time; import iron.Vec4; import iron.Mat4; import iron.Scene; -import arm.Viewport; class Camera { diff --git a/base/Sources/arm/Config.hx b/base/Sources/arm/Config.hx index 20220775..af5ebd71 100644 --- a/base/Sources/arm/Config.hx +++ b/base/Sources/arm/Config.hx @@ -4,11 +4,6 @@ import haxe.Json; import iron.System; import iron.Data; import zui.Zui; -import arm.ui.UIBase; -import arm.ui.UIHeader; -import arm.render.RenderPathBase; -import arm.sys.File; -import arm.sys.Path; import arm.ConfigFormat; class Config { diff --git a/base/Sources/arm/ConfigFormat.hx b/base/Sources/arm/ConfigFormat.hx index abd5216c..ce9412d1 100644 --- a/base/Sources/arm/ConfigFormat.hx +++ b/base/Sources/arm/ConfigFormat.hx @@ -1,6 +1,6 @@ package arm; -@:structInit class TConfig { +typedef TConfig = { // The locale should be specified in ISO 639-1 format: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes // "system" is a special case that will use the system locale @:optional public var locale: String; diff --git a/base/Sources/arm/Console.hx b/base/Sources/arm/Console.hx index b1870cec..aeb8f7d2 100644 --- a/base/Sources/arm/Console.hx +++ b/base/Sources/arm/Console.hx @@ -2,7 +2,6 @@ package arm; import iron.App; import iron.System; -import arm.Base; @:keep class Console { diff --git a/base/Sources/arm/Context.hx b/base/Sources/arm/Context.hx index 817eb4cf..ab7d6f90 100644 --- a/base/Sources/arm/Context.hx +++ b/base/Sources/arm/Context.hx @@ -7,27 +7,8 @@ import iron.Scene; import iron.MeshObject; import iron.Input; import iron.Data; -import arm.render.RenderPathDeferred; -import arm.render.RenderPathForward; -import arm.shader.MakeMaterial; -import arm.shader.NodeShader; -import arm.ui.BoxPreferences; -import arm.ui.UIHeader; -import arm.ui.UIBase; -import arm.ui.UINodes; -import arm.ProjectFormat; import arm.ContextFormat; -#if (is_paint || is_sculpt) -import arm.data.MaterialSlot; -import arm.data.LayerSlot; -import arm.data.BrushSlot; -import arm.data.FontSlot; -import arm.util.UVUtil; -import arm.util.RenderUtil; -import arm.util.ParticleUtil; -import arm.ui.UIToolbar; -import arm.ui.UIView2D; -#end +import arm.ProjectFormat; class Context { @@ -49,7 +30,7 @@ class Context { setMaterial(Project.materials[i]); } - public static function setMaterial(m: MaterialSlot) { + public static function setMaterial(m: SlotMaterial) { if (Project.materials.indexOf(m) == -1) return; raw.material = m; MakeMaterial.parsePaintMaterial(); @@ -61,7 +42,7 @@ class Context { var decal = raw.tool == ToolDecal || raw.tool == ToolText; if (decal) { function _next() { - RenderUtil.makeDecalPreview(); + UtilRender.makeDecalPreview(); } Base.notifyOnNextFrame(_next); } @@ -72,7 +53,7 @@ class Context { setBrush(Project.brushes[i]); } - public static function setBrush(b: BrushSlot) { + public static function setBrush(b: SlotBrush) { if (Project.brushes.indexOf(b) == -1) return; raw.brush = b; MakeMaterial.parseBrush(); @@ -85,11 +66,11 @@ class Context { setFont(Project.fonts[i]); } - public static function setFont(f: FontSlot) { + public static function setFont(f: SlotFont) { if (Project.fonts.indexOf(f) == -1) return; raw.font = f; - RenderUtil.makeTextPreview(); - RenderUtil.makeDecalPreview(); + UtilRender.makeTextPreview(); + UtilRender.makeDecalPreview(); UIBase.inst.hwnds[TabStatus].redraws = 2; UIView2D.inst.hwnd.redraws = 2; } @@ -99,7 +80,7 @@ class Context { setLayer(Project.layers[i]); } - public static function setLayer(l: LayerSlot) { + public static function setLayer(l: SlotLayer) { if (l == raw.layer) return; raw.layer = l; UIHeader.inst.headerHandle.redraws = 2; @@ -139,13 +120,13 @@ class Context { var decal = raw.tool == ToolDecal || raw.tool == ToolText; if (decal) { if (raw.tool == ToolText) { - RenderUtil.makeTextPreview(); + UtilRender.makeTextPreview(); } - RenderUtil.makeDecalPreview(); + UtilRender.makeDecalPreview(); } else if (raw.tool == ToolParticle) { - ParticleUtil.initParticle(); + UtilParticle.initParticle(); MakeMaterial.parseParticleMaterial(); } @@ -182,9 +163,9 @@ class Context { if (raw.mergedObject == null || mask > 0) { raw.paintObject.skip_context = ""; } - UVUtil.uvmapCached = false; - UVUtil.trianglemapCached = false; - UVUtil.dilatemapCached = false; + UtilUV.uvmapCached = false; + UtilUV.trianglemapCached = false; + UtilUV.dilatemapCached = false; #end #if is_lab diff --git a/base/Sources/arm/ContextFormat.hx b/base/Sources/arm/ContextFormat.hx index 26934c3a..cdcdd8cd 100644 --- a/base/Sources/arm/ContextFormat.hx +++ b/base/Sources/arm/ContextFormat.hx @@ -5,17 +5,10 @@ import iron.System; import iron.Vec4; import iron.MeshObject; import iron.Tween; -import arm.shader.NodeShader; -import arm.ProjectFormat; -#if (is_paint || is_sculpt) import iron.Mat4; import iron.Object; import iron.MaterialData; -import arm.data.MaterialSlot; -import arm.data.LayerSlot; -import arm.data.BrushSlot; -import arm.data.FontSlot; -#end +import arm.ProjectFormat; @:structInit class TContext { @:optional public var texture: TAsset = null; @@ -131,10 +124,10 @@ import arm.data.FontSlot; @:optional public var penPaintingOnly = false; // Reject painting with finger when using pen #if (is_paint || is_sculpt) - @:optional public var material: MaterialSlot; - @:optional public var layer: LayerSlot; - @:optional public var brush: BrushSlot; - @:optional public var font: FontSlot; + @:optional public var material: SlotMaterial; + @:optional public var layer: SlotLayer; + @:optional public var brush: SlotBrush; + @:optional public var font: SlotFont; @:optional public var tool = ToolBrush; @:optional public var layerPreviewDirty = true; @@ -145,7 +138,7 @@ import arm.data.FontSlot; @:optional public var nodePreviewsUsed: Array = null; @:optional public var nodePreviewName = ""; @:optional public var maskPreviewRgba32: Image = null; - @:optional public var maskPreviewLast: LayerSlot = null; + @:optional public var maskPreviewLast: SlotLayer = null; @:optional public var colorIdPicked = false; @:optional public var materialPreview = false; // Drawing material previews @@ -193,7 +186,7 @@ import arm.data.FontSlot; @:optional public var lastParticleHitY = 0.0; @:optional public var lastParticleHitZ = 0.0; @:optional public var particleTimer: TAnim = null; - @:optional public var paintBody: arm.plugin.PhysicsBody = null; + @:optional public var paintBody: PhysicsBody = null; #end @:optional public var layerFilter = 0; diff --git a/base/Sources/arm/io/ExportArm.hx b/base/Sources/arm/ExportArm.hx similarity index 98% rename from base/Sources/arm/io/ExportArm.hx rename to base/Sources/arm/ExportArm.hx index 1ac1a12a..4f837d11 100644 --- a/base/Sources/arm/io/ExportArm.hx +++ b/base/Sources/arm/ExportArm.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import haxe.Json; import zui.Zui.Nodes; @@ -13,12 +13,7 @@ import iron.RenderPath; import iron.Vec4; import iron.Lz4; import iron.App; -import arm.sys.Path; import arm.ProjectFormat; -#if (is_paint || is_sculpt) -import arm.data.FontSlot; -import arm.ui.UINodes; -#end class ExportArm { @@ -129,7 +124,7 @@ class ExportArm { envmap: Project.raw.envmap != null ? (sameDrive ? Path.toRelative(Project.filepath, Project.raw.envmap) : Project.raw.envmap) : null, envmap_strength: Scene.active.world.probe.raw.strength, camera_world: Scene.active.camera.transform.local.toFloat32Array(), - camera_origin: vec3f32(arm.Camera.inst.origins[0]), + camera_origin: vec3f32(Camera.inst.origins[0]), camera_fov: Scene.active.camera.data.raw.fov, #if (is_paint || is_sculpt) @@ -392,7 +387,7 @@ class ExportArm { return mesh_files; } - static function fontsToFiles(projectPath: String, fonts: Array): Array { + static function fontsToFiles(projectPath: String, fonts: Array): Array { var font_files: Array = []; for (i in 1...fonts.length) { var f = fonts[i]; diff --git a/base/Sources/arm/io/ExportGpl.hx b/base/Sources/arm/ExportGpl.hx similarity index 96% rename from base/Sources/arm/io/ExportGpl.hx rename to base/Sources/arm/ExportGpl.hx index 9a8b3330..41457dcc 100644 --- a/base/Sources/arm/io/ExportGpl.hx +++ b/base/Sources/arm/ExportGpl.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import iron.System; import arm.ProjectFormat; diff --git a/base/Sources/arm/io/ExportMesh.hx b/base/Sources/arm/ExportMesh.hx similarity index 95% rename from base/Sources/arm/io/ExportMesh.hx rename to base/Sources/arm/ExportMesh.hx index 61379c37..303b4dbd 100644 --- a/base/Sources/arm/io/ExportMesh.hx +++ b/base/Sources/arm/ExportMesh.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import iron.MeshObject; diff --git a/base/Sources/arm/io/ExportObj.hx b/base/Sources/arm/ExportObj.hx similarity index 99% rename from base/Sources/arm/io/ExportObj.hx rename to base/Sources/arm/ExportObj.hx index c34baca1..d18c23f0 100644 --- a/base/Sources/arm/io/ExportObj.hx +++ b/base/Sources/arm/ExportObj.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import js.lib.Int16Array; import iron.MeshObject; diff --git a/base/Sources/arm/io/ExportTexture.hx b/base/Sources/arm/ExportTexture.hx similarity index 95% rename from base/Sources/arm/io/ExportTexture.hx rename to base/Sources/arm/ExportTexture.hx index 0c41b13e..7a9bb234 100644 --- a/base/Sources/arm/io/ExportTexture.hx +++ b/base/Sources/arm/ExportTexture.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; #if (is_paint || is_lab) @@ -7,19 +7,8 @@ import iron.MeshObject; import iron.ConstData; import iron.RenderPath; import iron.Data; -import arm.ui.UIFiles; -import arm.ui.BoxExport; -import arm.sys.Path; -import arm.ProjectFormat; -#if is_paint import iron.Scene; -import arm.render.RenderPathPaint; -import arm.shader.MakeMaterial; -import arm.ui.UIHeader; -#end -#if is_paint -import arm.data.LayerSlot; -#end +import arm.ProjectFormat; class ExportTexture { @@ -73,7 +62,7 @@ class ExportTexture { } if (atlasExport) { for (atlasIndex in 0...Project.atlasObjects.length) { - var layers: Array = []; + var layers: Array = []; for (objectIndex in 0...Project.atlasObjects.length) { if (Project.atlasObjects[objectIndex] == atlasIndex) { for (l in Project.layers) { @@ -91,7 +80,7 @@ class ExportTexture { #end #if is_lab - runLayers(path, [arm.logic.BrushOutputNode.inst]); + runLayers(path, [arm.nodes.BrushOutputNode.inst]); #end #if krom_ios @@ -107,7 +96,7 @@ class ExportTexture { #if is_paint static function runBakeMaterial(path: String) { if (RenderPathPaint.liveLayer == null) { - RenderPathPaint.liveLayer = new arm.data.LayerSlot("_live"); + RenderPathPaint.liveLayer = new SlotLayer("_live"); } var _tool = Context.raw.tool; @@ -132,7 +121,7 @@ class ExportTexture { #end #if is_paint - static function runLayers(path: String, layers: Array, objectName = "", bakeMaterial = false) { + static function runLayers(path: String, layers: Array, objectName = "", bakeMaterial = false) { #end #if is_lab @@ -288,9 +277,9 @@ class ExportTexture { #end #if is_lab - var texpaint = arm.logic.BrushOutputNode.inst.texpaint; - var texpaint_nor = arm.logic.BrushOutputNode.inst.texpaint_nor; - var texpaint_pack = arm.logic.BrushOutputNode.inst.texpaint_pack; + var texpaint = arm.nodes.BrushOutputNode.inst.texpaint; + var texpaint_nor = arm.nodes.BrushOutputNode.inst.texpaint_nor; + var texpaint_pack = arm.nodes.BrushOutputNode.inst.texpaint_pack; #end var pixpaint: js.lib.ArrayBuffer = null; @@ -401,7 +390,7 @@ class ExportTexture { Krom.writeJpg(file, pixels, resX, resY, format, Std.int(Context.raw.formatQuality)); } else { // Exr - var b = arm.format.ExrWriter.run(resX, resY, pixels, bits, type, off); + var b = ParserExr.run(resX, resY, pixels, bits, type, off); Krom.fileSaveBytes(file, b, b.byteLength); } } diff --git a/base/Sources/arm/sys/File.hx b/base/Sources/arm/File.hx similarity index 99% rename from base/Sources/arm/sys/File.hx rename to base/Sources/arm/File.hx index 656a4702..5c485a8e 100644 --- a/base/Sources/arm/sys/File.hx +++ b/base/Sources/arm/File.hx @@ -1,4 +1,4 @@ -package arm.sys; +package arm; import iron.System; diff --git a/base/Sources/arm/geom/Plane.hx b/base/Sources/arm/GeomPlane.hx similarity index 98% rename from base/Sources/arm/geom/Plane.hx rename to base/Sources/arm/GeomPlane.hx index bfb81169..422b8e1d 100644 --- a/base/Sources/arm/geom/Plane.hx +++ b/base/Sources/arm/GeomPlane.hx @@ -1,6 +1,6 @@ -package arm.geom; +package arm; -class Plane { +class GeomPlane { public var posa: js.lib.Int16Array = null; public var nora: js.lib.Int16Array = null; diff --git a/base/Sources/arm/geom/UVSphere.hx b/base/Sources/arm/GeomUVSphere.hx similarity index 98% rename from base/Sources/arm/geom/UVSphere.hx rename to base/Sources/arm/GeomUVSphere.hx index 8cb3351b..c75efd48 100644 --- a/base/Sources/arm/geom/UVSphere.hx +++ b/base/Sources/arm/GeomUVSphere.hx @@ -1,8 +1,8 @@ -package arm.geom; +package arm; import iron.Vec4; -class UVSphere { +class GeomUVSphere { public var posa: js.lib.Int16Array = null; public var nora: js.lib.Int16Array = null; diff --git a/base/Sources/arm/render/Gizmo.hx b/base/Sources/arm/Gizmo.hx similarity index 98% rename from base/Sources/arm/render/Gizmo.hx rename to base/Sources/arm/Gizmo.hx index 1d66802d..4cb5e35e 100644 --- a/base/Sources/arm/render/Gizmo.hx +++ b/base/Sources/arm/Gizmo.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.Input; import iron.RayCaster; @@ -91,7 +91,7 @@ class Gizmo { paintObject.transform.buildMatrix(); #if arm_physics - var pb = paintObject.getTrait(arm.plugin.PhysicsBody); + var pb = paintObject.getTrait(PhysicsBody); if (pb != null) pb.syncTransform(); #end } @@ -255,8 +255,8 @@ class Gizmo { if (Context.raw.gizmoStarted) Context.raw.gizmoDragLast = Context.raw.gizmoDrag; #if is_forge - arm.util.MeshUtil.removeMergedMesh(); - arm.render.RenderPathRaytrace.ready = false; + UtilMesh.removeMergedMesh(); + RenderPathRaytrace.ready = false; #end } diff --git a/base/Sources/arm/History.hx b/base/Sources/arm/History.hx index 27570f52..06e23e7f 100644 --- a/base/Sources/arm/History.hx +++ b/base/Sources/arm/History.hx @@ -6,18 +6,7 @@ import zui.Zui.TNodeCanvas; import iron.App; import iron.System; import iron.RenderPath; -import arm.sys.Path; -import arm.ui.UIFiles; -import arm.ui.UINodes; -#if (is_paint || is_sculpt) -import arm.ui.UIBase; -import arm.ui.UIView2D; -import arm.ui.UIToolbar; -import arm.data.LayerSlot; -import arm.data.MaterialSlot; -import arm.shader.MakeMaterial; import arm.Project; -#end class History { @@ -27,7 +16,7 @@ class History { public static var redos = 0; // Redos available #if (is_paint || is_sculpt) public static var pushUndo = false; // Store undo on next paint - public static var undoLayers: Array = null; + public static var undoLayers: Array = null; #end #if is_sculpt public static var pushUndo2 = false; @@ -57,7 +46,7 @@ class History { } else if (step.name == tr("Delete Layer")) { var parent = step.layer_parent > 0 ? Project.layers[step.layer_parent - 1] : null; - var l = new LayerSlot("", step.layer_type, parent); + var l = new SlotLayer("", step.layer_type, parent); Project.layers.insert(step.layer, l); Context.setLayer(l); undoI = undoI - 1 < 0 ? Config.raw.undo_steps - 1 : undoI - 1; @@ -107,7 +96,7 @@ class History { Context.raw.layer.delete(); var parent = step.layer_parent > 0 ? Project.layers[step.layer_parent - 2] : null; - var l = new LayerSlot("", step.layer_type, parent); + var l = new SlotLayer("", step.layer_type, parent); Project.layers.insert(step.layer, l); Context.setLayer(l); @@ -115,7 +104,7 @@ class History { var lay = undoLayers[undoI]; Context.raw.layer.swap(lay); - var l = new LayerSlot("", step.layer_type, parent); + var l = new SlotLayer("", step.layer_type, parent); Project.layers.insert(step.layer + 1, l); Context.setLayer(l); @@ -210,7 +199,7 @@ class History { Context.raw.material.delete(); } else if (step.name == tr("Delete Material")) { - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); Project.materials.insert(step.material, Context.raw.material); Context.raw.material.canvas = step.canvas; UINodes.inst.canvasChanged(); @@ -245,7 +234,7 @@ class History { if (Config.raw.touch_ui) { // Refresh undo & redo buttons - arm.ui.UIMenubar.inst.menuHandle.redraws = 2; + arm.UIMenubar.inst.menuHandle.redraws = 2; } #end } @@ -263,7 +252,7 @@ class History { #if (is_paint || is_sculpt) else if (step.name == tr("New Layer") || step.name == tr("New Black Mask") || step.name == tr("New White Mask") || step.name == tr("New Fill Mask")) { var parent = step.layer_parent > 0 ? Project.layers[step.layer_parent - 1] : null; - var l = new LayerSlot("", step.layer_type, parent); + var l = new SlotLayer("", step.layer_type, parent); Project.layers.insert(step.layer, l); if (step.name == tr("New Black Mask")) { Base.notifyOnNextFrame(function() { @@ -396,7 +385,7 @@ class History { Project.materialGroups.remove(Project.materialGroups[step.canvas_group]); } else if (step.name == tr("New Material")) { - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); Project.materials.insert(step.material, Context.raw.material); Context.raw.material.canvas = step.canvas; UINodes.inst.canvasChanged(); @@ -409,7 +398,7 @@ class History { Context.raw.material.delete(); } else if (step.name == tr("Duplicate Material")) { - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); Project.materials.insert(step.material, Context.raw.material); Context.raw.material.canvas = step.canvas; UINodes.inst.canvasChanged(); @@ -437,7 +426,7 @@ class History { if (Config.raw.touch_ui) { // Refresh undo & redo buttons - arm.ui.UIMenubar.inst.menuHandle.redraws = 2; + arm.UIMenubar.inst.menuHandle.redraws = 2; } #end } @@ -619,7 +608,7 @@ class History { if (Config.raw.touch_ui) { // Refresh undo & redo buttons - arm.ui.UIMenubar.inst.menuHandle.redraws = 2; + arm.UIMenubar.inst.menuHandle.redraws = 2; } if (undos < Config.raw.undo_steps) undos++; @@ -672,7 +661,7 @@ class History { copyToUndo(lay.id, undoI, Context.raw.layer.isMask()); } - static function copyMergingLayers2(layers: Array) { + static function copyMergingLayers2(layers: Array) { for (layer in layers) copyToUndo(layer.id, undoI, layer.isMask()); } diff --git a/base/Sources/arm/io/ImportArm.hx b/base/Sources/arm/ImportArm.hx similarity index 93% rename from base/Sources/arm/io/ImportArm.hx rename to base/Sources/arm/ImportArm.hx index 00a8fc26..3975fc66 100644 --- a/base/Sources/arm/io/ImportArm.hx +++ b/base/Sources/arm/ImportArm.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import zui.Zui.Nodes; import zui.Zui.TNodeCanvas; @@ -11,25 +11,11 @@ import iron.SceneFormat; import iron.Mat4; import iron.ArmPack; import iron.Scene; -import arm.ProjectFormat; -import arm.ui.UIFiles; -import arm.ui.UIBase; -import arm.sys.Path; -import arm.sys.File; -import arm.Viewport; -#if (is_paint || is_sculpt) import iron.MaterialData; import iron.Lz4; import iron.MeshObject; import iron.RenderPath; -import arm.util.RenderUtil; -import arm.ui.UIStatus; -import arm.util.MeshUtil; -import arm.data.LayerSlot; -import arm.data.BrushSlot; -import arm.data.MaterialSlot; -import arm.shader.MakeMaterial; -#end +import arm.ProjectFormat; class ImportArm { @@ -195,7 +181,7 @@ class ImportArm { #end // No mask by default - if (Context.raw.mergedObject == null) MeshUtil.mergeMesh(); + if (Context.raw.mergedObject == null) UtilMesh.mergeMesh(); #end Context.selectPaintObject(Context.mainObject()); @@ -238,7 +224,7 @@ class ImportArm { var isMask = false; #end - var l = new LayerSlot("", isGroup ? SlotGroup : isMask ? SlotMask : SlotLayer); + var l = new SlotLayer("", isGroup ? SlotGroup : isMask ? SlotMask : SlotLayer); if (ld.name != null) l.name = ld.name; l.visible = ld.visible; Project.layers.push(l); @@ -339,13 +325,13 @@ class ImportArm { Project.materials = []; for (n in project.material_nodes) { initNodes(n.nodes); - Context.raw.material = new MaterialSlot(m0, n); + Context.raw.material = new SlotMaterial(m0, n); Project.materials.push(Context.raw.material); } #end - arm.ui.UINodes.inst.hwnd.redraws = 2; - arm.ui.UINodes.inst.groupStack = []; + arm.UINodes.inst.hwnd.redraws = 2; + arm.UINodes.inst.groupStack = []; Project.materialGroups = []; if (project.material_groups != null) { for (g in project.material_groups) Project.materialGroups.push({ canvas: g, nodes: new Nodes() }); @@ -355,16 +341,16 @@ class ImportArm { for (m in Project.materials) { Context.raw.material = m; MakeMaterial.parsePaintMaterial(); - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); } Project.brushes = []; for (n in project.brush_nodes) { initNodes(n.nodes); - Context.raw.brush = new BrushSlot(n); + Context.raw.brush = new SlotBrush(n); Project.brushes.push(Context.raw.brush); MakeMaterial.parseBrush(); - RenderUtil.makeBrushPreview(); + UtilRender.makeBrushPreview(); } // Fill layers @@ -384,7 +370,7 @@ class ImportArm { #if is_lab initNodes(project.material.nodes); Project.canvas = project.material; - arm.logic.LogicParser.parse(Project.canvas); + ParserLogic.parse(Project.canvas); #end Context.raw.ddirty = 4; @@ -413,7 +399,7 @@ class ImportArm { object.transform.buildMatrix(); object.name = md.name; Project.paintObjects.push(object); - MeshUtil.mergeMesh(); + UtilMesh.mergeMesh(); Viewport.scaleToBounds(); }); } @@ -446,7 +432,7 @@ class ImportArm { if (Data.cachedImages.get(abs) == null && !File.exists(abs)) { makePink(abs); } - arm.io.ImportTexture.run(abs); + arm.ImportTexture.run(abs); } var m0: MaterialData = null; @@ -454,11 +440,11 @@ class ImportArm { m0 = m; }); - var imported: Array = []; + var imported: Array = []; for (c in project.material_nodes) { initNodes(c.nodes); - Context.raw.material = new MaterialSlot(m0, c); + Context.raw.material = new SlotMaterial(m0, c); Project.materials.push(Context.raw.material); imported.push(Context.raw.material); History.newMaterial(); @@ -476,12 +462,12 @@ class ImportArm { for (m in imported) { Context.setMaterial(m); MakeMaterial.parsePaintMaterial(); - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); } } App.notifyOnInit(_init); - arm.ui.UINodes.inst.groupStack = []; + UINodes.inst.groupStack = []; UIBase.inst.hwnds[TabSidebar1].redraws = 2; Data.deleteBlob(path); } @@ -493,7 +479,7 @@ class ImportArm { return false; } - static function renameGroup(name: String, materials: Array, groups: Array) { + static function renameGroup(name: String, materials: Array, groups: Array) { for (m in materials) { for (n in m.canvas.nodes) { if (n.type == "GROUP" && n.name == name) n.name += ".1"; @@ -532,14 +518,14 @@ class ImportArm { if (Data.cachedImages.get(abs) == null && !File.exists(abs)) { makePink(abs); } - arm.io.ImportTexture.run(abs); + arm.ImportTexture.run(abs); } - var imported: Array = []; + var imported: Array = []; for (n in project.brush_nodes) { initNodes(n.nodes); - Context.raw.brush = new BrushSlot(n); + Context.raw.brush = new SlotBrush(n); Project.brushes.push(Context.raw.brush); imported.push(Context.raw.brush); } @@ -547,7 +533,7 @@ class ImportArm { function _init() { for (b in imported) { Context.setBrush(b); - RenderUtil.makeBrushPreview(); + UtilRender.makeBrushPreview(); } } App.notifyOnInit(_init); diff --git a/base/Sources/arm/io/ImportAsset.hx b/base/Sources/arm/ImportAsset.hx similarity index 92% rename from base/Sources/arm/io/ImportAsset.hx rename to base/Sources/arm/ImportAsset.hx index 2e30278c..ec53caad 100644 --- a/base/Sources/arm/io/ImportAsset.hx +++ b/base/Sources/arm/ImportAsset.hx @@ -1,13 +1,4 @@ -package arm.io; - -import arm.sys.Path; -import arm.sys.File; -import arm.ui.UINodes; -import arm.ui.UIBox; -import arm.Project; -#if is_paint -import arm.ui.UIHeader; -#end +package arm; class ImportAsset { diff --git a/base/Sources/arm/io/ImportBlendMaterial.hx b/base/Sources/arm/ImportBlendMaterial.hx similarity index 95% rename from base/Sources/arm/io/ImportBlendMaterial.hx rename to base/Sources/arm/ImportBlendMaterial.hx index 5afc27ad..d7dbc727 100644 --- a/base/Sources/arm/io/ImportBlendMaterial.hx +++ b/base/Sources/arm/ImportBlendMaterial.hx @@ -1,24 +1,16 @@ -package arm.io; +package arm; import iron.App; import iron.Data; import zui.Zui.Nodes; import zui.Zui.TNode; import zui.Zui.TNodeLink; -import arm.format.BlendParser; -import arm.ui.UIBase; -import arm.ui.UINodes; -import arm.shader.NodesMaterial; -import arm.shader.MakeMaterial; -import arm.sys.Path; -import arm.util.RenderUtil; -import arm.data.MaterialSlot; class ImportBlendMaterial { public static function run(path: String) { Data.getBlob(path, function(b: js.lib.ArrayBuffer) { - var bl = new BlendParser(b); + var bl = new ParserBlend(b); if (bl.dna == null) { Console.error(Strings.error3()); return; @@ -30,11 +22,11 @@ class ImportBlendMaterial { return; } - var imported: Array = []; + var imported: Array = []; for (mat in mats) { // Material slot - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); Project.materials.push(Context.raw.material); imported.push(Context.raw.material); var nodes = Context.raw.material.nodes; @@ -260,7 +252,7 @@ class ImportBlendMaterial { for (m in imported) { Context.setMaterial(m); MakeMaterial.parsePaintMaterial(); - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); } } App.notifyOnInit(_init); diff --git a/base/Sources/arm/io/ImportBlendMesh.hx b/base/Sources/arm/ImportBlendMesh.hx similarity index 99% rename from base/Sources/arm/io/ImportBlendMesh.hx rename to base/Sources/arm/ImportBlendMesh.hx index a15f8a54..b5beee98 100644 --- a/base/Sources/arm/io/ImportBlendMesh.hx +++ b/base/Sources/arm/ImportBlendMesh.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import js.lib.Uint32Array; import js.lib.Float32Array; @@ -7,7 +7,6 @@ import iron.Data; import iron.Mat4; import iron.Vec4; import zui.Zui.Nodes; -import arm.format.BlendParser; class ImportBlendMesh { @@ -15,7 +14,7 @@ class ImportBlendMesh { public static function run(path: String, replaceExisting = true) { Data.getBlob(path, function(b: js.lib.ArrayBuffer) { - var bl = new BlendParser(b); + var bl = new ParserBlend(b); if (bl.dna == null) { Console.error(Strings.error3()); return; @@ -282,7 +281,7 @@ class ImportBlendMesh { var px = co[axis0]; var py = co[axis1]; - if (arm.util.MeshUtil.pnpoly(v0x, v0y, v1x, v1y, v2x, v2y, px, py)) { + if (UtilMesh.pnpoly(v0x, v0y, v1x, v1y, v2x, v2y, px, py)) { overlap = true; break; } diff --git a/base/Sources/arm/io/ImportEnvmap.hx b/base/Sources/arm/ImportEnvmap.hx similarity index 99% rename from base/Sources/arm/io/ImportEnvmap.hx rename to base/Sources/arm/ImportEnvmap.hx index 0083b931..2f89ead8 100644 --- a/base/Sources/arm/io/ImportEnvmap.hx +++ b/base/Sources/arm/ImportEnvmap.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import js.lib.Float32Array; import iron.System; diff --git a/base/Sources/arm/io/ImportFbx.hx b/base/Sources/arm/ImportFbx.hx similarity index 64% rename from base/Sources/arm/io/ImportFbx.hx rename to base/Sources/arm/ImportFbx.hx index da66528d..081d50f0 100644 --- a/base/Sources/arm/io/ImportFbx.hx +++ b/base/Sources/arm/ImportFbx.hx @@ -1,15 +1,14 @@ -package arm.io; +package arm; import iron.Data; -import arm.format.FbxParser; class ImportFbx { public static function run(path: String, replaceExisting = true) { Data.getBlob(path, function(b: js.lib.ArrayBuffer) { - FbxParser.parseTransform = Context.raw.parseTransform; - FbxParser.parseVCols = Context.raw.parseVCols; - var obj = new FbxParser(b); + ParserFbx.parseTransform = Context.raw.parseTransform; + ParserFbx.parseVCols = Context.raw.parseVCols; + var obj = new ParserFbx(b); replaceExisting ? ImportMesh.makeMesh(obj, path) : ImportMesh.addMesh(obj); while (obj.next()) { ImportMesh.addMesh(obj); diff --git a/base/Sources/arm/io/ImportFont.hx b/base/Sources/arm/ImportFont.hx similarity index 75% rename from base/Sources/arm/io/ImportFont.hx rename to base/Sources/arm/ImportFont.hx index 50821284..3bd3e6e9 100644 --- a/base/Sources/arm/io/ImportFont.hx +++ b/base/Sources/arm/ImportFont.hx @@ -1,12 +1,8 @@ -package arm.io; +package arm; import iron.App; import iron.System; import iron.Data; -import arm.sys.Path; -import arm.ui.UIBase; -import arm.data.FontSlot; -import arm.util.RenderUtil; class ImportFont { @@ -20,13 +16,13 @@ class ImportFont { Data.getFont(path, function(font: Font) { font.init(); // Make sure font_ is ready var count = Krom.g2_font_count(font.font_); - var fontSlots = new Array(); + var fontSlots = new Array(); for (i in 0...count) { var ar = path.split(Path.sep); var name = ar[ar.length - 1]; var f = font.clone(); f.setFontIndex(i); - var fontSlot = new FontSlot(name, f, path); + var fontSlot = new SlotFont(name, f, path); fontSlots.push(fontSlot); } @@ -34,7 +30,7 @@ class ImportFont { for (f in fontSlots) { Context.raw.font = f; Project.fonts.push(f); - RenderUtil.makeFontPreview(); + UtilRender.makeFontPreview(); } } App.notifyOnInit(_init); diff --git a/base/Sources/arm/io/ImportGpl.hx b/base/Sources/arm/ImportGpl.hx similarity index 98% rename from base/Sources/arm/io/ImportGpl.hx rename to base/Sources/arm/ImportGpl.hx index 7e821bc6..2bf69eba 100644 --- a/base/Sources/arm/io/ImportGpl.hx +++ b/base/Sources/arm/ImportGpl.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import js.lib.ArrayBuffer; import js.lib.DataView; diff --git a/base/Sources/arm/io/ImportKeymap.hx b/base/Sources/arm/ImportKeymap.hx similarity index 66% rename from base/Sources/arm/io/ImportKeymap.hx rename to base/Sources/arm/ImportKeymap.hx index 8c16321c..53bb39e9 100644 --- a/base/Sources/arm/io/ImportKeymap.hx +++ b/base/Sources/arm/ImportKeymap.hx @@ -1,7 +1,4 @@ -package arm.io; - -import arm.sys.Path; -import arm.sys.File; +package arm; class ImportKeymap { @@ -14,8 +11,8 @@ class ImportKeymap { var filename = path.substr(path.lastIndexOf(Path.sep) + 1); var dstPath = Path.data() + Path.sep + "keymap_presets" + Path.sep + filename; File.copy(path, dstPath); // Copy to preset folder - arm.ui.BoxPreferences.fetchKeymaps(); // Refresh file list - arm.ui.BoxPreferences.presetHandle.position = arm.ui.BoxPreferences.getPresetIndex(); + BoxPreferences.fetchKeymaps(); // Refresh file list + BoxPreferences.presetHandle.position = BoxPreferences.getPresetIndex(); Console.info(tr("Keymap imported:") + " " + filename); } } diff --git a/base/Sources/arm/io/ImportMesh.hx b/base/Sources/arm/ImportMesh.hx similarity index 90% rename from base/Sources/arm/io/ImportMesh.hx rename to base/Sources/arm/ImportMesh.hx index c4eb95a1..8a335ad9 100644 --- a/base/Sources/arm/io/ImportMesh.hx +++ b/base/Sources/arm/ImportMesh.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import iron.App; import iron.SceneFormat; @@ -6,15 +6,6 @@ import iron.MeshData; import iron.Data; import iron.Scene; import iron.System; -import arm.util.MeshUtil; -import arm.sys.Path; -import arm.Viewport; -import arm.Project; -#if (is_paint || is_sculpt) -import arm.ui.UIBase; -import arm.ui.UIView2D; -import arm.util.UVUtil; -#end class ImportMesh { @@ -84,7 +75,7 @@ class ImportMesh { // No mask by default for (p in Project.paintObjects) p.visible = true; - if (Context.raw.mergedObject == null) MeshUtil.mergeMesh(); + if (Context.raw.mergedObject == null) UtilMesh.mergeMesh(); Context.raw.paintObject.skip_context = "paint"; Context.raw.mergedObject.visible = true; } @@ -92,15 +83,15 @@ class ImportMesh { Viewport.scaleToBounds(); if (Context.raw.paintObject.name == "") Context.raw.paintObject.name = "Object"; - arm.shader.MakeMaterial.parsePaintMaterial(); - arm.shader.MakeMaterial.parseMeshMaterial(); + MakeMaterial.parsePaintMaterial(); + MakeMaterial.parseMeshMaterial(); #if (is_paint || is_sculpt) UIView2D.inst.hwnd.redraws = 2; #end #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end #if arm_physics @@ -151,9 +142,9 @@ class ImportMesh { #if (is_paint || is_sculpt) UIBase.inst.hwnds[TabSidebar0].redraws = 2; UIBase.inst.hwnds[TabSidebar1].redraws = 2; - UVUtil.uvmapCached = false; - UVUtil.trianglemapCached = false; - UVUtil.dilatemapCached = false; + UtilUV.uvmapCached = false; + UtilUV.trianglemapCached = false; + UtilUV.dilatemapCached = false; #end // Wait for addMesh calls to finish @@ -215,9 +206,9 @@ class ImportMesh { #if (is_paint || is_sculpt) UIBase.inst.hwnds[TabSidebar0].redraws = 2; - UVUtil.uvmapCached = false; - UVUtil.trianglemapCached = false; - UVUtil.dilatemapCached = false; + UtilUV.uvmapCached = false; + UtilUV.trianglemapCached = false; + UtilUV.dilatemapCached = false; #end }); } diff --git a/base/Sources/arm/io/ImportObj.hx b/base/Sources/arm/ImportObj.hx similarity index 99% rename from base/Sources/arm/io/ImportObj.hx rename to base/Sources/arm/ImportObj.hx index 87e98deb..0c44ad03 100644 --- a/base/Sources/arm/io/ImportObj.hx +++ b/base/Sources/arm/ImportObj.hx @@ -1,4 +1,4 @@ -package arm.io; +package arm; import iron.Data; diff --git a/base/Sources/arm/io/ImportPlugin.hx b/base/Sources/arm/ImportPlugin.hx similarity index 76% rename from base/Sources/arm/io/ImportPlugin.hx rename to base/Sources/arm/ImportPlugin.hx index 9465cdcd..ea6757f0 100644 --- a/base/Sources/arm/io/ImportPlugin.hx +++ b/base/Sources/arm/ImportPlugin.hx @@ -1,7 +1,4 @@ -package arm.io; - -import arm.sys.Path; -import arm.sys.File; +package arm; class ImportPlugin { @@ -14,7 +11,7 @@ class ImportPlugin { var filename = path.substr(path.lastIndexOf(Path.sep) + 1); var dstPath = Path.data() + Path.sep + "plugins" + Path.sep + filename; File.copy(path, dstPath); // Copy to plugin folder - arm.ui.BoxPreferences.filesPlugin = null; // Refresh file list + BoxPreferences.filesPlugin = null; // Refresh file list Console.info(tr("Plugin imported:") + " " + filename); } } diff --git a/base/Sources/arm/io/ImportTexture.hx b/base/Sources/arm/ImportTexture.hx similarity index 96% rename from base/Sources/arm/io/ImportTexture.hx rename to base/Sources/arm/ImportTexture.hx index 456891c9..e8d788cb 100644 --- a/base/Sources/arm/io/ImportTexture.hx +++ b/base/Sources/arm/ImportTexture.hx @@ -1,9 +1,7 @@ -package arm.io; +package arm; import iron.System; import iron.Data; -import arm.ui.UIBase; -import arm.sys.Path; import arm.ProjectFormat; class ImportTexture { diff --git a/base/Sources/arm/io/ImportTheme.hx b/base/Sources/arm/ImportTheme.hx similarity index 69% rename from base/Sources/arm/io/ImportTheme.hx rename to base/Sources/arm/ImportTheme.hx index 26a65c3d..36291dca 100644 --- a/base/Sources/arm/io/ImportTheme.hx +++ b/base/Sources/arm/ImportTheme.hx @@ -1,7 +1,4 @@ -package arm.io; - -import arm.sys.Path; -import arm.sys.File; +package arm; class ImportTheme { @@ -14,9 +11,9 @@ class ImportTheme { var filename = path.substr(path.lastIndexOf(Path.sep) + 1); var dstPath = Path.data() + Path.sep + "themes" + Path.sep + filename; File.copy(path, dstPath); // Copy to preset folder - arm.ui.BoxPreferences.fetchThemes(); // Refresh file list + BoxPreferences.fetchThemes(); // Refresh file list Config.raw.theme = filename; - arm.ui.BoxPreferences.themeHandle.position = arm.ui.BoxPreferences.getThemeIndex(); + BoxPreferences.themeHandle.position = BoxPreferences.getThemeIndex(); Config.loadTheme(Config.raw.theme); Console.info(tr("Theme imported:") + " " + filename); } diff --git a/base/Sources/arm/render/LineDraw.hx b/base/Sources/arm/LineDraw.hx similarity index 99% rename from base/Sources/arm/render/LineDraw.hx rename to base/Sources/arm/LineDraw.hx index c7c07379..d33cae63 100644 --- a/base/Sources/arm/render/LineDraw.hx +++ b/base/Sources/arm/LineDraw.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.System; import iron.Scene; diff --git a/base/Sources/arm/logic/LogicNode.hx b/base/Sources/arm/LogicNode.hx similarity index 98% rename from base/Sources/arm/logic/LogicNode.hx rename to base/Sources/arm/LogicNode.hx index d8bde114..00ac4bd5 100644 --- a/base/Sources/arm/logic/LogicNode.hx +++ b/base/Sources/arm/LogicNode.hx @@ -1,4 +1,4 @@ -package arm.logic; +package arm; import iron.System; diff --git a/base/Sources/arm/shader/MakeVoxel.hx b/base/Sources/arm/MakeVoxel.hx similarity index 99% rename from base/Sources/arm/shader/MakeVoxel.hx rename to base/Sources/arm/MakeVoxel.hx index b37d871c..1b4045c6 100644 --- a/base/Sources/arm/shader/MakeVoxel.hx +++ b/base/Sources/arm/MakeVoxel.hx @@ -1,4 +1,4 @@ -package arm.shader; +package arm; import iron.System; import iron.ShaderData; diff --git a/base/Sources/arm/shader/NodeShader.hx b/base/Sources/arm/NodeShader.hx similarity index 99% rename from base/Sources/arm/shader/NodeShader.hx rename to base/Sources/arm/NodeShader.hx index 756d2c89..79b50151 100644 --- a/base/Sources/arm/shader/NodeShader.hx +++ b/base/Sources/arm/NodeShader.hx @@ -1,4 +1,4 @@ -package arm.shader; +package arm; import zui.Zui.Nodes; import iron.SceneFormat; diff --git a/base/Sources/arm/shader/NodeShaderContext.hx b/base/Sources/arm/NodeShaderContext.hx similarity index 98% rename from base/Sources/arm/shader/NodeShaderContext.hx rename to base/Sources/arm/NodeShaderContext.hx index 047224ae..d936b31c 100644 --- a/base/Sources/arm/shader/NodeShaderContext.hx +++ b/base/Sources/arm/NodeShaderContext.hx @@ -1,8 +1,8 @@ -package arm.shader; +package arm; import zui.Zui.Nodes; import iron.SceneFormat; -import arm.shader.NodeShaderData; +import arm.NodeShaderData; class NodeShaderContext { public var vert: NodeShader; diff --git a/base/Sources/arm/shader/NodeShaderData.hx b/base/Sources/arm/NodeShaderData.hx similarity index 95% rename from base/Sources/arm/shader/NodeShaderData.hx rename to base/Sources/arm/NodeShaderData.hx index ea8486cb..847d180d 100644 --- a/base/Sources/arm/shader/NodeShaderData.hx +++ b/base/Sources/arm/NodeShaderData.hx @@ -1,4 +1,4 @@ -package arm.shader; +package arm; import zui.Zui.Nodes; import zui.Zui.TNodeCanvas; diff --git a/base/Sources/arm/shader/NodesMaterial.hx b/base/Sources/arm/NodesMaterial.hx similarity index 98% rename from base/Sources/arm/shader/NodesMaterial.hx rename to base/Sources/arm/NodesMaterial.hx index 72af2a26..5387f41e 100644 --- a/base/Sources/arm/shader/NodesMaterial.hx +++ b/base/Sources/arm/NodesMaterial.hx @@ -1,4 +1,4 @@ -package arm.shader; +package arm; import haxe.Json; import iron.System; @@ -2129,7 +2129,7 @@ class NodesMaterial { ], buttons: [ { - name: "arm.shader.NodesMaterial.vectorCurvesButton", + name: "arm.NodesMaterial.vectorCurvesButton", type: "CUSTOM", default_value: [[f32([0.0, 0.0]), f32([0.0, 0.0])], [f32([0.0, 0.0]), f32([0.0, 0.0])], [f32([0.0, 0.0]), f32([0.0, 0.0])]], output: 0, @@ -2229,7 +2229,7 @@ class NodesMaterial { ], buttons: [ { - name: "arm.shader.NodesMaterial.colorRampButton", + name: "arm.NodesMaterial.colorRampButton", type: "CUSTOM", default_value: [f32([1.0, 1.0, 1.0, 1.0, 0.0])], data: 0, @@ -2777,7 +2777,7 @@ class NodesMaterial { outputs: [], buttons: [ { - name: "arm.shader.NodesMaterial.newGroupButton", + name: "arm.NodesMaterial.newGroupButton", type: "CUSTOM", height: 1 } @@ -2911,7 +2911,7 @@ class NodesMaterial { outputs: [], buttons: [ { - name: "arm.shader.NodesMaterial.groupInputButton", + name: "arm.NodesMaterial.groupInputButton", type: "CUSTOM", height: 1 } @@ -2928,7 +2928,7 @@ class NodesMaterial { outputs: [], buttons: [ { - name: "arm.shader.NodesMaterial.groupOutputButton", + name: "arm.NodesMaterial.groupOutputButton", type: "CUSTOM", height: 1 } @@ -2949,7 +2949,7 @@ class NodesMaterial { } if (ui.button(tr("Nodes"))) { - arm.ui.UINodes.inst.groupStack.push(group); + UINodes.inst.groupStack.push(group); } } @@ -2965,18 +2965,18 @@ class NodesMaterial { static function addSocketButton(ui: Zui, nodes: Nodes, node: TNode, sockets: Array) { if (ui.button(tr("Add"))) { - arm.ui.UIMenu.draw(function(ui: Zui) { - var groupStack = arm.ui.UINodes.inst.groupStack; + UIMenu.draw(function(ui: Zui) { + var groupStack = UINodes.inst.groupStack; var c = groupStack[groupStack.length - 1].canvas; - if (arm.ui.UIMenu.menuButton(ui, tr("RGBA"))) { + if (UIMenu.menuButton(ui, tr("RGBA"))) { sockets.push(createSocket(nodes, node, null, "RGBA", c)); syncSockets(node); } - if (arm.ui.UIMenu.menuButton(ui, tr("Vector"))) { + if (UIMenu.menuButton(ui, tr("Vector"))) { sockets.push(createSocket(nodes, node, null, "VECTOR", c)); syncSockets(node); } - if (arm.ui.UIMenu.menuButton(ui, tr("Value"))) { + if (UIMenu.menuButton(ui, tr("Value"))) { sockets.push(createSocket(nodes, node, null, "VALUE", c)); syncSockets(node); } @@ -2985,7 +2985,7 @@ class NodesMaterial { } public static function syncSockets(node: TNode) { - var groupStack = arm.ui.UINodes.inst.groupStack; + var groupStack = UINodes.inst.groupStack; var c = groupStack[groupStack.length - 1].canvas; for (m in Project.materials) syncGroupSockets(m.canvas, c.name, node); for (g in Project.materialGroups) syncGroupSockets(g.canvas, c.name, node); @@ -3045,7 +3045,7 @@ class NodesMaterial { if (n == null) return null; var canvas = group != null ? group.canvas : Context.raw.material.canvas; var nodes = group != null ? group.nodes : Context.raw.material.nodes; - var node = arm.ui.UINodes.makeNode(n, nodes, canvas); + var node = UINodes.makeNode(n, nodes, canvas); canvas.nodes.push(node); return node; } diff --git a/base/Sources/arm/format/BlendParser.hx b/base/Sources/arm/ParserBlend.hx similarity index 98% rename from base/Sources/arm/format/BlendParser.hx rename to base/Sources/arm/ParserBlend.hx index 2940cf6f..878e8719 100644 --- a/base/Sources/arm/format/BlendParser.hx +++ b/base/Sources/arm/ParserBlend.hx @@ -3,16 +3,16 @@ // https://github.com/fschutt/mystery-of-the-blend-backup // https://web.archive.org/web/20170630054951/http://www.atmind.nl/blender/mystery_ot_blend.html // Usage: -// var bl = new BlendParser(blob: DataView); +// var bl = new ParserBlend(blob: DataView); // Krom.log(bl.dir("Scene")); // var scenes = bl.get("Scene"); // Krom.log(scenes[0].get("id").get("name")); -package arm.format; +package arm; import js.lib.ArrayBuffer; import js.lib.DataView; -class BlendParser { +class ParserBlend { public var pos: Int; var view: DataView; @@ -251,7 +251,7 @@ class BlendParser { } class Block { - public var blend: BlendParser; + public var blend: ParserBlend; public var code: String; public var size: Int; public var sdnaIndex: Int; @@ -348,7 +348,7 @@ class Handle { } // Structure var h = new Handle(); - h.ds = BlendParser.getStruct(dna, typeIndex); + h.ds = ParserBlend.getStruct(dna, typeIndex); var isPointer = dnaName.charAt(0) == "*"; if (isPointer) { block.blend.pos = block.pos + newOffset; diff --git a/base/Sources/arm/format/ExrWriter.hx b/base/Sources/arm/ParserExr.hx similarity index 99% rename from base/Sources/arm/format/ExrWriter.hx rename to base/Sources/arm/ParserExr.hx index 58c9daa4..33d79c62 100644 --- a/base/Sources/arm/format/ExrWriter.hx +++ b/base/Sources/arm/ParserExr.hx @@ -1,9 +1,9 @@ // Based on miniexr.cpp - public domain - 2013 Aras Pranckevicius / Unity Technologies // https://github.com/aras-p/miniexr // https://www.openexr.com/documentation/openexrfilelayout.pdf -package arm.format; +package arm; -class ExrWriter { +class ParserExr { static function writeString(out: Array, str: String) { for (i in 0...str.length) { diff --git a/base/Sources/arm/format/FbxLibrary.hx b/base/Sources/arm/ParserFbx.hx similarity index 74% rename from base/Sources/arm/format/FbxLibrary.hx rename to base/Sources/arm/ParserFbx.hx index 1ee6ad0e..5b131225 100644 --- a/base/Sources/arm/format/FbxLibrary.hx +++ b/base/Sources/arm/ParserFbx.hx @@ -20,12 +20,321 @@ // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -package arm.format; + +package arm; import iron.Mat4; import iron.Vec4; import iron.Quat; +class ParserFbx { + + public var posa: js.lib.Int16Array = null; + public var nora: js.lib.Int16Array = null; + public var texa: js.lib.Int16Array = null; + public var cola: js.lib.Int16Array = null; + public var inda: js.lib.Uint32Array = null; + public var scalePos = 1.0; + public var scaleTex = 1.0; + public var name = ""; + + public static var parseTransform = false; + public static var parseVCols = false; + + // Transform + public var tx = 0.0; + public var ty = 0.0; + public var tz = 0.0; + public var rx = 0.0; + public var ry = 0.0; + public var rz = 0.0; + public var sx = 1.0; + public var sy = 1.0; + public var sz = 1.0; + + var geoms: Array; + var current = 0; + var binary = true; + + public function new(buffer: js.lib.ArrayBuffer) { + var view = new js.lib.DataView(buffer); + var magic = "Kaydara FBX Binary\x20\x20\x00\x1a\x00"; + var s = ""; + for (i in 0...magic.length) s += String.fromCharCode(view.getUint8(i)); + binary = s == magic; + + var fbx = binary ? FbxBinaryParser.parse(view) : Parser.parse(untyped String.fromCharCode.apply(null, new js.lib.Uint8Array(buffer))); + var lib = new FbxLibrary(); + try { + lib.load(fbx); + } + catch (e: Dynamic) { + Krom.log(e); + } + + geoms = lib.getAllGeometries(); + next(); + } + + public function next(): Bool { + if (current >= geoms.length) return false; + var geom = geoms[current]; + var lib = geom.lib; + + tx = ty = tz = 0; + rx = ry = rz = 0; + sx = sy = sz = 1; + if (parseTransform) { + var connects = lib.invConnect.get(FbxTools.getId(geom.getRoot())); + for (c in connects) { + var node = lib.ids.get(c); + for (p in FbxTools.getAll(node, "Properties70.P")) { + switch (FbxTools.toString(p.props[0])) { + case "Lcl Translation": { + tx = FbxTools.toFloat(p.props[4]); + ty = FbxTools.toFloat(p.props[5]); + tz = FbxTools.toFloat(p.props[6]); + } + case "Lcl Rotation": { + rx = FbxTools.toFloat(p.props[4]) * Math.PI / 180; + ry = FbxTools.toFloat(p.props[5]) * Math.PI / 180; + rz = FbxTools.toFloat(p.props[6]) * Math.PI / 180; + } + case "Lcl Scaling": { + sx = FbxTools.toFloat(p.props[4]); + sy = FbxTools.toFloat(p.props[5]); + sz = FbxTools.toFloat(p.props[6]); + } + } + } + } + } + + var res = geom.getBuffers(binary, this); + scalePos = res.scalePos; + posa = res.posa; + nora = res.nora; + texa = res.texa; + cola = res.cola; + inda = res.inda; + name = FbxTools.getName(geom.getRoot()); + if (name.charCodeAt(0) == 0) name = name.substring(1); // null + if (name.charCodeAt(0) == 1) name = name.substring(1); // start of heading + if (name == "Geometry") name = "Object -Geometry"; + name = name.substring(0, name.length - 10); // -Geometry + + current++; + return true; + } +} + +class FbxBinaryParser { + + var pos: Int; + var view: js.lib.DataView; + + var version: Int; + var is64: Bool; + var root: FbxNode; + + function new(view: js.lib.DataView) { + this.view = view; + pos = 0; + var magic = "Kaydara FBX Binary\x20\x20\x00\x1a\x00"; + var valid = readChars(magic.length) == magic; + if (!valid) return; + var version = read32(); + is64 = version >= 7500; + root = { + name: "Root", + props: [PInt(0), PString("Root"), PString("Root")], + childs: parseNodes() + }; + } + + public static function parse(view: js.lib.DataView): FbxNode { + return new FbxBinaryParser(view).root; + } + + function parseArray(readVal: Void->Dynamic, isFloat = false): FbxProp { + var len = read32(); + var encoding = read32(); + var compressedLen = read32(); + var endPos = pos + compressedLen; + var _view = view; + if (encoding != 0) { + pos += 2; + var input = view.buffer.slice(pos, pos + compressedLen); + view = new js.lib.DataView(Krom.inflate(input, true)); + pos = 0; + } + var res = isFloat ? parseArrayf(readVal, len) : parseArrayi(readVal, len); + if (encoding != 0) { + pos = endPos; + view = _view; + } + return res; + } + + function parseArrayf(readVal: Void->Dynamic, len: Int): FbxProp { + var res: Array = []; + for (i in 0...len) res.push(readVal()); + return PFloats(res); + } + + function parseArrayi(readVal: Void->Dynamic, len: Int): FbxProp { + var res: Array = []; + for (i in 0...len) res.push(readVal()); + return PInts(res); + } + + function parseProp(): FbxProp { + switch (readChar()) { + case "C": + return PString(readChar()); + case "Y": + return PInt(read16()); + case "I": + return PInt(read32()); + case "L": + return PInt(read64()); + case "F": + return PFloat(readf32()); + case "D": + return PFloat(readf64()); + case "f": + return parseArray(readf32, true); + case "d": + return parseArray(readf64, true); + case "l": + return parseArray(read64); + case "i": + return parseArray(read32); + case "b": + return parseArray(readBool); + case "S": + var len = read32(); + return PString(readChars(len)); + case "R": + var b = readBytes(read32()); + return null; + default: + return null; + } + } + + function parseNode(): FbxNode { + var endPos = 0; + var numProps = 0; + var propListLen = 0; + + if (is64) { + endPos = read64(); + numProps = read64(); + propListLen = read64(); + } + else { + endPos = read32(); + numProps = read32(); + propListLen = read32(); + } + + var nameLen = read8(); + var name = nameLen == 0 ? "" : readChars(nameLen); + if (endPos == 0) return null; // Null node + + var props: Array = null; + if (numProps > 0) props = []; + for (i in 0...numProps) props.push(parseProp()); + + var childs: Array = null; + var listLen = endPos - pos; + if (listLen > 0) { + childs = []; + while (true) { + var nested = parseNode(); + nested == null ? break : childs.push(nested); + } + } + return { name: name, props: props, childs: childs }; + } + + function parseNodes(): Array { + var nodes = []; + while (true) { + var n = parseNode(); + n == null ? break : nodes.push(n); + } + return nodes; + } + + function read8(): Int { + var i = view.getUint8(pos); + pos += 1; + return i; + } + + function read16(): Int { + var i = view.getInt16(pos, true); + pos += 2; + return i; + } + + function read32(): Int { + var i = view.getInt32(pos, true); + pos += 4; + return i; + } + + function read64(): Int { + var i = untyped view.getBigInt64(pos, true); + pos += 8; + return i; + } + + function readf32(): Float { + var f = view.getFloat32(pos, true); + pos += 4; + return f; + } + + function readf64(): Float { + var f = view.getFloat64(pos, true); + pos += 8; + return f; + } + + function readString(): String { + var s = ""; + while (true) { + var ch = read8(); + if (ch == 0) break; + s += String.fromCharCode(ch); + } + return s; + } + + function readChars(len: Int): String { + var s = ""; + for (i in 0...len) s += readChar(); + return s; + } + + function readChar(): String { + return String.fromCharCode(read8()); + } + + function readBool(): Int { + return read8(); // return read8() == 1; + } + + function readBytes(len: Int): js.lib.DataView { + var v = new js.lib.DataView(view.buffer, pos, len); + pos += len; + return v; + } +} + enum FbxProp { PInt(v: Int); PFloat(v: Float); @@ -677,16 +986,16 @@ class Geometry { return uvs; } - public function getBuffers(binary: Bool, p: FbxParser) { + public function getBuffers(binary: Bool, p: ParserFbx) { // triangulize indexes : // format is A,B,...,-X : negative values mark the end of the polygon var pbuf = getVertices(); var nbuf = getNormals(); var tbuf = getUVs()[0]; - var cbuf = FbxParser.parseVCols ? getColors() : null; + var cbuf = ParserFbx.parseVCols ? getColors() : null; var polys = getPolygons(); - if (FbxParser.parseTransform) { + if (ParserFbx.parseTransform) { var m = Mat4.identity(); var v = new Vec4(p.tx, p.ty, p.tz); var q = new Quat(); @@ -826,7 +1135,7 @@ class Geometry { var j0 = polys[va[(i + 3 + j) % vi]] * 3; var px = pbuf[j0 + axis0]; var py = pbuf[j0 + axis1]; - if (arm.util.MeshUtil.pnpoly(v0x, v0y, v1x, v1y, v2x, v2y, px, py)) { + if (UtilMesh.pnpoly(v0x, v0y, v1x, v1y, v2x, v2y, px, py)) { overlap = true; break; } @@ -857,3 +1166,4 @@ class Geometry { return { posa: posa, nora: nora, texa: texa, cola: cola, inda: inda, scalePos: scalePos }; } } + diff --git a/base/Sources/arm/logic/LogicParser.hx b/base/Sources/arm/ParserLogic.hx similarity index 98% rename from base/Sources/arm/logic/LogicParser.hx rename to base/Sources/arm/ParserLogic.hx index 803a99e5..586723af 100644 --- a/base/Sources/arm/logic/LogicParser.hx +++ b/base/Sources/arm/ParserLogic.hx @@ -1,13 +1,12 @@ -package arm.logic; +package arm; import zui.Zui.Nodes; import zui.Zui.TNode; import zui.Zui.TNodeLink; import zui.Zui.TNodeSocket; import zui.Zui.TNodeCanvas; -import arm.logic.LogicNode; -class LogicParser { +class ParserLogic { public static var customNodes = js.Syntax.code("new Map()"); static var nodes: Array; @@ -18,7 +17,7 @@ class LogicParser { static var nodeMap: Map; static var rawMap: Map; - public static var packageName = "arm.logic"; + public static var packageName = "arm.nodes"; public static function getLogicNode(node: TNode): LogicNode { return nodeMap.get(node_name(node)); diff --git a/base/Sources/arm/shader/MaterialParser.hx b/base/Sources/arm/ParserMaterial.hx similarity index 99% rename from base/Sources/arm/shader/MaterialParser.hx rename to base/Sources/arm/ParserMaterial.hx index 95a51beb..8d9af920 100644 --- a/base/Sources/arm/shader/MaterialParser.hx +++ b/base/Sources/arm/ParserMaterial.hx @@ -14,7 +14,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -package arm.shader; +package arm; import zui.Zui.Nodes; import zui.Zui.TNode; @@ -22,9 +22,8 @@ import zui.Zui.TNodeCanvas; import zui.Zui.TNodeLink; import zui.Zui.TNodeSocket; import iron.SceneFormat; -import arm.shader.NodeShader; -class MaterialParser { +class ParserMaterial { public static var con: NodeShaderContext; public static var vert: NodeShader; diff --git a/base/Sources/arm/sys/Path.hx b/base/Sources/arm/Path.hx similarity index 99% rename from base/Sources/arm/sys/Path.hx rename to base/Sources/arm/Path.hx index 8de15cdd..bc0a95a1 100644 --- a/base/Sources/arm/sys/Path.hx +++ b/base/Sources/arm/Path.hx @@ -1,4 +1,4 @@ -package arm.sys; +package arm; import iron.System; import iron.Data; diff --git a/base/Sources/arm/plugin/PhysicsBody.hx b/base/Sources/arm/PhysicsBody.hx similarity index 78% rename from base/Sources/arm/plugin/PhysicsBody.hx rename to base/Sources/arm/PhysicsBody.hx index 32c078a6..444be6f1 100644 --- a/base/Sources/arm/plugin/PhysicsBody.hx +++ b/base/Sources/arm/PhysicsBody.hx @@ -1,4 +1,4 @@ -package arm.plugin; +package arm; #if arm_physics @@ -52,9 +52,9 @@ class PhysicsBody { var currentScaleY: Float; var currentScaleZ: Float; - public var body: Bt.RigidBody = null; - var motionState: Bt.MotionState; - var btshape: Bt.CollisionShape; + public var body: PhysicsBullet.RigidBody = null; + var motionState: PhysicsBullet.MotionState; + var btshape: PhysicsBullet.CollisionShape; var ready = false; public var id = 0; public var heightData: js.lib.Uint8Array = null; @@ -63,27 +63,27 @@ class PhysicsBody { static var ammoArray: Int = -1; static var gimpactRegistered = false; static var first = true; - static var vec1: Bt.Vector3; - static var vec2: Bt.Vector3; - static var vec3: Bt.Vector3; - static var quat1: Bt.Quaternion; - static var trans1: Bt.Transform; - static var trans2: Bt.Transform; + static var vec1: PhysicsBullet.Vector3; + static var vec2: PhysicsBullet.Vector3; + static var vec3: PhysicsBullet.Vector3; + static var quat1: PhysicsBullet.Quaternion; + static var trans1: PhysicsBullet.Transform; + static var trans2: PhysicsBullet.Transform; static var quat = new Quat(); - static var convexHullCache = new Map(); - static var triangleMeshCache = new Map(); + static var convexHullCache = new Map(); + static var triangleMeshCache = new Map(); static var usersCache = new Map(); public function new() { if (first) { first = false; - vec1 = new Bt.Vector3(0, 0, 0); - vec2 = new Bt.Vector3(0, 0, 0); - vec3 = new Bt.Vector3(0, 0, 0); - quat1 = new Bt.Quaternion(0, 0, 0, 0); - trans1 = new Bt.Transform(); - trans2 = new Bt.Transform(); + vec1 = new PhysicsBullet.Vector3(0, 0, 0); + vec2 = new PhysicsBullet.Vector3(0, 0, 0); + vec3 = new PhysicsBullet.Vector3(0, 0, 0); + quat1 = new PhysicsBullet.Quaternion(0, 0, 0, 0); + trans1 = new PhysicsBullet.Transform(); + trans2 = new PhysicsBullet.Transform(); } } @@ -104,70 +104,70 @@ class PhysicsBody { vec1.setX(withMargin(transform.dim.x / 2)); vec1.setY(withMargin(transform.dim.y / 2)); vec1.setZ(withMargin(transform.dim.z / 2)); - btshape = new Bt.BoxShape(vec1); + btshape = new PhysicsBullet.BoxShape(vec1); } else if (shape == ShapeSphere) { - btshape = new Bt.SphereShape(withMargin(transform.dim.x / 2)); + btshape = new PhysicsBullet.SphereShape(withMargin(transform.dim.x / 2)); } else if (shape == ShapeConvexHull) { var shapeConvex = fillConvexHull(transform.scale, collisionMargin); btshape = shapeConvex; } else if (shape == ShapeCone) { - var coneZ = new Bt.ConeShapeZ( + var coneZ = new PhysicsBullet.ConeShapeZ( withMargin(transform.dim.x / 2), // Radius withMargin(transform.dim.z)); // Height - var cone: Bt.ConeShape = coneZ; + var cone: PhysicsBullet.ConeShape = coneZ; btshape = cone; } else if (shape == ShapeCylinder) { vec1.setX(withMargin(transform.dim.x / 2)); vec1.setY(withMargin(transform.dim.y / 2)); vec1.setZ(withMargin(transform.dim.z / 2)); - var cylZ = new Bt.CylinderShapeZ(vec1); - var cyl: Bt.CylinderShape = cylZ; + var cylZ = new PhysicsBullet.CylinderShapeZ(vec1); + var cyl: PhysicsBullet.CylinderShape = cylZ; btshape = cyl; } else if (shape == ShapeCapsule) { var r = transform.dim.x / 2; - var capsZ = new Bt.CapsuleShapeZ( + var capsZ = new PhysicsBullet.CapsuleShapeZ( withMargin(r), // Radius withMargin(transform.dim.z - r * 2)); // Distance between 2 sphere centers - var caps: Bt.CapsuleShape = capsZ; + var caps: PhysicsBullet.CapsuleShape = capsZ; btshape = caps; } else if (shape == ShapeMesh) { var meshInterface = fillTriangleMesh(transform.scale); if (mass > 0) { - var shapeGImpact = new Bt.GImpactMeshShape(meshInterface); + var shapeGImpact = new PhysicsBullet.GImpactMeshShape(meshInterface); shapeGImpact.updateBound(); - var shapeConcave: Bt.ConcaveShape = shapeGImpact; + var shapeConcave: PhysicsBullet.ConcaveShape = shapeGImpact; btshape = shapeConcave; if (!gimpactRegistered) { gimpactRegistered = true; - new Bt.GImpactCollisionAlgorithm().registerAlgorithm(physics.dispatcher); + new PhysicsBullet.GImpactCollisionAlgorithm().registerAlgorithm(physics.dispatcher); } } else { - var shapeBvh = new Bt.BvhTriangleMeshShape(meshInterface, true, true); - var shapeTri: Bt.TriangleMeshShape = shapeBvh; - var shapeConcave: Bt.ConcaveShape = shapeTri; + var shapeBvh = new PhysicsBullet.BvhTriangleMeshShape(meshInterface, true, true); + var shapeTri: PhysicsBullet.TriangleMeshShape = shapeBvh; + var shapeConcave: PhysicsBullet.ConcaveShape = shapeTri; btshape = shapeConcave; } } else if (shape == ShapeTerrain) { var length = heightData.length; if (ammoArray == -1) { - ammoArray = Bt.Ammo._malloc(length); + ammoArray = PhysicsBullet.Ammo._malloc(length); } // From texture bytes for (i in 0...length) { - Bt.Ammo.HEAPU8[ammoArray + i] = heightData[i]; + PhysicsBullet.Ammo.HEAPU8[ammoArray + i] = heightData[i]; } var slice = Std.int(Math.sqrt(length)); // Assuming square terrain data var axis = 2; // z var dataType = 5; // u8 - btshape = new Bt.HeightfieldTerrainShape(slice, slice, ammoArray, 1 / 255, 0, 1, axis, dataType, false); + btshape = new PhysicsBullet.HeightfieldTerrainShape(slice, slice, ammoArray, 1 / 255, 0, 1, axis, dataType, false); vec1.setX(transform.dim.x / slice); vec1.setY(transform.dim.y / slice); vec1.setZ(transform.dim.z); @@ -183,7 +183,7 @@ class PhysicsBody { quat1.setValue(quat.x, quat.y, quat.z, quat.w); trans1.setRotation(quat1); trans2.setIdentity(); - motionState = new Bt.DefaultMotionState(trans1, trans2); // Transform, center of mass offset + motionState = new PhysicsBullet.DefaultMotionState(trans1, trans2); // Transform, center of mass offset vec1.setX(0); vec1.setY(0); @@ -191,8 +191,8 @@ class PhysicsBody { var inertia = vec1; if (mass > 0) btshape.calculateLocalInertia(mass, inertia); - var bodyCI = new Bt.RigidBodyConstructionInfo(mass, motionState, btshape, inertia); - body = new Bt.RigidBody(bodyCI); + var bodyCI = new PhysicsBullet.RigidBodyConstructionInfo(mass, motionState, btshape, inertia); + body = new PhysicsBullet.RigidBody(bodyCI); body.setFriction(friction); if (shape == ShapeSphere || shape == ShapeCylinder || shape == ShapeCone || shape == ShapeCapsule) { @@ -204,8 +204,8 @@ class PhysicsBody { body.setDamping(linearDamping, angularDamping); setLinearFactor(linearFactors[0], linearFactors[1], linearFactors[2]); setAngularFactor(angularFactors[0], angularFactors[1], angularFactors[2]); - if (trigger) body.setCollisionFlags(body.getCollisionFlags() | Bt.CollisionObject.CF_NO_CONTACT_RESPONSE); - if (mass == 0.0) body.setCollisionFlags(body.getCollisionFlags() | Bt.CollisionObject.CF_STATIC_OBJECT); + if (trigger) body.setCollisionFlags(body.getCollisionFlags() | PhysicsBullet.CollisionObject.CF_NO_CONTACT_RESPONSE); + if (mass == 0.0) body.setCollisionFlags(body.getCollisionFlags() | PhysicsBullet.CollisionObject.CF_STATIC_OBJECT); if (ccd) setCcd(transform.radius); bodyScaleX = currentScaleX = transform.scale.x; @@ -219,7 +219,7 @@ class PhysicsBody { // notifyOnRemove(removeFromWorld); - Bt.Ammo.destroy(bodyCI); + PhysicsBullet.Ammo.destroy(bodyCI); } public function physicsUpdate() { @@ -228,7 +228,7 @@ class PhysicsBody { var p = trans.getOrigin(); var q = trans.getRotation(); - var qw: Bt.QuadWord = q; + var qw: PhysicsBullet.QuadWord = q; var transform = object.transform; transform.loc.set(p.x(), p.y(), p.z()); @@ -334,8 +334,8 @@ class PhysicsBody { vec1.setY(v.y / bodyScaleY); vec1.setZ(v.z / bodyScaleZ); btshape.setLocalScaling(vec1); - var worldDyn: Bt.DynamicsWorld = PhysicsWorld.active.world; - var worldCol: Bt.CollisionWorld = worldDyn; + var worldDyn: PhysicsBullet.DynamicsWorld = PhysicsWorld.active.world; + var worldCol: PhysicsBullet.CollisionWorld = worldDyn; worldCol.updateSingleAabb(body); } @@ -357,7 +357,7 @@ class PhysicsBody { body.setCcdMotionThreshold(motionThreshold); } - function fillConvexHull(scale: Vec4, margin: Float): Bt.ConvexHullShape { + function fillConvexHull(scale: Vec4, margin: Float): PhysicsBullet.ConvexHullShape { // Check whether shape already exists var data = cast(object, MeshObject).data; var shape = convexHullCache.get(data); @@ -366,7 +366,7 @@ class PhysicsBody { return shape; } - shape = new Bt.ConvexHullShape(); + shape = new PhysicsBullet.ConvexHullShape(); convexHullCache.set(data, shape); usersCache.set(data, 1); @@ -391,7 +391,7 @@ class PhysicsBody { return shape; } - function fillTriangleMesh(scale: Vec4): Bt.TriangleMesh { + function fillTriangleMesh(scale: Vec4): PhysicsBullet.TriangleMesh { // Check whether shape already exists var data = cast(object, MeshObject).data; var triangleMesh = triangleMeshCache.get(data); @@ -400,7 +400,7 @@ class PhysicsBody { return triangleMesh; } - triangleMesh = new Bt.TriangleMesh(true, true); + triangleMesh = new PhysicsBullet.TriangleMesh(true, true); triangleMeshCache.set(data, triangleMesh); usersCache.set(data, 1); @@ -435,8 +435,8 @@ class PhysicsBody { } public function delete() { - Bt.Ammo.destroy(motionState); - Bt.Ammo.destroy(body); + PhysicsBullet.Ammo.destroy(motionState); + PhysicsBullet.Ammo.destroy(body); // Delete shape if no other user is found if (shape == ShapeConvexHull || shape == ShapeMesh) { @@ -444,13 +444,13 @@ class PhysicsBody { var i = usersCache.get(data) - 1; usersCache.set(data, i); if (i <= 0) { - Bt.Ammo.destroy(btshape); + PhysicsBullet.Ammo.destroy(btshape); shape == ShapeConvexHull ? convexHullCache.remove(data) : triangleMeshCache.remove(data); } } - else Bt.Ammo.destroy(btshape); + else PhysicsBullet.Ammo.destroy(btshape); } } diff --git a/base/Sources/arm/plugin/Bt.hx b/base/Sources/arm/PhysicsBullet.hx similarity index 99% rename from base/Sources/arm/plugin/Bt.hx rename to base/Sources/arm/PhysicsBullet.hx index 65d3c6a1..97962b96 100644 --- a/base/Sources/arm/plugin/Bt.hx +++ b/base/Sources/arm/PhysicsBullet.hx @@ -1,4 +1,4 @@ -package arm.plugin; +package arm; @:native("Ammo.btTypedObject") extern class TypedObject {} @@ -585,7 +585,7 @@ extern class Point2PointConstraint extends TypedConstraint { } @:native("Ammo.Config") -extern class Config { +extern class AmmoConfig { public function set_viterations(i: Int): Void; public function set_piterations(i: Int): Void; public function set_collisions(i: Int): Void; diff --git a/base/Sources/arm/plugin/PhysicsWorld.hx b/base/Sources/arm/PhysicsWorld.hx similarity index 76% rename from base/Sources/arm/plugin/PhysicsWorld.hx rename to base/Sources/arm/PhysicsWorld.hx index 1e0778d4..03c7ae60 100644 --- a/base/Sources/arm/plugin/PhysicsWorld.hx +++ b/base/Sources/arm/PhysicsWorld.hx @@ -1,4 +1,4 @@ -package arm.plugin; +package arm; #if arm_physics @@ -11,13 +11,13 @@ import iron.RayCaster; class PhysicsWorld { public static var active: PhysicsWorld = null; - static var vec1: Bt.Vector3 = null; - static var vec2: Bt.Vector3 = null; + static var vec1: PhysicsBullet.Vector3 = null; + static var vec2: PhysicsBullet.Vector3 = null; static var v1 = new Vec4(); static var v2 = new Vec4(); - public var world: Bt.DiscreteDynamicsWorld; - public var dispatcher: Bt.CollisionDispatcher; + public var world: PhysicsBullet.DiscreteDynamicsWorld; + public var dispatcher: PhysicsBullet.CollisionDispatcher; var contacts: Array = []; var bodyMap = new Map(); var timeScale = 1.0; @@ -40,8 +40,8 @@ class PhysicsWorld { public function new() { active = this; - vec1 = new Bt.Vector3(0, 0, 0); - vec2 = new Bt.Vector3(0, 0, 0); + vec1 = new PhysicsBullet.Vector3(0, 0, 0); + vec2 = new PhysicsBullet.Vector3(0, 0, 0); init(); } @@ -50,11 +50,11 @@ class PhysicsWorld { } function init() { - var broadphase = new Bt.DbvtBroadphase(); - var collisionConfiguration = new Bt.DefaultCollisionConfiguration(); - dispatcher = new Bt.CollisionDispatcher(collisionConfiguration); - var solver = new Bt.SequentialImpulseConstraintSolver(); - world = new Bt.DiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration); + var broadphase = new PhysicsBullet.DbvtBroadphase(); + var collisionConfiguration = new PhysicsBullet.DefaultCollisionConfiguration(); + dispatcher = new PhysicsBullet.CollisionDispatcher(collisionConfiguration); + var solver = new PhysicsBullet.SequentialImpulseConstraintSolver(); + world = new PhysicsBullet.DiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration); setGravity(new Vec4(0, 0, -9.81)); } @@ -111,19 +111,19 @@ class PhysicsWorld { function updateContacts() { contacts = []; - var disp: Bt.Dispatcher = dispatcher; + var disp: PhysicsBullet.Dispatcher = dispatcher; var numManifolds = disp.getNumManifolds(); for (i in 0...numManifolds) { var contactManifold = disp.getManifoldByIndexInternal(i); - var body0 = untyped Bt.Ammo.btRigidBody.prototype.upcast(contactManifold.getBody0()); - var body1 = untyped Bt.Ammo.btRigidBody.prototype.upcast(contactManifold.getBody1()); + var body0 = untyped PhysicsBullet.Ammo.btRigidBody.prototype.upcast(contactManifold.getBody0()); + var body1 = untyped PhysicsBullet.Ammo.btRigidBody.prototype.upcast(contactManifold.getBody1()); var numContacts = contactManifold.getNumContacts(); - var pt: Bt.ManifoldPoint = null; - var posA: Bt.Vector3 = null; - var posB: Bt.Vector3 = null; - var nor: Bt.Vector3 = null; + var pt: PhysicsBullet.ManifoldPoint = null; + var posA: PhysicsBullet.Vector3 = null; + var posB: PhysicsBullet.Vector3 = null; + var nor: PhysicsBullet.Vector3 = null; for (j in 0...numContacts) { pt = contactManifold.getContactPoint(j); posA = pt.get_m_positionWorldOnA(); @@ -159,21 +159,21 @@ class PhysicsWorld { rayFrom.setValue(from.x, from.y, from.z); rayTo.setValue(to.x, to.y, to.z); - var rayCallback = new Bt.ClosestRayResultCallback(rayFrom, rayTo); + var rayCallback = new PhysicsBullet.ClosestRayResultCallback(rayFrom, rayTo); rayCallback.set_m_collisionFilterGroup(group); rayCallback.set_m_collisionFilterMask(mask); - var worldDyn: Bt.DynamicsWorld = world; - var worldCol: Bt.CollisionWorld = worldDyn; + var worldDyn: PhysicsBullet.DynamicsWorld = world; + var worldCol: PhysicsBullet.CollisionWorld = worldDyn; worldCol.rayTest(rayFrom, rayTo, rayCallback); var pb: PhysicsBody = null; var hitInfo: THit = null; - var rc: Bt.RayResultCallback = rayCallback; + var rc: PhysicsBullet.RayResultCallback = rayCallback; if (rc.hasHit()) { var co = rayCallback.get_m_collisionObject(); - var body = untyped Bt.Ammo.btRigidBody.prototype.upcast(co); + var body = untyped PhysicsBullet.Ammo.btRigidBody.prototype.upcast(co); var hit = rayCallback.get_m_hitPointWorld(); v1.set(hit.x(), hit.y(), hit.z()); var norm = rayCallback.get_m_hitNormalWorld(); @@ -186,7 +186,7 @@ class PhysicsWorld { }; } - Bt.Ammo.destroy(rayCallback); + PhysicsBullet.Ammo.destroy(rayCallback); return hitInfo; } } diff --git a/base/Sources/arm/Plugin.hx b/base/Sources/arm/Plugin.hx index dbd256ad..23200fa0 100644 --- a/base/Sources/arm/Plugin.hx +++ b/base/Sources/arm/Plugin.hx @@ -26,16 +26,16 @@ class Plugin { public static function init() { var api = js.Syntax.code("arm"); #if (is_paint || is_sculpt) - api.MaterialParser = arm.shader.MaterialParser; - api.NodesMaterial = arm.shader.NodesMaterial; - api.UIView2D = arm.ui.UIView2D; - api.RenderUtil = arm.util.RenderUtil; + api.ParserMaterial = ParserMaterial; + api.NodesMaterial = NodesMaterial; + api.UIView2D = UIView2D; + api.UtilRender = UtilRender; #end #if is_paint - api.UVUtil = arm.util.UVUtil; + api.UtilUV = UtilUV; #end #if is_lab - api.BrushOutputNode = arm.logic.BrushOutputNode; + api.BrushOutputNode = arm.nodes.BrushOutputNode; #end } @@ -67,7 +67,7 @@ class Keep { return untyped [ ArmPack.decode, ArmPack.encode, - arm.ui.UIBox.showMessage + UIBox.showMessage ]; } } @@ -112,32 +112,32 @@ class ZuiBridge { @:expose("console") class ConsoleBridge { - public static var log = arm.Console.log; - public static var error = arm.Console.error; + public static var log = Console.log; + public static var error = Console.error; } @:expose("arm") class ArmBridge { - public static var Base = arm.Base; - public static var Config = arm.Config; - public static var Context = arm.Context; - public static var History = arm.History; - public static var Operator = arm.Operator; - public static var Plugin = arm.Plugin; - public static var Project = arm.Project; - public static var Res = arm.Res; - public static var Path = arm.sys.Path; - public static var File = arm.sys.File; - public static var NodesBrush = arm.logic.NodesBrush; - public static var LogicParser = arm.logic.LogicParser; - public static var UIBase = arm.ui.UIBase; - public static var UINodes = arm.ui.UINodes; - public static var UIFiles = arm.ui.UIFiles; - public static var UIMenu = arm.ui.UIMenu; - public static var UIBox = arm.ui.UIBox; - public static var MeshUtil = arm.util.MeshUtil; - public static var Viewport = arm.Viewport; + public static var Base = Base; + public static var Config = Config; + public static var Context = Context; + public static var History = History; + public static var Operator = Operator; + public static var Plugin = Plugin; + public static var Project = Project; + public static var Res = Res; + public static var Path = Path; + public static var File = File; + public static var NodesBrush = NodesBrush; + public static var ParserLogic = ParserLogic; + public static var UIBase = UIBase; + public static var UINodes = UINodes; + public static var UIFiles = UIFiles; + public static var UIMenu = UIMenu; + public static var UIBox = UIBox; + public static var UtilMesh = UtilMesh; + public static var Viewport = Viewport; #if (krom_direct3d12 || krom_vulkan || krom_metal) - public static var RenderPathRaytrace = arm.render.RenderPathRaytrace; + public static var RenderPathRaytrace = RenderPathRaytrace; #end } diff --git a/base/Sources/arm/Project.hx b/base/Sources/arm/Project.hx index da32b01b..8e2fb05f 100644 --- a/base/Sources/arm/Project.hx +++ b/base/Sources/arm/Project.hx @@ -11,33 +11,7 @@ import iron.MeshData; import iron.Data; import iron.MeshObject; import iron.Scene; -import arm.Viewport; -import arm.sys.File; -import arm.sys.Path; -import arm.ui.UIFiles; -import arm.ui.UIBox; -import arm.ui.UINodes; -import arm.ui.BoxPreferences; -import arm.util.MeshUtil; -import arm.shader.MakeMaterial; -import arm.io.ImportAsset; -import arm.io.ImportArm; -import arm.io.ImportGpl; -import arm.io.ImportMesh; -import arm.io.ImportTexture; -import arm.io.ExportArm; -import arm.io.ExportGpl; import arm.ProjectFormat; -#if (is_paint || is_sculpt) -import arm.util.RenderUtil; -import arm.ui.UIBase; -import arm.data.LayerSlot; -import arm.data.BrushSlot; -import arm.data.FontSlot; -import arm.data.MaterialSlot; -import arm.io.ImportBlendMaterial; -import arm.logic.NodesBrush; -#end class Project { @@ -52,10 +26,10 @@ class Project { public static var assetMap = new Map(); // Image | Font static var meshList: Array = null; #if (is_paint || is_sculpt) - public static var materials: Array = null; - public static var brushes: Array = null; - public static var layers: Array = null; - public static var fonts: Array = null; + public static var materials: Array = null; + public static var brushes: Array = null; + public static var layers: Array = null; + public static var fonts: Array = null; public static var atlasObjects: Array = null; public static var atlasNames: Array = null; #end @@ -202,8 +176,8 @@ class Project { var raw: TMeshData = null; if (Context.raw.projectType == ModelSphere || Context.raw.projectType == ModelTessellatedPlane) { var mesh: Dynamic = Context.raw.projectType == ModelSphere ? - new arm.geom.UVSphere(1, 512, 256) : - new arm.geom.Plane(1, 1, 512, 512); + new GeomUVSphere(1, 512, 256) : + new GeomPlane(1, 1, 512, 512); mesh.name = "Tessellated"; raw = ImportMesh.rawMesh(mesh); @@ -260,7 +234,7 @@ class Project { while (materials.length > 0) materials.pop().unload(); Data.getMaterial("Scene", "Material", function(m: MaterialData) { #if (is_paint || is_sculpt) - materials.push(new MaterialSlot(m)); + materials.push(new SlotMaterial(m)); #end #if is_lab materialData = m; @@ -271,15 +245,15 @@ class Project { Context.raw.material = materials[0]; #end - arm.ui.UINodes.inst.hwnd.redraws = 2; - arm.ui.UINodes.inst.groupStack = []; + arm.UINodes.inst.hwnd.redraws = 2; + arm.UINodes.inst.groupStack = []; materialGroups = []; #if (is_paint || is_sculpt) - brushes = [new BrushSlot()]; + brushes = [new SlotBrush()]; Context.raw.brush = brushes[0]; - fonts = [new FontSlot("default.ttf", Base.font)]; + fonts = [new SlotFont("default.ttf", Base.font)]; Context.raw.font = fonts[0]; #end @@ -293,7 +267,7 @@ class Project { MakeMaterial.parsePaintMaterial(); #if (is_paint || is_sculpt) - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); #end for (a in assets) Data.deleteImage(a.file); @@ -314,7 +288,7 @@ class Project { #if (is_paint || is_sculpt) var aspectRatioChanged = layers[0].texpaint.width != Config.getTextureResX() || layers[0].texpaint.height != Config.getTextureResY(); while (layers.length > 0) layers.pop().unload(); - var layer = new LayerSlot(); + var layer = new SlotLayer(); layers.push(layer); Context.setLayer(layer); if (aspectRatioChanged) { @@ -343,7 +317,7 @@ class Project { }); #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + arm.RenderPathRaytrace.ready = false; #end } @@ -371,7 +345,7 @@ class Project { } // Create a new brush - Context.raw.brush = new BrushSlot(); + Context.raw.brush = new SlotBrush(); Project.brushes.push(Context.raw.brush); // Create and link image node @@ -392,7 +366,7 @@ class Project { MakeMaterial.parseBrush(); UINodes.inst.hwnd.redraws = 2; function _init() { - RenderUtil.makeBrushPreview(); + UtilRender.makeBrushPreview(); } App.notifyOnInit(_init); } @@ -508,7 +482,7 @@ class Project { UIBox.hide(); function doUnwrap() { if (unwrapBy == unwrapPlugins.length - 1) { - MeshUtil.equirectUnwrap(mesh); + UtilMesh.equirectUnwrap(mesh); } else { var f = unwrapPlugins[unwrapBy]; @@ -516,7 +490,7 @@ class Project { Config.enablePlugin(f); Console.info(f + " " + tr("plugin enabled")); } - MeshUtil.unwrappers.get(f)(mesh); + UtilMesh.unwrappers.get(f)(mesh); } done(mesh); } @@ -574,7 +548,7 @@ class Project { MakeMaterial.parsePaintMaterial(); #if (is_paint || is_sculpt) - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); UIBase.inst.hwnds[TabSidebar1].redraws = 2; #end } diff --git a/base/Sources/arm/ProjectFormat.hx b/base/Sources/arm/ProjectFormat.hx index fca9dbd6..ed40888b 100644 --- a/base/Sources/arm/ProjectFormat.hx +++ b/base/Sources/arm/ProjectFormat.hx @@ -5,7 +5,7 @@ import zui.Zui.TNodeCanvas; import iron.System; import iron.SceneFormat; -@:structInit class TProjectFormat { +typedef TProjectFormat = { @:optional public var version: String; @:optional public var assets: Array; // texture_assets @:optional public var is_bgra: Null; // Swapped red and blue channels for layer textures @@ -43,18 +43,18 @@ import iron.SceneFormat; #end } -@:structInit class TAsset { +typedef TAsset = { public var id: Int; public var name: String; public var file: String; } -@:structInit class TPackedAsset { +typedef TPackedAsset = { public var name: String; public var bytes: js.lib.ArrayBuffer; } -@:structInit class TSwatchColor { +typedef TSwatchColor = { public var base: Color; public var opacity: Float; public var occlusion: Float; @@ -67,7 +67,7 @@ import iron.SceneFormat; } #if (is_paint || is_sculpt) -@:structInit class TLayerData { +typedef TLayerData = { public var name: String; public var res: Int; // Width pixels public var bpp: Int; // Bits per pixel diff --git a/base/Sources/arm/render/RenderPathBase.hx b/base/Sources/arm/RenderPathBase.hx similarity index 97% rename from base/Sources/arm/render/RenderPathBase.hx rename to base/Sources/arm/RenderPathBase.hx index 47b4e656..66e7d8eb 100644 --- a/base/Sources/arm/render/RenderPathBase.hx +++ b/base/Sources/arm/RenderPathBase.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.App; import iron.System; @@ -10,7 +10,6 @@ import iron.Input; import iron.RenderPath; import iron.Scene; import iron.Uniforms; -import arm.shader.MakeMesh; class RenderPathBase { @@ -117,7 +116,7 @@ class RenderPathBase { var cam = Scene.active.camera; if (Context.raw.viewIndexLast > -1) { // Save current viewport camera - arm.Camera.inst.views[Context.raw.viewIndexLast].setFrom(cam.transform.local); + Camera.inst.views[Context.raw.viewIndexLast].setFrom(cam.transform.local); } var decal = Context.raw.tool == ToolDecal || Context.raw.tool == ToolText; @@ -127,7 +126,7 @@ class RenderPathBase { Context.raw.ddirty = 1; } - cam.transform.setMatrix(arm.Camera.inst.views[Context.raw.viewIndex]); + cam.transform.setMatrix(Camera.inst.views[Context.raw.viewIndex]); cam.buildMatrix(); cam.buildProjection(); } @@ -270,7 +269,7 @@ class RenderPathBase { var cam = Scene.active.camera; Context.raw.viewIndex = Context.raw.viewIndex == 0 ? 1 : 0; - cam.transform.setMatrix(arm.Camera.inst.views[Context.raw.viewIndex]); + cam.transform.setMatrix(Camera.inst.views[Context.raw.viewIndex]); cam.buildMatrix(); cam.buildProjection(); @@ -288,7 +287,7 @@ class RenderPathBase { #end Context.raw.viewIndex = Context.raw.viewIndex == 0 ? 1 : 0; - cam.transform.setMatrix(arm.Camera.inst.views[Context.raw.viewIndex]); + cam.transform.setMatrix(Camera.inst.views[Context.raw.viewIndex]); cam.buildMatrix(); cam.buildProjection(); } @@ -303,7 +302,7 @@ class RenderPathBase { path.setTarget(""); path.setViewport(voxelsRes, voxelsRes); path.bindTarget("voxels", "voxels"); - if (arm.shader.MakeMaterial.heightUsed) { + if (MakeMaterial.heightUsed) { var tid = 0; // Project.layers[0].id; path.bindTarget("texpaint_pack" + tid, "texpaint_pack"); } diff --git a/base/Sources/arm/render/RenderPathDeferred.hx b/base/Sources/arm/RenderPathDeferred.hx similarity index 99% rename from base/Sources/arm/render/RenderPathDeferred.hx rename to base/Sources/arm/RenderPathDeferred.hx index bb12c2dd..4bde0664 100644 --- a/base/Sources/arm/render/RenderPathDeferred.hx +++ b/base/Sources/arm/RenderPathDeferred.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.System; import iron.RenderPath; diff --git a/base/Sources/arm/render/RenderPathForward.hx b/base/Sources/arm/RenderPathForward.hx similarity index 97% rename from base/Sources/arm/render/RenderPathForward.hx rename to base/Sources/arm/RenderPathForward.hx index c4398800..75f4c3da 100644 --- a/base/Sources/arm/render/RenderPathForward.hx +++ b/base/Sources/arm/RenderPathForward.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.RenderPath; diff --git a/base/Sources/arm/render/RenderPathRaytrace.hx b/base/Sources/arm/RenderPathRaytrace.hx similarity index 98% rename from base/Sources/arm/render/RenderPathRaytrace.hx rename to base/Sources/arm/RenderPathRaytrace.hx index 798fd9ef..bb46848f 100644 --- a/base/Sources/arm/render/RenderPathRaytrace.hx +++ b/base/Sources/arm/RenderPathRaytrace.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.System; import iron.Input; @@ -162,7 +162,7 @@ class RenderPathRaytrace { } static function buildData() { - if (Context.raw.mergedObject == null) arm.util.MeshUtil.mergeMesh(); + if (Context.raw.mergedObject == null) UtilMesh.mergeMesh(); #if is_paint var mo = !Context.layerFilterUsed() ? Context.raw.mergedObject : Context.raw.paintObject; #else diff --git a/base/Sources/arm/render/RenderPathRaytraceBake.hx b/base/Sources/arm/RenderPathRaytraceBake.hx similarity index 99% rename from base/Sources/arm/render/RenderPathRaytraceBake.hx rename to base/Sources/arm/RenderPathRaytraceBake.hx index 72069107..f10dabaa 100644 --- a/base/Sources/arm/render/RenderPathRaytraceBake.hx +++ b/base/Sources/arm/RenderPathRaytraceBake.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.System; import iron.RenderPath; diff --git a/base/Sources/arm/shader/ShaderFunctions.hx b/base/Sources/arm/ShaderFunctions.hx similarity index 99% rename from base/Sources/arm/shader/ShaderFunctions.hx rename to base/Sources/arm/ShaderFunctions.hx index c387636f..2011e1d0 100644 --- a/base/Sources/arm/shader/ShaderFunctions.hx +++ b/base/Sources/arm/ShaderFunctions.hx @@ -1,4 +1,4 @@ -package arm.shader; +package arm; class ShaderFunctions { diff --git a/base/Sources/arm/ui/TabBrowser.hx b/base/Sources/arm/TabBrowser.hx similarity index 97% rename from base/Sources/arm/ui/TabBrowser.hx rename to base/Sources/arm/TabBrowser.hx index 1c842e06..5252f8e7 100644 --- a/base/Sources/arm/ui/TabBrowser.hx +++ b/base/Sources/arm/TabBrowser.hx @@ -1,11 +1,8 @@ -package arm.ui; +package arm; import iron.App; import iron.Input; import zui.Zui; -import arm.sys.File; -import arm.sys.Path; -import arm.io.ImportAsset; class TabBrowser { @@ -110,7 +107,7 @@ class TabBrowser { } } if (assetIndex != -1) { - arm.io.ImportEnvmap.run(file, Project.getImage(Project.assets[assetIndex])); + ImportEnvmap.run(file, Project.getImage(Project.assets[assetIndex])); } }); }); diff --git a/base/Sources/arm/ui/TabBrushes.hx b/base/Sources/arm/TabBrushes.hx similarity index 93% rename from base/Sources/arm/ui/TabBrushes.hx rename to base/Sources/arm/TabBrushes.hx index 9e161692..5d112e2b 100644 --- a/base/Sources/arm/ui/TabBrushes.hx +++ b/base/Sources/arm/TabBrushes.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; #if (is_paint || is_sculpt) @@ -6,9 +6,6 @@ import haxe.Json; import iron.App; import iron.Time; import zui.Zui; -import arm.data.BrushSlot; -import arm.shader.MakeMaterial; -import arm.util.RenderUtil; class TabBrushes { @@ -18,7 +15,7 @@ class TabBrushes { ui.beginSticky(); ui.row([1 / 4, 1 / 4, 1 / 4]); if (ui.button(tr("New"))) { - Context.raw.brush = new BrushSlot(); + Context.raw.brush = new SlotBrush(); Project.brushes.push(Context.raw.brush); MakeMaterial.parseBrush(); UINodes.inst.hwnd.redraws = 2; @@ -91,12 +88,12 @@ class TabBrushes { if (UIMenu.menuButton(ui, tr("Duplicate"))) { function _init() { - Context.raw.brush = new BrushSlot(); + Context.raw.brush = new SlotBrush(); Project.brushes.push(Context.raw.brush); var cloned = Json.parse(Json.stringify(Project.brushes[i].canvas)); Context.raw.brush.canvas = cloned; Context.setBrush(Context.raw.brush); - RenderUtil.makeBrushPreview(); + UtilRender.makeBrushPreview(); } App.notifyOnInit(_init); } @@ -113,7 +110,7 @@ class TabBrushes { var _brush = Context.raw.brush; Context.raw.brush = Project.brushes[i]; MakeMaterial.parseBrush(); - RenderUtil.makeBrushPreview(); + UtilRender.makeBrushPreview(); Context.raw.brush = _brush; }); } @@ -147,7 +144,7 @@ class TabBrushes { } } - static function deleteBrush(b: BrushSlot) { + static function deleteBrush(b: SlotBrush) { var i = Project.brushes.indexOf(b); Context.selectBrush(i == Project.brushes.length - 1 ? i - 1 : i + 1); Project.brushes.splice(i, 1); diff --git a/base/Sources/arm/ui/TabConsole.hx b/base/Sources/arm/TabConsole.hx similarity index 97% rename from base/Sources/arm/ui/TabConsole.hx rename to base/Sources/arm/TabConsole.hx index 03d10bbd..0472db56 100644 --- a/base/Sources/arm/ui/TabConsole.hx +++ b/base/Sources/arm/TabConsole.hx @@ -1,9 +1,8 @@ -package arm.ui; +package arm; import zui.Zui; import iron.System; import iron.Data; -import arm.sys.Path; class TabConsole { diff --git a/base/Sources/arm/ui/TabFonts.hx b/base/Sources/arm/TabFonts.hx similarity index 96% rename from base/Sources/arm/ui/TabFonts.hx rename to base/Sources/arm/TabFonts.hx index 759e32b2..732d07f5 100644 --- a/base/Sources/arm/ui/TabFonts.hx +++ b/base/Sources/arm/TabFonts.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; #if (is_paint || is_sculpt) @@ -7,8 +7,6 @@ import iron.App; import iron.System; import iron.Time; import iron.Data; -import arm.data.FontSlot; -import arm.util.RenderUtil; class TabFonts { @@ -108,7 +106,7 @@ class TabFonts { App.notifyOnInit(function() { var _font = Context.raw.font; Context.raw.font = Project.fonts[i]; - RenderUtil.makeFontPreview(); + UtilRender.makeFontPreview(); Context.raw.font = _font; }); } @@ -142,7 +140,7 @@ class TabFonts { } } - static function deleteFont(font: FontSlot) { + static function deleteFont(font: SlotFont) { var i = Project.fonts.indexOf(font); function _init() { Context.selectFont(i == Project.fonts.length - 1 ? i - 1 : i + 1); diff --git a/base/Sources/arm/ui/TabHistory.hx b/base/Sources/arm/TabHistory.hx similarity index 97% rename from base/Sources/arm/ui/TabHistory.hx rename to base/Sources/arm/TabHistory.hx index 5d3ed85f..b014268a 100644 --- a/base/Sources/arm/ui/TabHistory.hx +++ b/base/Sources/arm/TabHistory.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; #if (is_paint || is_sculpt) diff --git a/base/Sources/arm/ui/TabMaterials.hx b/base/Sources/arm/TabMaterials.hx similarity index 96% rename from base/Sources/arm/ui/TabMaterials.hx rename to base/Sources/arm/TabMaterials.hx index e74c6b17..9320b596 100644 --- a/base/Sources/arm/ui/TabMaterials.hx +++ b/base/Sources/arm/TabMaterials.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; #if (is_paint || is_sculpt) @@ -8,9 +8,6 @@ import zui.Zui.Nodes; import iron.App; import iron.Time; import iron.Input; -import arm.shader.MakeMaterial; -import arm.data.MaterialSlot; -import arm.util.RenderUtil; import arm.ProjectFormat; class TabMaterials { @@ -182,7 +179,7 @@ class TabMaterials { if (UIMenu.menuButton(ui, tr("Duplicate"))) { function _init() { - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); Project.materials.push(Context.raw.material); var cloned = Json.parse(Json.stringify(Project.materials[i].canvas)); Context.raw.material.canvas = cloned; @@ -277,7 +274,7 @@ class TabMaterials { var ui = UIBase.inst.ui; if (ui.button(text)) { ui.g.end(); - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); Project.materials.push(Context.raw.material); updateMaterial(); ui.g.begin(false); @@ -290,9 +287,9 @@ class TabMaterials { UINodes.inst.hwnd.redraws = 2; UINodes.inst.groupStack = []; MakeMaterial.parsePaintMaterial(); - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); var decal = Context.raw.tool == ToolDecal || Context.raw.tool == ToolText; - if (decal) RenderUtil.makeDecalPreview(); + if (decal) UtilRender.makeDecalPreview(); } static function updateMaterialPointers(nodes: Array, i: Int) { @@ -309,7 +306,7 @@ class TabMaterials { } public static function acceptSwatchDrag(swatch: TSwatchColor) { - Context.raw.material = new MaterialSlot(Project.materials[0].data); + Context.raw.material = new SlotMaterial(Project.materials[0].data); for (node in Context.raw.material.canvas.nodes) { if (node.type == "RGB" ) { node.outputs[0].default_value = [swatch.base.R, swatch.base.G, swatch.base.B, swatch.base.A]; @@ -327,7 +324,7 @@ class TabMaterials { History.newMaterial(); } - static function deleteMaterial(m: MaterialSlot) { + static function deleteMaterial(m: SlotMaterial) { var i = Project.materials.indexOf(m); for (l in Project.layers) if (l.fill_layer == m) l.fill_layer = null; History.deleteMaterial(); diff --git a/base/Sources/arm/ui/TabMeshes.hx b/base/Sources/arm/TabMeshes.hx similarity index 87% rename from base/Sources/arm/ui/TabMeshes.hx rename to base/Sources/arm/TabMeshes.hx index ac2a3ac5..971b0f47 100644 --- a/base/Sources/arm/ui/TabMeshes.hx +++ b/base/Sources/arm/TabMeshes.hx @@ -1,11 +1,10 @@ -package arm.ui; +package arm; import zui.Zui; import iron.MeshData; import iron.MeshObject; import iron.Scene; import iron.Data; -import arm.util.MeshUtil; class TabMeshes { @@ -58,50 +57,50 @@ class TabMeshes { #end if (ui.button(tr("Flip Normals"))) { - MeshUtil.flipNormals(); + UtilMesh.flipNormals(); Context.raw.ddirty = 2; } if (ui.button(tr("Calculate Normals"))) { UIMenu.draw(function(ui: Zui) { - if (UIMenu.menuButton(ui, tr("Smooth"))) { MeshUtil.calcNormals(true); Context.raw.ddirty = 2; } - if (UIMenu.menuButton(ui, tr("Flat"))) { MeshUtil.calcNormals(false); Context.raw.ddirty = 2; } + if (UIMenu.menuButton(ui, tr("Smooth"))) { UtilMesh.calcNormals(true); Context.raw.ddirty = 2; } + if (UIMenu.menuButton(ui, tr("Flat"))) { UtilMesh.calcNormals(false); Context.raw.ddirty = 2; } }, 2); } if (ui.button(tr("Geometry to Origin"))) { - MeshUtil.toOrigin(); + UtilMesh.toOrigin(); Context.raw.ddirty = 2; } if (ui.button(tr("Apply Displacement"))) { #if is_paint - MeshUtil.applyDisplacement(Project.layers[0].texpaint_pack); + UtilMesh.applyDisplacement(Project.layers[0].texpaint_pack); #end #if is_lab var displace_strength = Config.raw.displace_strength > 0 ? Config.raw.displace_strength : 1.0; var uv_scale = Scene.active.meshes[0].data.scaleTex * Context.raw.brushScale; - MeshUtil.applyDisplacement(arm.logic.BrushOutputNode.inst.texpaint_pack, 0.05 * displace_strength, uv_scale); + UtilMesh.applyDisplacement(arm.nodes.BrushOutputNode.inst.texpaint_pack, 0.05 * displace_strength, uv_scale); #end - MeshUtil.calcNormals(); + UtilMesh.calcNormals(); Context.raw.ddirty = 2; } if (ui.button(tr("Rotate"))) { UIMenu.draw(function(ui: Zui) { if (UIMenu.menuButton(ui, tr("Rotate X"))) { - MeshUtil.swapAxis(1, 2); + UtilMesh.swapAxis(1, 2); Context.raw.ddirty = 2; } if (UIMenu.menuButton(ui, tr("Rotate Y"))) { - MeshUtil.swapAxis(2, 0); + UtilMesh.swapAxis(2, 0); Context.raw.ddirty = 2; } if (UIMenu.menuButton(ui, tr("Rotate Z"))) { - MeshUtil.swapAxis(0, 1); + UtilMesh.swapAxis(0, 1); Context.raw.ddirty = 2; } }, 3); @@ -136,7 +135,7 @@ class TabMeshes { Data.deleteMesh(o.data.handle); o.remove(); Context.raw.paintObject = Context.mainObject(); - MeshUtil.mergeMesh(); + UtilMesh.mergeMesh(); Context.raw.ddirty = 2; } }, Project.paintObjects.length > 1 ? 2 : 1); @@ -144,7 +143,7 @@ class TabMeshes { if (h.changed) { var visibles: Array = []; for (p in Project.paintObjects) if (p.visible) visibles.push(p); - MeshUtil.mergeMesh(visibles); + UtilMesh.mergeMesh(visibles); Context.raw.ddirty = 2; } } @@ -156,7 +155,7 @@ class TabMeshes { var mo: MeshObject = null; if (name == ".Plane" || name == ".Sphere") { var res = Config.raw.rp_supersample > 1.0 ? 2048 : 1024; - var mesh: Dynamic = name == ".Plane" ? new arm.geom.Plane(1, 1, res, res) : new arm.geom.UVSphere(1.0, res, Std.int(res / 2), false, 2.0); + var mesh: Dynamic = name == ".Plane" ? new GeomPlane(1, 1, res, res) : new GeomUVSphere(1.0, res, Std.int(res / 2), false, 2.0); var raw = { name: "Tessellated", vertex_arrays: [ @@ -188,7 +187,7 @@ class TabMeshes { } #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } #end diff --git a/base/Sources/arm/ui/TabParticles.hx b/base/Sources/arm/TabParticles.hx similarity index 95% rename from base/Sources/arm/ui/TabParticles.hx rename to base/Sources/arm/TabParticles.hx index 5cea9fbc..210ca802 100644 --- a/base/Sources/arm/ui/TabParticles.hx +++ b/base/Sources/arm/TabParticles.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; #if (is_paint || is_sculpt) diff --git a/base/Sources/arm/ui/TabPlugins.hx b/base/Sources/arm/TabPlugins.hx similarity index 96% rename from base/Sources/arm/ui/TabPlugins.hx rename to base/Sources/arm/TabPlugins.hx index a2f04fa8..7a85f049 100644 --- a/base/Sources/arm/ui/TabPlugins.hx +++ b/base/Sources/arm/TabPlugins.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import zui.Zui; diff --git a/base/Sources/arm/ui/TabScript.hx b/base/Sources/arm/TabScript.hx similarity index 98% rename from base/Sources/arm/ui/TabScript.hx rename to base/Sources/arm/TabScript.hx index ec1534c7..fd6b7f65 100644 --- a/base/Sources/arm/ui/TabScript.hx +++ b/base/Sources/arm/TabScript.hx @@ -1,10 +1,9 @@ -package arm.ui; +package arm; import haxe.Json; import zui.Zui; import iron.System; import iron.Data; -import arm.sys.Path; class TabScript { diff --git a/base/Sources/arm/ui/TabSwatches.hx b/base/Sources/arm/TabSwatches.hx similarity index 99% rename from base/Sources/arm/ui/TabSwatches.hx rename to base/Sources/arm/TabSwatches.hx index d3a8ea3d..a745d2d7 100644 --- a/base/Sources/arm/ui/TabSwatches.hx +++ b/base/Sources/arm/TabSwatches.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import zui.Zui; import iron.System; diff --git a/base/Sources/arm/ui/TabTextures.hx b/base/Sources/arm/TabTextures.hx similarity index 97% rename from base/Sources/arm/ui/TabTextures.hx rename to base/Sources/arm/TabTextures.hx index 7c69e73f..ace46e28 100644 --- a/base/Sources/arm/ui/TabTextures.hx +++ b/base/Sources/arm/TabTextures.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import zui.Zui; import zui.Zui.Nodes; @@ -6,9 +6,6 @@ import iron.Data; import iron.Time; import iron.Input; import iron.System; -import arm.io.ImportAsset; -import arm.sys.Path; -import arm.sys.File; import arm.ProjectFormat; class TabTextures { @@ -150,7 +147,7 @@ class TabTextures { if (UIMenu.menuButton(ui, tr("Set as Envmap"))) { Base.notifyOnNextFrame(function() { - arm.io.ImportEnvmap.run(asset.file, img); + ImportEnvmap.run(asset.file, img); }); } @@ -258,10 +255,10 @@ class TabTextures { Project.assets.splice(i, 1); Project.assetNames.splice(i, 1); function _next() { - arm.shader.MakeMaterial.parsePaintMaterial(); + MakeMaterial.parsePaintMaterial(); #if (is_paint || is_sculpt) - arm.util.RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); UIBase.inst.hwnds[TabSidebar1].redraws = 2; #end } diff --git a/base/Sources/arm/Translator.hx b/base/Sources/arm/Translator.hx index 88d48c92..8899bcef 100644 --- a/base/Sources/arm/Translator.hx +++ b/base/Sources/arm/Translator.hx @@ -4,8 +4,6 @@ import haxe.Json; import iron.App; import iron.System; import iron.Data; -import arm.sys.File; -import arm.sys.Path; class Translator { diff --git a/base/Sources/arm/ui/UIBase.hx b/base/Sources/arm/UIBase.hx similarity index 98% rename from base/Sources/arm/ui/UIBase.hx rename to base/Sources/arm/UIBase.hx index 30fa66ed..5955e0e9 100644 --- a/base/Sources/arm/ui/UIBase.hx +++ b/base/Sources/arm/UIBase.hx @@ -1,6 +1,7 @@ -package arm.ui; +package arm; import zui.Zui; +import zui.Zui.Nodes; import iron.App; import iron.Input; import iron.System; @@ -13,24 +14,10 @@ import iron.Time; import iron.Scene; import iron.Tween; import iron.RayCaster; -import arm.io.ExportTexture; -import arm.ProjectFormat; -import arm.Viewport; -import arm.Res; -#if (is_paint || is_sculpt) import iron.Mat3; import iron.Object; -import arm.shader.MakeMaterial; -import arm.util.UVUtil; -import arm.util.RenderUtil; -import arm.data.LayerSlot; -import arm.data.BrushSlot; -import arm.data.FontSlot; -import arm.data.MaterialSlot; -#end -#if is_lab -import zui.Zui.Nodes; -#end +import arm.ProjectFormat; +import arm.Res; class UIBase { @@ -103,27 +90,27 @@ class UIBase { if (Project.materials == null) { Project.materials = []; Data.getMaterial("Scene", "Material", function(m: MaterialData) { - Project.materials.push(new MaterialSlot(m)); + Project.materials.push(new SlotMaterial(m)); Context.raw.material = Project.materials[0]; }); } if (Project.brushes == null) { Project.brushes = []; - Project.brushes.push(new BrushSlot()); + Project.brushes.push(new SlotBrush()); Context.raw.brush = Project.brushes[0]; MakeMaterial.parseBrush(); } if (Project.fonts == null) { Project.fonts = []; - Project.fonts.push(new FontSlot("default.ttf", Base.font)); + Project.fonts.push(new SlotFont("default.ttf", Base.font)); Context.raw.font = Project.fonts[0]; } if (Project.layers == null) { Project.layers = []; - Project.layers.push(new LayerSlot()); + Project.layers.push(new SlotLayer()); Context.raw.layer = Project.layers[0]; } #end @@ -147,7 +134,7 @@ class UIBase { Context.parseBrushInputs(); - arm.logic.LogicParser.parse(Project.canvas); + ParserLogic.parse(Project.canvas); #end if (Project.raw.swatches == null) { @@ -670,8 +657,8 @@ class UIBase { #if arm_physics if (Context.raw.tool == ToolParticle && Context.raw.particlePhysics && Context.inPaintArea() && !Context.raw.paint2d) { - arm.util.ParticleUtil.initParticlePhysics(); - var world = arm.plugin.PhysicsWorld.active; + UtilParticle.initParticlePhysics(); + var world = PhysicsWorld.active; world.lateUpdate(); Context.raw.ddirty = 2; Context.raw.rdirty = 2; @@ -696,8 +683,8 @@ class UIBase { mo.transform.scale.set(Context.raw.brushRadius * 0.2, Context.raw.brushRadius * 0.2, Context.raw.brushRadius * 0.2); mo.transform.buildMatrix(); - var body = new arm.plugin.PhysicsBody(); - body.shape = arm.plugin.PhysicsBody.ShapeType.ShapeSphere; + var body = new PhysicsBody(); + body.shape = PhysicsBody.ShapeType.ShapeSphere; body.mass = 1.0; body.ccd = true; mo.transform.radius /= 10; // Lower ccd radius @@ -830,7 +817,7 @@ class UIBase { if (Context.inViewport()) { if (mouse.started() && Config.keymap.action_paint == Config.keymap.action_rotate) { action_paint_remap = Config.keymap.action_paint; - RenderUtil.pickPosNorTex(); + UtilRender.pickPosNorTex(); var isMesh = Math.abs(Context.raw.posXPicked) < 50 && Math.abs(Context.raw.posYPicked) < 50 && Math.abs(Context.raw.posZPicked) < 50; #if krom_android // Allow rotating with both pen and touch, because hovering a pen prevents touch input on android @@ -1005,7 +992,7 @@ class UIBase { #end } else if (Context.raw.tool == ToolFill && Context.raw.fillTypeHandle.position == FillUVIsland) { - UVUtil.uvislandmapCached = false; + UtilUV.uvislandmapCached = false; } #end } @@ -1105,7 +1092,7 @@ class UIBase { else if (redoPressed) History.redo(); #if (is_paint || is_sculpt) - arm.render.Gizmo.update(); + Gizmo.update(); #end } diff --git a/base/Sources/arm/ui/UIBox.hx b/base/Sources/arm/UIBox.hx similarity index 99% rename from base/Sources/arm/ui/UIBox.hx rename to base/Sources/arm/UIBox.hx index e04727c7..8b9aae70 100644 --- a/base/Sources/arm/ui/UIBox.hx +++ b/base/Sources/arm/UIBox.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import zui.Zui; import iron.System; diff --git a/base/Sources/arm/ui/UIFiles.hx b/base/Sources/arm/UIFiles.hx similarity index 99% rename from base/Sources/arm/ui/UIFiles.hx rename to base/Sources/arm/UIFiles.hx index e7278412..02bbd1c1 100644 --- a/base/Sources/arm/ui/UIFiles.hx +++ b/base/Sources/arm/UIFiles.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import zui.Zui; import iron.System; @@ -10,8 +10,6 @@ import iron.ArmPack; import iron.Lz4; import iron.Data; import iron.RenderPath; -import arm.sys.Path; -import arm.sys.File; class UIFiles { diff --git a/base/Sources/arm/ui/UIHeader.hx b/base/Sources/arm/UIHeader.hx similarity index 96% rename from base/Sources/arm/ui/UIHeader.hx rename to base/Sources/arm/UIHeader.hx index 3aa197a7..e3e8eae6 100644 --- a/base/Sources/arm/ui/UIHeader.hx +++ b/base/Sources/arm/UIHeader.hx @@ -1,18 +1,12 @@ -package arm.ui; +package arm; import zui.Zui; import iron.App; import iron.System; import iron.Input; import iron.ConstData; -import arm.shader.MakeMaterial; -#if (is_paint || is_sculpt) import iron.RenderPath; -import arm.util.UVUtil; -import arm.util.RenderUtil; -import arm.io.ImportAsset; -import arm.sys.Path; -#end +import arm.MakeMaterial; class UIHeader { @@ -200,7 +194,7 @@ class UIHeader { UIBase.inst.hwnds[0].redraws = 2; History.pushUndo = true; #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytraceBake.currentSample = 0; + arm.RenderPathRaytraceBake.currentSample = 0; #end } @@ -262,7 +256,7 @@ class UIHeader { } #if (krom_direct3d12 || krom_vulkan || krom_metal) if (rtBake) { - var progress = arm.render.RenderPathRaytraceBake.currentSample / Context.raw.bakeSamples; + var progress = arm.RenderPathRaytraceBake.currentSample / Context.raw.bakeSamples; if (progress > 1.0) progress = 1.0; // Progress bar ui.g.color = ui.t.SEPARATOR_COL; @@ -270,9 +264,9 @@ class UIHeader { ui.g.color = ui.t.HIGHLIGHT_COL; ui.drawRect(ui.g, true, ui._x + 1, ui._y, (ui._w - 2) * progress, ui.ELEMENT_H()); ui.g.color = 0xffffffff; - ui.text(tr("Samples") + ": " + arm.render.RenderPathRaytraceBake.currentSample); - ui.text(tr("Rays/pixel" + ": ") + arm.render.RenderPathRaytraceBake.raysPix); - ui.text(tr("Rays/second" + ": ") + arm.render.RenderPathRaytraceBake.raysSec); + ui.text(tr("Samples") + ": " + arm.RenderPathRaytraceBake.currentSample); + ui.text(tr("Rays/pixel" + ": ") + arm.RenderPathRaytraceBake.raysPix); + ui.text(tr("Rays/second" + ": ") + arm.RenderPathRaytraceBake.raysSec); } #end if (Context.raw.bakeType == BakeCurvature) { @@ -330,7 +324,7 @@ class UIHeader { if (brushScaleHandle.changed) { if (Context.raw.tool == ToolDecal || Context.raw.tool == ToolText) { ui.g.end(); - RenderUtil.makeDecalPreview(); + UtilRender.makeDecalPreview(); ui.g.begin(false); } } @@ -397,8 +391,8 @@ class UIHeader { if (h.changed) { ui.g.end(); - RenderUtil.makeTextPreview(); - RenderUtil.makeDecalPreview(); + UtilRender.makeTextPreview(); + UtilRender.makeDecalPreview(); ui.g.begin(false); } } @@ -408,8 +402,8 @@ class UIHeader { if (Context.raw.fillTypeHandle.changed) { if (Context.raw.fillTypeHandle.position == FillFace) { ui.g.end(); - // UVUtil.cacheUVMap(); - UVUtil.cacheTriangleMap(); + // UtilUV.cacheUVMap(); + UtilUV.cacheTriangleMap(); ui.g.begin(false); // wireframeHandle.selected = drawWireframe = true; } @@ -475,7 +469,7 @@ class UIHeader { var physHandle = Zui.handle("uiheader_23", { selected: false }); Context.raw.particlePhysics = ui.check(physHandle, tr("Physics")); if (physHandle.changed) { - arm.util.ParticleUtil.initParticlePhysics(); + arm.UtilParticle.initParticlePhysics(); MakeMaterial.parsePaintMaterial(); } } diff --git a/base/Sources/arm/ui/UIMenu.hx b/base/Sources/arm/UIMenu.hx similarity index 98% rename from base/Sources/arm/ui/UIMenu.hx rename to base/Sources/arm/UIMenu.hx index b9b891a6..54854e39 100644 --- a/base/Sources/arm/ui/UIMenu.hx +++ b/base/Sources/arm/UIMenu.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import haxe.Json; import zui.Zui; @@ -7,14 +7,6 @@ import iron.Scene; import iron.Mat4; import iron.Data; import iron.Input; -import arm.Viewport; -import arm.sys.Path; -import arm.sys.File; -import arm.shader.MakeMaterial; -import arm.io.ImportAsset; -#if (is_paint || is_sculpt) -import arm.util.UVUtil; -#end class UIMenu { @@ -213,8 +205,8 @@ class UIMenu { if (brushScaleHandle.changed) { MakeMaterial.parseMeshMaterial(); #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.uvScale = Context.raw.brushScale; - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.uvScale = Context.raw.brushScale; + RenderPathRaytrace.ready = false; #end } #end @@ -239,7 +231,7 @@ class UIMenu { Context.raw.drawWireframe = ui.check(Context.raw.wireframeHandle, " " + tr("Wireframe")); if (Context.raw.wireframeHandle.changed) { ui.g.end(); - UVUtil.cacheUVMap(); + UtilUV.cacheUVMap(); ui.g.begin(false); MakeMaterial.parseMeshMaterial(); } diff --git a/base/Sources/arm/ui/UIMenubar.hx b/base/Sources/arm/UIMenubar.hx similarity index 98% rename from base/Sources/arm/ui/UIMenubar.hx rename to base/Sources/arm/UIMenubar.hx index 6862532f..eca5dbf7 100644 --- a/base/Sources/arm/ui/UIMenubar.hx +++ b/base/Sources/arm/UIMenubar.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import zui.Zui; import iron.App; @@ -133,7 +133,7 @@ class UIMenubar { } else { // Space2D if (_plane == null) { - var mesh: Dynamic = new arm.geom.Plane(1, 1, 2, 2); + var mesh: Dynamic = new GeomPlane(1, 1, 2, 2); var raw = { name: "2DView", vertex_arrays: [ @@ -162,7 +162,7 @@ class UIMenubar { Scene.active.camera.transform.setMatrix(m); } #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } #end diff --git a/base/Sources/arm/ui/UINodes.hx b/base/Sources/arm/UINodes.hx similarity index 97% rename from base/Sources/arm/ui/UINodes.hx rename to base/Sources/arm/UINodes.hx index 7ff1c44c..62042197 100644 --- a/base/Sources/arm/ui/UINodes.hx +++ b/base/Sources/arm/UINodes.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import haxe.Json; import zui.Zui; @@ -8,15 +8,8 @@ import iron.Input; import iron.System; import iron.Input; import iron.Time; -import arm.shader.NodesMaterial; -import arm.logic.NodesBrush; -import arm.ui.UIHeader; import arm.Project; import arm.ProjectFormat; -#if (is_paint || is_sculpt) -import arm.util.RenderUtil; -import arm.shader.MakeMaterial; -#end class UINodes { @@ -110,7 +103,7 @@ class UINodes { getCanvas(true).links.push(linkDrag); } #if is_lab - arm.logic.LogicParser.parse(getCanvas(true)); + ParserLogic.parse(getCanvas(true)); Context.raw.rdirty = 5; #end }); @@ -576,7 +569,7 @@ class UINodes { nodes.nodesDrag = true; #if is_lab - arm.logic.LogicParser.parse(canvas); + ParserLogic.parse(canvas); #end hwnd.redraws = 2; @@ -653,11 +646,11 @@ class UINodes { #if (is_paint || is_sculpt) if (canvasType == CanvasBrush) { MakeMaterial.parseBrush(); - RenderUtil.makeBrushPreview(); + UtilRender.makeBrushPreview(); UIBase.inst.hwnds[TabSidebar1].redraws = 2; } else { - Base.isFillMaterial() ? Base.updateFillLayers() : RenderUtil.makeMaterialPreview(); + Base.isFillMaterial() ? Base.updateFillLayers() : UtilRender.makeMaterialPreview(); if (UIView2D.inst.show && UIView2D.inst.type == View2DNode) { UIView2D.inst.hwnd.redraws = 2; } @@ -668,7 +661,7 @@ class UINodes { #end #if is_lab - arm.logic.LogicParser.parse(Project.canvas); + ParserLogic.parse(Project.canvas); #end recompileMat = false; @@ -679,11 +672,11 @@ class UINodes { if (canvasType == CanvasMaterial && Base.isFillMaterial()) { Base.updateFillLayers(); - RenderUtil.makeMaterialPreview(); + UtilRender.makeMaterialPreview(); } var decal = Context.raw.tool == ToolDecal || Context.raw.tool == ToolText; - if (decal) RenderUtil.makeDecalPreview(); + if (decal) UtilRender.makeDecalPreview(); UIBase.inst.hwnds[TabSidebar0].redraws = 2; Context.raw.nodePreviewDirty = true; @@ -900,7 +893,7 @@ class UINodes { #else - var brushNode = arm.logic.LogicParser.getLogicNode(sel); + var brushNode = ParserLogic.getLogicNode(sel); if (brushNode != null) { img = brushNode.getCachedImage(); } @@ -1097,7 +1090,7 @@ class UINodes { nodes.nodesSelectedId = [node.id]; nodes.nodesDrag = true; #if is_lab - arm.logic.LogicParser.parse(canvas); + ParserLogic.parse(canvas); #end } // Next column @@ -1211,7 +1204,7 @@ class UINodes { getNodes().nodesSelectedId = [n.id]; #if is_lab - arm.logic.LogicParser.parse(Project.canvas); + ParserLogic.parse(Project.canvas); #end } @@ -1309,12 +1302,12 @@ class UINodes { if (Context.raw.material.canvas.nodes.indexOf(node) == -1) return; if (Context.raw.nodePreview == null) { - Context.raw.nodePreview = Image.createRenderTarget(RenderUtil.materialPreviewSize, RenderUtil.materialPreviewSize); + Context.raw.nodePreview = Image.createRenderTarget(UtilRender.materialPreviewSize, UtilRender.materialPreviewSize); } Context.raw.nodePreviewDirty = false; UINodes.inst.hwnd.redraws = 2; - RenderUtil.makeNodePreview(Context.raw.material.canvas, node, Context.raw.nodePreview); + UtilRender.makeNodePreview(Context.raw.material.canvas, node, Context.raw.nodePreview); } #end diff --git a/base/Sources/arm/ui/UIStatus.hx b/base/Sources/arm/UIStatus.hx similarity index 98% rename from base/Sources/arm/ui/UIStatus.hx rename to base/Sources/arm/UIStatus.hx index 2fe0572a..d3164238 100644 --- a/base/Sources/arm/ui/UIStatus.hx +++ b/base/Sources/arm/UIStatus.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; import iron.App; import iron.System; diff --git a/base/Sources/arm/ui/UIToolbar.hx b/base/Sources/arm/UIToolbar.hx similarity index 99% rename from base/Sources/arm/ui/UIToolbar.hx rename to base/Sources/arm/UIToolbar.hx index 557290b8..52d7319e 100644 --- a/base/Sources/arm/ui/UIToolbar.hx +++ b/base/Sources/arm/UIToolbar.hx @@ -1,4 +1,4 @@ -package arm.ui; +package arm; #if (is_paint || is_sculpt) diff --git a/base/Sources/arm/ui/UIView2D.hx b/base/Sources/arm/UIView2D.hx similarity index 97% rename from base/Sources/arm/ui/UIView2D.hx rename to base/Sources/arm/UIView2D.hx index 2498fd50..3a6a5f93 100644 --- a/base/Sources/arm/ui/UIView2D.hx +++ b/base/Sources/arm/UIView2D.hx @@ -1,15 +1,10 @@ -package arm.ui; +package arm; import zui.Zui; import iron.App; import iron.System; import iron.Input; import iron.RenderPath; -#if (is_paint || is_sculpt) -import arm.util.RenderUtil; -import arm.util.UVUtil; -import arm.render.RenderPathPaint; -#end class UIView2D { @@ -97,12 +92,12 @@ class UIView2D { // Ensure UV map is drawn #if (is_paint || is_sculpt) - if (uvmapShow) UVUtil.cacheUVMap(); + if (uvmapShow) UtilUV.cacheUVMap(); #end // Ensure font image is drawn #if (is_paint || is_sculpt) - if (Context.raw.font.image == null) RenderUtil.makeFontPreview(); + if (Context.raw.font.image == null) UtilRender.makeFontPreview(); #end ui.begin(g); @@ -149,7 +144,7 @@ class UIView2D { var nodes = UINodes.inst.getNodes(); if (nodes.nodesSelectedId.length > 0) { var sel = nodes.getNode(UINodes.inst.getCanvas(true).nodes, nodes.nodesSelectedId[0]); - var brushNode = arm.logic.LogicParser.getLogicNode(sel); + var brushNode = ParserLogic.getLogicNode(sel); if (brushNode != null) { tex = brushNode.getCachedImage(); } @@ -274,7 +269,7 @@ class UIView2D { #if (is_paint || is_sculpt) // UV map if (type == View2DLayer && uvmapShow) { - ui.g.drawScaledImage(UVUtil.uvmap, tx, ty, tw, th); + ui.g.drawScaledImage(UtilUV.uvmap, tx, ty, tw, th); } #end diff --git a/base/Sources/arm/render/UniformsExt.hx b/base/Sources/arm/UniformsExt.hx similarity index 94% rename from base/Sources/arm/render/UniformsExt.hx rename to base/Sources/arm/UniformsExt.hx index afc8e59d..3d42fabd 100644 --- a/base/Sources/arm/render/UniformsExt.hx +++ b/base/Sources/arm/UniformsExt.hx @@ -1,4 +1,4 @@ -package arm.render; +package arm; import iron.App; import iron.System; @@ -11,13 +11,6 @@ import iron.RenderPath; import iron.Scene; import iron.Uniforms; import iron.ConstData; -import arm.shader.MaterialParser; -#if (is_paint || is_sculpt) -import arm.ui.UIView2D; -#end -#if is_paint -import arm.util.UVUtil; -#end class UniformsExt { @@ -130,7 +123,7 @@ class UniformsExt { } #if is_paint case "_dilateRadius": { - return UVUtil.dilatemap != null ? Config.raw.dilate_radius : 0.0; + return UtilUV.dilatemap != null ? Config.raw.dilate_radius : 0.0; } #end case "_decalLayerDim": { @@ -153,9 +146,9 @@ class UniformsExt { } #end } - if (MaterialParser.script_links != null) { - for (key in MaterialParser.script_links.keys()) { - var script = MaterialParser.script_links[key]; + if (ParserMaterial.script_links != null) { + for (key in ParserMaterial.script_links.keys()) { + var script = ParserMaterial.script_links[key]; var result = 0.0; if (script != "") { try { @@ -411,32 +404,32 @@ class UniformsExt { #if is_paint case "_texuvmap": { - if (!UVUtil.uvmapCached) { + if (!UtilUV.uvmapCached) { function _init() { - UVUtil.cacheUVMap(); + UtilUV.cacheUVMap(); } App.notifyOnInit(_init); } - return UVUtil.uvmap; + return UtilUV.uvmap; } case "_textrianglemap": { - if (!UVUtil.trianglemapCached) { + if (!UtilUV.trianglemapCached) { function _init() { - UVUtil.cacheTriangleMap(); + UtilUV.cacheTriangleMap(); } App.notifyOnInit(_init); } - return UVUtil.trianglemap; + return UtilUV.trianglemap; } case "_texuvislandmap": { function _init() { - UVUtil.cacheUVIslandMap(); + UtilUV.cacheUVIslandMap(); } App.notifyOnInit(_init); - return UVUtil.uvislandmapCached ? UVUtil.uvislandmap : RenderPath.active.renderTargets.get("empty_black").image; + return UtilUV.uvislandmapCached ? UtilUV.uvislandmap : RenderPath.active.renderTargets.get("empty_black").image; } case "_texdilatemap": { - return UVUtil.dilatemap; + return UtilUV.dilatemap; } #end } @@ -453,7 +446,7 @@ class UniformsExt { #end #if is_lab - return arm.logic.BrushOutputNode.inst.texpaint; + return arm.nodes.BrushOutputNode.inst.texpaint; #end } if (link.startsWith("_texpaint_nor")) { @@ -463,7 +456,7 @@ class UniformsExt { #end #if is_lab - return arm.logic.BrushOutputNode.inst.texpaint_nor; + return arm.nodes.BrushOutputNode.inst.texpaint_nor; #end } if (link.startsWith("_texpaint_pack")) { @@ -473,7 +466,7 @@ class UniformsExt { #end #if is_lab - return arm.logic.BrushOutputNode.inst.texpaint_pack; + return arm.nodes.BrushOutputNode.inst.texpaint_pack; #end } if (link.startsWith("_texpaint")) { @@ -483,7 +476,7 @@ class UniformsExt { #end #if is_lab - return arm.logic.BrushOutputNode.inst.texpaint; + return arm.nodes.BrushOutputNode.inst.texpaint; #end } diff --git a/base/Sources/arm/util/MeshUtil.hx b/base/Sources/arm/UtilMesh.hx similarity index 98% rename from base/Sources/arm/util/MeshUtil.hx rename to base/Sources/arm/UtilMesh.hx index 682fad23..a7d7e0aa 100644 --- a/base/Sources/arm/util/MeshUtil.hx +++ b/base/Sources/arm/UtilMesh.hx @@ -1,4 +1,4 @@ -package arm.util; +package arm; import js.lib.Int16Array; import js.lib.Uint32Array; @@ -9,7 +9,7 @@ import iron.Data; import iron.MeshObject; import iron.Vec4; -class MeshUtil { +class UtilMesh { public static var unwrappers: MapVoid> = []; @@ -94,7 +94,7 @@ class MeshUtil { }); #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } @@ -168,7 +168,7 @@ class MeshUtil { } #if (krom_direct3d12 || krom_vulkan || krom_metal) - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } @@ -263,7 +263,7 @@ class MeshUtil { #if (krom_direct3d12 || krom_vulkan || krom_metal) mergeMesh(); - arm.render.RenderPathRaytrace.ready = false; + RenderPathRaytrace.ready = false; #end } diff --git a/base/Sources/arm/util/ParticleUtil.hx b/base/Sources/arm/UtilParticle.hx similarity index 87% rename from base/Sources/arm/util/ParticleUtil.hx rename to base/Sources/arm/UtilParticle.hx index ddbeb084..ea711164 100644 --- a/base/Sources/arm/util/ParticleUtil.hx +++ b/base/Sources/arm/UtilParticle.hx @@ -1,4 +1,4 @@ -package arm.util; +package arm; import haxe.Json; import js.lib.Float32Array; @@ -10,7 +10,7 @@ import iron.RenderPath; import iron.Scene; import iron.Data; -class ParticleUtil { +class UtilParticle { static function f32(ar: Array): Float32Array { var res = new Float32Array(ar.length); @@ -55,7 +55,7 @@ class ParticleUtil { t.width = 0; t.height = 0; t.format = "R8"; - t.scale = arm.render.RenderPathBase.getSuperSampling(); + t.scale = RenderPathBase.getSuperSampling(); RenderPath.active.createRenderTarget(t); } @@ -98,13 +98,13 @@ class ParticleUtil { #if arm_physics public static function initParticlePhysics() { - if (arm.plugin.PhysicsWorld.active != null) { + if (PhysicsWorld.active != null) { initParticleMesh(); return; } - arm.plugin.PhysicsWorld.load(function() { - Scene.active.sceneParent.addTrait(new arm.plugin.PhysicsWorld()); + PhysicsWorld.load(function() { + Scene.active.sceneParent.addTrait(new PhysicsWorld()); initParticleMesh(); }); } @@ -118,8 +118,8 @@ class ParticleUtil { po.transform.scale.y = po.parent.transform.scale.y; po.transform.scale.z = po.parent.transform.scale.z; - Context.raw.paintBody = new arm.plugin.PhysicsBody(); - Context.raw.paintBody.shape = arm.plugin.PhysicsBody.ShapeType.ShapeMesh; + Context.raw.paintBody = new PhysicsBody(); + Context.raw.paintBody.shape = PhysicsBody.ShapeType.ShapeMesh; Context.raw.paintBody.init(po); po.addTrait(Context.raw.paintBody); } diff --git a/base/Sources/arm/util/RenderUtil.hx b/base/Sources/arm/UtilRender.hx similarity index 97% rename from base/Sources/arm/util/RenderUtil.hx rename to base/Sources/arm/UtilRender.hx index 1d895227..1bfacd6e 100644 --- a/base/Sources/arm/util/RenderUtil.hx +++ b/base/Sources/arm/UtilRender.hx @@ -1,4 +1,4 @@ -package arm.util; +package arm; import zui.Zui.Nodes; import zui.Zui.TNode; @@ -12,12 +12,8 @@ import iron.Quat; import iron.Scene; import iron.RenderPath; import iron.Uniforms; -import arm.render.RenderPathPreview; -import arm.render.RenderPathPaint; -import arm.render.RenderPathBase; -import arm.shader.MakeMaterial; -class RenderUtil { +class UtilRender { public static inline var materialPreviewSize = 256; public static inline var decalPreviewSize = 512; @@ -226,7 +222,7 @@ class RenderUtil { // Prepare layers if (RenderPathPaint.liveLayer == null) { - RenderPathPaint.liveLayer = new arm.data.LayerSlot("_live"); + RenderPathPaint.liveLayer = new SlotLayer("_live"); } var l = RenderPathPaint.liveLayer; @@ -238,7 +234,7 @@ class RenderUtil { } var _material = Context.raw.material; - Context.raw.material = new arm.data.MaterialSlot(); + Context.raw.material = new SlotMaterial(); var _tool = Context.raw.tool; Context.raw.tool = ToolBrush; @@ -413,15 +409,15 @@ class RenderUtil { Context.raw.tool = ToolPicker; MakeMaterial.parsePaintMaterial(); if (Context.raw.paint2d) { - arm.render.RenderPathPaint.setPlaneMesh(); + RenderPathPaint.setPlaneMesh(); } - arm.render.RenderPathPaint.commandsPaint(false); + RenderPathPaint.commandsPaint(false); #if krom_metal // Flush command list - arm.render.RenderPathPaint.commandsPaint(false); + RenderPathPaint.commandsPaint(false); #end if (Context.raw.paint2d) { - arm.render.RenderPathPaint.restorePlaneMesh(); + RenderPathPaint.restorePlaneMesh(); } Context.raw.tool = _tool; Context.raw.pickPosNorTex = false; diff --git a/base/Sources/arm/util/UVUtil.hx b/base/Sources/arm/UtilUV.hx similarity index 98% rename from base/Sources/arm/util/UVUtil.hx rename to base/Sources/arm/UtilUV.hx index 1de1515a..51563db2 100644 --- a/base/Sources/arm/util/UVUtil.hx +++ b/base/Sources/arm/UtilUV.hx @@ -1,8 +1,8 @@ -package arm.util; +package arm; import iron.System; -class UVUtil { +class UtilUV { public static var uvmap: Image = null; public static var uvmapCached = false; @@ -148,7 +148,7 @@ class UVUtil { if (dilateBytes == null) { dilateBytes = dilatemap.getPixels(); } - RenderUtil.pickPosNorTex(); + UtilRender.pickPosNorTex(); var w = 2048; // Config.getTextureResX() var h = 2048; // Config.getTextureResY() var x = Std.int(Context.raw.uvxPicked * w); diff --git a/base/Sources/arm/Viewport.hx b/base/Sources/arm/Viewport.hx index 058ceba6..9d0268c8 100644 --- a/base/Sources/arm/Viewport.hx +++ b/base/Sources/arm/Viewport.hx @@ -4,7 +4,6 @@ import js.lib.Float32Array; import iron.App; import iron.Vec4; import iron.Scene; -import arm.Camera; class Viewport { diff --git a/base/Sources/arm/format/FbxBinaryParser.hx b/base/Sources/arm/format/FbxBinaryParser.hx deleted file mode 100644 index a4eae2ac..00000000 --- a/base/Sources/arm/format/FbxBinaryParser.hx +++ /dev/null @@ -1,210 +0,0 @@ -package arm.format; - -import arm.format.FbxLibrary; - -class FbxBinaryParser { - - var pos: Int; - var view: js.lib.DataView; - - var version: Int; - var is64: Bool; - var root: FbxNode; - - function new(view: js.lib.DataView) { - this.view = view; - pos = 0; - var magic = "Kaydara FBX Binary\x20\x20\x00\x1a\x00"; - var valid = readChars(magic.length) == magic; - if (!valid) return; - var version = read32(); - is64 = version >= 7500; - root = { - name: "Root", - props: [PInt(0), PString("Root"), PString("Root")], - childs: parseNodes() - }; - } - - public static function parse(view: js.lib.DataView): FbxNode { - return new FbxBinaryParser(view).root; - } - - function parseArray(readVal: Void->Dynamic, isFloat = false): FbxProp { - var len = read32(); - var encoding = read32(); - var compressedLen = read32(); - var endPos = pos + compressedLen; - var _view = view; - if (encoding != 0) { - pos += 2; - var input = view.buffer.slice(pos, pos + compressedLen); - view = new js.lib.DataView(Krom.inflate(input, true)); - pos = 0; - } - var res = isFloat ? parseArrayf(readVal, len) : parseArrayi(readVal, len); - if (encoding != 0) { - pos = endPos; - view = _view; - } - return res; - } - - function parseArrayf(readVal: Void->Dynamic, len: Int): FbxProp { - var res: Array = []; - for (i in 0...len) res.push(readVal()); - return PFloats(res); - } - - function parseArrayi(readVal: Void->Dynamic, len: Int): FbxProp { - var res: Array = []; - for (i in 0...len) res.push(readVal()); - return PInts(res); - } - - function parseProp(): FbxProp { - switch (readChar()) { - case "C": - return PString(readChar()); - case "Y": - return PInt(read16()); - case "I": - return PInt(read32()); - case "L": - return PInt(read64()); - case "F": - return PFloat(readf32()); - case "D": - return PFloat(readf64()); - case "f": - return parseArray(readf32, true); - case "d": - return parseArray(readf64, true); - case "l": - return parseArray(read64); - case "i": - return parseArray(read32); - case "b": - return parseArray(readBool); - case "S": - var len = read32(); - return PString(readChars(len)); - case "R": - var b = readBytes(read32()); - return null; - default: - return null; - } - } - - function parseNode(): FbxNode { - var endPos = 0; - var numProps = 0; - var propListLen = 0; - - if (is64) { - endPos = read64(); - numProps = read64(); - propListLen = read64(); - } - else { - endPos = read32(); - numProps = read32(); - propListLen = read32(); - } - - var nameLen = read8(); - var name = nameLen == 0 ? "" : readChars(nameLen); - if (endPos == 0) return null; // Null node - - var props: Array = null; - if (numProps > 0) props = []; - for (i in 0...numProps) props.push(parseProp()); - - var childs: Array = null; - var listLen = endPos - pos; - if (listLen > 0) { - childs = []; - while (true) { - var nested = parseNode(); - nested == null ? break : childs.push(nested); - } - } - return { name: name, props: props, childs: childs }; - } - - function parseNodes(): Array { - var nodes = []; - while (true) { - var n = parseNode(); - n == null ? break : nodes.push(n); - } - return nodes; - } - - function read8(): Int { - var i = view.getUint8(pos); - pos += 1; - return i; - } - - function read16(): Int { - var i = view.getInt16(pos, true); - pos += 2; - return i; - } - - function read32(): Int { - var i = view.getInt32(pos, true); - pos += 4; - return i; - } - - function read64(): Int { - var i = untyped view.getBigInt64(pos, true); - pos += 8; - return i; - } - - function readf32(): Float { - var f = view.getFloat32(pos, true); - pos += 4; - return f; - } - - function readf64(): Float { - var f = view.getFloat64(pos, true); - pos += 8; - return f; - } - - function readString(): String { - var s = ""; - while (true) { - var ch = read8(); - if (ch == 0) break; - s += String.fromCharCode(ch); - } - return s; - } - - function readChars(len: Int): String { - var s = ""; - for (i in 0...len) s += readChar(); - return s; - } - - function readChar(): String { - return String.fromCharCode(read8()); - } - - function readBool(): Int { - return read8(); // return read8() == 1; - } - - function readBytes(len: Int): js.lib.DataView { - var v = new js.lib.DataView(view.buffer, pos, len); - pos += len; - return v; - } -} diff --git a/base/Sources/arm/format/FbxParser.hx b/base/Sources/arm/format/FbxParser.hx deleted file mode 100644 index 909cc4b1..00000000 --- a/base/Sources/arm/format/FbxParser.hx +++ /dev/null @@ -1,104 +0,0 @@ -package arm.format; - -import arm.format.FbxLibrary; - -class FbxParser { - - public var posa: js.lib.Int16Array = null; - public var nora: js.lib.Int16Array = null; - public var texa: js.lib.Int16Array = null; - public var cola: js.lib.Int16Array = null; - public var inda: js.lib.Uint32Array = null; - public var scalePos = 1.0; - public var scaleTex = 1.0; - public var name = ""; - - public static var parseTransform = false; - public static var parseVCols = false; - - // Transform - public var tx = 0.0; - public var ty = 0.0; - public var tz = 0.0; - public var rx = 0.0; - public var ry = 0.0; - public var rz = 0.0; - public var sx = 1.0; - public var sy = 1.0; - public var sz = 1.0; - - var geoms: Array; - var current = 0; - var binary = true; - - public function new(buffer: js.lib.ArrayBuffer) { - var view = new js.lib.DataView(buffer); - var magic = "Kaydara FBX Binary\x20\x20\x00\x1a\x00"; - var s = ""; - for (i in 0...magic.length) s += String.fromCharCode(view.getUint8(i)); - binary = s == magic; - - var fbx = binary ? FbxBinaryParser.parse(view) : Parser.parse(untyped String.fromCharCode.apply(null, new js.lib.Uint8Array(buffer))); - var lib = new FbxLibrary(); - try { - lib.load(fbx); - } - catch (e: Dynamic) { - Krom.log(e); - } - - geoms = lib.getAllGeometries(); - next(); - } - - public function next(): Bool { - if (current >= geoms.length) return false; - var geom = geoms[current]; - var lib = geom.lib; - - tx = ty = tz = 0; - rx = ry = rz = 0; - sx = sy = sz = 1; - if (parseTransform) { - var connects = lib.invConnect.get(FbxTools.getId(geom.getRoot())); - for (c in connects) { - var node = lib.ids.get(c); - for (p in FbxTools.getAll(node, "Properties70.P")) { - switch (FbxTools.toString(p.props[0])) { - case "Lcl Translation": { - tx = FbxTools.toFloat(p.props[4]); - ty = FbxTools.toFloat(p.props[5]); - tz = FbxTools.toFloat(p.props[6]); - } - case "Lcl Rotation": { - rx = FbxTools.toFloat(p.props[4]) * Math.PI / 180; - ry = FbxTools.toFloat(p.props[5]) * Math.PI / 180; - rz = FbxTools.toFloat(p.props[6]) * Math.PI / 180; - } - case "Lcl Scaling": { - sx = FbxTools.toFloat(p.props[4]); - sy = FbxTools.toFloat(p.props[5]); - sz = FbxTools.toFloat(p.props[6]); - } - } - } - } - } - - var res = geom.getBuffers(binary, this); - scalePos = res.scalePos; - posa = res.posa; - nora = res.nora; - texa = res.texa; - cola = res.cola; - inda = res.inda; - name = FbxTools.getName(geom.getRoot()); - if (name.charCodeAt(0) == 0) name = name.substring(1); // null - if (name.charCodeAt(0) == 1) name = name.substring(1); // start of heading - if (name == "Geometry") name = "Object -Geometry"; - name = name.substring(0, name.length - 10); // -Geometry - - current++; - return true; - } -} diff --git a/base/Sources/arm/logic/BooleanNode.hx b/base/Sources/arm/nodes/BooleanNode.hx similarity index 89% rename from base/Sources/arm/logic/BooleanNode.hx rename to base/Sources/arm/nodes/BooleanNode.hx index e4e8316b..4d624a93 100644 --- a/base/Sources/arm/logic/BooleanNode.hx +++ b/base/Sources/arm/nodes/BooleanNode.hx @@ -1,6 +1,6 @@ -package arm.logic; +package arm.nodes; -import arm.logic.LogicNode; +import arm.LogicNode; @:keep class BooleanNode extends LogicNode { diff --git a/base/Sources/arm/logic/ColorNode.hx b/base/Sources/arm/nodes/ColorNode.hx similarity index 95% rename from base/Sources/arm/logic/ColorNode.hx rename to base/Sources/arm/nodes/ColorNode.hx index 72969e2d..dfc573f6 100644 --- a/base/Sources/arm/logic/ColorNode.hx +++ b/base/Sources/arm/nodes/ColorNode.hx @@ -1,7 +1,8 @@ -package arm.logic; +package arm.nodes; import iron.Vec4; import iron.System; +import arm.LogicNode; @:keep class ColorNode extends LogicNode { diff --git a/base/Sources/arm/logic/FloatNode.hx b/base/Sources/arm/nodes/FloatNode.hx similarity index 96% rename from base/Sources/arm/logic/FloatNode.hx rename to base/Sources/arm/nodes/FloatNode.hx index 1d4ce19a..80181b74 100644 --- a/base/Sources/arm/logic/FloatNode.hx +++ b/base/Sources/arm/nodes/FloatNode.hx @@ -1,9 +1,9 @@ -package arm.logic; +package arm.nodes; import iron.System; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; +import arm.LogicNode; import arm.Translator._tr; @:keep diff --git a/base/Sources/arm/logic/IntegerNode.hx b/base/Sources/arm/nodes/IntegerNode.hx similarity index 89% rename from base/Sources/arm/logic/IntegerNode.hx rename to base/Sources/arm/nodes/IntegerNode.hx index 0c0c832d..ab255fcd 100644 --- a/base/Sources/arm/logic/IntegerNode.hx +++ b/base/Sources/arm/nodes/IntegerNode.hx @@ -1,6 +1,6 @@ -package arm.logic; +package arm.nodes; -import arm.logic.LogicNode; +import arm.LogicNode; @:keep class IntegerNode extends LogicNode { diff --git a/base/Sources/arm/logic/MathNode.hx b/base/Sources/arm/nodes/MathNode.hx similarity index 98% rename from base/Sources/arm/logic/MathNode.hx rename to base/Sources/arm/nodes/MathNode.hx index b2e96487..97054865 100644 --- a/base/Sources/arm/logic/MathNode.hx +++ b/base/Sources/arm/nodes/MathNode.hx @@ -1,8 +1,8 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; +import arm.LogicNode; import arm.Translator._tr; @:keep diff --git a/base/Sources/arm/logic/NullNode.hx b/base/Sources/arm/nodes/NullNode.hx similarity index 77% rename from base/Sources/arm/logic/NullNode.hx rename to base/Sources/arm/nodes/NullNode.hx index 52852b1a..13cbcd98 100644 --- a/base/Sources/arm/logic/NullNode.hx +++ b/base/Sources/arm/nodes/NullNode.hx @@ -1,6 +1,6 @@ -package arm.logic; +package arm.nodes; -import arm.logic.LogicNode; +import arm.LogicNode; @:keep class NullNode extends LogicNode { diff --git a/base/Sources/arm/logic/RandomNode.hx b/base/Sources/arm/nodes/RandomNode.hx similarity index 97% rename from base/Sources/arm/logic/RandomNode.hx rename to base/Sources/arm/nodes/RandomNode.hx index 65fbf6be..de720781 100644 --- a/base/Sources/arm/logic/RandomNode.hx +++ b/base/Sources/arm/nodes/RandomNode.hx @@ -1,8 +1,8 @@ -package arm.logic; +package arm.nodes; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; +import arm.LogicNode; import arm.Translator._tr; @:keep diff --git a/base/Sources/arm/logic/SeparateVectorNode.hx b/base/Sources/arm/nodes/SeparateVectorNode.hx similarity index 93% rename from base/Sources/arm/logic/SeparateVectorNode.hx rename to base/Sources/arm/nodes/SeparateVectorNode.hx index 51a94f8f..18429127 100644 --- a/base/Sources/arm/logic/SeparateVectorNode.hx +++ b/base/Sources/arm/nodes/SeparateVectorNode.hx @@ -1,10 +1,10 @@ -package arm.logic; +package arm.nodes; import iron.Vec4; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep diff --git a/base/Sources/arm/logic/StringNode.hx b/base/Sources/arm/nodes/StringNode.hx similarity index 89% rename from base/Sources/arm/logic/StringNode.hx rename to base/Sources/arm/nodes/StringNode.hx index 2139790e..b729567f 100644 --- a/base/Sources/arm/logic/StringNode.hx +++ b/base/Sources/arm/nodes/StringNode.hx @@ -1,6 +1,6 @@ -package arm.logic; +package arm.nodes; -import arm.logic.LogicNode; +import arm.LogicNode; @:keep class StringNode extends LogicNode { diff --git a/base/Sources/arm/logic/TimeNode.hx b/base/Sources/arm/nodes/TimeNode.hx similarity index 95% rename from base/Sources/arm/logic/TimeNode.hx rename to base/Sources/arm/nodes/TimeNode.hx index a33ba686..1776b17a 100644 --- a/base/Sources/arm/logic/TimeNode.hx +++ b/base/Sources/arm/nodes/TimeNode.hx @@ -1,9 +1,9 @@ -package arm.logic; +package arm.nodes; import iron.Time; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; +import arm.LogicNode; import arm.Translator._tr; @:keep diff --git a/base/Sources/arm/logic/VectorMathNode.hx b/base/Sources/arm/nodes/VectorMathNode.hx similarity index 97% rename from base/Sources/arm/logic/VectorMathNode.hx rename to base/Sources/arm/nodes/VectorMathNode.hx index bc51f2c6..cd2d505f 100644 --- a/base/Sources/arm/logic/VectorMathNode.hx +++ b/base/Sources/arm/nodes/VectorMathNode.hx @@ -1,10 +1,10 @@ -package arm.logic; +package arm.nodes; import iron.Vec4; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep diff --git a/base/Sources/arm/logic/VectorNode.hx b/base/Sources/arm/nodes/VectorNode.hx similarity index 96% rename from base/Sources/arm/logic/VectorNode.hx rename to base/Sources/arm/nodes/VectorNode.hx index 1d04020a..6fc7a8fd 100644 --- a/base/Sources/arm/logic/VectorNode.hx +++ b/base/Sources/arm/nodes/VectorNode.hx @@ -1,11 +1,11 @@ -package arm.logic; +package arm.nodes; import iron.System; import iron.Vec4; import zui.Zui.Nodes; import zui.Zui.TNode; -import arm.logic.LogicNode; -import arm.logic.LogicParser.f32; +import arm.LogicNode; +import arm.ParserLogic.f32; import arm.Translator._tr; @:keep diff --git a/base/project.js b/base/project.js index b78c0746..c56bc076 100644 --- a/base/project.js +++ b/base/project.js @@ -82,7 +82,7 @@ else { project.addAssets("Assets/extra/*", { destination: "data/{name}" }); } -project.addParameter("--macro include('arm.logic')"); +project.addParameter("--macro include('arm.nodes')"); project.addParameter("-dce full"); project.addDefine("analyzer-optimize"); project.addDefine("js-es=6");