diff --git a/shell.nix b/shell.nix
index 55b57ca..5a6aec9 100644
--- a/shell.nix
+++ b/shell.nix
@@ -10,7 +10,7 @@
foo = pkgs.mkShell {
# nativeBuildInputs is usually what you want -- tools you need to run
nativeBuildInputs = with pkgs.buildPackages; [
-
+ assimp
];
shellHooks = ''
diff --git a/src/.init.lua b/src/.init.lua
index 7616493..f0b687c 100644
--- a/src/.init.lua
+++ b/src/.init.lua
@@ -57,6 +57,7 @@ app.opts = require('config')(app)
-- load system plugins (in specific order for admin panel)
app.plugin.global = app.addPlugin('plugin/global')
app.plugin.diskscan = app.addPlugin('plugin/diskscan')
+app.plugin.convert = app.addPlugin('plugin/convert')
app.plugin.moderation = app.addPlugin('plugin/moderation')
app.plugin.xrfragments = app.addPlugin('plugin/xrfragments')
app.plugin.janusxr = app.addPlugin('plugin/janusxr')
diff --git a/src/css/xrforge.css b/src/css/xrforge.css
index f30721e..e6e0e93 100644
--- a/src/css/xrforge.css
+++ b/src/css/xrforge.css
@@ -278,11 +278,10 @@ img.icon{ display:none; }
padding:10px 20px;
overflow:clip;
}
-.info .tag{
- margin-bottom:7px;
-}
b.tag{
+ margin-bottom:7px;
+ line-height:22px;
display:inline-block;
background: #77f;
color: white;
diff --git a/src/img/button-88x31.gif b/src/img/button-88x31.gif
new file mode 100644
index 0000000..e060d35
Binary files /dev/null and b/src/img/button-88x31.gif differ
diff --git a/src/myverse/x3d/test_world.x3d b/src/myverse/x3d/test_world.x3d
new file mode 100644
index 0000000..2861716
--- /dev/null
+++ b/src/myverse/x3d/test_world.x3d
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/myverse/x3d/test_world.x3d.glb b/src/myverse/x3d/test_world.x3d.glb
new file mode 100644
index 0000000..8097701
Binary files /dev/null and b/src/myverse/x3d/test_world.x3d.glb differ
diff --git a/src/page/about.html b/src/page/about.html
index 2d03b52..01be761 100644
--- a/src/page/about.html
+++ b/src/page/about.html
@@ -95,41 +95,22 @@ div#xrecosystem{
What is it
An open, seamless XR web built from simple URLs and directories, without gatekeepers.
- XRForge transforms standard local or remote file directories into interconnected 3D spaces. Users can seamlessly "surf" spatial webs (plural!), turning everyday directories into 3D portals.
+ XRForge transforms standard local or remote file directories into interconnected 3D spaces. Users can seamlessly "surf" spatial webs (plural!), turning everyday directories into 3D portals.
+
+
${footer}
diff --git a/src/page/dir.lua b/src/page/dir.lua
index fe7483d..132d2bd 100644
--- a/src/page/dir.lua
+++ b/src/page/dir.lua
@@ -16,7 +16,8 @@ return {
if urlpath == "/"
or urlpath:match("^"..rootpath)
- and not urlpath:gsub(".*/",""):match("%.") then
+ and not urlpath:gsub(".*/",""):match("%.")
+ and not req.param.url then
local redirect = false
if not app.cache.url[ urlhash ] or util.count(req.params) > 0 then
@@ -25,13 +26,14 @@ return {
foreach( app.cache.items, function(k,v)
if req.authenticated or app.plugin.moderation.isAllowed(v) then
if v.parent then
- --trace( "path = " .. util.stripPath(v.path) .. " " ..
- -- "parent = " .. util.stripPath(v.parent.path) .. " " ..
- -- "matchpath = " .. util.stripPath(matchpath)
- --)
+ trace( "path = " .. util.stripPath(v.path) .. " " ..
+ "parent = " .. util.stripPath(v.parent.path) .. " " ..
+ "matchpath = " .. util.stripPath(matchpath)
+ )
if match(v.path, matchpath) then -- show parent folder if any
local parent = app.cache.items[ v.parent.id ]
if v.portal then
+ trace("-- portal redirect")
redirect = v.portal.url
end
if match(parent.path, app.opts.plugin_diskscan_dir) then -- add rootfolder if needed
@@ -41,15 +43,20 @@ return {
end
-- add items from dir
- if match(v.parent.path, matchpath) and (v.dir or v.view3D) then
- local parent = app.cache.items[ v.parent.id ]
- res.items[ v.id ] = v
- res.parent = parent
+ if match(v.parent.path, matchpath) then
+ if v.dir or v.view3D then
+ trace("-- dir item: " .. v.path )
+ local parent = app.cache.items[ v.parent.id ]
+ res.items[ v.id ] = v
+ res.parent = parent
+ end
end
end
end
end)
+
local data = util.merge({
+ url = req.param.url, -- query hint to render janus.url in iframe (index.html)
html_items='',
items = {},
parent=res.parent
@@ -66,7 +73,7 @@ return {
local port = ':' .. GetPort()
if port == 80 then port = '' end
data.url = GetScheme() .. '://' .. GetHost() .. port .. v.url
- if v.janusxr then
+ if v.janusxr and v.janusxr.jml then
-- what to do here? no generated portals?
data.janusxr = app.tpl( util.readfile(v.path), data )
end
diff --git a/src/page/footer.html b/src/page/footer.html
index 6699b77..ad6f19b 100644
--- a/src/page/footer.html
+++ b/src/page/footer.html
@@ -8,7 +8,6 @@