@vived/component-abb-6700 1.0.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 (203) hide show
  1. package/.todo.md +13 -0
  2. package/README.md +122 -0
  3. package/dist/.gitkeep +0 -0
  4. package/dist/Adapters/aBB6700PMAdapter.d.ts +10 -0
  5. package/dist/Adapters/aBB6700PMAdapter.d.ts.map +1 -0
  6. package/dist/Controllers/createABB6700.d.ts +12 -0
  7. package/dist/Controllers/createABB6700.d.ts.map +1 -0
  8. package/dist/Controllers/getPose.d.ts +11 -0
  9. package/dist/Controllers/getPose.d.ts.map +1 -0
  10. package/dist/Controllers/setJointAngle.d.ts +12 -0
  11. package/dist/Controllers/setJointAngle.d.ts.map +1 -0
  12. package/dist/Controllers/setPose.d.ts +11 -0
  13. package/dist/Controllers/setPose.d.ts.map +1 -0
  14. package/dist/Entities/ABB6700Entity.d.ts +35 -0
  15. package/dist/Entities/ABB6700Entity.d.ts.map +1 -0
  16. package/dist/Entities/ABB6700Repo.d.ts +32 -0
  17. package/dist/Entities/ABB6700Repo.d.ts.map +1 -0
  18. package/dist/Factory/ABB6700FeatureFactory.d.ts +26 -0
  19. package/dist/Factory/ABB6700FeatureFactory.d.ts.map +1 -0
  20. package/dist/Mocks/MockABB6700PM.d.ts +11 -0
  21. package/dist/Mocks/MockABB6700PM.d.ts.map +1 -0
  22. package/dist/Mocks/MockSetJointAngleUC.d.ts +7 -0
  23. package/dist/Mocks/MockSetJointAngleUC.d.ts.map +1 -0
  24. package/dist/Mocks/MockSetPoseUC.d.ts +7 -0
  25. package/dist/Mocks/MockSetPoseUC.d.ts.map +1 -0
  26. package/dist/PMs/ABB6700PM.d.ts +32 -0
  27. package/dist/PMs/ABB6700PM.d.ts.map +1 -0
  28. package/dist/UCs/CalcStabilizerUC.d.ts +7 -0
  29. package/dist/UCs/CalcStabilizerUC.d.ts.map +1 -0
  30. package/dist/UCs/SetJointAngleUC.d.ts +15 -0
  31. package/dist/UCs/SetJointAngleUC.d.ts.map +1 -0
  32. package/dist/UCs/SetPoseUC.d.ts +22 -0
  33. package/dist/UCs/SetPoseUC.d.ts.map +1 -0
  34. package/dist/Views/ABB6700BabylonView.d.ts +27 -0
  35. package/dist/Views/ABB6700BabylonView.d.ts.map +1 -0
  36. package/dist/abb_6700.glb +0 -0
  37. package/dist/abstractAudioBus-CyBWsmuN.js +14 -0
  38. package/dist/animationGroup-BhNThqQe.js +1454 -0
  39. package/dist/basisTextureLoader-BT391BsV.js +310 -0
  40. package/dist/brdfTextureTools-DUyKBAXf.js +79 -0
  41. package/dist/bumpFragment-Dd-ojPA1.js +134 -0
  42. package/dist/bumpFragment-KE1_PuMl.js +287 -0
  43. package/dist/bumpVertex-BcdvVFVx.js +8 -0
  44. package/dist/bumpVertexDeclaration-B5Uvs-RS.js +8 -0
  45. package/dist/bumpVertexDeclaration-ixSg-yGI.js +8 -0
  46. package/dist/clipPlaneFragment-DJwQynjA.js +136 -0
  47. package/dist/clipPlaneVertex-D4Wk50XG.js +376 -0
  48. package/dist/clipPlaneVertex-eQ147Tn2.js +350 -0
  49. package/dist/component.config.d.ts +17 -0
  50. package/dist/component.config.d.ts.map +1 -0
  51. package/dist/ddsTextureLoader-DeoF3iGO.js +331 -0
  52. package/dist/default.fragment-DKnTR9nY.js +548 -0
  53. package/dist/default.fragment-rIGWrUS5.js +486 -0
  54. package/dist/default.vertex-Bt5y1VyA.js +212 -0
  55. package/dist/default.vertex-Dext1liJ.js +224 -0
  56. package/dist/defaultUboDeclaration-BwslQZX8.js +11 -0
  57. package/dist/defaultUboDeclaration-DSXACgip.js +9 -0
  58. package/dist/easing-BAt0SO-B.js +163 -0
  59. package/dist/envTextureLoader-CBiW_Q-U.js +40 -0
  60. package/dist/exrTextureLoader-5SC6PKIA.js +740 -0
  61. package/dist/flowGraphApplyForceBlock-6e8-wcaw.js +32 -0
  62. package/dist/flowGraphApplyImpulseBlock-B27EZQow.js +32 -0
  63. package/dist/flowGraphArrayIndexBlock-DIUn5e4i.js +31 -0
  64. package/dist/flowGraphBezierCurveEasingBlock-BJmiHk40.js +25 -0
  65. package/dist/flowGraphBinaryOperationBlock-Bj7TANCc.js +25 -0
  66. package/dist/flowGraphBranchBlock-7CRvIKWc.js +19 -0
  67. package/dist/flowGraphCachedOperationBlock-CP1ZiuIB.js +26 -0
  68. package/dist/flowGraphCancelDelayBlock-DqtgzBGm.js +20 -0
  69. package/dist/flowGraphCodeExecutionBlock-CaYXCGqo.js +23 -0
  70. package/dist/flowGraphConditionalDataBlock-DJ7evX8_.js +28 -0
  71. package/dist/flowGraphConsoleLogBlock-cMkpqLzO.js +68 -0
  72. package/dist/flowGraphConstantBlock-JWybwT0A.js +28 -0
  73. package/dist/flowGraphContextBlock-CFDXHcbn.js +19 -0
  74. package/dist/flowGraphCounterBlock-B0uPkgw9.js +24 -0
  75. package/dist/flowGraphDataSwitchBlock-B0GSifvJ.js +27 -0
  76. package/dist/flowGraphDebounceBlock-CSw8zKym.js +24 -0
  77. package/dist/flowGraphDebugBlock-DiSR6Ahn.js +65 -0
  78. package/dist/flowGraphDoNBlock-C-48oQ2H.js +24 -0
  79. package/dist/flowGraphEasingBlock-DKUaE7Rp.js +50 -0
  80. package/dist/flowGraphFlipFlopBlock-DX5BGhMV.js +20 -0
  81. package/dist/flowGraphForLoopBlock-Di-Qwg23.js +27 -0
  82. package/dist/flowGraphFunctionReferenceBlock-D8X5TFsO.js +20 -0
  83. package/dist/flowGraphGLTFDataProvider-C4j7nPQv.js +16 -0
  84. package/dist/flowGraphGetAngularVelocityBlock-Cq-yTQ4D.js +31 -0
  85. package/dist/flowGraphGetAssetBlock-B36eioor.js +21 -0
  86. package/dist/flowGraphGetLinearVelocityBlock-MdrV0eUD.js +31 -0
  87. package/dist/flowGraphGetPhysicsMassPropertiesBlock-wXDZP1wM.js +30 -0
  88. package/dist/flowGraphGetPropertyBlock-eP0badwf.js +46 -0
  89. package/dist/flowGraphGetSoundVolumeBlock-D3gXGHXa.js +29 -0
  90. package/dist/flowGraphGetVariableBlock-C7-qZAec.js +31 -0
  91. package/dist/flowGraphIndexOfBlock-CC5l9n9P.js +31 -0
  92. package/dist/flowGraphInterpolationBlock-B6922jzt.js +50 -0
  93. package/dist/flowGraphIsKeyPressedBlock-X_iuiUOX.js +31 -0
  94. package/dist/flowGraphIsSoundPlayingBlock-DONQX8N8.js +29 -0
  95. package/dist/flowGraphJsonPointerParserBlock-DBH_gN8I.js +95 -0
  96. package/dist/flowGraphKeyDownEventBlock-D5T1Uyfv.js +26 -0
  97. package/dist/flowGraphKeyUpEventBlock-BPY_Kgkm.js +21 -0
  98. package/dist/flowGraphKeyboardEventBlock-C49fx3TC.js +20 -0
  99. package/dist/flowGraphMathBlocks-CkvrN3VJ.js +864 -0
  100. package/dist/flowGraphMathCombineExtractBlocks-QSjGlnoz.js +248 -0
  101. package/dist/flowGraphMatrixMathBlocks-B3D7Cz9p.js +117 -0
  102. package/dist/flowGraphMeshPickEventBlock-BBTz-taa.js +35 -0
  103. package/dist/flowGraphMultiGateBlock-BhY1y5BG.js +50 -0
  104. package/dist/flowGraphPauseAnimationBlock-CHZZXMbg.js +19 -0
  105. package/dist/flowGraphPauseSoundBlock-B7hMmJ0c.js +31 -0
  106. package/dist/flowGraphPhysicsCollisionEventBlock-CxoPpT-q.js +56 -0
  107. package/dist/flowGraphPlayAnimationBlock-DVAvIFux.js +99 -0
  108. package/dist/flowGraphPlaySoundBlock-DjHGrqbC.js +32 -0
  109. package/dist/flowGraphPointerDownEventBlock-qI-H0JST.js +31 -0
  110. package/dist/flowGraphPointerMoveEventBlock-DAi4VUyy.js +31 -0
  111. package/dist/flowGraphPointerOutEventBlock-CFtj68aC.js +21 -0
  112. package/dist/flowGraphPointerOverEventBlock-VxdHhFuu.js +23 -0
  113. package/dist/flowGraphPointerUpEventBlock-DRR1f07q.js +31 -0
  114. package/dist/flowGraphReceiveCustomEventBlock-B3bwdB66.js +52 -0
  115. package/dist/flowGraphSceneReadyEventBlock-Dy6lDT3j.js +23 -0
  116. package/dist/flowGraphSceneTickEventBlock-Bl9BF_Xw.js +32 -0
  117. package/dist/flowGraphSendCustomEventBlock-BAR4PGFq.js +35 -0
  118. package/dist/flowGraphSequenceBlock-veqU32ZZ.js +32 -0
  119. package/dist/flowGraphSetAngularVelocityBlock-Dj9b-zu6.js +31 -0
  120. package/dist/flowGraphSetDelayBlock-CMjudtvk.js +131 -0
  121. package/dist/flowGraphSetLinearVelocityBlock-DVDhhJBd.js +31 -0
  122. package/dist/flowGraphSetPhysicsMotionTypeBlock-CL3cxNCO.js +36 -0
  123. package/dist/flowGraphSetPropertyBlock-D3sWL3Ss.js +47 -0
  124. package/dist/flowGraphSetSoundVolumeBlock-CxVk45yR.js +32 -0
  125. package/dist/flowGraphSetVariableBlock-D1oJiwLj.js +47 -0
  126. package/dist/flowGraphSoundEndedEventBlock-CubEwii0.js +47 -0
  127. package/dist/flowGraphStopAnimationBlock-B9inwIQx.js +48 -0
  128. package/dist/flowGraphStopSoundBlock-BijIX2jC.js +31 -0
  129. package/dist/flowGraphSwitchBlock-BMhPb4OX.js +54 -0
  130. package/dist/flowGraphThrottleBlock-C7vrnkb1.js +37 -0
  131. package/dist/flowGraphTransformCoordinatesSystemBlock-DoISqaUG.js +29 -0
  132. package/dist/flowGraphTypeToTypeBlocks-CSML6QWx.js +57 -0
  133. package/dist/flowGraphUnaryOperationBlock-B0Shf-lJ.js +24 -0
  134. package/dist/flowGraphVectorMathBlocks-DoTRR_E0.js +178 -0
  135. package/dist/flowGraphWaitAllBlock-BvmDMc24.js +54 -0
  136. package/dist/flowGraphWhileLoopBlock-BaIq4-K2.js +27 -0
  137. package/dist/geometry.fragment-Bsis3UG2.js +275 -0
  138. package/dist/geometry.vertex-DskQ5b8j.js +222 -0
  139. package/dist/harmonicsFunctions-CtNrRfir.js +193 -0
  140. package/dist/harmonicsFunctions-PEz6APC7.js +18 -0
  141. package/dist/hdrTextureLoader-D9rYxJ9q.js +112 -0
  142. package/dist/helperFunctions-Bt7Zfkrp.js +89 -0
  143. package/dist/helperFunctions-CPmRxd37.js +121 -0
  144. package/dist/iesTextureLoader-BGUFjVhI.js +93 -0
  145. package/dist/index-CS3Icp_r.js +67657 -0
  146. package/dist/index.d.ts +23 -0
  147. package/dist/index.d.ts.map +1 -0
  148. package/dist/index.js +27 -0
  149. package/dist/ktxTextureLoader-cUaGg9_L.js +459 -0
  150. package/dist/lightFragment-BRDibDKG.js +404 -0
  151. package/dist/lightFragment-DCqtGMp_.js +402 -0
  152. package/dist/logDepthDeclaration-Bwm-3KyB.js +16 -0
  153. package/dist/logDepthDeclaration-gUfeSnXX.js +20 -0
  154. package/dist/logDepthVertex-CKeuJ6ae.js +213 -0
  155. package/dist/logDepthVertex-CXkmZels.js +459 -0
  156. package/dist/mesh.vertexData.functions-Bc9lJlrU.js +74 -0
  157. package/dist/oitFragment-B8zuQigp.js +792 -0
  158. package/dist/oitFragment-DH3h3T6x.js +657 -0
  159. package/dist/openpbr.fragment-BglYS6LA.js +1405 -0
  160. package/dist/openpbr.fragment-DrOTZs4m.js +1553 -0
  161. package/dist/openpbr.vertex-B-PaLFOR.js +384 -0
  162. package/dist/openpbr.vertex-DMdFRTnX.js +268 -0
  163. package/dist/openpbrMaterial-HCU0aOca.js +2880 -0
  164. package/dist/openpbrMaterialLoadingAdapter-CWRAa-7S.js +1122 -0
  165. package/dist/openpbrTransmissionLayerData-CfDVObj5.js +352 -0
  166. package/dist/openpbrUboDeclaration-CA2pvSbt.js +9 -0
  167. package/dist/openpbrUboDeclaration-xU8VOaib.js +10 -0
  168. package/dist/pass.fragment-1mMP54bb.js +10 -0
  169. package/dist/pass.fragment-DzaUp_jk.js +10 -0
  170. package/dist/passCube.fragment-CQaXS7g3.js +29 -0
  171. package/dist/passCube.fragment-QJGPwAXI.js +29 -0
  172. package/dist/pbr.fragment-BnaAAGxb.js +2775 -0
  173. package/dist/pbr.fragment-CYZk_EGU.js +2619 -0
  174. package/dist/pbr.vertex-CyvdCw91.js +372 -0
  175. package/dist/pbr.vertex-DJMAkDxs.js +270 -0
  176. package/dist/pbrBRDFFunctions-EugoWm6O.js +175 -0
  177. package/dist/pbrDebug-Bk3sPoEG.js +719 -0
  178. package/dist/pbrDebug-Cdalzb1I.js +614 -0
  179. package/dist/pbrIBLFunctions-B0bVAXCF.js +47 -0
  180. package/dist/pbrIBLFunctions-C06z-ouZ.js +51 -0
  181. package/dist/pbrMaterial-C4FCKBZQ.js +1660 -0
  182. package/dist/pbrMaterialLoadingAdapter-BGHlS_ZN.js +1032 -0
  183. package/dist/pbrUboDeclaration-1lN5_-Bw.js +9 -0
  184. package/dist/pbrUboDeclaration-BJOUUOZ2.js +10 -0
  185. package/dist/procedural.vertex-CFPKczKj.js +14 -0
  186. package/dist/procedural.vertex-DUW7bYZt.js +13 -0
  187. package/dist/rgbdDecode.fragment-CEGgE4tL.js +8 -0
  188. package/dist/rgbdDecode.fragment-FT0wkgah.js +8 -0
  189. package/dist/rgbdEncode.fragment-CLnJJf6E.js +8 -0
  190. package/dist/rgbdEncode.fragment-CaAcMsY9.js +8 -0
  191. package/dist/sceneUboDeclaration-B6oxsfcj.js +8 -0
  192. package/dist/sceneUboDeclaration-JByfVKik.js +13 -0
  193. package/dist/setupABB6700InstanceFactory.d.ts +7 -0
  194. package/dist/setupABB6700InstanceFactory.d.ts.map +1 -0
  195. package/dist/studio.env +0 -0
  196. package/dist/textureProcessor.fragment-BYPw6SMQ.js +152 -0
  197. package/dist/textureProcessor.fragment-Ciw9-F3w.js +157 -0
  198. package/dist/textureTools-Cct_bGgp.js +40 -0
  199. package/dist/tgaTextureLoader-BJOIdnFr.js +198 -0
  200. package/dist/thinEngine-Bt9FW4dD.js +2425 -0
  201. package/dist/webAudioBus-BUzRHSxr.js +88 -0
  202. package/dist/webAudioMainBus-Dds1TgJG.js +49 -0
  203. package/package.json +49 -0
