@configura/babylon-view 2.1.0-alpha.2 → 2.1.0-alpha.3

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 (134) hide show
  1. package/.eslintrc.json +5 -5
  2. package/LICENSE +201 -201
  3. package/README.md +1 -1
  4. package/dist/animation/AnimatableObject.d.ts +8 -8
  5. package/dist/animation/AnimatableObject.js +3 -3
  6. package/dist/animation/animator/Animator.d.ts +33 -33
  7. package/dist/animation/animator/Animator.js +58 -58
  8. package/dist/animation/animator/AnimatorEasing.d.ts +16 -16
  9. package/dist/animation/animator/AnimatorEasing.js +31 -31
  10. package/dist/animation/animator/AnimatorEasingMatrix.d.ts +14 -14
  11. package/dist/animation/animator/AnimatorEasingMatrix.js +16 -16
  12. package/dist/animation/animator/AnimatorHighlight.d.ts +16 -16
  13. package/dist/animation/animator/AnimatorHighlight.js +32 -32
  14. package/dist/animation/animator/AnimatorPointToPoint.d.ts +8 -8
  15. package/dist/animation/animator/AnimatorPointToPoint.js +14 -14
  16. package/dist/animation/animator/AnimatorQueue.d.ts +13 -13
  17. package/dist/animation/animator/AnimatorQueue.js +57 -57
  18. package/dist/animation/animator/AnimatorScale.d.ts +8 -8
  19. package/dist/animation/animator/AnimatorScale.js +13 -13
  20. package/dist/animation/animator/AnimatorSpin.d.ts +10 -10
  21. package/dist/animation/animator/AnimatorSpin.js +13 -13
  22. package/dist/animation/animator/EasingFunctions.d.ts +35 -35
  23. package/dist/animation/animator/EasingFunctions.js +137 -137
  24. package/dist/animation/coordinator/Coordinator.d.ts +28 -28
  25. package/dist/animation/coordinator/Coordinator.js +53 -53
  26. package/dist/animation/coordinator/CoordinatorDropAndSpin.d.ts +22 -22
  27. package/dist/animation/coordinator/CoordinatorDropAndSpin.js +138 -138
  28. package/dist/animation/coordinator/CoordinatorIdentity.d.ts +11 -11
  29. package/dist/animation/coordinator/CoordinatorIdentity.js +14 -14
  30. package/dist/animation/coordinator/CoordinatorNodeQueues.d.ts +18 -18
  31. package/dist/animation/coordinator/CoordinatorNodeQueues.js +50 -50
  32. package/dist/animation/coordinator/CoordinatorPulse.d.ts +21 -21
  33. package/dist/animation/coordinator/CoordinatorPulse.js +47 -47
  34. package/dist/animation/coordinator/CoordinatorPulseBounce.d.ts +14 -14
  35. package/dist/animation/coordinator/CoordinatorPulseBounce.js +35 -35
  36. package/dist/animation/coordinator/CoordinatorPulseHighlight.d.ts +13 -13
  37. package/dist/animation/coordinator/CoordinatorPulseHighlight.js +29 -29
  38. package/dist/animation/coordinator/CoordinatorPulseInflate.d.ts +14 -14
  39. package/dist/animation/coordinator/CoordinatorPulseInflate.js +23 -23
  40. package/dist/camera/CameraCreator.d.ts +5 -5
  41. package/dist/camera/CameraCreator.js +4 -4
  42. package/dist/camera/CfgArcRotateCameraPointersInput.d.ts +26 -26
  43. package/dist/camera/CfgArcRotateCameraPointersInput.js +266 -266
  44. package/dist/camera/CfgOrbitalCamera.d.ts +76 -76
  45. package/dist/camera/CfgOrbitalCamera.js +281 -281
  46. package/dist/camera/CfgOrbitalCameraControlProps.d.ts +14 -14
  47. package/dist/camera/CfgOrbitalCameraControlProps.js +7 -7
  48. package/dist/camera/GradingApplier.d.ts +3 -3
  49. package/dist/camera/GradingApplier.js +48 -48
  50. package/dist/engine/EngineCreator.d.ts +3 -3
  51. package/dist/engine/EngineCreator.js +10 -10
  52. package/dist/geometry/CfgGeometry.d.ts +29 -29
  53. package/dist/geometry/CfgGeometry.js +146 -146
  54. package/dist/geometry/CfgMesh.d.ts +10 -10
  55. package/dist/geometry/CfgMesh.js +38 -38
  56. package/dist/geometry/geoSplitter.d.ts +8 -8
  57. package/dist/geometry/geoSplitter.js +192 -192
  58. package/dist/geometry/stretch/CfgMorphTarget.d.ts +15 -15
  59. package/dist/geometry/stretch/CfgMorphTarget.js +65 -65
  60. package/dist/geometry/stretch/CfgStretchData.d.ts +116 -116
  61. package/dist/geometry/stretch/CfgStretchData.js +350 -350
  62. package/dist/geometry/stretch/CfgStretchMorphGeometry.d.ts +16 -16
  63. package/dist/geometry/stretch/CfgStretchMorphGeometry.js +95 -95
  64. package/dist/index.d.ts +16 -16
  65. package/dist/index.js +16 -16
  66. package/dist/io/CfgHistoryToCameraConfConnector.d.ts +31 -31
  67. package/dist/io/CfgHistoryToCameraConfConnector.js +90 -90
  68. package/dist/io/CfgIOCameraConfConnector.d.ts +35 -35
  69. package/dist/io/CfgIOCameraConfConnector.js +81 -81
  70. package/dist/io/CfgObservableStateToCameraConfConnector.d.ts +10 -10
  71. package/dist/io/CfgObservableStateToCameraConfConnector.js +11 -11
  72. package/dist/io/CfgWindowMessageToCameraConfConnector.d.ts +10 -10
  73. package/dist/io/CfgWindowMessageToCameraConfConnector.js +11 -11
  74. package/dist/light/CfgDirectionalLight.d.ts +8 -8
  75. package/dist/light/CfgDirectionalLight.js +18 -18
  76. package/dist/light/CfgHemisphericLight.d.ts +7 -7
  77. package/dist/light/CfgHemisphericLight.js +17 -17
  78. package/dist/light/CfgPointLight.d.ts +8 -8
  79. package/dist/light/CfgPointLight.js +18 -18
  80. package/dist/light/DefaultLightRig.d.ts +19 -19
  81. package/dist/light/DefaultLightRig.js +77 -77
  82. package/dist/light/LightRigCreator.d.ts +9 -9
  83. package/dist/light/LightRigCreator.js +3 -3
  84. package/dist/material/CfgMaterial.d.ts +68 -68
  85. package/dist/material/CfgMaterial.js +482 -482
  86. package/dist/material/DummyMaterialCreator.d.ts +4 -4
  87. package/dist/material/DummyMaterialCreator.js +15 -15
  88. package/dist/material/material.d.ts +18 -18
  89. package/dist/material/material.js +128 -128
  90. package/dist/material/texture.d.ts +14 -14
  91. package/dist/material/texture.js +306 -306
  92. package/dist/nodes/CfgContentRootNode.d.ts +19 -19
  93. package/dist/nodes/CfgContentRootNode.js +75 -75
  94. package/dist/nodes/CfgDeferredMeshNode.d.ts +55 -55
  95. package/dist/nodes/CfgDeferredMeshNode.js +378 -378
  96. package/dist/nodes/CfgProductNode.d.ts +127 -127
  97. package/dist/nodes/CfgProductNode.js +598 -598
  98. package/dist/nodes/CfgSymNode.d.ts +50 -50
  99. package/dist/nodes/CfgSymNode.js +249 -249
  100. package/dist/nodes/CfgSymRootNode.d.ts +45 -45
  101. package/dist/nodes/CfgSymRootNode.js +229 -229
  102. package/dist/nodes/CfgTransformNode.d.ts +33 -33
  103. package/dist/nodes/CfgTransformNode.js +83 -83
  104. package/dist/scene/SceneCreator.d.ts +6 -6
  105. package/dist/scene/SceneCreator.js +22 -22
  106. package/dist/utilities/CfgBoundingBox.d.ts +21 -21
  107. package/dist/utilities/CfgBoundingBox.js +81 -81
  108. package/dist/utilities/anchor/anchor.d.ts +50 -50
  109. package/dist/utilities/anchor/anchor.js +133 -133
  110. package/dist/utilities/anchor/anchorMap.d.ts +20 -20
  111. package/dist/utilities/anchor/anchorMap.js +111 -111
  112. package/dist/utilities/utilities3D.d.ts +70 -70
  113. package/dist/utilities/utilities3D.js +265 -265
  114. package/dist/utilities/utilitiesColor.d.ts +18 -18
  115. package/dist/utilities/utilitiesColor.js +50 -50
  116. package/dist/utilities/utilitiesImage.d.ts +6 -6
  117. package/dist/utilities/utilitiesImage.js +107 -107
  118. package/dist/utilities/utilitiesSymRootIdentifier.d.ts +7 -7
  119. package/dist/utilities/utilitiesSymRootIdentifier.js +26 -26
  120. package/dist/view/BaseView.d.ts +78 -78
  121. package/dist/view/BaseView.js +303 -303
  122. package/dist/view/BaseViewConfiguration.d.ts +32 -32
  123. package/dist/view/BaseViewConfiguration.js +10 -10
  124. package/dist/view/RenderEnv.d.ts +43 -43
  125. package/dist/view/RenderEnv.js +7 -7
  126. package/dist/view/SingleProductDefaultCameraView.d.ts +38 -38
  127. package/dist/view/SingleProductDefaultCameraView.js +149 -149
  128. package/dist/view/SingleProductDefaultCameraViewConfiguration.d.ts +44 -44
  129. package/dist/view/SingleProductDefaultCameraViewConfiguration.js +11 -11
  130. package/dist/view/SingleProductView.d.ts +44 -44
  131. package/dist/view/SingleProductView.js +212 -212
  132. package/dist/view/SingleProductViewConfiguration.d.ts +32 -32
  133. package/dist/view/SingleProductViewConfiguration.js +19 -19
  134. package/package.json +5 -5
