topical media & game development

talk show tell print

student-ar-org-ascollada-core-DaeEntity.ax

student-ar-org-ascollada-core-DaeEntity.ax [swf] flex


  /*
   * Copyright 2007 (c) Tim Knip, ascollada.org.
   *
   * Permission is hereby granted, free of charge, to any person
   * obtaining a copy of this software and associated documentation
   * files (the "Software"), to deal in the Software without
   * restriction, including without limitation the rights to use,
   * copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the
   * Software is furnished to do so, subject to the following
   * conditions:
   *
   * The above copyright notice and this permission notice shall be
   * included in all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
   * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
   * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
   * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
   * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
   * OTHER DEALINGS IN THE SOFTWARE.
   */
   
  package org.ascollada.core {
          import org.ascollada.ASCollada;
          import org.ascollada.namespaces.*;
          import org.ascollada.utils.Logger;
          import org.ascollada.utils.StringUtil;
          
          

  
          public class @ax-student-ar-org-ascollada-core-DaeEntity {
                  
                  

  
                  public var id:String;
                  
                  

  
                  public var name:String;
                  
                  

  
                  public var sid:String;
                  
                  

  
                  public var asset:DaeAsset;
                  
                  

  
                  public var extras:Object;
                  
                  

  
                  public var async:Boolean;
                  
                  
@param node

  
                  public function @ax-student-ar-org-ascollada-core-DaeEntity( node:XML = null, async:Boolean = false ) {
                          this.async = async;
                          if( node )
                                  read( node );
                  }
                  
                  
@param node @param name @return

  
                  public function getAttributeAsFloat( node:XML, name:String, defaultValue:Number = 0 ):Number {
                          var attr:String = getAttribute(node, name);
                          return (isNaN(parseFloat(attr)) ? defaultValue : parseFloat(attr));
                  }
                  
                  
@param node @param name @return

  
                  public function getAttributeAsInt( node:XML, name:String, defaultValue:int = 0 ):int {
                          var attr:String = getAttribute(node, name);
                          return (isNaN(parseInt(attr, 10)) ? defaultValue : parseInt(attr, 10));
                  }
                  
                  
@param node @param name @param stripPound @return

  
                  public function getAttribute( node:XML, name:String, stripPound:Boolean = true ):String {
                          var attr:XMLList = node.attribute(name);
                          var ret:String = attr.length() ? attr.toString() : "";
                          if( stripPound && ret.indexOf("#") == 0 )
                                  ret = ret.split("#")[1];
                          return ret;
                  }
  
                  
@param node @return

  
                  public function getBools( node:XML ):Array {
                          var arr:Array = getStrings( node );
                          for( var i:int = 0; i < arr.length; i++ )
                                  arr[i] = (arr[i] == "true" ? true : false);
                          return arr;
                  }
                  
                  
@param node @return

  
                  public function getFloats( node:XML ):Array {
                          var arr:Array = getStrings( node );
                          for( var i:int = 0; i < arr.length; i++ )
                                  arr[i] = parseFloat(arr[i]);
                          return arr;
                  }
                  
                  
@param node @return

  
                  public function getInts( node:XML ):Array {
                          var arr:Array = getStrings( node );
                          for( var i:int = 0; i < arr.length; i++ )
                                  arr[i] = parseInt( StringUtil.trim(arr[i]), 10 );
                          return arr;
                  }
                  
                  
@param node @return

  
                  public function getStrings( node:XML ):Array {
                          return StringUtil.trim(node.text().toString()).split(/\s+/);
                  }
                  
                  
@param parent @param nodeName @return

  
                  public function getNode( parent:XML, nodeName:String ):XML {
                          return parent.collada::[nodeName][0];
                  }
                                  
                  
@param parent @param nodeName @return

  
                  public function getNodeById( parent:XML, nodeName:String, id:String ):XML {
                          return parent..collada::[nodeName].(@[ASCollada.DAE_ID_ATTRIBUTE] == id)[0];
                  }
  
                  
@param parent @return

  
                  public function getNodeContent( parent:XML ):String {
                          return (parent ? parent.text().toString() : "");
                  }
                  
                  
@param parent @param nodeName @return

  
                  public function getNodeList( parent:XML, nodeName:String ):XMLList {
                          return parent.collada::[nodeName];
                  }
                  
                  
@return

  
                  public function read( node:XML ):void {
                          this.extras = new Object();
                          this.id = getAttribute(node, ASCollada.DAE_ID_ATTRIBUTE);
                          this.name = getAttribute(node, ASCollada.DAE_NAME_ATTRIBUTE);
                          this.sid = getAttribute(node, ASCollada.DAE_SID_ATTRIBUTE);
                  }
                  
                  public function write( indent:String = "" ):String {
                          return indent;
                  }
                  
                  public function writeSimpleEndElement( nodeName:String, indent:String = "" ):String {
                          return indent + '</' + nodeName + '>\n';
                  }
                  
                  public function writeSimpleStartElement( nodeName:String, indent:String = "" ):String {
                          return indent + '<' + nodeName + '>\n';
                  }
          }        
  }
  


(C) Æliens 27/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.