sunrize 1.5.13 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/Application/Application.js +2 -7
- package/src/Application/Dashboard.js +10 -10
- package/src/Application/DataStorage.js +177 -177
- package/src/Application/Document.js +72 -127
- package/src/Application/Interface.js +4 -0
- package/src/Application/Tabs.js +3 -3
- package/src/Controls/Dialog.js +3 -1
- package/src/Editors/BrowserFrame.js +171 -0
- package/src/Editors/OutlineEditor.js +149 -123
- package/src/Editors/OutlineRouteGraph.js +493 -493
- package/src/Editors/OutlineView.js +102 -64
- package/src/Editors/SceneProperties.js +137 -136
- package/src/Editors/ScriptEditor.js +1 -1
- package/src/Tools/Core/X3DNodeTool.js +66 -12
- package/src/Tools/Grids/AngleGridTool.js +0 -5
- package/src/Tools/Grids/AngleGridTool.x3d +1 -0
- package/src/Tools/Grids/AxonometricGrid.x3d +5 -5
- package/src/Tools/Grids/AxonometricGridTool.js +0 -5
- package/src/Tools/Grids/AxonometricGridTool.x3d +1 -0
- package/src/Tools/Grids/GridTool.js +0 -5
- package/src/Tools/Grids/GridTool.x3d +1 -0
- package/src/Tools/Grids/X3DGridNodeTool.js +131 -84
- package/src/Tools/Grouping/X3DTransformNodeTool.js +19 -21
- package/src/Tools/Grouping/X3DTransformNodeTool.x3d +20 -15
- package/src/Tools/Layering/X3DActiveLayerNodeTool.js +16 -21
- package/src/Tools/Lighting/DirectionalLightTool.js +32 -1
- package/src/Tools/Lighting/X3DLightNodeTool.x3d +4 -21
- package/src/Tools/Shaders/TextureShader.x3d +16 -3
- package/src/Tools/SnapTool/{SnapSourceTool.js → SnapSource.js} +2 -7
- package/src/Tools/SnapTool/SnapTarget.js +650 -0
- package/src/Tools/SnapTool/SnapTool.x3d +28 -27
- package/src/Tools/SnapTool/X3DSnapNodeTool.js +16 -15
- package/src/Tools/Sound/SoundTool.x3d +4 -21
- package/src/Tools/TextureProjection/X3DTextureProjectorNodeTool.x3d +19 -26
- package/src/Undo/Editor.js +185 -46
- package/src/assets/Info.plist +56 -56
- package/src/assets/themes/default-template.css +1 -0
- package/src/assets/themes/default.css +1 -0
- package/src/Editors/BrowserSize.js +0 -101
- package/src/Tools/SnapTool/SnapTargetTool.js +0 -20
|
@@ -1298,6 +1298,27 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1298
1298
|
UndoManager .shared .endUndo ();
|
|
1299
1299
|
}
|
|
1300
1300
|
|
|
1301
|
+
activateLayer (event)
|
|
1302
|
+
{
|
|
1303
|
+
event .preventDefault ();
|
|
1304
|
+
event .stopImmediatePropagation ();
|
|
1305
|
+
|
|
1306
|
+
const
|
|
1307
|
+
target = $(event .target),
|
|
1308
|
+
element = target .closest (".node", this .sceneGraph),
|
|
1309
|
+
layerNode = this .getNode (element),
|
|
1310
|
+
layerSet = this .browser .getWorld () .getLayerSet (),
|
|
1311
|
+
index = layerSet ._layers .findIndex (node => node ?.getValue () .valueOf () === layerNode);
|
|
1312
|
+
|
|
1313
|
+
if (index < 0)
|
|
1314
|
+
return;
|
|
1315
|
+
|
|
1316
|
+
if (layerSet ._activeLayer .getValue () === index + 1)
|
|
1317
|
+
Editor .setFieldValue (this .browser .currentScene, layerSet, layerSet ._activeLayer, -1);
|
|
1318
|
+
else
|
|
1319
|
+
Editor .setFieldValue (this .browser .currentScene, layerSet, layerSet ._activeLayer, index + 1);
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1301
1322
|
addBooleanField (button)
|
|
1302
1323
|
{
|
|
1303
1324
|
const
|
|
@@ -1335,7 +1356,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1335
1356
|
showAlpha: field .getType () === X3D .X3DConstants .SFColorRGBA,
|
|
1336
1357
|
showInitial: true,
|
|
1337
1358
|
showInput: false,
|
|
1338
|
-
|
|
1359
|
+
preferredFormat: "name",
|
|
1339
1360
|
showButtons: false,
|
|
1340
1361
|
allowEmpty: false,
|
|
1341
1362
|
})
|
|
@@ -1353,7 +1374,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1353
1374
|
value .g = rgb .g / 255;
|
|
1354
1375
|
value .b = rgb .b / 255;
|
|
1355
1376
|
|
|
1356
|
-
|
|
1377
|
+
if (value .getType () === X3D .X3DConstants .SFColorRGBA)
|
|
1357
1378
|
value .a = rgb .a;
|
|
1358
1379
|
|
|
1359
1380
|
Editor .setFieldValue (node .getExecutionContext (), node, field, value);
|
|
@@ -1371,10 +1392,10 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1371
1392
|
});
|
|
1372
1393
|
}
|
|
1373
1394
|
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1395
|
+
removeColorField (button)
|
|
1396
|
+
{
|
|
1397
|
+
button .spectrum ?.("destroy");
|
|
1398
|
+
}
|
|
1378
1399
|
|
|
1379
1400
|
addTimeField (button)
|
|
1380
1401
|
{
|
|
@@ -1503,7 +1524,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1503
1524
|
case "Cylinder":
|
|
1504
1525
|
case "Sphere":
|
|
1505
1526
|
{
|
|
1506
|
-
toolNode .getTransformTool () .tool .getField ("
|
|
1527
|
+
toolNode .getTransformTool () .tool .getField ("active") .setValue (true);
|
|
1507
1528
|
break;
|
|
1508
1529
|
}
|
|
1509
1530
|
case "Disk2D":
|
|
@@ -1511,13 +1532,13 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1511
1532
|
if (field .getName () === "innerRadius")
|
|
1512
1533
|
{
|
|
1513
1534
|
toolNode .tool .group = `${node .getTypeName ()}.innerRadius`;
|
|
1514
|
-
toolNode .getInnerRadiusTransformTool () .tool .getField ("
|
|
1535
|
+
toolNode .getInnerRadiusTransformTool () .tool .getField ("active") .setValue (true);
|
|
1515
1536
|
}
|
|
1516
1537
|
|
|
1517
1538
|
if (field .getName () === "outerRadius")
|
|
1518
1539
|
{
|
|
1519
1540
|
toolNode .tool .group = `${node .getTypeName ()}.outerRadius`;
|
|
1520
|
-
toolNode .getOuterRadiusTransformTool () .tool .getField ("
|
|
1541
|
+
toolNode .getOuterRadiusTransformTool () .tool .getField ("active") .setValue (true);
|
|
1521
1542
|
}
|
|
1522
1543
|
|
|
1523
1544
|
break;
|
|
@@ -1527,8 +1548,13 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1527
1548
|
if (toolNode .tool .group !== "Transform")
|
|
1528
1549
|
break;
|
|
1529
1550
|
|
|
1530
|
-
toolNode .tool .
|
|
1531
|
-
|
|
1551
|
+
const innerTool = toolNode .tool .transformTool ?.getValue () .getTool ();
|
|
1552
|
+
|
|
1553
|
+
if (innerTool)
|
|
1554
|
+
innerTool .tool .getField ("active") .setValue (true);
|
|
1555
|
+
else
|
|
1556
|
+
toolNode .tool .getField ("active") .setValue (true);
|
|
1557
|
+
|
|
1532
1558
|
break;
|
|
1533
1559
|
}
|
|
1534
1560
|
}
|
|
@@ -1536,6 +1562,8 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1536
1562
|
toolNode .handleUndo (new X3D .SFBool (true));
|
|
1537
1563
|
}
|
|
1538
1564
|
|
|
1565
|
+
#endUndoSetFieldValueSymbol = Symbol ();
|
|
1566
|
+
|
|
1539
1567
|
endUndoSetFieldValue (node, field)
|
|
1540
1568
|
{
|
|
1541
1569
|
const toolNode = node .getTool ?.();
|
|
@@ -1554,13 +1582,13 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1554
1582
|
case "Cylinder":
|
|
1555
1583
|
case "Sphere":
|
|
1556
1584
|
{
|
|
1557
|
-
this .browser .finishedEvents () .addFieldCallback (this, () =>
|
|
1585
|
+
this .browser .finishedEvents () .addFieldCallback (this .#endUndoSetFieldValueSymbol, () =>
|
|
1558
1586
|
{
|
|
1559
|
-
this .browser .finishedEvents () .removeFieldCallback (this);
|
|
1587
|
+
this .browser .finishedEvents () .removeFieldCallback (this .#endUndoSetFieldValueSymbol);
|
|
1560
1588
|
|
|
1561
1589
|
toolNode .getTransformTool () .transformGroups ();
|
|
1562
1590
|
toolNode .handleUndo (new X3D .SFBool ());
|
|
1563
|
-
toolNode .getTransformTool () .tool .getField ("
|
|
1591
|
+
toolNode .getTransformTool () .tool .getField ("active") .setValue (false);
|
|
1564
1592
|
|
|
1565
1593
|
UndoManager .shared .endUndo ();
|
|
1566
1594
|
});
|
|
@@ -1569,9 +1597,9 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1569
1597
|
}
|
|
1570
1598
|
case "Disk2D":
|
|
1571
1599
|
{
|
|
1572
|
-
this .browser .finishedEvents () .addFieldCallback (this, () =>
|
|
1600
|
+
this .browser .finishedEvents () .addFieldCallback (this .#endUndoSetFieldValueSymbol, () =>
|
|
1573
1601
|
{
|
|
1574
|
-
this .browser .finishedEvents () .removeFieldCallback (this);
|
|
1602
|
+
this .browser .finishedEvents () .removeFieldCallback (this .#endUndoSetFieldValueSymbol);
|
|
1575
1603
|
|
|
1576
1604
|
if (field .getName () === "innerRadius")
|
|
1577
1605
|
toolNode .getInnerRadiusTransformTool () .transformGroups ();
|
|
@@ -1582,10 +1610,10 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1582
1610
|
toolNode .handleUndo (new X3D .SFBool ());
|
|
1583
1611
|
|
|
1584
1612
|
if (field .getName () === "innerRadius")
|
|
1585
|
-
toolNode .getInnerRadiusTransformTool () .tool .getField ("
|
|
1613
|
+
toolNode .getInnerRadiusTransformTool () .tool .getField ("active") .setValue (false);
|
|
1586
1614
|
|
|
1587
1615
|
if (field .getName () === "outerRadius")
|
|
1588
|
-
toolNode .getOuterRadiusTransformTool () .tool .getField ("
|
|
1616
|
+
toolNode .getOuterRadiusTransformTool () .tool .getField ("active") .setValue (false);
|
|
1589
1617
|
|
|
1590
1618
|
UndoManager .shared .endUndo ();
|
|
1591
1619
|
});
|
|
@@ -1603,15 +1631,13 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1603
1631
|
{
|
|
1604
1632
|
// Sound, X3DEnvironmentalSensorNode, ...
|
|
1605
1633
|
|
|
1606
|
-
this .browser .finishedEvents () .addFieldCallback (this, () =>
|
|
1634
|
+
this .browser .finishedEvents () .addFieldCallback (this .#endUndoSetFieldValueSymbol, () =>
|
|
1607
1635
|
{
|
|
1608
|
-
this .browser .finishedEvents () .removeFieldCallback (this);
|
|
1636
|
+
this .browser .finishedEvents () .removeFieldCallback (this .#endUndoSetFieldValueSymbol);
|
|
1609
1637
|
|
|
1610
1638
|
innerTool .transformGroups ();
|
|
1611
1639
|
toolNode .handleUndo (new X3D .SFBool ());
|
|
1612
|
-
|
|
1613
|
-
toolNode .tool .getField ("isActive") .setValue (false);
|
|
1614
|
-
innerTool .tool .getField ("isActive") .setValue (false);
|
|
1640
|
+
innerTool .tool .getField ("active") .setValue (false);
|
|
1615
1641
|
|
|
1616
1642
|
UndoManager .shared .endUndo ();
|
|
1617
1643
|
});
|
|
@@ -1622,7 +1648,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1622
1648
|
|
|
1623
1649
|
toolNode .transformGroups ();
|
|
1624
1650
|
toolNode .handleUndo (new X3D .SFBool ());
|
|
1625
|
-
toolNode .tool .getField ("
|
|
1651
|
+
toolNode .tool .getField ("active") .setValue (true);
|
|
1626
1652
|
|
|
1627
1653
|
UndoManager .shared .endUndo ();
|
|
1628
1654
|
}
|
|
@@ -1705,7 +1731,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1705
1731
|
if (this .connector .type === type)
|
|
1706
1732
|
{
|
|
1707
1733
|
if (this .connector .field === field)
|
|
1708
|
-
|
|
1734
|
+
return
|
|
1709
1735
|
}
|
|
1710
1736
|
}
|
|
1711
1737
|
|
|
@@ -1756,65 +1782,65 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1756
1782
|
{
|
|
1757
1783
|
case "input":
|
|
1758
1784
|
{
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1785
|
+
const routes = field .getInputRoutes ();
|
|
1786
|
+
|
|
1787
|
+
switch (routes .size)
|
|
1788
|
+
{
|
|
1789
|
+
case 0:
|
|
1790
|
+
{
|
|
1791
|
+
break
|
|
1792
|
+
}
|
|
1793
|
+
case 1:
|
|
1794
|
+
{
|
|
1795
|
+
for (const route of routes)
|
|
1796
|
+
{
|
|
1797
|
+
// Delete route.
|
|
1798
|
+
|
|
1799
|
+
Editor .deleteRoute (route .getExecutionContext (), route .sourceNode, route .sourceField, route .destinationNode, route .destinationField);
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
break;
|
|
1803
|
+
}
|
|
1804
|
+
default:
|
|
1805
|
+
{
|
|
1806
|
+
element .data ("full-expanded", true);
|
|
1807
|
+
element .jstree ("open_node", element);
|
|
1808
|
+
break;
|
|
1809
|
+
}
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
break
|
|
1787
1813
|
}
|
|
1788
1814
|
case "output":
|
|
1789
1815
|
{
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1816
|
+
const routes = field .getOutputRoutes ();
|
|
1817
|
+
|
|
1818
|
+
switch (routes .size)
|
|
1819
|
+
{
|
|
1820
|
+
case 0:
|
|
1821
|
+
{
|
|
1822
|
+
break
|
|
1823
|
+
}
|
|
1824
|
+
case 1:
|
|
1825
|
+
{
|
|
1826
|
+
for (const route of routes)
|
|
1827
|
+
{
|
|
1828
|
+
// Delete route.
|
|
1829
|
+
|
|
1830
|
+
Editor .deleteRoute (route .getExecutionContext (), route .sourceNode, route .sourceField, route .destinationNode, route .destinationField);
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1833
|
+
break;
|
|
1834
|
+
}
|
|
1835
|
+
default:
|
|
1836
|
+
{
|
|
1837
|
+
element .data ("full-expanded", true);
|
|
1838
|
+
element .jstree ("open_node", element);
|
|
1839
|
+
break;
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
|
|
1843
|
+
break;
|
|
1818
1844
|
}
|
|
1819
1845
|
}
|
|
1820
1846
|
}
|
|
@@ -1828,73 +1854,73 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1828
1854
|
{
|
|
1829
1855
|
case "input":
|
|
1830
1856
|
{
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1857
|
+
if (this .connector)
|
|
1858
|
+
{
|
|
1859
|
+
if (this .connector .type === type)
|
|
1860
|
+
break;
|
|
1835
1861
|
|
|
1836
|
-
|
|
1837
|
-
|
|
1862
|
+
if (this .connector .executionContext !== executionContext)
|
|
1863
|
+
break;
|
|
1838
1864
|
|
|
1839
|
-
|
|
1840
|
-
|
|
1865
|
+
if (this .connector .field .getType () !== field .getType ())
|
|
1866
|
+
break;
|
|
1841
1867
|
|
|
1842
1868
|
if (this .connector .node .getField (this .connector .field .getName ()) .getFieldInterests () .has (node .getField (field .getName ())))
|
|
1843
1869
|
break;
|
|
1844
1870
|
|
|
1845
|
-
|
|
1871
|
+
// Add route.
|
|
1846
1872
|
|
|
1847
|
-
|
|
1873
|
+
Editor .addRoute (executionContext, this .connector .node, this .connector .field .getName (), node, field .getName ());
|
|
1848
1874
|
|
|
1849
|
-
|
|
1850
|
-
|
|
1875
|
+
if (event .shiftKey)
|
|
1876
|
+
break;
|
|
1851
1877
|
|
|
1852
|
-
|
|
1853
|
-
|
|
1878
|
+
this .connector .element .find (".access-type img.active.output.activated")
|
|
1879
|
+
.removeClass ("activated");
|
|
1854
1880
|
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1881
|
+
delete this .connector;
|
|
1882
|
+
}
|
|
1883
|
+
else
|
|
1884
|
+
{
|
|
1885
|
+
this .connector = { type, executionContext, node, field, element };
|
|
1886
|
+
}
|
|
1861
1887
|
|
|
1862
|
-
|
|
1888
|
+
break
|
|
1863
1889
|
}
|
|
1864
1890
|
case "output":
|
|
1865
1891
|
{
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1892
|
+
if (this .connector)
|
|
1893
|
+
{
|
|
1894
|
+
if (this .connector .type === type)
|
|
1895
|
+
break;
|
|
1870
1896
|
|
|
1871
|
-
|
|
1872
|
-
|
|
1897
|
+
if (this .connector .executionContext !== executionContext)
|
|
1898
|
+
break;
|
|
1873
1899
|
|
|
1874
|
-
|
|
1875
|
-
|
|
1900
|
+
if (this .connector .field .getType () !== field .getType ())
|
|
1901
|
+
break;
|
|
1876
1902
|
|
|
1877
1903
|
if (node .getField (field .getName ()) .getFieldInterests () .has (this .connector .node .getField (this .connector .field .getName ())))
|
|
1878
1904
|
break;
|
|
1879
1905
|
|
|
1880
|
-
|
|
1906
|
+
// Add route.
|
|
1881
1907
|
|
|
1882
|
-
|
|
1908
|
+
Editor .addRoute (executionContext, node, field .getName (), this .connector .node, this .connector .field .getName ());
|
|
1883
1909
|
|
|
1884
|
-
|
|
1885
|
-
|
|
1910
|
+
if (event .shiftKey)
|
|
1911
|
+
break;
|
|
1886
1912
|
|
|
1887
|
-
|
|
1888
|
-
|
|
1913
|
+
this .connector .element .find (".access-type img.active.input.activated")
|
|
1914
|
+
.removeClass ("activated");
|
|
1889
1915
|
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1916
|
+
delete this .connector;
|
|
1917
|
+
}
|
|
1918
|
+
else
|
|
1919
|
+
{
|
|
1920
|
+
this .connector = { type, executionContext, node, field, element };
|
|
1921
|
+
}
|
|
1896
1922
|
|
|
1897
|
-
|
|
1923
|
+
break;
|
|
1898
1924
|
}
|
|
1899
1925
|
}
|
|
1900
1926
|
}
|