RepliCAD

Форк
0
/
definitionMaps.ts 
41 строка · 1.1 Кб
1
import { getOC } from "./oclib.js";
2

3
export type CurveType =
4
  | "LINE"
5
  | "CIRCLE"
6
  | "ELLIPSE"
7
  | "HYPERBOLA"
8
  | "PARABOLA"
9
  | "BEZIER_CURVE"
10
  | "BSPLINE_CURVE"
11
  | "OFFSET_CURVE"
12
  | "OTHER_CURVE";
13

14
let CURVE_TYPES_MAP: Map<any, CurveType> | null = null;
15

16
const getCurveTypesMap = (refresh?: boolean): Map<any, CurveType> => {
17
  if (CURVE_TYPES_MAP && !refresh) return CURVE_TYPES_MAP;
18

19
  const oc = getOC();
20
  const ga = oc.GeomAbs_CurveType;
21

22
  CURVE_TYPES_MAP = new Map([
23
    [ga.GeomAbs_Line, "LINE"],
24
    [ga.GeomAbs_Circle, "CIRCLE"],
25
    [ga.GeomAbs_Ellipse, "ELLIPSE"],
26
    [ga.GeomAbs_Hyperbola, "HYPERBOLA"],
27
    [ga.GeomAbs_Parabola, "PARABOLA"],
28
    [ga.GeomAbs_BezierCurve, "BEZIER_CURVE"],
29
    [ga.GeomAbs_BSplineCurve, "BSPLINE_CURVE"],
30
    [ga.GeomAbs_OffsetCurve, "OFFSET_CURVE"],
31
    [ga.GeomAbs_OtherCurve, "OTHER_CURVE"],
32
  ]);
33
  return CURVE_TYPES_MAP;
34
};
35

36
export const findCurveType = (type: any): CurveType => {
37
  let shapeType = getCurveTypesMap().get(type);
38
  if (!shapeType) shapeType = getCurveTypesMap(true).get(type);
39
  if (!shapeType) throw new Error("unknown type");
40
  return shapeType;
41
};
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.