void renderTransformComponent(any@ data) { Entity entity; data.retrieve(entity); TransformComponent transform = entity.transform; vec3 position = transform.position; vec3 scale = transform.scale; vec3 rotation = transform.rotation; transform.position = magicSlider3("Posiiton", position, 0.1); transform.scale = magicSlider3("Scale", scale, 0.1); transform.rotation = magicSlider3("Rotation", rotation, 0.1); } void renderMeshComponent(any@ data) { Entity entity; data.retrieve(entity); MeshComponent meshComponent = entity.getMeshComponent(); if (meshComponent.hasMesh) { drawIcon("object3d", 32); } else { drawIcon("empty", 32); } dragDropTarget("MESH", any(meshComponent), setMeshComponentMesh); if (meshComponent.hasMesh) { sameline(); space(); sameline(); titleCenterY(meshComponent.getMesh(), 32); dragDropTarget("MESH", any(meshComponent), setMeshComponentMesh); } space(20, 20); if (button("Clear")) { meshComponent.clear(); } sameline(); space(10, 20); sameline(); if (meshComponent.hasMesh) { meshComponent.isActive = checkbox("Active", meshComponent.isActive); } else { checkboxDisabled("Active", meshComponent.isActive); } } void renderShaderComponent(any@ data) { Entity entity; data.retrieve(entity); ShaderComponent shaderComponent = entity.getShaderComponent(); if (shaderComponent.hasShader) { drawIcon("shader", 32); } else { drawIcon("empty", 32); } dragDropTarget("SHADER", any(shaderComponent), setShaderComponent); if (shaderComponent.hasShader) { sameline(); space(); sameline(); titleCenterY(shaderComponent.getShader(), 32); dragDropTarget("SHADER", any(shaderComponent), setShaderComponent); } space(20, 20); if (button("Clear")) { shaderComponent.clear(); } } void setMeshComponentMesh(any@ meshComponent_data, any@ mesh_data){ string mesh; mesh_data.retrieve(mesh); MeshComponent meshComponent; meshComponent_data.retrieve(meshComponent); meshComponent.setMesh(mesh); } void setShaderComponent(any@ shaderComponent_data, any@ shader_data) { string shader; shader_data.retrieve(shader); ShaderComponent shaderComponent; shaderComponent_data.retrieve(shaderComponent); shaderComponent.setShader(shader); }