@futdevpro/fsm-dynamo 1.9.9 → 1.9.12
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.
- package/.github/workflows/main.yml +196 -0
- package/HOWTO.md +15 -15
- package/README.md +17 -17
- package/build/_collections/constants/country-divisions.const.d.ts +1 -1
- package/build/_collections/constants/country-divisions.const.d.ts.map +1 -1
- package/build/_collections/constants/country-divisions.const.js +2 -2
- package/build/_collections/constants/country-divisions.const.js.map +1 -1
- package/build/_collections/constants/courtry-isos.const.d.ts +1 -1
- package/build/_collections/constants/courtry-isos.const.d.ts.map +1 -1
- package/build/_collections/constants/courtry-isos.const.js +2 -2
- package/build/_collections/constants/courtry-isos.const.js.map +1 -1
- package/build/_collections/constants/error-defaults.const.d.ts +1 -1
- package/build/_collections/constants/error-defaults.const.d.ts.map +1 -1
- package/build/_collections/constants/module-settings/usage-module-settings.const.js +1 -1
- package/build/_collections/constants/pipe-transforms.const.js +12 -12
- package/build/_collections/constants/pipe-transforms.const.js.map +1 -1
- package/build/_collections/utils/pipe-transforms/division-pipe.util.js +1 -1
- package/build/_collections/utils/pipe-transforms/division-pipe.util.js.map +1 -1
- package/build/_collections/utils/pipe-transforms/list-pipe.util.d.ts.map +1 -1
- package/build/_collections/utils/pipe-transforms/list-pipe.util.js.map +1 -1
- package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts +2 -2
- package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts.map +1 -1
- package/build/_collections/utils/pipe-transforms/range-pipe.util.js +11 -11
- package/build/_collections/utils/pipe-transforms/range-pipe.util.js.map +1 -1
- package/build/_collections/utils/regions.util.d.ts.map +1 -1
- package/build/_collections/utils/regions.util.js +3 -0
- package/build/_collections/utils/regions.util.js.map +1 -1
- package/build/_enums/range-pipe-setting.enum.d.ts +1 -1
- package/build/_enums/range-pipe-setting.enum.d.ts.map +1 -1
- package/build/_enums/range-pipe-setting.enum.js +12 -12
- package/build/_enums/range-pipe-setting.enum.js.map +1 -1
- package/build/_models/control-models/error.control-model.js +1 -1
- package/build/_models/control-models/error.control-model.js.map +1 -1
- package/build/_models/control-models/error.control-model.spec.js +25 -6
- package/build/_models/control-models/error.control-model.spec.js.map +1 -1
- package/build/_models/interfaces/index.d.ts +3 -0
- package/build/_models/interfaces/index.d.ts.map +1 -1
- package/build/_models/interfaces/index.js +3 -0
- package/build/_models/interfaces/index.js.map +1 -1
- package/build/_models/interfaces/pipe-transforms.interface.d.ts +2 -2
- package/build/_models/interfaces/pipe-transforms.interface.d.ts.map +1 -1
- package/futdevpro-fsm-dynamo-01.09.12.tgz +0 -0
- package/nodemon.json +11 -11
- package/package.json +151 -151
- package/src/_collections/assets/location/country-codes-ISO-3166.json +3239 -3239
- package/src/_collections/assets/location/country-divisions-ISO-3166-all-list.json +19035 -19035
- package/src/_collections/assets/location/country-divisions-ISO-3166.json +4993 -4993
- package/src/_collections/assets/location/country-phone-codes.json +1203 -1203
- package/src/_collections/constants/country-divisions.const.ts +9 -9
- package/src/_collections/constants/courtry-isos.const.ts +8 -8
- package/src/_collections/constants/error-defaults.const.ts +11 -11
- package/src/_collections/constants/index.ts +15 -15
- package/src/_collections/constants/module-settings/custom-data-module-settings.const.ts +15 -15
- package/src/_collections/constants/module-settings/index.ts +8 -8
- package/src/_collections/constants/module-settings/test-module-settings.const.ts +19 -19
- package/src/_collections/constants/module-settings/usage-module-settings.const.ts +19 -19
- package/src/_collections/constants/pipe-transforms.const.ts +35 -35
- package/src/_collections/constants/times.const.ts +8 -8
- package/src/_collections/index.ts +6 -6
- package/src/_collections/utils/array.util.spec.ts +39 -39
- package/src/_collections/utils/array.util.ts +137 -137
- package/src/_collections/utils/index.ts +18 -18
- package/src/_collections/utils/location.util.ts +55 -55
- package/src/_collections/utils/log.util.ts +239 -239
- package/src/_collections/utils/math/box-bounds.util.ts +85 -85
- package/src/_collections/utils/math/index.ts +5 -5
- package/src/_collections/utils/math/math.util.ts +53 -53
- package/src/_collections/utils/math/random.util.ts +80 -80
- package/src/_collections/utils/math/trigonometry.util.ts +73 -73
- package/src/_collections/utils/math/vector2.util.ts +197 -197
- package/src/_collections/utils/pipe-transforms/country-pipe.util.ts +18 -18
- package/src/_collections/utils/pipe-transforms/custom-pipe.util.ts +9 -9
- package/src/_collections/utils/pipe-transforms/division-pipe.util.ts +20 -20
- package/src/_collections/utils/pipe-transforms/index.ts +15 -15
- package/src/_collections/utils/pipe-transforms/list-pipe.util.ts +10 -14
- package/src/_collections/utils/pipe-transforms/multi-pipe-pipe.util.ts +160 -160
- package/src/_collections/utils/pipe-transforms/obj-key-pipe.util.ts +9 -9
- package/src/_collections/utils/pipe-transforms/range-pipe.util.ts +94 -94
- package/src/_collections/utils/pipe-transforms/region-pipe.util.ts +18 -18
- package/src/_collections/utils/pipe-transforms/replace-pipe.util.ts +11 -11
- package/src/_collections/utils/pipe-transforms/slider-pipe.util.ts +20 -20
- package/src/_collections/utils/pipe-transforms/smart-replace-pipe.util.ts +71 -71
- package/src/_collections/utils/regex/index.ts +4 -4
- package/src/_collections/utils/regex/password-regex.util.ts +52 -52
- package/src/_collections/utils/regex/regex.util.ts +6 -6
- package/src/_collections/utils/regex/username-regex.util.ts +33 -33
- package/src/_collections/utils/regions.util.ts +100 -97
- package/src/_collections/utils/round-list.util.ts +44 -44
- package/src/_collections/utils/shared.static-service.ts +177 -177
- package/src/_collections/utils/time.util.spec.ts +50 -50
- package/src/_collections/utils/time.util.ts +219 -219
- package/src/_collections/utils/type-cloning-facility.util.ts +121 -121
- package/src/_collections/utils/utilities.util.ts +130 -130
- package/src/_enums/basic-property-type.enum.ts +9 -9
- package/src/_enums/data-model-type.enum.ts +13 -13
- package/src/_enums/day-of-week.enum.ts +28 -28
- package/src/_enums/error-level.enum.ts +17 -17
- package/src/_enums/index.ts +16 -16
- package/src/_enums/location/index.ts +3 -3
- package/src/_enums/location/region.enum.ts +9 -9
- package/src/_enums/location/sub-region.enum.ts +26 -26
- package/src/_enums/location/subdivision-region-type.enum.ts +44 -44
- package/src/_enums/log-style.enum.ts +30 -30
- package/src/_enums/month.enum.ts +16 -16
- package/src/_enums/pipe.enum.ts +45 -45
- package/src/_enums/range-pipe-setting.enum.ts +11 -11
- package/src/_enums/time/day-of-week.enum.ts +28 -28
- package/src/_enums/time/index.ts +3 -3
- package/src/_enums/time/month.enum.ts +16 -16
- package/src/_enums/time/relative-date.enum.ts +13 -13
- package/src/_models/control-models/daily-usage-data.control-model.ts +21 -21
- package/src/_models/control-models/data-model-params.control-model.ts +39 -39
- package/src/_models/control-models/data-property-params.control-model.ts +106 -106
- package/src/_models/control-models/error.control-model.spec.ts +753 -716
- package/src/_models/control-models/error.control-model.ts +722 -722
- package/src/_models/control-models/index.ts +10 -10
- package/src/_models/control-models/poll.control-model.ts +113 -113
- package/src/_models/control-models/range-value.control-model.ts +142 -142
- package/src/_models/control-models/usage-action.control-model.ts +15 -15
- package/src/_models/control-models/usage-data.control-model.ts +20 -20
- package/src/_models/data-models/custom-data.data-model.ts +28 -28
- package/src/_models/data-models/index.ts +5 -5
- package/src/_models/data-models/metadata.data-model.ts +83 -83
- package/src/_models/data-models/usage-session.data-model.ts +53 -53
- package/src/_models/index.ts +12 -12
- package/src/_models/interfaces/error-defaults.interface.ts +11 -11
- package/src/_models/interfaces/index.ts +11 -8
- package/src/_models/interfaces/location/country-division.interface.ts +7 -7
- package/src/_models/interfaces/location/country-iso.interface.ts +21 -21
- package/src/_models/interfaces/location/country-phone-code.interface.ts +7 -7
- package/src/_models/interfaces/location/division-collection.interface.ts +10 -10
- package/src/_models/interfaces/location/division-region-data.interface.ts +8 -8
- package/src/_models/interfaces/location/geo-ip-location.interface.ts +26 -26
- package/src/_models/interfaces/location/index.ts +10 -10
- package/src/_models/interfaces/location/location-coordinates.interface.ts +5 -5
- package/src/_models/interfaces/multi-pipe-settings.type.ts +7 -7
- package/src/_models/interfaces/paged.interface.ts +11 -11
- package/src/_models/interfaces/pipe-transforms.interface.ts +29 -29
- package/src/_models/interfaces/random-weight.interface.ts +7 -7
- package/src/_models/interfaces/route-settings.interface.ts +11 -11
- package/src/_modules/collections.index.ts +2 -2
- package/src/_modules/constants.index.ts +2 -2
- package/src/_modules/custom-data-module.index.ts +6 -6
- package/src/_modules/data-modules.index.ts +9 -9
- package/src/_modules/enums.index.ts +2 -2
- package/src/_modules/error-module.index.ts +8 -8
- package/src/_modules/location.index.ts +15 -15
- package/src/_modules/models.index.ts +2 -2
- package/src/_modules/shared-service.index.ts +9 -9
- package/src/_modules/test-module.index.ts +5 -5
- package/src/_modules/usage-module.index.ts +10 -10
- package/tsconfig.json +29 -29
- package/tslint.json +153 -153
- package/build/_enums/region.enum.d.ts +0 -8
- package/build/_enums/region.enum.d.ts.map +0 -1
- package/build/_enums/region.enum.js +0 -12
- package/build/_enums/region.enum.js.map +0 -1
- package/build/_enums/relative-date.enum.d.ts +0 -9
- package/build/_enums/relative-date.enum.d.ts.map +0 -1
- package/build/_enums/relative-date.enum.js +0 -13
- package/build/_enums/relative-date.enum.js.map +0 -1
- package/build/_enums/sub-region.enum.d.ts +0 -20
- package/build/_enums/sub-region.enum.d.ts.map +0 -1
- package/build/_enums/sub-region.enum.js +0 -24
- package/build/_enums/sub-region.enum.js.map +0 -1
- package/build/_enums/subdivision-region-type.enum.d.ts +0 -41
- package/build/_enums/subdivision-region-type.enum.d.ts.map +0 -1
- package/build/_enums/subdivision-region-type.enum.js +0 -46
- package/build/_enums/subdivision-region-type.enum.js.map +0 -1
- package/src/_enums/region.enum.ts +0 -9
- package/src/_enums/relative-date.enum.ts +0 -13
- package/src/_enums/sub-region.enum.ts +0 -26
- package/src/_enums/subdivision-region-type.enum.ts +0 -44
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class DynamoFM_Math {
|
|
11
|
-
|
|
12
|
-
static between(value: number, minExclusive: number, maxExclusive: number): boolean {
|
|
13
|
-
return minExclusive < value && value < maxExclusive;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
static around(value: number, target: number, range: number): boolean {
|
|
17
|
-
return this.between(value, target - range, target + range);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
static getRandomInt(min: number, max: number): number {
|
|
21
|
-
return min + Math.round((max - min) * Math.random());
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
static round(value: number, decimals: number = 2): number {
|
|
25
|
-
return Number(value.toFixed(decimals));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
static numberWithSpaces(x: number): string {
|
|
29
|
-
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
static floatingNumberWithSpaces(x: number): string {
|
|
33
|
-
const parts: string[] = x.toString().split('.');
|
|
34
|
-
|
|
35
|
-
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
36
|
-
|
|
37
|
-
return parts.join('.');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
static decimals(x: number, useSpacer: string = ','): string {
|
|
41
|
-
const parts: string[] = x.toString().split('.');
|
|
42
|
-
|
|
43
|
-
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, useSpacer);
|
|
44
|
-
|
|
45
|
-
return parts.join('.');
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export class DynamoFM_Math {
|
|
11
|
+
|
|
12
|
+
static between(value: number, minExclusive: number, maxExclusive: number): boolean {
|
|
13
|
+
return minExclusive < value && value < maxExclusive;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static around(value: number, target: number, range: number): boolean {
|
|
17
|
+
return this.between(value, target - range, target + range);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static getRandomInt(min: number, max: number): number {
|
|
21
|
+
return min + Math.round((max - min) * Math.random());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static round(value: number, decimals: number = 2): number {
|
|
25
|
+
return Number(value.toFixed(decimals));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static numberWithSpaces(x: number): string {
|
|
29
|
+
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static floatingNumberWithSpaces(x: number): string {
|
|
33
|
+
const parts: string[] = x.toString().split('.');
|
|
34
|
+
|
|
35
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
36
|
+
|
|
37
|
+
return parts.join('.');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static decimals(x: number, useSpacer: string = ','): string {
|
|
41
|
+
const parts: string[] = x.toString().split('.');
|
|
42
|
+
|
|
43
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, useSpacer);
|
|
44
|
+
|
|
45
|
+
return parts.join('.');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
import { DynamoFM_RandomWeight } from '../../../_models/interfaces/random-weight.interface';
|
|
3
|
-
|
|
4
|
-
export type DFM_Random = DynamoFM_Random;
|
|
5
|
-
export class DynamoFM_Random {
|
|
6
|
-
static getRandomWeightedInt(
|
|
7
|
-
min: number,
|
|
8
|
-
max: number,
|
|
9
|
-
weights: DynamoFM_RandomWeight<number>[]
|
|
10
|
-
): number {
|
|
11
|
-
weights = weights.sort((a, b): number => b.chance - a.chance);
|
|
12
|
-
let weightChanceSum = 0;
|
|
13
|
-
|
|
14
|
-
weights.forEach((weight): void => { weightChanceSum += weight.chance; });
|
|
15
|
-
|
|
16
|
-
if (1 < weightChanceSum) {
|
|
17
|
-
weights.forEach((weights): void => { weights.chance = weights.chance / weightChanceSum; });
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const randomChance: number = Math.random();
|
|
21
|
-
let result: number;
|
|
22
|
-
let chancer = 0;
|
|
23
|
-
|
|
24
|
-
for (let i = 0; i < weights.length && result === undefined; i++) {
|
|
25
|
-
chancer += weights[i].chance;
|
|
26
|
-
|
|
27
|
-
if (randomChance < chancer) {
|
|
28
|
-
result = weights[i].result;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (result !== undefined) {
|
|
33
|
-
return result;
|
|
34
|
-
} else {
|
|
35
|
-
return this.getRandomInt(min, max);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
static getRandomInt(min: number, max: number): number {
|
|
40
|
-
return min + Math.round((max - min) * Math.random());
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
static getRandomListElement<T>(list: T[]): T {
|
|
44
|
-
if (0 < list.length) {
|
|
45
|
-
return list[this.getRandomInt(0, list.length - 1)];
|
|
46
|
-
} else {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static getRandomWeighted<T>(weights: DynamoFM_RandomWeight<T>[]): T {
|
|
52
|
-
if (!weights?.length) {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
weights = weights.sort((a, b): number => b.chance - a.chance);
|
|
57
|
-
let weightChanceSum = 0;
|
|
58
|
-
|
|
59
|
-
weights.forEach((weight): void => {
|
|
60
|
-
weightChanceSum += weight.chance;
|
|
61
|
-
});
|
|
62
|
-
weights.forEach((weights): void => {
|
|
63
|
-
weights.chance = weights.chance / weightChanceSum;
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const randomChance: number = Math.random();
|
|
67
|
-
let result: T;
|
|
68
|
-
let chancer = 0;
|
|
69
|
-
|
|
70
|
-
for (let i = 0; i < weights.length && result === undefined; i++) {
|
|
71
|
-
chancer += weights[i].chance;
|
|
72
|
-
|
|
73
|
-
if (randomChance < chancer) {
|
|
74
|
-
result = weights[i].result;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
1
|
+
|
|
2
|
+
import { DynamoFM_RandomWeight } from '../../../_models/interfaces/random-weight.interface';
|
|
3
|
+
|
|
4
|
+
export type DFM_Random = DynamoFM_Random;
|
|
5
|
+
export class DynamoFM_Random {
|
|
6
|
+
static getRandomWeightedInt(
|
|
7
|
+
min: number,
|
|
8
|
+
max: number,
|
|
9
|
+
weights: DynamoFM_RandomWeight<number>[]
|
|
10
|
+
): number {
|
|
11
|
+
weights = weights.sort((a, b): number => b.chance - a.chance);
|
|
12
|
+
let weightChanceSum = 0;
|
|
13
|
+
|
|
14
|
+
weights.forEach((weight): void => { weightChanceSum += weight.chance; });
|
|
15
|
+
|
|
16
|
+
if (1 < weightChanceSum) {
|
|
17
|
+
weights.forEach((weights): void => { weights.chance = weights.chance / weightChanceSum; });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const randomChance: number = Math.random();
|
|
21
|
+
let result: number;
|
|
22
|
+
let chancer = 0;
|
|
23
|
+
|
|
24
|
+
for (let i = 0; i < weights.length && result === undefined; i++) {
|
|
25
|
+
chancer += weights[i].chance;
|
|
26
|
+
|
|
27
|
+
if (randomChance < chancer) {
|
|
28
|
+
result = weights[i].result;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (result !== undefined) {
|
|
33
|
+
return result;
|
|
34
|
+
} else {
|
|
35
|
+
return this.getRandomInt(min, max);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static getRandomInt(min: number, max: number): number {
|
|
40
|
+
return min + Math.round((max - min) * Math.random());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static getRandomListElement<T>(list: T[]): T {
|
|
44
|
+
if (0 < list.length) {
|
|
45
|
+
return list[this.getRandomInt(0, list.length - 1)];
|
|
46
|
+
} else {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static getRandomWeighted<T>(weights: DynamoFM_RandomWeight<T>[]): T {
|
|
52
|
+
if (!weights?.length) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
weights = weights.sort((a, b): number => b.chance - a.chance);
|
|
57
|
+
let weightChanceSum = 0;
|
|
58
|
+
|
|
59
|
+
weights.forEach((weight): void => {
|
|
60
|
+
weightChanceSum += weight.chance;
|
|
61
|
+
});
|
|
62
|
+
weights.forEach((weights): void => {
|
|
63
|
+
weights.chance = weights.chance / weightChanceSum;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
const randomChance: number = Math.random();
|
|
67
|
+
let result: T;
|
|
68
|
+
let chancer = 0;
|
|
69
|
+
|
|
70
|
+
for (let i = 0; i < weights.length && result === undefined; i++) {
|
|
71
|
+
chancer += weights[i].chance;
|
|
72
|
+
|
|
73
|
+
if (randomChance < chancer) {
|
|
74
|
+
result = weights[i].result;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
export type DFM_Trigonometry = DynamoFM_Trigonometry;
|
|
3
|
-
export type DFM_Trig = DynamoFM_Trigonometry;
|
|
4
|
-
export type DFM_Δ = DynamoFM_Trigonometry;
|
|
5
|
-
export class DynamoFM_Trigonometry {
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Befogó
|
|
9
|
-
* a Befogó mérete az átfogó, és a befogóval szemközti szög alapján
|
|
10
|
-
* a szemközti szög értéke opcionális
|
|
11
|
-
* (amennyiben nem adjuk meg, 45 fokos szöggel számolunk)
|
|
12
|
-
* @param c átfogó
|
|
13
|
-
* @param angle a befogó oldallal szemközti szög (fokban)
|
|
14
|
-
* @returns befogó
|
|
15
|
-
*/
|
|
16
|
-
static getClamp(c: number, angle?: number): number {
|
|
17
|
-
angle = angle !== undefined ? angle : 45;
|
|
18
|
-
|
|
19
|
-
return Math.sin(this.angleToRadians(angle)) * c;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Befogó
|
|
24
|
-
* a Befogó mérete az átfogó és a másik befogó alapján
|
|
25
|
-
* @param a befogó
|
|
26
|
-
* @param c átfogó
|
|
27
|
-
* @returns befogó
|
|
28
|
-
*/
|
|
29
|
-
static getClampByClampAndHypotenuse(a: number, c: number): number {
|
|
30
|
-
if (a > c) {
|
|
31
|
-
|
|
32
|
-
throw {
|
|
33
|
-
errorMessage:
|
|
34
|
-
`getClampByClampAndHypotenuse error hypotenuse is smaller than clamp (a:${a} > c:${c})`
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return Math.sqrt((c * c) - (a * a));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Átfogó
|
|
43
|
-
* az Átfogó mérete a befogók alapján
|
|
44
|
-
* a második befogó értéke opcionális
|
|
45
|
-
* (amennyiben nem adjuk meg, egyenlő szárú háromszöggel számolunk)
|
|
46
|
-
* @param a egyik befogó
|
|
47
|
-
* @param b másik befogó
|
|
48
|
-
* @returns átfogó
|
|
49
|
-
*/
|
|
50
|
-
static getHypotenuse(a: number, b?: number): number {
|
|
51
|
-
b = b !== undefined ? b : a;
|
|
52
|
-
|
|
53
|
-
return Math.sqrt((a * a) + (b * b));
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Szög fokmértéket átalakítja radiánsra
|
|
58
|
-
* @param angle szög fok
|
|
59
|
-
* @returns szög radiáns
|
|
60
|
-
*/
|
|
61
|
-
static angleToRadians(angle: number): number {
|
|
62
|
-
return angle * Math.PI / 180;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Szög radiáns mértéket átalakítja fokra
|
|
67
|
-
* @param radians szög radiáns
|
|
68
|
-
* @returns szög fok
|
|
69
|
-
*/
|
|
70
|
-
static radiansToAngle(radians: number): number {
|
|
71
|
-
return radians / Math.PI * 180;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
1
|
+
|
|
2
|
+
export type DFM_Trigonometry = DynamoFM_Trigonometry;
|
|
3
|
+
export type DFM_Trig = DynamoFM_Trigonometry;
|
|
4
|
+
export type DFM_Δ = DynamoFM_Trigonometry;
|
|
5
|
+
export class DynamoFM_Trigonometry {
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Befogó
|
|
9
|
+
* a Befogó mérete az átfogó, és a befogóval szemközti szög alapján
|
|
10
|
+
* a szemközti szög értéke opcionális
|
|
11
|
+
* (amennyiben nem adjuk meg, 45 fokos szöggel számolunk)
|
|
12
|
+
* @param c átfogó
|
|
13
|
+
* @param angle a befogó oldallal szemközti szög (fokban)
|
|
14
|
+
* @returns befogó
|
|
15
|
+
*/
|
|
16
|
+
static getClamp(c: number, angle?: number): number {
|
|
17
|
+
angle = angle !== undefined ? angle : 45;
|
|
18
|
+
|
|
19
|
+
return Math.sin(this.angleToRadians(angle)) * c;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Befogó
|
|
24
|
+
* a Befogó mérete az átfogó és a másik befogó alapján
|
|
25
|
+
* @param a befogó
|
|
26
|
+
* @param c átfogó
|
|
27
|
+
* @returns befogó
|
|
28
|
+
*/
|
|
29
|
+
static getClampByClampAndHypotenuse(a: number, c: number): number {
|
|
30
|
+
if (a > c) {
|
|
31
|
+
|
|
32
|
+
throw {
|
|
33
|
+
errorMessage:
|
|
34
|
+
`getClampByClampAndHypotenuse error hypotenuse is smaller than clamp (a:${a} > c:${c})`
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return Math.sqrt((c * c) - (a * a));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Átfogó
|
|
43
|
+
* az Átfogó mérete a befogók alapján
|
|
44
|
+
* a második befogó értéke opcionális
|
|
45
|
+
* (amennyiben nem adjuk meg, egyenlő szárú háromszöggel számolunk)
|
|
46
|
+
* @param a egyik befogó
|
|
47
|
+
* @param b másik befogó
|
|
48
|
+
* @returns átfogó
|
|
49
|
+
*/
|
|
50
|
+
static getHypotenuse(a: number, b?: number): number {
|
|
51
|
+
b = b !== undefined ? b : a;
|
|
52
|
+
|
|
53
|
+
return Math.sqrt((a * a) + (b * b));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Szög fokmértéket átalakítja radiánsra
|
|
58
|
+
* @param angle szög fok
|
|
59
|
+
* @returns szög radiáns
|
|
60
|
+
*/
|
|
61
|
+
static angleToRadians(angle: number): number {
|
|
62
|
+
return angle * Math.PI / 180;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Szög radiáns mértéket átalakítja fokra
|
|
67
|
+
* @param radians szög radiáns
|
|
68
|
+
* @returns szög fok
|
|
69
|
+
*/
|
|
70
|
+
static radiansToAngle(radians: number): number {
|
|
71
|
+
return radians / Math.PI * 180;
|
|
72
|
+
}
|
|
73
|
+
}
|