| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | import Check from "../Core/Check.js";/** * An enum describing the built-in instance attribute semantics. * * @enum {String} * * @private */const InstanceAttributeSemantic = {  /**   * Per-instance translation.   *   * @type {String}   * @constant   */  TRANSLATION: "TRANSLATION",  /**   * Per-instance rotation.   *   * @type {String}   * @constant   */  ROTATION: "ROTATION",  /**   * Per-instance scale.   *   * @type {String}   * @constant   */  SCALE: "SCALE",  /**   * Per-instance feature ID.   *   * @type {String}   * @constant   */  FEATURE_ID: "_FEATURE_ID",};/** * Gets the instance attribute semantic matching the glTF attribute semantic. * * @returns {InstanceAttributeSemantic} The instance attribute semantic, or undefined if there is no match. * * @private */InstanceAttributeSemantic.fromGltfSemantic = function (gltfSemantic) {  //>>includeStart('debug', pragmas.debug);  Check.typeOf.string("gltfSemantic", gltfSemantic);  //>>includeEnd('debug')  let semantic = gltfSemantic;  // Strip the set index from the semantic  const setIndexRegex = /^(\w+)_\d+$/;  const setIndexMatch = setIndexRegex.exec(gltfSemantic);  if (setIndexMatch !== null) {    semantic = setIndexMatch[1];  }  switch (semantic) {    case "TRANSLATION":      return InstanceAttributeSemantic.TRANSLATION;    case "ROTATION":      return InstanceAttributeSemantic.ROTATION;    case "SCALE":      return InstanceAttributeSemantic.SCALE;    case "_FEATURE_ID":      return InstanceAttributeSemantic.FEATURE_ID;  }  return undefined;};export default Object.freeze(InstanceAttributeSemantic);
 |