|
@@ -7,23 +7,22 @@ class Model extends FileView {
|
|
|
var scene : hide.comp.Scene;
|
|
|
var control : h3d.scene.CameraController;
|
|
|
var tree : hide.comp.IconTree;
|
|
|
+ var scroll : hide.comp.ScrollZone;
|
|
|
|
|
|
override function onDisplay( e : Element ) {
|
|
|
tools = new hide.comp.Toolbar(e);
|
|
|
var cont = new Element('<div class="hide-scene-layer">').appendTo(tools.content);
|
|
|
- var scroll = new hide.comp.ScrollZone(cont);
|
|
|
- tree = new hide.comp.IconTree(scroll.content);
|
|
|
- tree.get = getSceneElements;
|
|
|
+ scroll = new hide.comp.ScrollZone(cont);
|
|
|
scene = new hide.comp.Scene(tools.content);
|
|
|
scene.onReady = init;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
function init() {
|
|
|
obj = scene.loadModel(state.path);
|
|
|
new h3d.scene.Object(scene.s3d).addChild(obj);
|
|
|
control = new h3d.scene.CameraController(scene.s3d);
|
|
|
+ tree = new hide.comp.SceneTree(obj,scroll.content);
|
|
|
resetCamera();
|
|
|
- tree.init();
|
|
|
|
|
|
var anims = listAnims();
|
|
|
if( anims.length > 0 ) {
|
|
@@ -44,9 +43,9 @@ class Model extends FileView {
|
|
|
obj.playAnimation(anim);
|
|
|
};
|
|
|
}
|
|
|
-
|
|
|
- tools.addButton("cube","Test");
|
|
|
- tools.addToggle("bank","Test toggle");
|
|
|
+
|
|
|
+ //tools.addButton("cube","Test");
|
|
|
+ //tools.addToggle("bank","Test toggle");
|
|
|
}
|
|
|
|
|
|
function listAnims() {
|
|
@@ -65,43 +64,6 @@ class Model extends FileView {
|
|
|
return anims;
|
|
|
}
|
|
|
|
|
|
- function getSceneElements( id : String ) {
|
|
|
- var root = obj.parent;
|
|
|
- var path = id == null ? "" : id+"/";
|
|
|
- if( id != null ) {
|
|
|
- var parts = [for(p in id.split("/")) Std.parseInt(p)];
|
|
|
- for( p in parts )
|
|
|
- root = root.getChildAt(p);
|
|
|
- }
|
|
|
- var elements : Array<hide.comp.IconTree.IconTreeItem> = [
|
|
|
- for( i in 0...root.numChildren ) {
|
|
|
- var c = root.getChildAt(i);
|
|
|
- {
|
|
|
- id : path+i,
|
|
|
- text : c.name,
|
|
|
- icon : "fa fa-" + (c.isMesh() ? (Std.is(c,h3d.scene.Skin) ? "male" : "cube") : "circle-o"),
|
|
|
- children : c.isMesh() || c.numChildren > 0,
|
|
|
- }
|
|
|
- }
|
|
|
- ];
|
|
|
- if( root.isMesh() ) {
|
|
|
- function makeMaterial( m : h3d.mat.Material, index : Int ) : hide.comp.IconTree.IconTreeItem {
|
|
|
- return {
|
|
|
- id : path+"mat"+index,
|
|
|
- text : m.name,
|
|
|
- icon : "fa fa-photo",
|
|
|
- };
|
|
|
- }
|
|
|
- var multi = Std.instance(root,h3d.scene.MultiMaterial);
|
|
|
- if( multi != null )
|
|
|
- for( m in multi.materials )
|
|
|
- elements.push(makeMaterial(m,multi.materials.indexOf(m)));
|
|
|
- else
|
|
|
- elements.push(makeMaterial(root.toMesh().material,0));
|
|
|
- }
|
|
|
- return elements;
|
|
|
- }
|
|
|
-
|
|
|
function resetCamera() {
|
|
|
var b = obj.getBounds();
|
|
|
var dx = Math.max(Math.abs(b.xMax),Math.abs(b.xMin));
|
|
@@ -112,9 +74,9 @@ class Model extends FileView {
|
|
|
var zang = Math.PI * 0.4;
|
|
|
scene.s3d.camera.pos.set(Math.sin(zang) * Math.cos(ang) * dist, Math.sin(zang) * Math.sin(ang) * dist, Math.cos(zang) * dist);
|
|
|
scene.s3d.camera.target.set(0, 0, (b.zMax + b.zMin) * 0.5);
|
|
|
- control.loadFromCamera();
|
|
|
+ control.loadFromCamera();
|
|
|
}
|
|
|
|
|
|
- static var _ = FileTree.registerExtension(Model,["hmd","fbx"],{ icon : "cube" });
|
|
|
+ static var _ = FileTree.registerExtension(Model,["hmd","fbx","scn"],{ icon : "cube" });
|
|
|
|
|
|
}
|