.. | .. |
---|
1859 | 1859 | } |
---|
1860 | 1860 | |
---|
1861 | 1861 | // Images/textures |
---|
1862 | | - if (textures |
---|
1863 | | - && (filename.toLowerCase().endsWith(".jpg") |
---|
1864 | | - || filename.toLowerCase().endsWith(".jpeg") |
---|
1865 | | - || filename.toLowerCase().endsWith(".gif") |
---|
1866 | | - || filename.toLowerCase().endsWith(".png") |
---|
1867 | | - || filename.toLowerCase().endsWith(".tre") |
---|
1868 | | - || filename.toLowerCase().endsWith(".bmp") |
---|
1869 | | - || filename.toLowerCase().endsWith(".tga") |
---|
1870 | | - || filename.toLowerCase().endsWith(".sgi") |
---|
1871 | | - || filename.toLowerCase().endsWith(".tif") |
---|
1872 | | - || filename.toLowerCase().endsWith(".tiff"))) |
---|
| 1862 | + if (filename.toLowerCase().endsWith(".jpg") |
---|
| 1863 | + || filename.toLowerCase().endsWith(".jpeg") |
---|
| 1864 | + || filename.toLowerCase().endsWith(".gif") |
---|
| 1865 | + || filename.toLowerCase().endsWith(".png") |
---|
| 1866 | + || filename.toLowerCase().endsWith(".tre") |
---|
| 1867 | + || filename.toLowerCase().endsWith(".bmp") |
---|
| 1868 | + || filename.toLowerCase().endsWith(".tga") |
---|
| 1869 | + || filename.toLowerCase().endsWith(".sgi") |
---|
| 1870 | + || filename.toLowerCase().endsWith(".tif") |
---|
| 1871 | + || filename.toLowerCase().endsWith(".tiff")) |
---|
1873 | 1872 | { |
---|
1874 | | - DropTexture(filename); |
---|
| 1873 | + if (textures) |
---|
| 1874 | + DropTexture(filename); |
---|
| 1875 | + else |
---|
| 1876 | + CreateBillboard(filename); |
---|
1875 | 1877 | continue; |
---|
1876 | 1878 | } |
---|
1877 | 1879 | |
---|
.. | .. |
---|
1882 | 1884 | ResetModel(); |
---|
1883 | 1885 | } |
---|
1884 | 1886 | |
---|
| 1887 | + void CreateBillboard(String filename) |
---|
| 1888 | + { |
---|
| 1889 | + Object3D source = null; |
---|
| 1890 | + Object3D group = copy; |
---|
| 1891 | + |
---|
| 1892 | + if (group.selection.size() > 0) |
---|
| 1893 | + { |
---|
| 1894 | + source = group.selection.get(0); |
---|
| 1895 | + } |
---|
| 1896 | + |
---|
| 1897 | + Grid grid = new Grid(1,1); |
---|
| 1898 | + grid.material = null; |
---|
| 1899 | + |
---|
| 1900 | + grid.toParent = LA.newMatrix(); |
---|
| 1901 | + grid.fromParent = LA.newMatrix(); |
---|
| 1902 | + LA.matYRotate(grid.toParent, Math.PI/2); |
---|
| 1903 | + LA.matXRotate(grid.toParent, -Math.PI/2); |
---|
| 1904 | + LA.matXRotate(grid.fromParent, Math.PI/2); |
---|
| 1905 | + LA.matYRotate(grid.fromParent, -Math.PI/2); |
---|
| 1906 | + |
---|
| 1907 | + BillboardNode bb = new BillboardNode(); |
---|
| 1908 | + bb.addChild(grid); |
---|
| 1909 | + |
---|
| 1910 | + Object3D newgroup = new Object3D(); |
---|
| 1911 | + newgroup.CreateMaterial(); |
---|
| 1912 | + |
---|
| 1913 | + File file = new File(filename); |
---|
| 1914 | + newgroup.name = file.getName(); |
---|
| 1915 | + newgroup.addChild(bb); |
---|
| 1916 | + |
---|
| 1917 | + Object3D main = newgroup; |
---|
| 1918 | + |
---|
| 1919 | + main.SetPigmentTexture(filename); |
---|
| 1920 | + |
---|
| 1921 | + if (source != null) |
---|
| 1922 | + { |
---|
| 1923 | + main.material = new cMaterial(source.material); |
---|
| 1924 | + if (main.projectedVertices.length < source.projectedVertices.length) |
---|
| 1925 | + { |
---|
| 1926 | + main.projectedVertices = new Object3D.cVector2[source.projectedVertices.length]; |
---|
| 1927 | + } |
---|
| 1928 | + |
---|
| 1929 | + for (int i=0; i<source.projectedVertices.length; i++) |
---|
| 1930 | + { |
---|
| 1931 | + main.projectedVertices[i].x = source.projectedVertices[i].x; |
---|
| 1932 | + main.projectedVertices[i].y = source.projectedVertices[i].y; |
---|
| 1933 | + } |
---|
| 1934 | + |
---|
| 1935 | + main.texres = source.texres; |
---|
| 1936 | + } |
---|
| 1937 | + |
---|
| 1938 | + makeSomething(newgroup, false); |
---|
| 1939 | + } |
---|
| 1940 | + |
---|
1885 | 1941 | Point location; |
---|
1886 | 1942 | |
---|
1887 | 1943 | void DropTexture(String filename) |
---|