summaryrefslogtreecommitdiffstats
path: root/util/qt3d/assetviewer/qml/fileHandling.js
blob: 6ccfb1a1af53e844b5b16311154a24073ef68e2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
function save_qml(closePrompt) {

    var effectData = "";
    if (useCustomEffect) {
        effectData +=
            "    effect: Effect {\n" +
            "        decal: " + customEffect.decal + "\n" +
            "        blending: " + customEffect.blending + "\n";

        if (useCustomMaterial) {
            effectData +=
                "        material: Material {\n" +
                "            ambientColor: \"" + modelMaterial.ambientColor + "\"\n" +
                "            diffuseColor: \"" + modelMaterial.diffuseColor + "\"\n" +
                "            specularColor: \"" + modelMaterial.specularColor + "\"\n" +
                "            shininess: " + modelMaterial.shininess + "\n" +
                "            textureUrl: \"" + modelMaterial.textureUrl + "\"\n" +
                "        }\n"
        } else {
            effectData +=
                "        color: \"" + modelEffect.color + "\"\n" +
                "        texture: \"" + modelEffect.texture + "\"\n"
        }

        effectData += "    }\n"
    }

    var saveData =
        "//                 --------|  WARNING  |--------!!\n" +
        "// This is a generated file.  Modifying the text or layout of \n" +
        "// this file will mean that the 3D Asset Viewer application will no \n" +
        "// longer be able to read it. \n\n" +
        "// Changing numeric values is allowable, though care should be taken\n" +
        "// not to inadvertantly change the file structure.\n\n" +
        "import QtQuick 1.0\n" +
        "import Qt3D 1.0\n" +
        "\n" +
        "Item3D {\n" +
        "    property double translateX: 0; \n"+
        "    property double translateY: 0; \n"+
        "    property double translateZ: 0; \n"+
        "    property double rotationX: 0; \n"+
        "    property double rotationY: 0; \n"+
        "    property double rotationZ: 0; \n"+
        "    property double assetScale: 1.0; \n"+

        "    Translation3D {\n" +
        "        id: transformTranslate\n" +
        "        translate: Qt.vector3d(" +
        transformTranslate.translate.x + "+translateX, " +
        transformTranslate.translate.y + "+translateY, " +
        transformTranslate.translate.z + "+translateZ)\n" +
        "    }\n" +
        "\n" +
        "    Rotation3D {\n" +
        "        id: transformRotateX\n" +
        "        angle: " + transformRotateX.angle + "+rotationX\n" +
        "        axis: Qt.vector3d(1, 0, 0)\n" +
        "    }\n" +
        "\n" +
        "    Rotation3D {\n" +
        "        id: transformRotateY\n" +
        "        angle: " + transformRotateY.angle + "+rotationY\n" +
        "        axis: Qt.vector3d(0, 1, 0)\n" +
        "    }\n" +
        "\n" +
        "    Rotation3D {\n" +
        "        id: transformRotateZ\n" +
        "        angle: " + transformRotateZ.angle + "+rotationZ\n" +
        "        axis: Qt.vector3d(0, 0, 1)\n" +
        "    }\n" +
        "\n" +
        "    Scale3D {\n" +
        "        id: transformScale\n" +
        "        scale: Qt.vector3d(" +
        transformScale.scale.x + "*assetScale, " +
        transformScale.scale.y + "*assetScale, " +
        transformScale.scale.z + "*assetScale)\n" +
        "    }\n" +
        "\n" +
        "    Mesh {\n" +
        "        id: source_mesh\n" +
        "        source: \"%1\"\n" +
        "    }\n" +
        "\n" +
        "    mesh: source_mesh\n" +
        "    transform: [\n" +
        "        transformScale,\n" +
        "        transformRotateX,\n" +
        "        transformRotateY,\n" +
        "        transformRotateZ,\n" +
        "        transformTranslate,\n" +
        "    ]\n" +
        effectData +
        "}\n";

    quickFile.filename = source_mesh.source
        quickFile.data = saveData
        if (closePrompt)
            var result = quickFile.promptSave()
        else
            result = quickFile.save()

                if (result !== "")
                    console.log("If there was an error it will be after here:" + result)
}