@@ -0,0 +1,1032 @@
1
+ import { D as r, y as i, bf as u } from "./index-CS3Icp_r.js";
2
+ class h {
3
+ /**
4
+ * Creates a new instance of the PBRMaterialLoadingAdapter.
5
+ * @param material - The PBR material to adapt.
6
+ */
7
+ constructor(e) {
8
+ this._specWorkflow = !1, this._material = e, this._material.enableSpecularAntiAliasing = !0;
9
+ }
10
+ /**
11
+ * Gets the underlying material
12
+ */
13
+ get material() {
14
+ return this._material;
15
+ }
16
+ /**
17
+ * Whether the material should be treated as unlit
18
+ */
19
+ get isUnlit() {
20
+ return this._material.unlit;
21
+ }
22
+ /**
23
+ * Sets whether the material should be treated as unlit
24
+ */
25
+ set isUnlit(e) {
26
+ this._material.unlit = e;
27
+ }
28
+ // ========================================
29
+ // CULLING PROPERTIES
30
+ // ========================================
31
+ /**
32
+ * Sets whether back face culling is enabled.
33
+ * @param value True to enable back face culling
34
+ */
35
+ set backFaceCulling(e) {
36
+ this._material.backFaceCulling = e;
37
+ }
38
+ /**
39
+ * Gets whether back face culling is enabled.
40
+ * @returns True if back face culling is enabled
41
+ */
42
+ get backFaceCulling() {
43
+ return this._material.backFaceCulling;
44
+ }
45
+ /**
46
+ * Sets whether two-sided lighting is enabled.
47
+ * @param value True to enable two-sided lighting
48
+ */
49
+ set twoSidedLighting(e) {
50
+ this._material.twoSidedLighting = e;
51
+ }
52
+ /**
53
+ * Gets whether two-sided lighting is enabled.
54
+ * @returns True if two-sided lighting is enabled
55
+ */
56
+ get twoSidedLighting() {
57
+ return this._material.twoSidedLighting;
58
+ }
59
+ // ========================================
60
+ // ALPHA PROPERTIES
61
+ // ========================================
62
+ /**
63
+ * Sets the alpha cutoff value for alpha testing.
64
+ * @param value The alpha cutoff threshold (0-1)
65
+ */
66
+ set alphaCutOff(e) {
67
+ this._material.alphaCutOff = e;
68
+ }
69
+ /**
70
+ * Gets the alpha cutoff value.
71
+ * @returns The alpha cutoff threshold (0-1)
72
+ */
73
+ get alphaCutOff() {
74
+ return this._material.alphaCutOff;
75
+ }
76
+ /**
77
+ * Sets whether to use alpha from the albedo texture.
78
+ * @param value True to use alpha from albedo texture
79
+ */
80
+ set useAlphaFromBaseColorTexture(e) {
81
+ this._material.useAlphaFromAlbedoTexture = e;
82
+ }
83
+ /**
84
+ * Gets whether alpha is used from the albedo texture.
85
+ * @returns True if using alpha from albedo texture
86
+ */
87
+ get useAlphaFromBaseColorTexture() {
88
+ return this._material.useAlphaFromAlbedoTexture;
89
+ }
90
+ /**
91
+ * Gets whether the transparency is treated as alpha coverage.
92
+ */
93
+ get transparencyAsAlphaCoverage() {
94
+ return this._material.useRadianceOverAlpha || this._material.useSpecularOverAlpha;
95
+ }
96
+ /**
97
+ * Sets/Gets whether the transparency is treated as alpha coverage
98
+ */
99
+ set transparencyAsAlphaCoverage(e) {
100
+ this._material.useRadianceOverAlpha = !e, this._material.useSpecularOverAlpha = !e;
101
+ }
102
+ // ========================================
103
+ // BASE PARAMETERS
104
+ // ========================================
105
+ /**
106
+ * Sets the base color of the material (mapped to PBR albedoColor).
107
+ * @param value The base color as a Color3
108
+ */
109
+ set baseColor(e) {
110
+ this._material.albedoColor = e;
111
+ }
112
+ /**
113
+ * Gets the base color of the material.
114
+ * @returns The base color as a Color3
115
+ */
116
+ get baseColor() {
117
+ return this._material.albedoColor;
118
+ }
119
+ /**
120
+ * Sets the base color texture of the material (mapped to PBR albedoTexture).
121
+ * @param value The base color texture or null
122
+ */
123
+ set baseColorTexture(e) {
124
+ this._material.albedoTexture = e;
125
+ }
126
+ /**
127
+ * Gets the base color texture of the material.
128
+ * @returns The base color texture or null
129
+ */
130
+ get baseColorTexture() {
131
+ return this._material.albedoTexture;
132
+ }
133
+ /**
134
+ * Sets the base diffuse roughness of the material.
135
+ * @param value The diffuse roughness value (0-1)
136
+ */
137
+ set baseDiffuseRoughness(e) {
138
+ this._material.baseDiffuseRoughness = e, e > 0 && (this._material.brdf.baseDiffuseModel = r.MATERIAL_DIFFUSE_MODEL_E_OREN_NAYAR);
139
+ }
140
+ /**
141
+ * Gets the base diffuse roughness of the material.
142
+ * @returns The diffuse roughness value (0-1), defaults to 0 if not set
143
+ */
144
+ get baseDiffuseRoughness() {
145
+ return this._material.baseDiffuseRoughness ?? 0;
146
+ }
147
+ /**
148
+ * Sets the base diffuse roughness texture of the material.
149
+ * @param value The diffuse roughness texture or null
150
+ */
151
+ set baseDiffuseRoughnessTexture(e) {
152
+ this._material.baseDiffuseRoughnessTexture = e;
153
+ }
154
+ /**
155
+ * Gets the base diffuse roughness texture of the material.
156
+ * @returns The diffuse roughness texture or null
157
+ */
158
+ get baseDiffuseRoughnessTexture() {
159
+ return this._material.baseDiffuseRoughnessTexture;
160
+ }
161
+ /**
162
+ * Sets the base metalness value of the material (mapped to PBR metallic).
163
+ * @param value The metalness value (0-1)
164
+ */
165
+ set baseMetalness(e) {
166
+ this._material.metallic = e;
167
+ }
168
+ /**
169
+ * Gets the base metalness value of the material.
170
+ * @returns The metalness value (0-1), defaults to 1 if not set
171
+ */
172
+ get baseMetalness() {
173
+ return this._material.metallic ?? 1;
174
+ }
175
+ /**
176
+ * Sets the base metalness texture of the material (mapped to PBR metallicTexture).
177
+ * @param value The metalness texture or null
178
+ */
179
+ set baseMetalnessTexture(e) {
180
+ this._material.metallicTexture = e;
181
+ }
182
+ /**
183
+ * Gets the base metalness texture of the material.
184
+ * @returns The metalness texture or null
185
+ */
186
+ get baseMetalnessTexture() {
187
+ return this._material.metallicTexture;
188
+ }
189
+ /**
190
+ * Sets whether to use roughness from the metallic texture's green channel.
191
+ * Also disables using roughness from the alpha channel when enabled.
192
+ * @param value True to use green channel for roughness
193
+ */
194
+ set useRoughnessFromMetallicTextureGreen(e) {
195
+ this._material.useRoughnessFromMetallicTextureGreen = e, this._material.useRoughnessFromMetallicTextureAlpha = !e;
196
+ }
197
+ /**
198
+ * Sets whether to use metalness from the metallic texture's blue channel.
199
+ * @param value True to use blue channel for metalness
200
+ */
201
+ set useMetallicFromMetallicTextureBlue(e) {
202
+ this._material.useMetallnessFromMetallicTextureBlue = e;
203
+ }
204
+ // ========================================
205
+ // SPECULAR PARAMETERS
206
+ // ========================================
207
+ /**
208
+ * Configures specular properties and optionally enables OpenPBR BRDF model for edge color support.
209
+ * @param enableEdgeColor Whether to enable OpenPBR BRDF models for edge color support
210
+ */
211
+ enableSpecularEdgeColor(e = !1) {
212
+ e && (this._material.brdf.dielectricSpecularModel = r.MATERIAL_DIELECTRIC_SPECULAR_MODEL_OPENPBR, this._material.brdf.conductorSpecularModel = r.MATERIAL_CONDUCTOR_SPECULAR_MODEL_OPENPBR);
213
+ }
214
+ /**
215
+ * Enable the specular/glossiness workflow and disable metallic/roughness.
216
+ */
217
+ configureSpecularGlossiness() {
218
+ this._specWorkflow = !0, this._material.metallic = null, this._material.roughness = null, this._material.useMicroSurfaceFromReflectivityMapAlpha = !0;
219
+ }
220
+ /**
221
+ * Sets the specular weight (mapped to PBR metallicF0Factor).
222
+ * @param value The specular weight value
223
+ */
224
+ set specularWeight(e) {
225
+ this._material.metallicF0Factor = e;
226
+ }
227
+ /**
228
+ * Gets the specular weight.
229
+ * @returns The specular weight value, defaults to 1 if not set
230
+ */
231
+ get specularWeight() {
232
+ return this._material.metallicF0Factor ?? 1;
233
+ }
234
+ /**
235
+ * Sets the specular weight texture (mapped to PBR metallicReflectanceTexture).
236
+ * Configures the material to use only metalness from this texture when set.
237
+ * @param value The specular weight texture or null
238
+ */
239
+ set specularWeightTexture(e) {
240
+ e ? (this._material.metallicReflectanceTexture = e, this._material.useOnlyMetallicFromMetallicReflectanceTexture = !0) : (this._material.metallicReflectanceTexture = null, this._material.useOnlyMetallicFromMetallicReflectanceTexture = !1);
241
+ }
242
+ /**
243
+ * Gets the specular weight texture.
244
+ * @returns The specular weight texture or null
245
+ */
246
+ get specularWeightTexture() {
247
+ return this._material.metallicReflectanceTexture;
248
+ }
249
+ /**
250
+ * Sets the specular color (mapped to PBR metallicReflectanceColor).
251
+ * @param value The specular color as a Color3
252
+ */
253
+ set specularColor(e) {
254
+ this._specWorkflow ? this._material.reflectivityColor = e : this._material.metallicReflectanceColor = e;
255
+ }
256
+ /**
257
+ * Gets the specular color.
258
+ * @returns The specular color as a Color3
259
+ */
260
+ get specularColor() {
261
+ return this._specWorkflow ? this._material.reflectivityColor : this._material.metallicReflectanceColor;
262
+ }
263
+ /**
264
+ * Sets the specular color texture (mapped to PBR reflectanceTexture).
265
+ * @param value The specular color texture or null
266
+ */
267
+ set specularColorTexture(e) {
268
+ this._specWorkflow ? (this._material.reflectivityTexture = e, this._material.reflectivityTexture && (this._material.reflectivityTexture.hasAlpha = !0)) : this._material.reflectanceTexture = e;
269
+ }
270
+ /**
271
+ * Gets the specular color texture.
272
+ * @returns The specular color texture or null
273
+ */
274
+ get specularColorTexture() {
275
+ return this._specWorkflow ? this._material.reflectivityTexture : this._material.reflectanceTexture;
276
+ }
277
+ /**
278
+ * Sets the specular roughness (mapped to PBR roughness).
279
+ * @param value The roughness value (0-1)
280
+ */
281
+ set specularRoughness(e) {
282
+ this._material.roughness = e;
283
+ }
284
+ /**
285
+ * Gets the specular roughness.
286
+ * @returns The roughness value (0-1), defaults to 1 if not set
287
+ */
288
+ get specularRoughness() {
289
+ return this._material.roughness ?? 1;
290
+ }
291
+ /**
292
+ * Sets the specular roughness texture.
293
+ * Note: PBR uses the same texture for both metallic and roughness,
294
+ * so this only sets the texture if no base metalness texture exists.
295
+ * @param value The roughness texture or null
296
+ */
297
+ set specularRoughnessTexture(e) {
298
+ this.baseMetalnessTexture || (this._material.metallicTexture = e);
299
+ }
300
+ /**
301
+ * Gets the specular roughness texture.
302
+ * @returns The roughness texture (same as metallic texture for PBR) or null
303
+ */
304
+ get specularRoughnessTexture() {
305
+ return this._material.metallicTexture;
306
+ }
307
+ /**
308
+ * Sets the specular index of refraction (mapped to PBR indexOfRefraction).
309
+ * @param value The IOR value
310
+ */
311
+ set specularIor(e) {
312
+ this._material.indexOfRefraction = e;
313
+ }
314
+ /**
315
+ * Gets the specular index of refraction.
316
+ * @returns The IOR value
317
+ */
318
+ get specularIor() {
319
+ return this._material.indexOfRefraction;
320
+ }
321
+ /**
322
+ * Sets/gets the glossiness (inverted roughness)
323
+ * ONLY used for specular/glossiness workflow; has no effect when metallic/roughness workflow is active
324
+ */
325
+ get glossiness() {
326
+ return this._material.microSurface ?? 1;
327
+ }
328
+ /**
329
+ * Sets/gets the glossiness (inverted roughness)
330
+ * ONLY used for specular/glossiness workflow; has no effect when metallic/roughness workflow is active
331
+ */
332
+ set glossiness(e) {
333
+ this._material.microSurface = e;
334
+ }
335
+ // ========================================
336
+ // EMISSION PARAMETERS
337
+ // ========================================
338
+ /**
339
+ * Sets the emission color (mapped to PBR emissiveColor).
340
+ * @param value The emission color as a Color3
341
+ */
342
+ set emissionColor(e) {
343
+ this._material.emissiveColor = e;
344
+ }
345
+ /**
346
+ * Gets the emission color.
347
+ * @returns The emission color as a Color3
348
+ */
349
+ get emissionColor() {
350
+ return this._material.emissiveColor;
351
+ }
352
+ /**
353
+ * Sets the emission luminance/intensity (mapped to PBR emissiveIntensity).
354
+ * @param value The emission intensity value
355
+ */
356
+ set emissionLuminance(e) {
357
+ this._material.emissiveIntensity = e;
358
+ }
359
+ /**
360
+ * Gets the emission luminance/intensity.
361
+ * @returns The emission intensity value
362
+ */
363
+ get emissionLuminance() {
364
+ return this._material.emissiveIntensity;
365
+ }
366
+ /**
367
+ * Sets the emission color texture (mapped to PBR emissiveTexture).
368
+ * @param value The emission texture or null
369
+ */
370
+ set emissionColorTexture(e) {
371
+ this._material.emissiveTexture = e;
372
+ }
373
+ /**
374
+ * Gets the emission color texture.
375
+ * @returns The emission texture or null
376
+ */
377
+ get emissionColorTexture() {
378
+ return this._material.emissiveTexture;
379
+ }
380
+ // ========================================
381
+ // AMBIENT OCCLUSION
382
+ // ========================================
383
+ /**
384
+ * Sets the ambient occlusion texture (mapped to PBR ambientTexture).
385
+ * Automatically enables grayscale mode when set.
386
+ * @param value The ambient occlusion texture or null
387
+ */
388
+ set ambientOcclusionTexture(e) {
389
+ this._material.ambientTexture = e, e && (this._material.useAmbientInGrayScale = !0);
390
+ }
391
+ /**
392
+ * Gets the ambient occlusion texture.
393
+ * @returns The ambient occlusion texture or null
394
+ */
395
+ get ambientOcclusionTexture() {
396
+ return this._material.ambientTexture;
397
+ }
398
+ /**
399
+ * Sets the ambient occlusion texture strength.
400
+ * @param value The strength value (typically 0-1)
401
+ */
402
+ set ambientOcclusionTextureStrength(e) {
403
+ this._material.ambientTextureStrength = e;
404
+ }
405
+ /**
406
+ * Gets the ambient occlusion texture strength.
407
+ * @returns The strength value, defaults to 1.0 if not set
408
+ */
409
+ get ambientOcclusionTextureStrength() {
410
+ return this._material.ambientTextureStrength ?? 1;
411
+ }
412
+ // ========================================
413
+ // COAT PARAMETERS
414
+ // ========================================
415
+ /**
416
+ * Configures clear coat for PBR material.
417
+ * Enables clear coat and sets up proper configuration.
418
+ */
419
+ configureCoat() {
420
+ this._material.clearCoat.isEnabled = !0, this._material.clearCoat.useRoughnessFromMainTexture = !1, this._material.clearCoat.remapF0OnInterfaceChange = !1;
421
+ }
422
+ /**
423
+ * Sets the coat weight (mapped to PBR clearCoat.intensity).
424
+ * Automatically enables clear coat.
425
+ * @param value The coat weight value (0-1)
426
+ */
427
+ set coatWeight(e) {
428
+ this._material.clearCoat.isEnabled = !0, this._material.clearCoat.intensity = e;
429
+ }
430
+ /**
431
+ * Gets the coat weight.
432
+ * @returns The coat weight value
433
+ */
434
+ get coatWeight() {
435
+ return this._material.clearCoat.intensity;
436
+ }
437
+ /**
438
+ * Sets the coat weight texture (mapped to PBR clearCoat.texture).
439
+ * Automatically enables clear coat.
440
+ * @param value The coat weight texture or null
441
+ */
442
+ set coatWeightTexture(e) {
443
+ this._material.clearCoat.isEnabled = !0, this._material.clearCoat.texture = e;
444
+ }
445
+ /**
446
+ * Gets the coat weight texture.
447
+ * @returns The coat weight texture or null
448
+ */
449
+ get coatWeightTexture() {
450
+ return this._material.clearCoat.texture;
451
+ }
452
+ /**
453
+ * Sets the coat color (mapped to PBR clearCoat.tintColor).
454
+ * @param value The coat tint color as a Color3
455
+ */
456
+ set coatColor(e) {
457
+ this._material.clearCoat.isTintEnabled = e != i.White(), this._material.clearCoat.tintColor = e;
458
+ }
459
+ /**
460
+ * Sets the coat color texture (mapped to PBR clearCoat.tintTexture).
461
+ * @param value The coat color texture or null
462
+ */
463
+ set coatColorTexture(e) {
464
+ this._material.clearCoat.tintTexture = e;
465
+ }
466
+ /**
467
+ * Sets the coat roughness (mapped to PBR clearCoat.roughness).
468
+ * Automatically enables clear coat.
469
+ * @param value The coat roughness value (0-1)
470
+ */
471
+ set coatRoughness(e) {
472
+ this._material.clearCoat.isEnabled = !0, this._material.clearCoat.roughness = e;
473
+ }
474
+ /**
475
+ * Gets the coat roughness.
476
+ * @returns The coat roughness value, defaults to 0 if not set
477
+ */
478
+ get coatRoughness() {
479
+ return this._material.clearCoat.roughness ?? 0;
480
+ }
481
+ /**
482
+ * Sets the coat roughness texture (mapped to PBR clearCoat.textureRoughness).
483
+ * Automatically enables clear coat and disables using roughness from main texture.
484
+ * @param value The coat roughness texture or null
485
+ */
486
+ set coatRoughnessTexture(e) {
487
+ this._material.clearCoat.isEnabled = !0, this._material.clearCoat.useRoughnessFromMainTexture = !1, this._material.clearCoat.textureRoughness = e;
488
+ }
489
+ /**
490
+ * Gets the coat roughness texture.
491
+ * @returns The coat roughness texture or null
492
+ */
493
+ get coatRoughnessTexture() {
494
+ return this._material.clearCoat.textureRoughness;
495
+ }
496
+ /**
497
+ * Sets the coat index of refraction (IOR).
498
+ */
499
+ set coatIor(e) {
500
+ this._material.clearCoat.indexOfRefraction = e;
501
+ }
502
+ /**
503
+ * Sets the coat darkening value.
504
+ * Note: PBR doesn't have a direct coat darkening property, so this is a no-op.
505
+ * @param value The coat darkening value (ignored for PBR)
506
+ */
507
+ set coatDarkening(e) {
508
+ }
509
+ /**
510
+ * Sets the coat darkening texture
511
+ * @param value The coat darkening texture or null
512
+ */
513
+ set coatDarkeningTexture(e) {
514
+ }
515
+ /**
516
+ * Sets the coat roughness anisotropy.
517
+ * Note: PBR clearCoat doesn't support anisotropy yet, so this is a placeholder.
518
+ * @param value The coat anisotropy intensity value (currently ignored)
519
+ */
520
+ set coatRoughnessAnisotropy(e) {
521
+ }
522
+ /**
523
+ * Gets the coat roughness anisotropy.
524
+ * Note: PBR clearCoat doesn't support anisotropy yet, so this returns 0.
525
+ * @returns Currently returns 0 as clearCoat anisotropy is not yet available
526
+ */
527
+ get coatRoughnessAnisotropy() {
528
+ return 0;
529
+ }
530
+ /**
531
+ * Sets the coat tangent angle for anisotropy.
532
+ * Note: PBR clearCoat doesn't support anisotropy yet, so this is a placeholder.
533
+ * @param value The coat anisotropy rotation angle in radians (currently ignored)
534
+ */
535
+ set geometryCoatTangentAngle(e) {
536
+ }
537
+ /**
538
+ * Sets the coat tangent texture for anisotropy.
539
+ * Note: PBR clearCoat doesn't support anisotropy textures yet, so this is a placeholder.
540
+ * @param value The coat anisotropy texture (currently ignored)
541
+ */
542
+ set geometryCoatTangentTexture(e) {
543
+ }
544
+ /**
545
+ * Gets the coat tangent texture for anisotropy.
546
+ * Note: PBR clearCoat doesn't support anisotropy textures yet, so this returns null.
547
+ * @returns Currently returns null as clearCoat anisotropy is not yet available
548
+ */
549
+ get geometryCoatTangentTexture() {
550
+ return null;
551
+ }
552
+ // ========================================
553
+ // TRANSMISSION LAYER
554
+ // ========================================
555
+ /**
556
+ * Sets the transmission weight (mapped to PBR subSurface.refractionIntensity).
557
+ * Enables refraction when value \> 0.
558
+ * @param value The transmission weight value (0-1)
559
+ */
560
+ set transmissionWeight(e) {
561
+ this._material.subSurface.isRefractionEnabled = e > 0, this._material.subSurface.refractionIntensity = e;
562
+ }
563
+ /**
564
+ * Gets the transmission weight.
565
+ * @returns The transmission weight value
566
+ */
567
+ get transmissionWeight() {
568
+ return this._material.subSurface.isRefractionEnabled ? this._material.subSurface.refractionIntensity : 0;
569
+ }
570
+ /**
571
+ * Sets the transmission weight texture (mapped to PBR subSurface.refractionIntensityTexture).
572
+ * Automatically enables refraction and glTF-style textures.
573
+ * @param value The transmission weight texture or null
574
+ */
575
+ set transmissionWeightTexture(e) {
576
+ this._material.subSurface.isRefractionEnabled = !0, this._material.subSurface.refractionIntensityTexture = e, this._material.subSurface.useGltfStyleTextures = !0;
577
+ }
578
+ /**
579
+ * Sets the attenuation distance for volume.
580
+ * @param value The attenuation distance value
581
+ */
582
+ set transmissionDepth(e) {
583
+ this.transmissionWeight > 0 ? this._material.subSurface.tintColorAtDistance = e : this.subsurfaceWeight > 0 && this._material.subSurface.diffusionDistance.multiplyInPlace(new i(e, e, e));
584
+ }
585
+ /**
586
+ * Gets the attenuation distance for volume.
587
+ * @returns The attenuation distance value
588
+ */
589
+ get transmissionDepth() {
590
+ return this.transmissionWeight > 0 ? this._material.subSurface.tintColorAtDistance : 0;
591
+ }
592
+ /**
593
+ * Sets the attenuation color (mapped to PBR subSurface.tintColor).
594
+ * @param value The attenuation color as a Color3
595
+ */
596
+ set transmissionColor(e) {
597
+ this.transmissionWeight > 0 ? this._material.subSurface.tintColor = e : this.subsurfaceWeight > 0 && this._material.subSurface.diffusionDistance.multiplyInPlace(e);
598
+ }
599
+ /**
600
+ * Sets the attenuation color (mapped to PBR subSurface.tintColor).
601
+ * @returns The attenuation color as a Color3
602
+ */
603
+ get transmissionColor() {
604
+ return this.transmissionWeight > 0 ? this._material.subSurface.tintColor : this.subsurfaceWeight > 0 ? this._material.subSurface.diffusionDistance : new i(0, 0, 0);
605
+ }
606
+ /**
607
+ * Sets the transmission scatter coefficient.
608
+ * @param value The scatter coefficient as a Color3
609
+ */
610
+ set transmissionScatter(e) {
611
+ this._material.subSurface.diffusionDistance = e;
612
+ }
613
+ /**
614
+ * Sets the transmission scatter coefficient.
615
+ * @returns The scatter coefficient as a Color3
616
+ */
617
+ get transmissionScatter() {
618
+ return this._material.subSurface.diffusionDistance;
619
+ }
620
+ set transmissionScatterTexture(e) {
621
+ }
622
+ /**
623
+ * Sets the transmission scattering anisotropy.
624
+ * @param value The anisotropy intensity value (-1 to 1)
625
+ */
626
+ set transmissionScatterAnisotropy(e) {
627
+ }
628
+ /**
629
+ * Sets the transmission dispersion Abbe number.
630
+ * @param value The Abbe number value
631
+ */
632
+ set transmissionDispersionAbbeNumber(e) {
633
+ }
634
+ /**
635
+ * Sets the transmission dispersion scale.
636
+ * @param value The dispersion scale value
637
+ */
638
+ set transmissionDispersionScale(e) {
639
+ e > 0 ? (this._material.subSurface.isDispersionEnabled = !0, this._material.subSurface.dispersion = 20 / e) : (this._material.subSurface.isDispersionEnabled = !1, this._material.subSurface.dispersion = 0);
640
+ }
641
+ /**
642
+ * Gets the refraction background texture
643
+ * @returns The refraction background texture or null
644
+ */
645
+ get refractionBackgroundTexture() {
646
+ return this._material.subSurface.refractionTexture;
647
+ }
648
+ /**
649
+ * Sets the refraction background texture
650
+ * @param value The refraction background texture or null
651
+ */
652
+ set refractionBackgroundTexture(e) {
653
+ this._material.subSurface.refractionTexture = e;
654
+ }
655
+ /**
656
+ * Configures transmission for thin-surface transmission (KHR_materials_transmission).
657
+ * Sets up the material for proper thin-surface transmission behavior.
658
+ */
659
+ configureTransmission() {
660
+ this._material.subSurface.volumeIndexOfRefraction = 1, this._material.subSurface.useAlbedoToTintRefraction = !0, this._material.subSurface.minimumThickness = 0, this._material.subSurface.maximumThickness = 0;
661
+ }
662
+ // ========================================
663
+ // VOLUME PROPERTIES
664
+ // ========================================
665
+ /**
666
+ * Configures volume properties for PBR material. Nothing to do for PBRMaterial.
667
+ */
668
+ configureVolume() {
669
+ }
670
+ /**
671
+ * Sets whether the material is thin-walled (i.e. non-volumetric) or not.
672
+ */
673
+ set geometryThinWalled(e) {
674
+ }
675
+ /**
676
+ * Gets whether the material is thin-walled (i.e. non-volumetric) or not.
677
+ */
678
+ get geometryThinWalled() {
679
+ return this._material.subSurface.maximumThickness === 0;
680
+ }
681
+ /**
682
+ * Sets the thickness texture (mapped to PBR subSurface.thicknessTexture).
683
+ * Automatically enables refraction.
684
+ * @param value The thickness texture or null
685
+ */
686
+ set volumeThicknessTexture(e) {
687
+ this._material.subSurface.thicknessTexture = e, this._material.subSurface.useGltfStyleTextures = !0;
688
+ }
689
+ /**
690
+ * Sets the thickness factor (mapped to PBR subSurface.maximumThickness).
691
+ * Automatically enables refraction.
692
+ * @param value The thickness value
693
+ */
694
+ set volumeThickness(e) {
695
+ this._material.subSurface.minimumThickness = 0, this._material.subSurface.maximumThickness = e, this._material.subSurface.useThicknessAsDepth = !0, e > 0 && (this._material.subSurface.volumeIndexOfRefraction = this._material.indexOfRefraction);
696
+ }
697
+ // ========================================
698
+ // SUBSURFACE PROPERTIES (Subsurface Scattering)
699
+ // ========================================
700
+ /**
701
+ * Configures subsurface properties for PBR material
702
+ */
703
+ configureSubsurface() {
704
+ this._material.subSurface.useGltfStyleTextures = !0, this._material.subSurface.volumeIndexOfRefraction = 1, this._material.subSurface.minimumThickness = 0, this._material.subSurface.maximumThickness = 0, this._material.subSurface.useAlbedoToTintTranslucency = !1;
705
+ }
706
+ /**
707
+ * Sets the subsurface weight
708
+ */
709
+ set subsurfaceWeight(e) {
710
+ this._material.subSurface.isTranslucencyEnabled = e > 0, this._material.subSurface.translucencyIntensity = e;
711
+ }
712
+ /**
713
+ * Gets the subsurface weight
714
+ * @returns The subsurface weight value
715
+ */
716
+ get subsurfaceWeight() {
717
+ return this._material.subSurface.isTranslucencyEnabled ? this._material.subSurface.translucencyIntensity : 0;
718
+ }
719
+ /**
720
+ * Sets the subsurface weight texture
721
+ */
722
+ set subsurfaceWeightTexture(e) {
723
+ this._material.subSurface.translucencyIntensityTexture = e;
724
+ }
725
+ /**
726
+ * Sets the subsurface color.
727
+ * @param value The subsurface tint color as a Color3
728
+ */
729
+ set subsurfaceColor(e) {
730
+ const s = new u(-Math.log(this.transmissionColor.r), -Math.log(this.transmissionColor.g), -Math.log(this.transmissionColor.b));
731
+ s.scaleInPlace(1 / Math.max(this.transmissionDepth, 1e-3));
732
+ const t = s, l = Math.max(t.x, Math.max(t.y, t.z)), a = l > 0 ? 1 / l : 1;
733
+ this._material.subSurface.diffusionDistance = new i(Math.exp(-t.x * a), Math.exp(-t.y * a), Math.exp(-t.z * a));
734
+ }
735
+ /**
736
+ * Sets the subsurface color texture.
737
+ * @param value The subsurface tint texture or null
738
+ */
739
+ set subsurfaceColorTexture(e) {
740
+ }
741
+ /**
742
+ * Sets the surface tint of the material (when using subsurface scattering)
743
+ */
744
+ set diffuseTransmissionTint(e) {
745
+ this._material.subSurface.tintColor = e;
746
+ }
747
+ /**
748
+ * Gets the subsurface constant tint (when using subsurface scattering)
749
+ * @returns The subsurface constant tint as a Color3
750
+ */
751
+ get diffuseTransmissionTint() {
752
+ return this._material.subSurface.tintColor;
753
+ }
754
+ /**
755
+ * Sets the subsurface constant tint texture (when using subsurface scattering)
756
+ * @param value The subsurface constant tint texture or null
757
+ */
758
+ set diffuseTransmissionTintTexture(e) {
759
+ this._material.subSurface.translucencyColorTexture = e;
760
+ }
761
+ /**
762
+ * Gets the subsurface radius (used for subsurface scattering)
763
+ * subsurfaceRadiusScale * subsurfaceRadius gives the mean free path per color channel.
764
+ * @returns The subsurface radius as a Color3
765
+ */
766
+ get subsurfaceRadius() {
767
+ return 1;
768
+ }
769
+ /**
770
+ * Sets the subsurface radius (used for subsurface scattering)
771
+ * subsurfaceRadiusScale * subsurfaceRadius gives the mean free path per color channel.
772
+ * @param value The subsurface radius as a number
773
+ */
774
+ set subsurfaceRadius(e) {
775
+ }
776
+ /**
777
+ * Gets the subsurface radius scale (used for subsurface scattering)
778
+ * subsurfaceRadiusScale * subsurfaceRadius gives the mean free path per color channel.
779
+ * @returns The subsurface radius scale as a Color3
780
+ */
781
+ get subsurfaceRadiusScale() {
782
+ return this._material.subSurface.scatteringDiffusionProfile ?? i.White();
783
+ }
784
+ /**
785
+ * Sets the subsurface radius scale (used for subsurface scattering)
786
+ * subsurfaceRadiusScale * subsurfaceRadius gives the mean free path per color channel.
787
+ * @param value The subsurface radius scale as a Color3
788
+ */
789
+ set subsurfaceRadiusScale(e) {
790
+ this._material.subSurface.scatteringDiffusionProfile = e;
791
+ }
792
+ /**
793
+ * Sets the subsurface scattering anisotropy.
794
+ * Note: PBRMaterial does not have a direct equivalent, so this is a no-op.
795
+ * @param value The anisotropy intensity value (ignored for PBR)
796
+ */
797
+ set subsurfaceScatterAnisotropy(e) {
798
+ }
799
+ /**
800
+ * Does this material have a translucent surface (i.e. either transmission or subsurface)?
801
+ * @returns True if the material is translucent, false otherwise
802
+ */
803
+ isTranslucent() {
804
+ return this.transmissionWeight > 0 || this.subsurfaceWeight > 0;
805
+ }
806
+ // ========================================
807
+ // FUZZ LAYER (Sheen)
808
+ // ========================================
809
+ /**
810
+ * Configures sheen for PBR material.
811
+ * Enables sheen and sets up proper configuration.
812
+ */
813
+ configureFuzz() {
814
+ this._material.sheen.isEnabled = !0, this._material.sheen.useRoughnessFromMainTexture = !1, this._material.sheen.albedoScaling = !0;
815
+ }
816
+ /**
817
+ * Sets the sheen weight (mapped to PBR sheen.intensity).
818
+ * Automatically enables sheen.
819
+ * @param value The sheen weight value
820
+ */
821
+ set fuzzWeight(e) {
822
+ this._material.sheen.isEnabled = !0, this._material.sheen.intensity = e;
823
+ }
824
+ /**
825
+ * Sets the fuzz weight texture.
826
+ * @param value The fuzz weight texture or null
827
+ */
828
+ set fuzzWeightTexture(e) {
829
+ this._material.sheen.texture || (this._material.sheen.texture = e);
830
+ }
831
+ /**
832
+ * Sets the sheen color (mapped to PBR sheen.color).
833
+ * Automatically enables sheen.
834
+ * @param value The sheen color as a Color3
835
+ */
836
+ set fuzzColor(e) {
837
+ this._material.sheen.isEnabled = !0, this._material.sheen.color = e;
838
+ }
839
+ /**
840
+ * Sets the sheen color texture (mapped to PBR sheen.texture).
841
+ * Automatically enables sheen.
842
+ * @param value The sheen color texture or null
843
+ */
844
+ set fuzzColorTexture(e) {
845
+ this._material.sheen.texture = e;
846
+ }
847
+ /**
848
+ * Sets the sheen roughness (mapped to PBR sheen.roughness).
849
+ * Automatically enables sheen.
850
+ * @param value The sheen roughness value (0-1)
851
+ */
852
+ set fuzzRoughness(e) {
853
+ this._material.sheen.isEnabled = !0, this._material.sheen.roughness = e;
854
+ }
855
+ /**
856
+ * Sets the sheen roughness texture (mapped to PBR sheen.textureRoughness).
857
+ * Automatically enables sheen.
858
+ * @param value The sheen roughness texture or null
859
+ */
860
+ set fuzzRoughnessTexture(e) {
861
+ this._material.sheen.isEnabled = !0, this._material.sheen.textureRoughness = e;
862
+ }
863
+ // ========================================
864
+ // ANISOTROPY
865
+ // ========================================
866
+ /**
867
+ * Sets the specular roughness anisotropy (mapped to PBR anisotropy.intensity).
868
+ * Automatically enables anisotropy.
869
+ * @param value The anisotropy intensity value
870
+ */
871
+ set specularRoughnessAnisotropy(e) {
872
+ this._material.anisotropy.isEnabled = !0, this._material.anisotropy.intensity = e;
873
+ }
874
+ /**
875
+ * Gets the specular roughness anisotropy.
876
+ * @returns The anisotropy intensity value
877
+ */
878
+ get specularRoughnessAnisotropy() {
879
+ return this._material.anisotropy.intensity;
880
+ }
881
+ /**
882
+ * Sets the anisotropy rotation (mapped to PBR anisotropy.angle).
883
+ * Automatically enables anisotropy.
884
+ * @param value The anisotropy rotation angle in radians
885
+ */
886
+ set geometryTangentAngle(e) {
887
+ this._material.anisotropy.isEnabled = !0, this._material.anisotropy.angle = e;
888
+ }
889
+ /**
890
+ * Sets the geometry tangent texture (mapped to PBR anisotropy.texture).
891
+ * Automatically enables anisotropy.
892
+ * @param value The anisotropy texture or null
893
+ */
894
+ set geometryTangentTexture(e) {
895
+ this._material.anisotropy.isEnabled = !0, this._material.anisotropy.texture = e;
896
+ }
897
+ /**
898
+ * Gets the geometry tangent texture.
899
+ * @returns The anisotropy texture or null
900
+ */
901
+ get geometryTangentTexture() {
902
+ return this._material.anisotropy.texture;
903
+ }
904
+ /**
905
+ * Configures glTF-style anisotropy for the material.
906
+ * Note: PBR materials don't need this configuration, so this is a no-op.
907
+ * @param useGltfStyle Whether to use glTF-style anisotropy (ignored for PBR)
908
+ */
909
+ configureGltfStyleAnisotropy(e = !0) {
910
+ }
911
+ // ========================================
912
+ // THIN FILM IRIDESCENCE
913
+ // ========================================
914
+ /**
915
+ * Sets the iridescence weight (mapped to PBR iridescence.intensity).
916
+ * Automatically enables iridescence.
917
+ * @param value The iridescence intensity value
918
+ */
919
+ set thinFilmWeight(e) {
920
+ this._material.iridescence.isEnabled = e > 0, this._material.iridescence.intensity = e;
921
+ }
922
+ /**
923
+ * Sets the iridescence IOR (mapped to PBR iridescence.indexOfRefraction).
924
+ * @param value The iridescence IOR value
925
+ */
926
+ set thinFilmIor(e) {
927
+ this._material.iridescence.indexOfRefraction = e;
928
+ }
929
+ /**
930
+ * Sets the iridescence thickness minimum (mapped to PBR iridescence.minimumThickness).
931
+ * @param value The minimum thickness value in nanometers
932
+ */
933
+ set thinFilmThicknessMinimum(e) {
934
+ this._material.iridescence.minimumThickness = e;
935
+ }
936
+ /**
937
+ * Sets the iridescence thickness maximum (mapped to PBR iridescence.maximumThickness).
938
+ * @param value The maximum thickness value in nanometers
939
+ */
940
+ set thinFilmThicknessMaximum(e) {
941
+ this._material.iridescence.maximumThickness = e;
942
+ }
943
+ /**
944
+ * Sets the thin film weight texture (mapped to PBR iridescence.texture).
945
+ * @param value The thin film weight texture or null
946
+ */
947
+ set thinFilmWeightTexture(e) {
948
+ this._material.iridescence.texture = e;
949
+ }
950
+ /**
951
+ * Sets the iridescence thickness texture (mapped to PBR iridescence.thicknessTexture).
952
+ * @param value The iridescence thickness texture or null
953
+ */
954
+ set thinFilmThicknessTexture(e) {
955
+ this._material.iridescence.thicknessTexture = e;
956
+ }
957
+ // ========================================
958
+ // UNLIT MATERIALS
959
+ // ========================================
960
+ /**
961
+ * Sets whether the material is unlit.
962
+ * @param value True to make the material unlit
963
+ */
964
+ set unlit(e) {
965
+ this._material.unlit = e;
966
+ }
967
+ // ========================================
968
+ // GEOMETRY PARAMETERS
969
+ // ========================================
970
+ /**
971
+ * Sets the geometry opacity (mapped to PBR alpha).
972
+ * @param value The opacity value (0-1)
973
+ */
974
+ set geometryOpacity(e) {
975
+ this._material.alpha = e;
976
+ }
977
+ /**
978
+ * Gets the geometry opacity.
979
+ * @returns The opacity value (0-1)
980
+ */
981
+ get geometryOpacity() {
982
+ return this._material.alpha;
983
+ }
984
+ /**
985
+ * Sets the geometry normal texture (mapped to PBR bumpTexture).
986
+ * Also forces irradiance computation in fragment shader for better lighting.
987
+ * @param value The normal texture or null
988
+ */
989
+ set geometryNormalTexture(e) {
990
+ this._material.bumpTexture = e, this._material.forceIrradianceInFragment = !0;
991
+ }
992
+ /**
993
+ * Gets the geometry normal texture.
994
+ * @returns The normal texture or null
995
+ */
996
+ get geometryNormalTexture() {
997
+ return this._material.bumpTexture;
998
+ }
999
+ /**
1000
+ * Sets the normal map inversions for the material.
1001
+ * @param invertX Whether to invert the normal map on the X axis
1002
+ * @param invertY Whether to invert the normal map on the Y axis
1003
+ */
1004
+ setNormalMapInversions(e, s) {
1005
+ this._material.invertNormalMapX = e, this._material.invertNormalMapY = s;
1006
+ }
1007
+ /**
1008
+ * Sets the geometry coat normal texture (mapped to PBR clearCoat.bumpTexture).
1009
+ * Automatically enables clear coat.
1010
+ * @param value The coat normal texture or null
1011
+ */
1012
+ set geometryCoatNormalTexture(e) {
1013
+ this._material.clearCoat.isEnabled = !0, this._material.clearCoat.bumpTexture = e;
1014
+ }
1015
+ /**
1016
+ * Gets the geometry coat normal texture.
1017
+ * @returns The coat normal texture or null
1018
+ */
1019
+ get geometryCoatNormalTexture() {
1020
+ return this._material.clearCoat.bumpTexture;
1021
+ }
1022
+ /**
1023
+ * Sets the geometry coat normal texture scale.
1024
+ * @param value The scale value for the coat normal texture
1025
+ */
1026
+ set geometryCoatNormalTextureScale(e) {
1027
+ this._material.clearCoat.bumpTexture && (this._material.clearCoat.bumpTexture.level = e);
1028
+ }
1029
+ }
1030
+ export {
1031
+ h as PBRMaterialLoadingAdapter
1032
+ };