# HG changeset patch # User Robert McIntyre # Date 1321325070 25200 # Node ID 2a6ede6d8ad89c2feb23b8d23bd3d32650645590 # Parent b1b90c4ab0bf725f0a9d6d2ee18432eb26495377 problem was that the skeleton was not 'ready' diff -r b1b90c4ab0bf -r 2a6ede6d8ad8 org/body.org --- a/org/body.org Mon Nov 14 18:46:34 2011 -0700 +++ b/org/body.org Mon Nov 14 19:44:30 2011 -0700 @@ -58,7 +58,6 @@ (first (seq (.getChildren (load-blender-model "Models/anim2/worm3.blend"))))) - (defprotocol Textual (text [something] "Display a detailed textual analysis of the given object.")) @@ -108,18 +107,30 @@ node ) +(defn + green-x-ray [] + (doto (Material. (asset-manager) + "Common/MatDefs/Misc/Unshaded.j3md") + (.setColor "Color" ColorRGBA/Green) + (-> (.getAdditionalRenderState) (.setDepthTest + false)))) + (defn view-skeleton [node] (let [sd + (doto - (SkeletonDebugger. "aurellem-skel-debug" (skel node)) - (.setMaterial - (doto (Material. (asset-manager) - "Common/MatDefs/Misc/Unshaded.j3md") - (-> (.getAdditionalRenderState) (.setDepthTest - false)))))] - - (.attachChild debug-node sd))) + (SkeletonDebugger. "aurellem-skel-debug" + (skel node)) + (.setMaterial (green-x-ray)))] + (view (doto (Node. "view node") + (.attachChild sd) + + + + ;;(.attachChild node) + )))) + (defn init-debug-skel-node [f debug-node skeleton] @@ -131,19 +142,26 @@ (println (.getName b) " -- " (f b))) bones)) - + (dorun (map #(.attachChild debug-node - (sphere 0.1 - :position (f %) - :rotation (.getWorldBindRotation %) - :physical? false)) + (doto + (sphere 0.1 + :position (f %) + :physical? false) + (.setMaterial (green-x-ray)))) bones))) debug-node) (defn skel [node] - (.getSkeleton (.getControl node SkeletonControl))) + (doto + (.getSkeleton + (.getControl node SkeletonControl)) + ;; this is necessary to force the skeleton to have accurate world + ;; transforms before it is rendered to the screen. + (.resetAndUpdate))) +