PageRenderTime 41ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 1ms

/src/aerys/minko/type/parser/collada/instance/InstanceEffect.as

https://bitbucket.org/HopeSky/mars_nd2d
ActionScript | 62 lines | 52 code | 10 blank | 0 comment | 1 complexity | 7ae0fb7c1e81d45712acb8988da4deee MD5 | raw file
  1. package aerys.minko.type.parser.collada.instance
  2. {
  3. import aerys.minko.Minko;
  4. import aerys.minko.render.material.Material;
  5. import aerys.minko.scene.node.ISceneNode;
  6. import aerys.minko.type.loader.parser.ParserOptions;
  7. import aerys.minko.type.log.DebugLevel;
  8. import aerys.minko.type.parser.collada.ColladaDocument;
  9. import aerys.minko.type.parser.collada.resource.IResource;
  10. import aerys.minko.type.parser.collada.resource.effect.Effect;
  11. public class InstanceEffect implements IInstance
  12. {
  13. private static const NS : Namespace = new Namespace("http://www.collada.org/2005/11/COLLADASchema");
  14. private var _sourceId : String;
  15. private var _setParams : Object;
  16. private var _document : ColladaDocument;
  17. public function get sourceId () : String
  18. {
  19. return _sourceId;
  20. }
  21. public function get resource() : IResource
  22. {
  23. return _document.getEffectById(_sourceId);
  24. }
  25. public static function createFromXML(xml : XML,
  26. document : ColladaDocument) : InstanceEffect
  27. {
  28. var sourceId : String = String(xml.@url).substr(1);
  29. for each (var setparam : XML in xml.NS::setparam)
  30. Minko.log(DebugLevel.PLUGIN_WARNING, 'Collada setparam instruction is not supported.');
  31. return new InstanceEffect(sourceId, new Object(), document);
  32. }
  33. public function InstanceEffect(sourceId : String,
  34. setParams : Object,
  35. document : ColladaDocument)
  36. {
  37. _sourceId = sourceId;
  38. _setParams = setParams;
  39. _document = document;
  40. }
  41. public function createMaterial() : Material
  42. {
  43. return Effect(resource).createMaterial(_setParams);
  44. }
  45. public function createSceneNode(options : ParserOptions,
  46. sourceIdToSceneNode : Object,
  47. scopedIdToSceneNode : Object) : ISceneNode
  48. {
  49. throw new Error('Effect instances cannot be mapped to scene nodes');
  50. }
  51. }
  52. }