@@ -1,117 +1,117 @@
1
- import { Matrix, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
- import { StretchMap } from "@configura/web-api";
3
- import { SymNode } from "@configura/web-core/dist/cm/format/cmsym/SymNode.js";
4
- import { DetailLevel } from "@configura/web-core/dist/cm/geometry/DetailMask.js";
5
- import { LengthValue, Logger } from "@configura/web-utilities";
6
- /**
7
- * How far along from sp to ep is a point on a plane crossing the sp to ep line?
8
- * 1 means at ep, 0 means at sp.
9
- */
10
- export declare function calculateAlongness(p: Vector3, sp: Vector3, spToEpLength: number, normalizedNormal: Vector3): number;
11
- /**
12
- * Where does the point p end up given the CfgStretchDatas and the StretchMap.
13
- * This is the same equations that Babylon uses for stretching, only Babylon does it in the
14
- * shaders during rendering and is thus GPU accelerated.
15
- * This version is much slower, but that is okay as long as this function is sparingly used.
16
- */
17
- export declare const toStretchedPoint: (p: Vector3, stretchDatas: CfgStretchData[], stretchReferenceLengthsByMeasureParamCode: StretchMap) => Vector3;
18
- /**
19
- * The end of a section is the beginning of the next.
20
- * Start/end are redundant, but both are kept for ease of access.
21
- * The first section will have startAlongness 0. This does not mean that things can't be outside.
22
- * The start section should be thought of as endless in the sp-direction.
23
- * The last section will have endAlongness 0. This does not mean that things can't be outside.
24
- * The end section should be thought of as endless in the ep-direction.
25
- */
26
- export declare type StretchSection = {
27
- last: boolean;
28
- sizeChange: number;
29
- move: boolean;
30
- startAlongness: number;
31
- endAlongness: number;
32
- atTwiceTranslation: number;
33
- atTwiceScale: number;
34
- };
35
- /**
36
- * Please note that stretch is not bound to be contained between sp and ep.
37
- *
38
- * The thinking in the equations in CfgStretchData is that we want to support MorphTargets in an as
39
- * efficient manner as possible. As MorphTargets work by morphing between pre-compiled meshes we
40
- * calculate what happens if you stretch to twice the referenceLength, to make MorphTargets for
41
- * twice the referenceLength, and then calculate how these MorphTargets should be applied to
42
- * achieve to requested referenceLength.
43
- *
44
- * This adaption to MorphTargets might make the code for stretching points for other purposes look
45
- * (be) a bit complicated. However, as a mesh often contains millions of vertices that needs to be
46
- * moved and calculating for bounding boxes, and anchor points and such moves very few vertices,
47
- * this is okay.
48
- *
49
- * Using "Twice" as the precomputed target is arbitrarily, we just chose it because it makes
50
- * equations simple.
51
- */
52
- export declare class CfgStretchData {
53
- readonly detailLevel: DetailLevel;
54
- readonly measureParam: string;
55
- readonly stretchSymNodeId: string;
56
- readonly originalReferenceLength: number | undefined;
57
- readonly sp: Vector3;
58
- readonly ep: Vector3;
59
- readonly spToEpLength: number;
60
- readonly originalSpToEpLength: number;
61
- readonly normal: Vector3;
62
- readonly normalNormalized: Vector3;
63
- readonly sections: StretchSection[];
64
- static make(logger: Logger, symNode: SymNode, detailLevel: DetailLevel): CfgStretchData;
65
- private static processSections;
66
- /**
67
- * It is assumed that the symNode passed really is stretch (symNodeIsStretch has been run)
68
- * so any data missing for stretch will be an Exception.
69
- *
70
- * @param detailLevel
71
- * @param measureParam Name of the parameter controlling the stretch
72
- * @param stretchSymNodeId Id of the SymNode. This is used for anchoring.
73
- * @param originalReferenceLength Server-side calculated original referenceLength. We do not
74
- * actually use this for anything, but it can be handy for debug.
75
- * @param sp Start Point, the start anchor of the stretch line.
76
- * @param ep End Point, the end anchor of the stretch line.
77
- * @param spToEpLength Distance from sp to ep.
78
- * @param originalSpToEpLength spToEpLength before transforms.
79
- * @param normal The normal is from sp to ep and is the normal of every plane that divides this
80
- * stretch.
81
- * @param normalNormalized Normalized version of normal
82
- * @param sections The slices the model is sliced into
83
- */
84
- private constructor();
85
- private _hash;
86
- get hash(): number;
87
- /** How far along between sp and ep is p? */
88
- getAlongness: (p: Vector3) => number;
89
- /**
90
- * If the Matrix is identity the original CfgStretchData is returned.
91
- * If not a new CfgStretchData will be created.
92
- * sp, ep, spToEpLength, normal, normalNormalized, scale will be cloned and transformed
93
- * The rest will still reference the original objects
94
- */
95
- applyMatrix(matrix: Matrix): CfgStretchData;
96
- /**
97
- * Calculates the translation of a point which moves it from its original position to where it
98
- * would be if we stretched to twice the reference length. Please note: this gives the
99
- * translation, not the new location. The new location will be p.add(stretchPointToTwice(p))
100
- */
101
- stretchPointToTwice(p: Vector3): Vector3;
102
- /**
103
- * Given a reference length calculates the influence that should be applied to a MorphTarget to
104
- * achieve the requested length, given that these MorphTargets are constructed so that they
105
- * will double the length when the influence 1 is applied.
106
- *
107
- * Please note that the referenceLength is the wanted length between sp and ep, that is, the
108
- * stretch line. This line does not have to be span the entire model. Also, there can be
109
- * multiple stretch lines that are not orthogonal to this, and the will also affect the actual
110
- * size. Finally there can be transforms applied in the tree. So, the referenceLength will only
111
- * be the actual length of the model in specific cases. However, we believe that models with
112
- * stretch are often constructed in such a way that in real use cases the referenceLength is
113
- * the actual real length.
114
- */
115
- calculateInfluenceGivenTwiceMorphTarget(referenceLength: LengthValue): number;
116
- }
1
+ import { Matrix, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
+ import { StretchMap } from "@configura/web-api";
3
+ import { SymNode } from "@configura/web-core/dist/cm/format/cmsym/SymNode.js";
4
+ import { DetailLevel } from "@configura/web-core/dist/cm/geometry/DetailMask.js";
5
+ import { LengthValue, Logger } from "@configura/web-utilities";
6
+ /**
7
+ * How far along from sp to ep is a point on a plane crossing the sp to ep line?
8
+ * 1 means at ep, 0 means at sp.
9
+ */
10
+ export declare function calculateAlongness(p: Vector3, sp: Vector3, spToEpLength: number, normalizedNormal: Vector3): number;
11
+ /**
12
+ * Where does the point p end up given the CfgStretchDatas and the StretchMap.
13
+ * This is the same equations that Babylon uses for stretching, only Babylon does it in the
14
+ * shaders during rendering and is thus GPU accelerated.
15
+ * This version is much slower, but that is okay as long as this function is sparingly used.
16
+ */
17
+ export declare const toStretchedPoint: (p: Vector3, stretchDatas: CfgStretchData[], stretchReferenceLengthsByMeasureParamCode: StretchMap) => Vector3;
18
+ /**
19
+ * The end of a section is the beginning of the next.
20
+ * Start/end are redundant, but both are kept for ease of access.
21
+ * The first section will have startAlongness 0. This does not mean that things can't be outside.
22
+ * The start section should be thought of as endless in the sp-direction.
23
+ * The last section will have endAlongness 0. This does not mean that things can't be outside.
24
+ * The end section should be thought of as endless in the ep-direction.
25
+ */
26
+ export declare type StretchSection = {
27
+ last: boolean;
28
+ sizeChange: number;
29
+ move: boolean;
30
+ startAlongness: number;
31
+ endAlongness: number;
32
+ atTwiceTranslation: number;
33
+ atTwiceScale: number;
34
+ };
35
+ /**
36
+ * Please note that stretch is not bound to be contained between sp and ep.
37
+ *
38
+ * The thinking in the equations in CfgStretchData is that we want to support MorphTargets in an as
39
+ * efficient manner as possible. As MorphTargets work by morphing between pre-compiled meshes we
40
+ * calculate what happens if you stretch to twice the referenceLength, to make MorphTargets for
41
+ * twice the referenceLength, and then calculate how these MorphTargets should be applied to
42
+ * achieve to requested referenceLength.
43
+ *
44
+ * This adaption to MorphTargets might make the code for stretching points for other purposes look
45
+ * (be) a bit complicated. However, as a mesh often contains millions of vertices that needs to be
46
+ * moved and calculating for bounding boxes, and anchor points and such moves very few vertices,
47
+ * this is okay.
48
+ *
49
+ * Using "Twice" as the precomputed target is arbitrarily, we just chose it because it makes
50
+ * equations simple.
51
+ */
52
+ export declare class CfgStretchData {
53
+ readonly detailLevel: DetailLevel;
54
+ readonly measureParam: string;
55
+ readonly stretchSymNodeId: string;
56
+ readonly originalReferenceLength: number | undefined;
57
+ readonly sp: Vector3;
58
+ readonly ep: Vector3;
59
+ readonly spToEpLength: number;
60
+ readonly originalSpToEpLength: number;
61
+ readonly normal: Vector3;
62
+ readonly normalNormalized: Vector3;
63
+ readonly sections: StretchSection[];
64
+ static make(logger: Logger, symNode: SymNode, detailLevel: DetailLevel): CfgStretchData;
65
+ private static processSections;
66
+ /**
67
+ * It is assumed that the symNode passed really is stretch (symNodeIsStretch has been run)
68
+ * so any data missing for stretch will be an Exception.
69
+ *
70
+ * @param detailLevel
71
+ * @param measureParam Name of the parameter controlling the stretch
72
+ * @param stretchSymNodeId Id of the SymNode. This is used for anchoring.
73
+ * @param originalReferenceLength Server-side calculated original referenceLength. We do not
74
+ * actually use this for anything, but it can be handy for debug.
75
+ * @param sp Start Point, the start anchor of the stretch line.
76
+ * @param ep End Point, the end anchor of the stretch line.
77
+ * @param spToEpLength Distance from sp to ep.
78
+ * @param originalSpToEpLength spToEpLength before transforms.
79
+ * @param normal The normal is from sp to ep and is the normal of every plane that divides this
80
+ * stretch.
81
+ * @param normalNormalized Normalized version of normal
82
+ * @param sections The slices the model is sliced into
83
+ */
84
+ private constructor();
85
+ private _hash;
86
+ get hash(): number;
87
+ /** How far along between sp and ep is p? */
88
+ getAlongness: (p: Vector3) => number;
89
+ /**
90
+ * If the Matrix is identity the original CfgStretchData is returned.
91
+ * If not a new CfgStretchData will be created.
92
+ * sp, ep, spToEpLength, normal, normalNormalized, scale will be cloned and transformed
93
+ * The rest will still reference the original objects
94
+ */
95
+ applyMatrix(matrix: Matrix): CfgStretchData;
96
+ /**
97
+ * Calculates the translation of a point which moves it from its original position to where it
98
+ * would be if we stretched to twice the reference length. Please note: this gives the
99
+ * translation, not the new location. The new location will be p.add(stretchPointToTwice(p))
100
+ */
101
+ stretchPointToTwice(p: Vector3): Vector3;
102
+ /**
103
+ * Given a reference length calculates the influence that should be applied to a MorphTarget to
104
+ * achieve the requested length, given that these MorphTargets are constructed so that they
105
+ * will double the length when the influence 1 is applied.
106
+ *
107
+ * Please note that the referenceLength is the wanted length between sp and ep, that is, the
108
+ * stretch line. This line does not have to be span the entire model. Also, there can be
109
+ * multiple stretch lines that are not orthogonal to this, and the will also affect the actual
110
+ * size. Finally there can be transforms applied in the tree. So, the referenceLength will only
111
+ * be the actual length of the model in specific cases. However, we believe that models with
112
+ * stretch are often constructed in such a way that in real use cases the referenceLength is
113
+ * the actual real length.
114
+ */
115
+ calculateInfluenceGivenTwiceMorphTarget(referenceLength: LengthValue): number;
116
+ }
117
117
  //# sourceMappingURL=CfgStretchData.d.ts.map