MaterialXLog.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. const MaterialXLogCodes = {
  2. UNSUPPORTED_NODE: {
  3. label: 'unsupported-node',
  4. severity: 'error',
  5. },
  6. IGNORED_SURFACE_INPUT: {
  7. label: 'ignored-surface-input',
  8. severity: 'warning',
  9. },
  10. MISSING_REFERENCE: {
  11. label: 'missing-reference',
  12. severity: 'error',
  13. },
  14. MISSING_MATERIAL: {
  15. label: 'missing-material',
  16. severity: 'error',
  17. },
  18. INVALID_VALUE: {
  19. label: 'invalid-value',
  20. severity: 'error',
  21. },
  22. UNKNOWN_INPUT: {
  23. label: 'unknown-input',
  24. severity: 'error',
  25. },
  26. INVALID_OUTPUT_CONNECTION: {
  27. label: 'invalid-output-connection',
  28. severity: 'error',
  29. },
  30. TYPE_MISMATCH: {
  31. label: 'type-mismatch',
  32. severity: 'error',
  33. },
  34. };
  35. class MaterialXLog {
  36. constructor() {
  37. this.entries = [];
  38. }
  39. get errors() {
  40. return this.entries.filter( ( entry ) => entry.severity === 'error' );
  41. }
  42. get warnings() {
  43. return this.entries.filter( ( entry ) => entry.severity === 'warning' );
  44. }
  45. add( code, message, nodeName ) {
  46. const entry = {
  47. code: code.label,
  48. severity: code.severity,
  49. message,
  50. };
  51. if ( nodeName !== undefined && nodeName !== null ) {
  52. entry.nodeName = nodeName;
  53. }
  54. this.entries.push( entry );
  55. }
  56. }
  57. export { MaterialXLogCodes, MaterialXLog };
粤ICP备19079148号