pimath 0.0.133 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/pimath.js +2888 -3590
  2. package/package.json +38 -20
  3. package/types/algebra/equation.d.ts +102 -0
  4. package/types/algebra/equation.d.ts.map +1 -0
  5. package/types/algebra/equationSolver.d.ts +10 -0
  6. package/types/algebra/equationSolver.d.ts.map +1 -0
  7. package/types/algebra/factor.d.ts +46 -0
  8. package/types/algebra/factor.d.ts.map +1 -0
  9. package/types/algebra/linearSystem.d.ts +37 -0
  10. package/types/algebra/linearSystem.d.ts.map +1 -0
  11. package/{dist/maths → types}/algebra/monom.d.ts +95 -133
  12. package/types/algebra/monom.d.ts.map +1 -0
  13. package/types/algebra/polyFactor.d.ts +43 -0
  14. package/types/algebra/polyFactor.d.ts.map +1 -0
  15. package/types/algebra/polynom.d.ts +107 -0
  16. package/types/algebra/polynom.d.ts.map +1 -0
  17. package/types/algebra/rational.d.ts +41 -0
  18. package/types/algebra/rational.d.ts.map +1 -0
  19. package/{dist/maths → types}/coefficients/fraction.d.ts +69 -67
  20. package/types/coefficients/fraction.d.ts.map +1 -0
  21. package/{dist/maths → types}/coefficients/nthRoot.d.ts +4 -7
  22. package/types/coefficients/nthRoot.d.ts.map +1 -0
  23. package/{dist/maths → types}/geometry/circle.d.ts +14 -21
  24. package/types/geometry/circle.d.ts.map +1 -0
  25. package/types/geometry/geomMath.d.ts +9 -0
  26. package/types/geometry/geomMath.d.ts.map +1 -0
  27. package/types/geometry/line.d.ts +83 -0
  28. package/types/geometry/line.d.ts.map +1 -0
  29. package/types/geometry/line3.d.ts +58 -0
  30. package/types/geometry/line3.d.ts.map +1 -0
  31. package/types/geometry/matrix.d.ts +12 -0
  32. package/types/geometry/matrix.d.ts.map +1 -0
  33. package/types/geometry/plane3.d.ts +36 -0
  34. package/types/geometry/plane3.d.ts.map +1 -0
  35. package/types/geometry/point.d.ts +12 -0
  36. package/types/geometry/point.d.ts.map +1 -0
  37. package/{dist/maths → types}/geometry/triangle.d.ts +11 -34
  38. package/types/geometry/triangle.d.ts.map +1 -0
  39. package/types/geometry/vector.d.ts +55 -0
  40. package/types/geometry/vector.d.ts.map +1 -0
  41. package/types/geometry/vector3d.d.ts +37 -0
  42. package/types/geometry/vector3d.d.ts.map +1 -0
  43. package/types/helpers.d.ts +3 -0
  44. package/types/helpers.d.ts.map +1 -0
  45. package/types/index.d.ts +59 -0
  46. package/types/index.d.ts.map +1 -0
  47. package/types/numeric.d.ts +39 -0
  48. package/types/pimath.interface.d.ts +57 -0
  49. package/types/pimath.interface.d.ts.map +1 -0
  50. package/types/randomization/algebra/rndEquation.d.ts +4 -0
  51. package/types/randomization/algebra/rndEquation.d.ts.map +1 -0
  52. package/types/randomization/algebra/rndMonom.d.ts +4 -0
  53. package/types/randomization/algebra/rndMonom.d.ts.map +1 -0
  54. package/types/randomization/algebra/rndPolynom.d.ts +5 -0
  55. package/types/randomization/algebra/rndPolynom.d.ts.map +1 -0
  56. package/types/randomization/coefficient/rndFraction.d.ts +4 -0
  57. package/types/randomization/coefficient/rndFraction.d.ts.map +1 -0
  58. package/types/randomization/geometry/rndCircle.d.ts +4 -0
  59. package/types/randomization/geometry/rndCircle.d.ts.map +1 -0
  60. package/types/randomization/geometry/rndLine.d.ts +4 -0
  61. package/types/randomization/geometry/rndLine.d.ts.map +1 -0
  62. package/types/randomization/geometry/rndLine3.d.ts +4 -0
  63. package/types/randomization/geometry/rndLine3.d.ts.map +1 -0
  64. package/types/randomization/geometry/rndPoint.d.ts +4 -0
  65. package/types/randomization/geometry/rndPoint.d.ts.map +1 -0
  66. package/types/randomization/random.d.ts +20 -0
  67. package/types/randomization/random.d.ts.map +1 -0
  68. package/types/randomization/rndHelpers.d.ts +21 -0
  69. package/types/randomization/rndTypes.d.ts +64 -0
  70. package/types/randomization/rndTypes.d.ts.map +1 -0
  71. package/dist/main.d.ts +0 -39
  72. package/dist/maths/algebra/equation.d.ts +0 -120
  73. package/dist/maths/algebra/linearSystem.d.ts +0 -40
  74. package/dist/maths/algebra/logicalset.d.ts +0 -28
  75. package/dist/maths/algebra/polynom.d.ts +0 -155
  76. package/dist/maths/algebra/rational.d.ts +0 -44
  77. package/dist/maths/algebra/study/rationalStudy.d.ts +0 -14
  78. package/dist/maths/algebra/study.d.ts +0 -140
  79. package/dist/maths/geometry/line.d.ts +0 -102
  80. package/dist/maths/geometry/point.d.ts +0 -36
  81. package/dist/maths/geometry/vector.d.ts +0 -38
  82. package/dist/maths/numeric.d.ts +0 -28
  83. package/dist/maths/numexp.d.ts +0 -19
  84. package/dist/maths/randomization/random.d.ts +0 -26
  85. package/dist/maths/randomization/randomCore.d.ts +0 -7
  86. package/dist/maths/randomization/rndFraction.d.ts +0 -13
  87. package/dist/maths/randomization/rndGeometryCircle.d.ts +0 -13
  88. package/dist/maths/randomization/rndGeometryLine.d.ts +0 -13
  89. package/dist/maths/randomization/rndGeometryPoint.d.ts +0 -13
  90. package/dist/maths/randomization/rndHelpers.d.ts +0 -23
  91. package/dist/maths/randomization/rndMonom.d.ts +0 -13
  92. package/dist/maths/randomization/rndPolynom.d.ts +0 -14
  93. package/dist/maths/randomization/rndTypes.d.ts +0 -40
  94. package/dist/maths/shutingyard.d.ts +0 -59
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyFactor.d.ts","sourceRoot":"","sources":["../../src/algebra/polyFactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAkB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,qBAAa,UAAW,YACpB,aAAa,CAAC,UAAU,CAAC,EACzB,WAAW,CAAC,UAAU,CAAC,EACvB,QAAQ,CAAC,UAAU,CAAC;;gBAUR,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE;IAQ/D,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,IAAI;IAmBvE,KAAK,IAAI,UAAU;IAInB,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAuBlC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ;IAIjC,UAAU,IAAI,IAAI;IAsBlB,OAAO,IAAI,OAAO;IAWlB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ;IAU/G,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASnC,KAAK,IAAI,OAAO;IAIhB,MAAM,IAAI,OAAO;IAIjB,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAQvC,GAAG,IAAI,IAAI;IAKX,QAAQ,IAAI,IAAI;IAUhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKnC,SAAS,IAAI,UAAU;IAIvB,MAAM,IAAI,IAAI;IAgBd,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAKZ,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAIvC,IAAI,IAAI,IAAI;WAKL,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU;IAiBtD,IAAW,OAAO,IAAI,MAAM,EAAE,CAE7B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAEjC;IAED,IAAW,SAAS,IAAI,MAAM,EAAE,CAG/B;IAED,IAAI,MAAM,IAAI,IAAI,CAGjB;IACD,IAAI,OAAO,IAAI,IAAI,CAGlB;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IACD,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,IAAW,OAAO,IAAI,MAAM,CA+B3B;IAED,IAAW,GAAG,IAAI,MAAM,CA+BvB;CA0BJ"}
@@ -0,0 +1,107 @@
1
+ import { IAlgebra, IAnalyse, IExpression, InputAlgebra, InputValue, IPiMathObject, ISolution, literalType } from '../pimath.interface';
2
+ import { Fraction } from '../coefficients/fraction';
3
+ import { Monom } from './monom';
4
+
5
+ export type PolynomParsingType = InputValue<Polynom> | Monom;
6
+ export interface IEuclidean {
7
+ quotient: Polynom;
8
+ reminder: Polynom;
9
+ }
10
+ /**
11
+ * Polynom class can handle polynoms, reorder, resolve, ...
12
+ * ```
13
+ * let P = new Polynom('3x-4')
14
+ * ```
15
+ */
16
+ export declare class Polynom implements IPiMathObject<Polynom>, IExpression<Polynom>, IAnalyse<Polynom>, IAlgebra<Polynom> {
17
+ #private;
18
+ constructor(value: InputValue<Fraction>);
19
+ constructor(value: string);
20
+ constructor(value: Monom);
21
+ constructor(value: Polynom);
22
+ constructor(...values: InputValue<Fraction>[]);
23
+ constructor(...values: InputAlgebra<Polynom>[]);
24
+ /**
25
+ * Parse a string to a polynom.
26
+ * @param inputStr
27
+ * @param values
28
+ */
29
+ parse: (inputStr: PolynomParsingType, ...values: InputAlgebra<Monom>[]) => this;
30
+ /**
31
+ * Clone the polynom
32
+ */
33
+ clone: () => Polynom;
34
+ add: (...values: InputAlgebra<Polynom>[]) => Polynom;
35
+ commonMonom: () => Monom;
36
+ degree: (letter?: string) => Fraction;
37
+ derivative: (letter?: string) => Polynom;
38
+ divide: (value: InputAlgebra<Polynom>) => Polynom;
39
+ empty: () => this;
40
+ /**
41
+ * Divide the current polynom by another polynom.
42
+ * @param P
43
+ * returns {quotient: Polynom, reminder: Polynom}
44
+ */
45
+ euclidean: (P: Polynom) => IEuclidean;
46
+ evaluate: (values: literalType<Fraction | number> | InputValue<Fraction>, asNumeric?: boolean) => Fraction | number;
47
+ /**
48
+ * Factorize a polynom and store the best results in factors.
49
+ * @param letter
50
+ */
51
+ factorize: (letter?: string) => Polynom[];
52
+ gcdDenominator: () => number;
53
+ gcdNumerator: () => number;
54
+ getDenominators: () => number[];
55
+ getNumerators: () => number[];
56
+ getZeroes: () => ISolution[];
57
+ hasVariable(letter: string): boolean;
58
+ integrate: (a: InputValue<Fraction>, b: InputValue<Fraction>, letter?: string) => Fraction;
59
+ inverse(): Polynom | undefined;
60
+ isDeveloped: (polynomString: string) => boolean;
61
+ isDividableBy: (div: Polynom) => boolean;
62
+ isEqual: (P: Polynom) => boolean;
63
+ isOne(): boolean;
64
+ isOppositeAt: (P: Polynom) => boolean;
65
+ isReduced: (polynomString: string) => boolean;
66
+ isSameAs: (P: Polynom) => boolean;
67
+ isZero(): boolean;
68
+ lcmDenominator: () => number;
69
+ lcmNumerator: () => number;
70
+ letters: () => string[];
71
+ limitToInfinity: (letter?: string) => Fraction;
72
+ limitToNegativeInfinity: (letter?: string) => Fraction;
73
+ monomByDegree: (degree?: Fraction | number, letter?: string) => Monom;
74
+ monomByLetter: (letter: string) => Monom;
75
+ monomsByDegree: (degree?: number | Fraction, letter?: string) => Monom[];
76
+ multiply: (value: unknown) => Polynom;
77
+ one: () => this;
78
+ opposite: () => this;
79
+ pow: (nb: number) => Polynom;
80
+ primitive: (letter?: string) => Polynom;
81
+ reduce: () => Polynom;
82
+ reorder: (letter?: string, revert?: boolean) => this;
83
+ /**
84
+ * Replace a variable (letter) by a polynom.
85
+ * @param letter
86
+ * @param P
87
+ */
88
+ replaceBy: (letter: string, P: Polynom) => this;
89
+ root(): Polynom;
90
+ sqrt(): Polynom;
91
+ subtract: (...values: InputAlgebra<Polynom>[]) => Polynom;
92
+ /**
93
+ * Set the polynom to zero.
94
+ * @returns {this}
95
+ */
96
+ zero: () => this;
97
+ get display(): string;
98
+ get isMultiVariable(): boolean;
99
+ get length(): number;
100
+ get monoms(): Monom[];
101
+ set monoms(M: Monom[]);
102
+ get numberOfVars(): number;
103
+ get plotFunction(): string;
104
+ get tex(): string;
105
+ get variables(): string[];
106
+ get zeroes(): ISolution[];
107
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polynom.d.ts","sourceRoot":"","sources":["../../src/algebra/polynom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { IAlgebra, IAnalyse, IExpression, InputAlgebra, InputValue, IPiMathObject, literalType } from '../pimath.interface';
2
+ import { Fraction } from '../coefficients/fraction';
3
+ import { Polynom } from './polynom';
4
+
5
+ /**
6
+ * Rational class can handle rational polynoms
7
+ */
8
+ export declare class Rational implements IPiMathObject<Rational>, IExpression<Rational>, IAnalyse<Rational>, IAlgebra<Rational> {
9
+ #private;
10
+ constructor();
11
+ constructor(value: Rational);
12
+ constructor(numerator: InputAlgebra<Polynom>, denominator?: InputAlgebra<Polynom>);
13
+ get tex(): string;
14
+ get display(): string;
15
+ get numerator(): Polynom;
16
+ get denominator(): Polynom;
17
+ clone(): Rational;
18
+ parse(): Rational;
19
+ zero(): this;
20
+ one(): this;
21
+ add(value: InputValue<Rational>): Rational;
22
+ subtract(value: InputValue<Rational>): Rational;
23
+ opposite(): this;
24
+ multiply(value: InputValue<Rational>): this;
25
+ divide(value: InputValue<Rational>): this;
26
+ reduce(): Rational;
27
+ isEqual(value: InputValue<Rational>): boolean;
28
+ isZero(): boolean;
29
+ isOne(): boolean;
30
+ inverse(): this;
31
+ pow(value: number): Rational;
32
+ sqrt(): Rational | undefined;
33
+ root(): Rational | undefined;
34
+ derivative(): Rational | Rational[];
35
+ primitive(): Rational;
36
+ integrate(a: InputValue<Fraction>, b: InputValue<Rational>, letter?: string): Fraction;
37
+ get variables(): string[];
38
+ hasVariable(letter: string): boolean;
39
+ degree(): Fraction;
40
+ evaluate(values: literalType<Fraction | number> | InputValue<Fraction>, asNumeric?: boolean): Fraction | number | boolean;
41
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rational.d.ts","sourceRoot":"","sources":["../../src/algebra/rational.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAChI,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,qBAAa,QAAS,YAClB,aAAa,CAAC,QAAQ,CAAC,EACvB,WAAW,CAAC,QAAQ,CAAC,EACrB,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,QAAQ,CAAC;;;gBAMN,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC;IAcjF,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,KAAK,IAAI,QAAQ;IAOjB,KAAK,IAAI,QAAQ;IAIjB,IAAI,IAAI,IAAI;IAMZ,GAAG,IAAI,IAAI;IAOX,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ;IAI1C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ;IAI/C,QAAQ,IAAI,IAAI;IAKhB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI;IAW3C,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI;IAIzC,MAAM,IAAI,QAAQ;IAGlB,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO;IAG7C,MAAM,IAAI,OAAO;IAGjB,KAAK,IAAI,OAAO;IAGhB,OAAO,IAAI,IAAI;IASf,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAe5B,IAAI,IAAI,QAAQ,GAAG,SAAS;IAI5B,IAAI,IAAI,QAAQ,GAAG,SAAS;IAI5B,UAAU,IAAI,QAAQ,GAAG,QAAQ,EAAE;IAGnC,SAAS,IAAI,QAAQ;IAGrB,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ;IAItF,IAAI,SAAS,IAAI,MAAM,EAAE,CAKxB;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,MAAM,IAAI,QAAQ;IAIlB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;CAa5H"}
@@ -1,90 +1,92 @@
1
- export type FractionParsingType = number | string | Fraction;
1
+ import { compareSign, IExpression, InputValue, IPiMathObject } from '../pimath.interface';
2
+
2
3
  /**
3
4
  * The fraction class make possible to handle
4
- * TODO: Write the documentation correctly.
5
5
  * \\(\frac{a}{b}\\) or \\[\frac{a}{b}\\] values.
6
6
  */
7
- export declare class Fraction {
8
- private _denominator;
9
- private _numerator;
10
- constructor(value?: unknown, denominatorOrPeriodic?: number);
11
- get numerator(): number;
12
- set numerator(value: number);
13
- get denominator(): number;
14
- set denominator(value: number);
15
- get value(): number;
16
- get tex(): string;
17
- get texWithSign(): string;
18
- get display(): string;
19
- get frac(): string;
20
- get dfrac(): string;
21
- get tfrac(): string;
22
- static max: (...fractions: (Fraction | number)[]) => Fraction;
23
- static min: (...fractions: (Fraction | number)[]) => Fraction;
24
- static average: (...fractions: (Fraction | number)[]) => Fraction;
25
- static unique: (fractions: Fraction[], sorted?: boolean) => Fraction[];
26
- static sort: (fractions: Fraction[], reverse?: boolean) => Fraction[];
27
- isApproximative: () => boolean;
28
- isExact: () => boolean;
7
+ export declare class Fraction implements IPiMathObject<Fraction>, IExpression<Fraction> {
8
+ #private;
9
+ constructor();
10
+ constructor(value: InputValue<Fraction>);
11
+ constructor(numerator: number, denominator: number);
12
+ constructor(decimal: number, periodLength: number);
29
13
  /**
30
14
  * Parse the value to get the numerator and denominator
31
15
  * @param value : number or string to parse to get the fraction
32
16
  * @param denominatorOrPeriodic (optional|number) : length of the periodic part: 2.333333 => 1 or denominator value
33
17
  */
34
- parse: (value: unknown, denominatorOrPeriodic?: number) => Fraction;
18
+ parse: (value: InputValue<Fraction>, denominatorOrPeriodic?: number) => Fraction;
35
19
  clone: () => Fraction;
36
- zero: () => Fraction;
37
- one: () => Fraction;
38
- infinite: () => Fraction;
39
- invalid: () => Fraction;
40
- opposed: () => Fraction;
41
- add: (F: Fraction | number) => Fraction;
42
- subtract: (F: Fraction | number) => Fraction;
43
- multiply: (F: Fraction | number) => Fraction;
44
- xMultiply: (...values: (Fraction | number)[]) => Fraction;
45
- divide: (F: Fraction | number) => Fraction;
46
- invert: () => Fraction;
47
- pow: (p: number | Fraction) => Fraction;
48
- root: (p: number) => Fraction;
49
- sqrt: () => Fraction;
50
- abs: () => Fraction;
51
- reduce: () => Fraction;
52
- amplify: (k: number) => Fraction;
20
+ abs: () => this;
21
+ add: (F: InputValue<Fraction>) => Fraction;
22
+ amplify: (k: number) => this;
23
+ /**
24
+ * Simple function to determine if it's a fraction
25
+ */
26
+ areEquals: (...F: Fraction[]) => boolean;
53
27
  /**
54
28
  * Compare the current coefficient with another coefficient
55
- * @param F (Coefficient) The coefficient to compare
29
+ * @param F (Coefficient) The coefficient to _compare
56
30
  * @param sign (string| default is =): authorized values: =, <, <=, >, >= with some variations.
57
31
  */
58
- compare: (F: unknown, sign?: string) => boolean;
59
- lesser: (than: Fraction | number) => Boolean;
60
- leq: (than: Fraction | number) => Boolean;
61
- greater: (than: Fraction | number) => Boolean;
62
- geq: (than: Fraction | number) => Boolean;
32
+ compare: (F: InputValue<Fraction>, sign?: compareSign) => boolean;
33
+ divide: (F: Fraction | number) => Fraction;
34
+ infinite: () => this;
35
+ invalid: () => this;
36
+ inverse: () => this;
37
+ isApproximative: () => boolean;
63
38
  isEqual: (than: Fraction | number) => boolean;
64
- isNotEqual: (than: Fraction | number) => boolean;
65
- isOpposed: (p: Fraction) => boolean;
39
+ isEven: () => boolean;
40
+ isExact: () => boolean;
41
+ isFinite: () => boolean;
42
+ isGeq: (than: Fraction | number) => boolean;
43
+ isGreater: (than: Fraction | number) => boolean;
44
+ isInfinity: () => boolean;
66
45
  isInverted: (p: Fraction) => boolean;
67
- isZero: () => boolean;
46
+ isLeq: (than: Fraction | number) => boolean;
47
+ isLesser: (than: Fraction | number) => boolean;
48
+ isNaN: () => boolean;
49
+ isNatural: () => boolean;
50
+ isNegative: () => boolean;
51
+ isNegativeOne: () => boolean;
52
+ isNotEqual: (than: Fraction | number) => boolean;
68
53
  isNotZero: () => boolean;
54
+ isOdd: () => boolean;
69
55
  isOne: () => boolean;
70
- isNegativeOne: () => boolean;
56
+ isOpposite: (p: Fraction) => boolean;
71
57
  isPositive: () => boolean;
72
- isNegative: () => boolean;
73
- isStrictlyPositive: () => boolean;
74
- isStrictlyNegative: () => Boolean;
75
- isNaN: () => boolean;
76
- isInfinity: () => boolean;
77
- isFinite: () => boolean;
78
- isSquare: () => boolean;
58
+ isRational: () => boolean;
79
59
  isReduced: () => boolean;
80
- isNatural: () => boolean;
81
60
  isRelative: () => boolean;
82
- isRational: () => boolean;
83
- isEven: () => boolean;
84
- isOdd: () => boolean;
61
+ isSquare: () => boolean;
62
+ isStrictlyNegative: () => boolean;
63
+ isStrictlyPositive: () => boolean;
64
+ isZero: () => boolean;
65
+ multiply: (F: Fraction | number) => this;
66
+ one: () => this;
67
+ opposite: () => this;
68
+ pow: (p: number | Fraction) => Fraction;
69
+ reduce: () => this;
70
+ root: (p: number) => this;
85
71
  sign: () => number;
86
- /**
87
- * Simple function to determine if it's a fraction
88
- */
89
- areEquals: (...F: Fraction[]) => boolean;
72
+ sqrt: () => this;
73
+ subtract: (F: Fraction | number) => Fraction;
74
+ zero: () => this;
75
+ static average: (...fractions: (InputValue<Fraction>)[]) => Fraction;
76
+ static max: (...fractions: InputValue<Fraction>[]) => Fraction;
77
+ static min: (...fractions: (InputValue<Fraction>)[]) => Fraction;
78
+ static sort: (fractions: (InputValue<Fraction>)[], reverse?: boolean) => Fraction[];
79
+ static unique: (fractions: (InputValue<Fraction>)[]) => Fraction[];
80
+ static xMultiply: (...values: (InputValue<Fraction>)[]) => Fraction;
81
+ get denominator(): number;
82
+ set denominator(value: number);
83
+ get display(): string;
84
+ get numerator(): number;
85
+ set numerator(value: number);
86
+ get tfrac(): this;
87
+ get dfrac(): this;
88
+ get frac(): this;
89
+ get tex(): string;
90
+ get texWithSign(): string;
91
+ get value(): number;
90
92
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fraction.d.ts","sourceRoot":"","sources":["../../src/coefficients/fraction.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,7 @@
2
2
  * NthRoot is something like "a+b\sqrt{3}
3
3
  */
4
4
  export declare class NthRoot {
5
- private _radical;
6
- private _nth;
7
- private _coefficient;
8
- private _isValid;
5
+ #private;
9
6
  constructor(...values: number[]);
10
7
  get radical(): number;
11
8
  set radical(value: number);
@@ -16,8 +13,8 @@ export declare class NthRoot {
16
13
  get tex(): string;
17
14
  get display(): string;
18
15
  get value(): number;
19
- parse: (radical: number, nthroot?: number, coefficient?: number) => NthRoot;
20
- reduce: () => NthRoot;
21
- multiply: (N: NthRoot) => NthRoot;
16
+ parse: (radical: number, nthroot?: number, coefficient?: number) => this;
17
+ reduce: () => this;
18
+ multiply: (N: NthRoot) => this;
22
19
  hasRadical: () => boolean;
23
20
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nthRoot.d.ts","sourceRoot":"","sources":["../../src/coefficients/nthRoot.ts"],"names":[],"mappings":"AAIA,qBAAa,OAAO;;gBAMJ,GAAG,MAAM,EAAE,MAAM,EAAE;IAc/B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAExB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAQpB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAE5B;IAED,IAAI,GAAG,IAAI,MAAM,CAoBhB;IAED,IAAI,OAAO,IAAI,MAAM,CAoBpB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAKD,KAAK,YAAa,MAAM,YAAY,MAAM,gBAAgB,MAAM,KAAG,IAAI,CAStE;IAKD,MAAM,QAAO,IAAI,CAgBhB;IAED,QAAQ,MAAO,OAAO,KAAG,IAAI,CAG5B;IAKD,UAAU,QAAO,OAAO,CAEvB;CACJ"}
@@ -1,18 +1,20 @@
1
- import { Equation } from '../algebra/equation';
2
- import { Fraction } from '../coefficients/fraction';
3
1
  import { Line } from './line';
2
+ import { Fraction } from '../coefficients/fraction';
3
+ import { Equation } from '../algebra/equation';
4
+ import { IPiMathObject } from '../pimath.interface';
4
5
  import { Point } from './point';
5
6
 
6
- export declare class Circle {
7
- private _center;
8
- private _squareRadius;
9
- private _cartesian;
10
- private _exists;
11
- constructor(...values: unknown[]);
7
+ export declare class Circle implements IPiMathObject<Circle> {
8
+ #private;
9
+ constructor();
10
+ constructor(equation: string | Equation);
11
+ constructor(circle: Circle);
12
+ constructor(center: Point, radius: Fraction | number, square?: boolean);
13
+ constructor(center: Point, pointThrough: Point);
14
+ constructor(A: Point, B: Point, C: Point);
12
15
  get center(): Point;
13
16
  get squareRadius(): Fraction;
14
17
  get cartesian(): Equation;
15
- get exists(): boolean;
16
18
  get radius(): {
17
19
  tex: string;
18
20
  display: string;
@@ -29,18 +31,9 @@ export declare class Circle {
29
31
  relativePosition: (L: Line) => number;
30
32
  lineIntersection: (L: Line) => Point[];
31
33
  tangents: (P: Point | Fraction) => Line[];
32
- isPointOnCircle: (P: Point) => Boolean;
34
+ isPointOnCircle: (P: Point) => boolean;
33
35
  getPointsOnCircle: (numberIsInteger?: boolean) => Point[];
34
36
  clone(): Circle;
35
- private _tangentsThroughOnePointOnTheCircle;
36
- private _tangentsThroughOnePointOutsideTheCircle;
37
- private _tangentsWithSlope;
38
- private _reset;
39
- private parse;
40
- private _calculateCartesian;
41
- private _parseCopyCircle;
42
- private _parseCenterAndRadius;
43
- private _parseCenterAndPointThrough;
44
- private _parseEquation;
45
- private _parseThroughtThreePoints;
37
+ setRadius(radius: Fraction | number, square?: boolean): this;
38
+ parse(...values: unknown[]): this;
46
39
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle.d.ts","sourceRoot":"","sources":["../../src/geometry/circle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiB,MAAM,QAAQ,CAAA;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,qBAAa,MACT,YACA,aAAa,CAAC,MAAM,CAAC;;;gBAMT,QAAQ,EAAE,MAAM,GAAG,QAAQ;gBAC3B,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;gBAC1D,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK;gBAClC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;IAOxC,IAAI,MAAM,IAAI,KAAK,CAElB;IAED,IAAI,YAAY,IAAI,QAAQ,CAE3B;IAED,IAAI,SAAS,IAAI,QAAQ,CAIxB;IAED,IAAI,MAAM,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAe5D;IAED,IAAI,GAAG,IAAI,MAAM,CAchB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,OAAO,IAAI,MAAM,CAapB;IAOD,gBAAgB,MAAO,IAAI,KAAG,MAAM,CAYnC;IAED,gBAAgB,MAAO,IAAI,KAAG,KAAK,EAAE,CAwBpC;IAED,QAAQ,MAAO,KAAK,GAAG,QAAQ,KAAG,IAAI,EAAE,CAYvC;IAED,eAAe,MAAO,KAAK,KAAG,OAAO,CAEpC;IAED,iBAAiB,qBAAsB,OAAO,KAAG,KAAK,EAAE,CA+BvD;IAED,KAAK,IAAI,MAAM;IAYf,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAuE5D,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;CA+GpC"}
@@ -0,0 +1,9 @@
1
+ import { Fraction } from '../coefficients/fraction';
2
+ import { Vector } from './vector';
3
+
4
+ type V = Vector;
5
+ export declare function areVectorsEquals(v1: V, v2: V): boolean;
6
+ export declare function areVectorsColinears(v1: V, v2: V): boolean;
7
+ export declare function dotProduct(v1: V, v2: V): Fraction;
8
+ export declare function determinant(...values: V[]): Fraction;
9
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geomMath.d.ts","sourceRoot":"","sources":["../../src/geometry/geomMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,KAAK,CAAC,GAAG,MAAM,CAAA;AACf,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAMtD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CASzD;AAGD,wBAAgB,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAUjD;AAED,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAqCpD"}
@@ -0,0 +1,83 @@
1
+ import { Fraction } from '../coefficients/fraction';
2
+ import { Equation } from '../algebra/equation';
3
+ import { Vector } from './vector';
4
+ import { InputValue, IPiMathObject } from '../pimath.interface';
5
+
6
+ export declare enum LinePropriety {
7
+ None = "none",
8
+ Parallel = "parallel",
9
+ Perpendicular = "perpendicular",
10
+ Tangent = "tangent"
11
+ }
12
+ export declare class Line implements IPiMathObject<Line> {
13
+ #private;
14
+ static PERPENDICULAR: LinePropriety;
15
+ static PARALLEL: LinePropriety;
16
+ /**
17
+ * Value can be a mix of:
18
+ *
19
+ * @param values
20
+ */
21
+ constructor(...values: unknown[]);
22
+ get a(): Fraction;
23
+ set a(value: Fraction);
24
+ get b(): Fraction;
25
+ set b(value: Fraction);
26
+ get c(): Fraction;
27
+ set c(value: Fraction);
28
+ get OA(): Vector;
29
+ set OA(value: Vector);
30
+ get d(): Vector;
31
+ set d(value: Vector);
32
+ get n(): Vector;
33
+ getEquation(): Equation;
34
+ get canonical(): this;
35
+ get equation(): this;
36
+ get mxh(): this;
37
+ get parametric(): this;
38
+ get system(): this;
39
+ get tex(): string;
40
+ get reduceBeforeDisplay(): boolean;
41
+ set reduceBeforeDisplay(value: boolean);
42
+ get display(): string;
43
+ get normal(): Vector;
44
+ get director(): Vector;
45
+ get slope(): Fraction;
46
+ get height(): Fraction;
47
+ randomPoint: (k?: number) => Vector;
48
+ randomNearPoint: (k?: number) => Vector;
49
+ /**
50
+ * Parse data to a line
51
+ * @param {any} values
52
+ * @returns {Line}
53
+ */
54
+ parse: (...values: unknown[]) => Line;
55
+ parseEquation: (equ: Equation) => this;
56
+ parseByCoefficient: (a: InputValue<Fraction>, b: InputValue<Fraction>, c: InputValue<Fraction>) => this;
57
+ parseByPointAndVector: (P: Vector, d: Vector) => this;
58
+ parseByPointAndNormal: (P: Vector, n: Vector) => this;
59
+ parseByPointAndLine: (P: Vector, L: Line, orientation?: LinePropriety) => this;
60
+ clone: () => this;
61
+ isOnLine: (pt: Vector) => boolean;
62
+ isParallelTo: (line: Line) => boolean;
63
+ isSameAs: (line: Line) => boolean;
64
+ isPerpendicularTo: (line: Line) => boolean;
65
+ isVertical: () => boolean;
66
+ simplify: () => this;
67
+ simplifyDirection: () => this;
68
+ intersection: (line: Line) => {
69
+ point: Vector;
70
+ hasIntersection: boolean;
71
+ isParallel: boolean;
72
+ isSame: boolean;
73
+ };
74
+ distanceTo(pt: Vector): {
75
+ value: number;
76
+ fraction: Fraction;
77
+ tex: string;
78
+ };
79
+ hitSegment(A: Vector, B: Vector): boolean;
80
+ getValueAtX: (value: Fraction | number) => Fraction;
81
+ getValueAtY: (value: Fraction | number) => Fraction;
82
+ canonicalAsFloatCoefficient(decimals?: number): string;
83
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../src/geometry/line.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Fraction } from '../coefficients/fraction';
2
+ import { Vector } from './vector';
3
+ import { Point } from './point';
4
+
5
+ export declare enum LinePropriety {
6
+ None = "none",
7
+ Parallel = "parallel",
8
+ Perpendicular = "perpendicular",
9
+ Tangent = "tangent"
10
+ }
11
+ export declare class Line3 {
12
+ #private;
13
+ static PERPENDICULAR: LinePropriety;
14
+ static PARALLEL: LinePropriety;
15
+ /**
16
+ * Value can be a mix of:
17
+ *
18
+ * @param values
19
+ */
20
+ constructor(A: Point, B: Point);
21
+ constructor(A: Point, d: Vector);
22
+ get OA(): Point;
23
+ set OA(value: Point);
24
+ get point(): Point;
25
+ get d(): Vector;
26
+ set d(value: Vector);
27
+ get tex(): {
28
+ parametric: string;
29
+ system: string;
30
+ cartesian: string;
31
+ };
32
+ get display(): {
33
+ parametric: string;
34
+ system: string;
35
+ cartesian: string;
36
+ };
37
+ get direction(): Vector;
38
+ clone: () => this;
39
+ isOnLine: (pt: Point) => boolean;
40
+ isParallelTo: (line: Line3) => boolean;
41
+ isSameAs: (line: Line3) => boolean;
42
+ isPerpendicularTo: (line: Line3) => boolean;
43
+ isVertical: () => boolean;
44
+ simplify: () => this;
45
+ intersection: (line: Line3) => {
46
+ point: Vector;
47
+ hasIntersection: boolean;
48
+ isParallel: boolean;
49
+ isSame: boolean;
50
+ };
51
+ distanceTo(pt: Point): {
52
+ value: number;
53
+ fraction: Fraction;
54
+ tex: string;
55
+ };
56
+ hitSegment(A: Point, B: Point): boolean;
57
+ randomPoint: (max?: number) => Point;
58
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line3.d.ts","sourceRoot":"","sources":["../../src/geometry/line3.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAInD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,oBAAY,aAAa;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;CACtB;AAED,qBAAa,KAAK;;IAEd,MAAM,CAAC,aAAa,gBAA8B;IAClD,MAAM,CAAC,QAAQ,gBAAyB;gBAU5B,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;gBAClB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM;IAO/B,IAAI,EAAE,IAAI,KAAK,CAEd;IAED,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAElB;IACD,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,GAAG,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAmBnE;IAED,IAAI,OAAO,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAcvE;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,KAAK,QAAO,IAAI,CAKf;IAID,QAAQ,OAAQ,KAAK,KAAG,OAAO,CAE9B;IAED,YAAY,SAAU,KAAK,KAAG,OAAO,CAGpC;IACD,QAAQ,SAAU,KAAK,KAAG,OAAO,CAEhC;IACD,iBAAiB,SAAU,KAAK,KAAG,OAAO,CAEzC;IACD,UAAU,QAAO,OAAO,CAEvB;IACD,QAAQ,QAAO,IAAI,CAYlB;IAED,YAAY,SAAU,KAAK,KAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAgC9G;IAED,UAAU,CAAC,EAAE,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAkBzE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO;IAsCvC,WAAW,oBAAc,KAAK,CAS7B;CACJ"}
@@ -0,0 +1,12 @@
1
+ import { Fraction } from '../coefficients/fraction';
2
+ import { Vector } from './vector';
3
+
4
+ export declare class Matrix {
5
+ #private;
6
+ constructor(...values: Vector[]);
7
+ get values(): Vector[];
8
+ get array(): Fraction[][];
9
+ get dimension(): number[];
10
+ isSquare(): boolean;
11
+ determinant(): Fraction;
12
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/geometry/matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGtC,qBAAa,MAAM;;gBAEH,GAAG,MAAM,EAAE,MAAM,EAAE;IAM/B,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,IAAI,KAAK,IAAI,QAAQ,EAAE,EAAE,CAExB;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,QAAQ,IAAI,OAAO;IAInB,WAAW,IAAI,QAAQ;CAO1B"}
@@ -0,0 +1,36 @@
1
+ import { Equation } from '../algebra/equation';
2
+ import { Fraction } from '../coefficients/fraction';
3
+ import { Line3 } from './line3';
4
+ import { Point } from './point';
5
+ import { Vector } from './vector';
6
+
7
+ interface Plane3Config {
8
+ point?: Point;
9
+ normal?: Vector;
10
+ directions?: Vector[];
11
+ equation?: Equation;
12
+ points?: Point[];
13
+ coefficients?: number[];
14
+ }
15
+ export declare class Plane3 {
16
+ #private;
17
+ constructor(config?: Plane3Config);
18
+ get normal(): Vector;
19
+ set normal(value: Vector);
20
+ get point(): Point;
21
+ set point(value: Point);
22
+ get a(): Fraction;
23
+ get b(): Fraction;
24
+ get c(): Fraction;
25
+ get d(): Fraction;
26
+ get tex(): string;
27
+ parse(config: Plane3Config): void;
28
+ angle(vector: Vector, sharp?: boolean, radian?: boolean): number;
29
+ angle(line: Line3, sharp?: boolean, radian?: boolean): number;
30
+ angle(plane: Plane3, sharp?: boolean, radian?: boolean): number;
31
+ distanceTo(point: Vector): number;
32
+ intersectWithLine(line: Line3): Point;
33
+ intersectWithPlane(plane: Plane3): Line3;
34
+ isPointOnPlane(pt: Point): boolean;
35
+ }
36
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plane3.d.ts","sourceRoot":"","sources":["../../src/geometry/plane3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,UAAU,YAAY;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B;AACD,qBAAa,MAAM;;gBAIH,MAAM,CAAC,EAAE,YAAY;IAQjC,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAGvB;IACD,IAAI,KAAK,IAAI,KAAK,CAEjB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAGrB;IAED,IAAI,CAAC,IAAI,QAAQ,CAEhB;IACD,IAAI,CAAC,IAAI,QAAQ,CAEhB;IACD,IAAI,CAAC,IAAI,QAAQ,CAEhB;IACD,IAAI,CAAC,IAAI,QAAQ,CAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAMhB;IAED,KAAK,CAAC,MAAM,EAAE,YAAY;IAyD1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM;IAChE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM;IAC7D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM;IAqB/D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjC,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK;IAMrC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAUxC,cAAc,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO;CAGrC"}