VRMLLoader.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. * @author Bart McLeod / http://spaceweb.nl/
  4. */
  5. /**
  6. *
  7. * @param manager
  8. * @param parser VRMLparser based on PEG.js grammar
  9. * @param VrmlParser.Renderer.ThreeJs renderer
  10. * @constructor
  11. */
  12. THREE.VRMLLoader = function (parser, manager, debug) {
  13. this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
  14. this.parser = parser;
  15. this.debug = debug;
  16. };
  17. THREE.VRMLLoader.prototype = {
  18. constructor: THREE.VRMLLoader,
  19. log: function (obj) {
  20. if ( this.debug ) {
  21. console.log(obj);
  22. }
  23. },
  24. parse: function (data) {
  25. try {
  26. var tree = this.parser.parse(data);
  27. this.log(tree);
  28. return tree;
  29. } catch ( e ) {
  30. this.log('Exception with message ' + e.message);
  31. if ( undefined !== e.location ) {
  32. this.log('Exception at location start: offset: ' + e.location.start.offset + ' line: ' + e.location.start.line + ' column: ' + e.location.start.column);
  33. this.log('Exception at location end: offset: ' + e.location.end.offset + ' line: ' + e.location.end.line + ' column: ' + e.location.end.column);
  34. }
  35. return;
  36. }
  37. },
  38. load: function (url, onLoad, onProgress, onError) {
  39. var scope = this;
  40. var loader = new THREE.FileLoader(this.manager);
  41. loader.load(url, function (text) {
  42. onLoad(scope.parse(text));
  43. }, onProgress, onError);
  44. },
  45. setCrossOrigin: function (value) {
  46. this.crossOrigin = value;
  47. },
  48. };