text: import { arrMakeFlat, EEntType, idsBreak, idsMake, isEmptyArr, } from '@design-automation/mobius-sim';
  import { checkIDs, ID } from '../../../_check_ids';
  import * as chk from '../../../_check_types';
  // ================================================================================================
  /**
   * Divides edges into a set of shorter edges.
   * \n
   * - If the `by_number` method is selected, then each edge is divided into
   * a fixed number of equal length shorter edges.
   * - If the `by_length` method is selected, then each edge is divided into
   * shorter edges of the specified length.
   * - The length of the last segment will be the remainder.
   * - If the `by_min_length` method is selected,
   * then the edge is divided into the number of shorter edges
   * with lengths equal to or greater than the minimum length specified.
   * - If the `by_max_length` method is selected,
   * then the edge is divided into the number of shorter edges
   * with lengths equal to or less than the maximum length specified.
   * \n
   * @param __model__
   * @param entities Edges, or entities from which edges can be extracted.
   * @param divisor Segment length or number of segments.
   * @param method Enum, select the method for dividing edges.
   * @returns Entities, a list of new edges resulting from the divide operation.
   * @example `segments1 = make.Divide(edge1, 5, by_number)`
   * @example_info Creates a list of 5 equal length edges from edge1.
   * @example `segments2 = make.Divide(edge1, 5, by_length)`
   * @example_info If edge1 has length 13, creates two new edges of length 5 and one new edge of length 3.
   */
  export function Divide(__model__, entities, divisor, method) {
      entities = arrMakeFlat(entities);
      if (isEmptyArr(entities)) {
          return [];
      }
      // --- Error Check ---
      const fn_name = 'edit.Divide';
      let ents_arr;
      if (__model__.debug) {
          ents_arr = checkIDs(__model__, fn_name, 'entities', entities, [ID.isID, ID.isIDL1], [EEntType.EDGE, EEntType.WIRE, EEntType.PLINE, EEntType.PGON]);
          chk.checkArgs(fn_name, 'divisor', divisor, [chk.isNum]);
      }
      else {
          ents_arr = idsBreak(entities);
      }
      // --- Error Check ---
      const new_ents_arr = __model__.modeldata.funcs_edit.divide(ents_arr, divisor, method);
      // return the ids
      return idsMake(new_ents_arr);
  }
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGl2aWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvZnVuY3Rpb25zL2VkaXQvRGl2aWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBQ1gsUUFBUSxFQUVSLFFBQVEsRUFDUixPQUFPLEVBQ1AsVUFBVSxHQUdiLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssR0FBRyxNQUFNLHVCQUF1QixDQUFDO0FBSzdDLG1HQUFtRztBQUNuRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxTQUFrQixFQUFFLFFBQW1CLEVBQUUsT0FBZSxFQUFFLE1BQXVCO0lBQ3BHLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFVLENBQUM7SUFDMUMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztLQUFFO0lBQ3hDLHNCQUFzQjtJQUN0QixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUM7SUFDOUIsSUFBSSxRQUF1QixDQUFDO0lBQzVCLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRTtRQUNqQixRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFDNUQsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBa0IsQ0FBQztRQUN0RyxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDM0Q7U0FBTTtRQUNILFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFrQixDQUFDO0tBQ2xEO0lBQ0Qsc0JBQXNCO0lBQ3RCLE1BQU0sWUFBWSxHQUFrQixTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRyxpQkFBaUI7SUFDakIsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFVLENBQUM7QUFDMUMsQ0FBQyJ9