|
@@ -6,21 +6,30 @@ class Model extends FileView {
|
|
|
var obj : h3d.scene.Object;
|
|
|
var scene : hide.comp.Scene;
|
|
|
var control : h3d.scene.CameraController;
|
|
|
- var tree : hide.comp.IconTree;
|
|
|
+ var tree : hide.comp.SceneTree;
|
|
|
var overlay : Element;
|
|
|
+ var properties : hide.comp.PropsEditor;
|
|
|
|
|
|
- override function onDisplay( e : Element ) {
|
|
|
- e.html('
|
|
|
+ override function onDisplay() {
|
|
|
+ root.html('
|
|
|
<div class="flex vertical">
|
|
|
<div class="toolbar"></div>
|
|
|
- <div class="scene">
|
|
|
- <div class="hide-scene-layer hide-scroll"></div>
|
|
|
+ <div class="flex">
|
|
|
+ <div class="scene">
|
|
|
+ <div class="hide-scroll hide-scene-layer">
|
|
|
+ <div class="tree"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="props">
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
');
|
|
|
- tools = new hide.comp.Toolbar(e.find(".toolbar"));
|
|
|
- overlay = e.find(".hide-scene-layer");
|
|
|
- scene = new hide.comp.Scene(e.find(".scene"));
|
|
|
+ tools = new hide.comp.Toolbar(root.find(".toolbar"));
|
|
|
+ overlay = root.find(".hide-scene-layer .tree");
|
|
|
+ properties = new hide.comp.PropsEditor(root.find(".props"));
|
|
|
+ properties.saveDisplayKey = "Model";
|
|
|
+ scene = new hide.comp.Scene(root.find(".scene"));
|
|
|
scene.onReady = init;
|
|
|
}
|
|
|
|
|
@@ -29,8 +38,21 @@ class Model extends FileView {
|
|
|
|
|
|
new h3d.scene.Object(scene.s3d).addChild(obj);
|
|
|
control = new h3d.scene.CameraController(scene.s3d);
|
|
|
- tree = new hide.comp.SceneTree(obj,overlay, obj.name != null);
|
|
|
- resetCamera();
|
|
|
+ tree = new hide.comp.SceneTree(obj, overlay, obj.name != null);
|
|
|
+ tree.onSelectMaterial = function(m) {
|
|
|
+ properties.clear();
|
|
|
+ properties.addMaterial(m);
|
|
|
+ }
|
|
|
+
|
|
|
+ this.saveDisplayKey = "Model:"+state.path;
|
|
|
+ var cam = getDisplayState("Camera");
|
|
|
+ if( cam == null )
|
|
|
+ scene.resetCamera(obj, 1.5);
|
|
|
+ else {
|
|
|
+ scene.s3d.camera.pos.set(cam.x, cam.y, cam.z);
|
|
|
+ scene.s3d.camera.target.set(cam.tx, cam.ty, cam.tz);
|
|
|
+ }
|
|
|
+ control.loadFromCamera();
|
|
|
|
|
|
var anims = listAnims();
|
|
|
if( anims.length > 0 ) {
|
|
@@ -53,10 +75,20 @@ class Model extends FileView {
|
|
|
}
|
|
|
|
|
|
scene.init(props);
|
|
|
+ scene.onUpdate = update;
|
|
|
+ tools.addButton("video-camera", "Reset Camera", function() {
|
|
|
+ scene.resetCamera(obj,1.5);
|
|
|
+ control.loadFromCamera();
|
|
|
+ });
|
|
|
//tools.addButton("cube","Test");
|
|
|
//tools.addToggle("bank","Test toggle");
|
|
|
}
|
|
|
|
|
|
+ function update(dt:Float) {
|
|
|
+ var cam = scene.s3d.camera;
|
|
|
+ saveDisplayState("Camera", { x : cam.pos.x, y : cam.pos.y, z : cam.pos.z, tx : cam.target.x, ty : cam.target.y, tz : cam.target.z });
|
|
|
+ }
|
|
|
+
|
|
|
function listAnims() {
|
|
|
var dirs : Array<String> = props.get("hmd.animPaths");
|
|
|
if( dirs == null ) dirs = [];
|
|
@@ -74,11 +106,6 @@ class Model extends FileView {
|
|
|
return anims;
|
|
|
}
|
|
|
|
|
|
- function resetCamera() {
|
|
|
- scene.resetCamera(obj);
|
|
|
- control.loadFromCamera();
|
|
|
- }
|
|
|
-
|
|
|
static var _ = FileTree.registerExtension(Model,["hmd","fbx","scn"],{ icon : "cube" });
|
|
|
|
|
|
}
|