// Copyright 2012 United States Government, as represented by the Secretary of Defense, Under // Secretary of Defense (Personnel & Readiness). // // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except // in compliance with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software distributed under the License // is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express // or implied. See the License for the specific language governing permissions and limitations under // the License. define( [ "module", "vwf/model" ], function( module, model ) { // vwf/model/example/scene.js is a demonstration of a scene manager. return model.load( module, { // == Module Definition ==================================================================== // -- pipeline ----------------------------------------------------------------------------- // pipeline: [ log ], // vwf <=> log <=> scene // -- initialize --------------------------------------------------------------------------- initialize: function() { this.objects = {}; // maps id => { property: value, ... } self = this; this.osc = null; //window._OSCModel = this; }, // == Model API ============================================================================ // -- creatingNode ------------------------------------------------------------------------- creatingNode: function( nodeID, childID, childExtendsID, childImplementsIDs, childSource, childType, childURI, childName, callback /* ( ready ) */ ) { }, // -- deletingNode ------------------------------------------------------------------------- deletingNode: function( nodeID ) { }, // -- addingChild -------------------------------------------------------------------------- addingChild: function( nodeID, childID, childName ) { }, // -- removingChild ------------------------------------------------------------------------ removingChild: function( nodeID, childID ) { }, // -- parenting ---------------------------------------------------------------------------- parenting: function( nodeID ) { }, // -- childrening -------------------------------------------------------------------------- childrening: function( nodeID ) { }, // -- naming ------------------------------------------------------------------------------- naming: function( nodeID ) { }, // -- creatingProperty --------------------------------------------------------------------- creatingProperty: function( nodeID, propertyName, propertyValue ) { // var object = this.objects[nodeID] || ( this.objects[nodeID] = {} ); // return object[propertyName] = propertyValue; }, // -- initializingProperty ----------------------------------------------------------------- initializingProperty: function( nodeID, propertyName, propertyValue ) { // var object = this.objects[nodeID] || ( this.objects[nodeID] = {} ); // return object[propertyName] = propertyValue; }, // TODO: deletingProperty // -- settingProperty ---------------------------------------------------------------------- settingProperty: function( nodeID, propertyName, propertyValue ) { // var object = this.objects[nodeID] || ( this.objects[nodeID] = {} ); // return object[propertyName] = propertyValue; }, // -- gettingProperty ---------------------------------------------------------------------- gettingProperty: function( nodeID, propertyName, propertyValue ) { // var object = this.objects[nodeID]; // return object && object[propertyName]; }, // -- creatingMethod ----------------------------------------------------------------------- creatingMethod: function( nodeID, methodName, methodParameters, methodBody ) { }, // TODO: deletingMethod // -- callingMethod ------------------------------------------------------------------------ callingMethod: function( nodeID, methodName, methodParameters ) { if (methodName == 'sendOSC') { if (this.osc == null) { this.osc = _OSCManager; } // var msg = { // address: "/hello/from/oscjs", // args: [Math.random()] // }; this.osc.port.send(methodParameters); console.log('send: ' + methodParameters); } }, // -- creatingEvent ------------------------------------------------------------------------ creatingEvent: function( nodeID, eventName, eventParameters ) { }, // TODO: deletingEvent // -- firingEvent -------------------------------------------------------------------------- firingEvent: function( nodeID, eventName, eventParameters ) { }, // -- executing ---------------------------------------------------------------------------- executing: function( nodeID, scriptText, scriptType ) { } } ); } );