@itwin/core-backend 3.6.0-dev.51 → 3.6.0-dev.53

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 (252) hide show
  1. package/lib/cjs/AliCloudStorageService.d.ts +23 -23
  2. package/lib/cjs/AliCloudStorageService.js +71 -71
  3. package/lib/cjs/AliCloudStorageService.js.map +1 -1
  4. package/lib/cjs/BackendHubAccess.d.ts +224 -224
  5. package/lib/cjs/BackendHubAccess.js +41 -41
  6. package/lib/cjs/BackendHubAccess.js.map +1 -1
  7. package/lib/cjs/BackendLoggerCategory.d.ts +91 -91
  8. package/lib/cjs/BackendLoggerCategory.js +99 -99
  9. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  10. package/lib/cjs/BisCoreSchema.d.ts +21 -21
  11. package/lib/cjs/BisCoreSchema.js +60 -60
  12. package/lib/cjs/BisCoreSchema.js.map +1 -1
  13. package/lib/cjs/BriefcaseManager.d.ts +170 -170
  14. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  15. package/lib/cjs/BriefcaseManager.js +414 -413
  16. package/lib/cjs/BriefcaseManager.js.map +1 -1
  17. package/lib/cjs/Category.d.ts +153 -153
  18. package/lib/cjs/Category.js +243 -243
  19. package/lib/cjs/Category.js.map +1 -1
  20. package/lib/cjs/ChangeSummaryManager.d.ts +187 -187
  21. package/lib/cjs/ChangeSummaryManager.js +447 -447
  22. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  23. package/lib/cjs/ChangedElementsDb.d.ts +99 -99
  24. package/lib/cjs/ChangedElementsDb.js +165 -165
  25. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  26. package/lib/cjs/ChangedElementsManager.d.ts +39 -39
  27. package/lib/cjs/ChangedElementsManager.js +88 -88
  28. package/lib/cjs/ChangedElementsManager.js.map +1 -1
  29. package/lib/cjs/CheckpointManager.d.ts +121 -121
  30. package/lib/cjs/CheckpointManager.js +349 -349
  31. package/lib/cjs/CheckpointManager.js.map +1 -1
  32. package/lib/cjs/ClassRegistry.d.ts +79 -79
  33. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  34. package/lib/cjs/ClassRegistry.js +250 -249
  35. package/lib/cjs/ClassRegistry.js.map +1 -1
  36. package/lib/cjs/CloudSqlite.d.ts +350 -350
  37. package/lib/cjs/CloudSqlite.js +153 -153
  38. package/lib/cjs/CloudSqlite.js.map +1 -1
  39. package/lib/cjs/CloudStorageBackend.d.ts +58 -58
  40. package/lib/cjs/CloudStorageBackend.js +173 -173
  41. package/lib/cjs/CloudStorageBackend.js.map +1 -1
  42. package/lib/cjs/CodeService.d.ts +396 -396
  43. package/lib/cjs/CodeService.js +63 -63
  44. package/lib/cjs/CodeService.js.map +1 -1
  45. package/lib/cjs/CodeSpecs.d.ts +55 -55
  46. package/lib/cjs/CodeSpecs.js +124 -124
  47. package/lib/cjs/CodeSpecs.js.map +1 -1
  48. package/lib/cjs/ConcurrentQuery.d.ts +13 -13
  49. package/lib/cjs/ConcurrentQuery.js +36 -36
  50. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  51. package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
  52. package/lib/cjs/CustomViewState3dCreator.js +81 -81
  53. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  54. package/lib/cjs/DevTools.d.ts +71 -71
  55. package/lib/cjs/DevTools.js +154 -154
  56. package/lib/cjs/DevTools.js.map +1 -1
  57. package/lib/cjs/DisplayStyle.d.ts +106 -106
  58. package/lib/cjs/DisplayStyle.js +256 -256
  59. package/lib/cjs/DisplayStyle.js.map +1 -1
  60. package/lib/cjs/ECDb.d.ts +191 -191
  61. package/lib/cjs/ECDb.js +350 -350
  62. package/lib/cjs/ECDb.js.map +1 -1
  63. package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
  64. package/lib/cjs/ECSchemaXmlContext.js +41 -41
  65. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  66. package/lib/cjs/ECSqlStatement.d.ts +473 -473
  67. package/lib/cjs/ECSqlStatement.js +791 -791
  68. package/lib/cjs/ECSqlStatement.js.map +1 -1
  69. package/lib/cjs/Element.d.ts +1102 -1102
  70. package/lib/cjs/Element.js +1416 -1416
  71. package/lib/cjs/Element.js.map +1 -1
  72. package/lib/cjs/ElementAspect.d.ts +179 -179
  73. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  74. package/lib/cjs/ElementAspect.js +211 -211
  75. package/lib/cjs/ElementAspect.js.map +1 -1
  76. package/lib/cjs/ElementGraphics.d.ts +9 -9
  77. package/lib/cjs/ElementGraphics.js +41 -41
  78. package/lib/cjs/ElementGraphics.js.map +1 -1
  79. package/lib/cjs/ElementTreeWalker.d.ts +162 -162
  80. package/lib/cjs/ElementTreeWalker.js +409 -409
  81. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  82. package/lib/cjs/Entity.d.ts +106 -106
  83. package/lib/cjs/Entity.js +134 -134
  84. package/lib/cjs/Entity.js.map +1 -1
  85. package/lib/cjs/EntityReferences.d.ts +49 -49
  86. package/lib/cjs/EntityReferences.js +95 -95
  87. package/lib/cjs/EntityReferences.js.map +1 -1
  88. package/lib/cjs/ExportGraphics.d.ts +317 -317
  89. package/lib/cjs/ExportGraphics.js +208 -208
  90. package/lib/cjs/ExportGraphics.js.map +1 -1
  91. package/lib/cjs/ExternalSource.d.ts +96 -96
  92. package/lib/cjs/ExternalSource.js +131 -131
  93. package/lib/cjs/ExternalSource.js.map +1 -1
  94. package/lib/cjs/GeoCoordConfig.d.ts +19 -19
  95. package/lib/cjs/GeoCoordConfig.js +85 -85
  96. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  97. package/lib/cjs/GeometrySummary.d.ts +4 -4
  98. package/lib/cjs/GeometrySummary.js +380 -380
  99. package/lib/cjs/GeometrySummary.js.map +1 -1
  100. package/lib/cjs/HubMock.d.ts +94 -94
  101. package/lib/cjs/HubMock.js +222 -222
  102. package/lib/cjs/HubMock.js.map +1 -1
  103. package/lib/cjs/IModelCloneContext.d.ts +8 -8
  104. package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
  105. package/lib/cjs/IModelCloneContext.js +15 -15
  106. package/lib/cjs/IModelCloneContext.js.map +1 -1
  107. package/lib/cjs/IModelDb.d.ts +1192 -1183
  108. package/lib/cjs/IModelDb.d.ts.map +1 -1
  109. package/lib/cjs/IModelDb.js +2388 -2374
  110. package/lib/cjs/IModelDb.js.map +1 -1
  111. package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
  112. package/lib/cjs/IModelElementCloneContext.js +159 -159
  113. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  114. package/lib/cjs/IModelHost.d.ts +369 -369
  115. package/lib/cjs/IModelHost.d.ts.map +1 -1
  116. package/lib/cjs/IModelHost.js +496 -496
  117. package/lib/cjs/IModelHost.js.map +1 -1
  118. package/lib/cjs/IModelJsFs.d.ts +62 -62
  119. package/lib/cjs/IModelJsFs.js +140 -140
  120. package/lib/cjs/IModelJsFs.js.map +1 -1
  121. package/lib/cjs/IpcHost.d.ts +104 -104
  122. package/lib/cjs/IpcHost.js +278 -278
  123. package/lib/cjs/IpcHost.js.map +1 -1
  124. package/lib/cjs/LineStyle.d.ts +311 -311
  125. package/lib/cjs/LineStyle.js +295 -295
  126. package/lib/cjs/LineStyle.js.map +1 -1
  127. package/lib/cjs/LocalHub.d.ts +162 -162
  128. package/lib/cjs/LocalHub.d.ts.map +1 -1
  129. package/lib/cjs/LocalHub.js +585 -587
  130. package/lib/cjs/LocalHub.js.map +1 -1
  131. package/lib/cjs/LocalhostIpcHost.d.ts +20 -20
  132. package/lib/cjs/LocalhostIpcHost.js +81 -81
  133. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  134. package/lib/cjs/Material.d.ts +131 -103
  135. package/lib/cjs/Material.d.ts.map +1 -1
  136. package/lib/cjs/Material.js +181 -147
  137. package/lib/cjs/Material.js.map +1 -1
  138. package/lib/cjs/Model.d.ts +392 -392
  139. package/lib/cjs/Model.js +485 -485
  140. package/lib/cjs/Model.js.map +1 -1
  141. package/lib/cjs/NativeAppStorage.d.ts +51 -51
  142. package/lib/cjs/NativeAppStorage.js +202 -202
  143. package/lib/cjs/NativeAppStorage.js.map +1 -1
  144. package/lib/cjs/NativeHost.d.ts +52 -52
  145. package/lib/cjs/NativeHost.js +163 -163
  146. package/lib/cjs/NativeHost.js.map +1 -1
  147. package/lib/cjs/NavigationRelationship.d.ts +156 -156
  148. package/lib/cjs/NavigationRelationship.js +225 -225
  149. package/lib/cjs/NavigationRelationship.js.map +1 -1
  150. package/lib/cjs/PromiseMemoizer.d.ts +51 -51
  151. package/lib/cjs/PromiseMemoizer.js +101 -101
  152. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  153. package/lib/cjs/PropertyStore.d.ts +132 -132
  154. package/lib/cjs/PropertyStore.js +11 -11
  155. package/lib/cjs/PropertyStore.js.map +1 -1
  156. package/lib/cjs/Relationship.d.ts +416 -416
  157. package/lib/cjs/Relationship.js +494 -494
  158. package/lib/cjs/Relationship.js.map +1 -1
  159. package/lib/cjs/RpcBackend.d.ts +5 -5
  160. package/lib/cjs/RpcBackend.js +31 -31
  161. package/lib/cjs/RpcBackend.js.map +1 -1
  162. package/lib/cjs/SQLiteDb.d.ts +219 -219
  163. package/lib/cjs/SQLiteDb.js +214 -214
  164. package/lib/cjs/SQLiteDb.js.map +1 -1
  165. package/lib/cjs/Schema.d.ts +55 -55
  166. package/lib/cjs/Schema.js +83 -83
  167. package/lib/cjs/Schema.js.map +1 -1
  168. package/lib/cjs/ServerBasedLocks.d.ts +57 -57
  169. package/lib/cjs/ServerBasedLocks.js +168 -168
  170. package/lib/cjs/ServerBasedLocks.js.map +1 -1
  171. package/lib/cjs/SqliteStatement.d.ts +360 -360
  172. package/lib/cjs/SqliteStatement.js +586 -586
  173. package/lib/cjs/SqliteStatement.js.map +1 -1
  174. package/lib/cjs/Texture.d.ts +58 -58
  175. package/lib/cjs/Texture.js +82 -82
  176. package/lib/cjs/Texture.js.map +1 -1
  177. package/lib/cjs/TileStorage.d.ts +18 -18
  178. package/lib/cjs/TileStorage.js +90 -90
  179. package/lib/cjs/TileStorage.js.map +1 -1
  180. package/lib/cjs/TxnManager.d.ts +202 -202
  181. package/lib/cjs/TxnManager.js +356 -356
  182. package/lib/cjs/TxnManager.js.map +1 -1
  183. package/lib/cjs/ViewDefinition.d.ts +439 -439
  184. package/lib/cjs/ViewDefinition.js +646 -646
  185. package/lib/cjs/ViewDefinition.js.map +1 -1
  186. package/lib/cjs/ViewStateHydrator.d.ts +13 -13
  187. package/lib/cjs/ViewStateHydrator.js +103 -103
  188. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  189. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  190. package/lib/cjs/assets/Settings/Schemas/Cloud.Schema.json +67 -67
  191. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +31 -31
  192. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +52 -52
  193. package/lib/cjs/assets/Settings/backend.setting.json5 +138 -138
  194. package/lib/cjs/core-backend.d.ts +184 -184
  195. package/lib/cjs/core-backend.js +204 -204
  196. package/lib/cjs/core-backend.js.map +1 -1
  197. package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
  198. package/lib/cjs/domains/FunctionalElements.js +145 -145
  199. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  200. package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
  201. package/lib/cjs/domains/FunctionalSchema.d.ts.map +1 -1
  202. package/lib/cjs/domains/FunctionalSchema.js +40 -40
  203. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  204. package/lib/cjs/domains/GenericElements.d.ts +177 -177
  205. package/lib/cjs/domains/GenericElements.js +263 -263
  206. package/lib/cjs/domains/GenericElements.js.map +1 -1
  207. package/lib/cjs/domains/GenericSchema.d.ts +10 -10
  208. package/lib/cjs/domains/GenericSchema.js +28 -28
  209. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  210. package/lib/cjs/rpc/multipart.d.ts +11 -11
  211. package/lib/cjs/rpc/multipart.js +70 -70
  212. package/lib/cjs/rpc/multipart.js.map +1 -1
  213. package/lib/cjs/rpc/tracing.d.ts +28 -28
  214. package/lib/cjs/rpc/tracing.js +73 -73
  215. package/lib/cjs/rpc/tracing.js.map +1 -1
  216. package/lib/cjs/rpc/web/logging.d.ts +9 -9
  217. package/lib/cjs/rpc/web/logging.js +42 -42
  218. package/lib/cjs/rpc/web/logging.js.map +1 -1
  219. package/lib/cjs/rpc/web/request.d.ts +6 -6
  220. package/lib/cjs/rpc/web/request.js +73 -73
  221. package/lib/cjs/rpc/web/request.js.map +1 -1
  222. package/lib/cjs/rpc/web/response.d.ts +6 -6
  223. package/lib/cjs/rpc/web/response.js +105 -105
  224. package/lib/cjs/rpc/web/response.js.map +1 -1
  225. package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
  226. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
  227. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  228. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
  229. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +291 -291
  230. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  231. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +22 -22
  232. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +202 -202
  233. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  234. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
  235. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +168 -168
  236. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  237. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
  238. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +43 -43
  239. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  240. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
  241. package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
  242. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
  243. package/lib/cjs/workspace/Settings.d.ts +186 -186
  244. package/lib/cjs/workspace/Settings.js +155 -155
  245. package/lib/cjs/workspace/Settings.js.map +1 -1
  246. package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
  247. package/lib/cjs/workspace/SettingsSchemas.js +191 -191
  248. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  249. package/lib/cjs/workspace/Workspace.d.ts +414 -414
  250. package/lib/cjs/workspace/Workspace.js +543 -543
  251. package/lib/cjs/workspace/Workspace.js.map +1 -1
  252. package/package.json +12 -12
@@ -1,104 +1,132 @@
1
- /** @packageDocumentation
2
- * @module Elements
3
- */
4
- import { Id64String } from "@itwin/core-bentley";
5
- import { Code, CodeScopeProps, RenderMaterialProps, TextureMapProps } from "@itwin/core-common";
6
- import { DefinitionElement } from "./Element";
7
- import { IModelDb } from "./IModelDb";
8
- /** A PhysicalMaterial defines the matter that makes up physical elements.
9
- * @note See [[RenderMaterialElement]] for the DefinitionElement used to define rendering characteristics.
10
- * @public
11
- */
12
- export declare abstract class PhysicalMaterial extends DefinitionElement {
13
- /** @internal */
14
- static get className(): string;
15
- /** Create a Code for a PhysicalMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
16
- * @param iModel The IModelDb
17
- * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
18
- * @param name The name (codeValue) of the PhysicalMaterial
19
- */
20
- static createCode(iModel: IModelDb, definitionModelId: CodeScopeProps, name: string): Code;
21
- /** Create a PhysicalMaterial
22
- * @param iModelDb The IModelDb
23
- * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
24
- * @param name The name (codeValue) of the PhysicalMaterial
25
- * @returns The newly constructed PhysicalMaterial
26
- * @throws [[IModelError]] if there is a problem creating the PhysicalMaterial
27
- */
28
- static create<T extends PhysicalMaterial>(iModelDb: IModelDb, definitionModelId: CodeScopeProps, name: string): T;
29
- }
30
- /** Defines a rendering material.
31
- * @note See [[PhysicalMaterial]] for the DefinitionElement used to define the matter that makes up physical elements.
32
- * @public
33
- */
34
- export declare class RenderMaterialElement extends DefinitionElement {
35
- /** @internal */
36
- static get className(): string;
37
- /** The name of a palette that can be used to categorize multiple materials. */
38
- paletteName: string;
39
- /** An optional description of the material. */
40
- description?: string;
41
- /** @internal */
42
- constructor(props: RenderMaterialProps, iModel: IModelDb);
43
- /** @internal */
44
- toJSON(): RenderMaterialProps;
45
- /** Create a Code for a RenderMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
46
- * @param iModel The IModelDb
47
- * @param scopeModelId The Id of the DefinitionModel that contains the RenderMaterial and provides the scope for its name.
48
- * @param name The RenderMaterial name
49
- */
50
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, name: string): Code;
51
- /**
52
- * Create a RenderMaterial with given parameters.
53
- * @param iModelDb The iModel
54
- * @param definitionModelId The [[DefinitionModel]]
55
- * @param materialName The name/CodeValue of the RenderMaterial
56
- * @param params Parameters object which describes how to construct the RenderMaterial
57
- * @returns The newly constructed RenderMaterial element.
58
- * @throws [[IModelError]] if unable to create the element.
59
- */
60
- static create(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElement.Params): RenderMaterialElement;
61
- /**
62
- * Insert a new RenderMaterial into a model.
63
- * @param iModelDb Insert into this iModel
64
- * @param definitionModelId Insert the new Texture into this DefinitionModel
65
- * @param materialName The name/CodeValue of the RenderMaterial
66
- * @param params Parameters object which describes how to construct the RenderMaterial
67
- * @returns The Id of the newly inserted RenderMaterial element.
68
- * @throws [[IModelError]] if unable to insert the element.
69
- */
70
- static insert(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElement.Params): Id64String;
71
- }
72
- /** @public
73
- * @note color, specularColor and reflectColor are stored as [R,G,B] where each value is between 0 and 1
74
- */
75
- export declare namespace RenderMaterialElement {
76
- /** Parameters used to construct a [[RenderMaterial]]. */
77
- class Params {
78
- /** The palette name which categorizes this RenderMaterial */
79
- paletteName: string;
80
- /** The optional description for this RenderMaterial */
81
- description?: string;
82
- /** If defined, use this color for surface fill or diffuse illumination; if undefined, defaults to black */
83
- color?: number[];
84
- /** If defined, use this color for surface specular illumination; if undefined, defaults to black */
85
- specularColor?: number[];
86
- /** If defined, apply this specular exponent(surface shininess); range is 0 to 128; if undefined, defaults to 15.0 * 0.9 */
87
- finish?: number;
88
- /** If defined, apply this surface transparency; if undefined, defaults to 0.0 */
89
- transmit?: number;
90
- /** If defined, apply this surface diffuse reflectivity; if undefined, defaults to 0.6 */
91
- diffuse?: number;
92
- /** If defined, apply this surface specular reflectivity; if undefined, defaults to 0.0. NOTE: The actual JSON allows a HasSpecular property to be true and the specular value itself undefined, in which case the value 0.4 would be used. This API does not allow this case. */
93
- specular?: number;
94
- /** If defined, apply this surface environmental reflectivity; stored as fraction of specular in V8 material settings; if undefined, defaults to 0.0 */
95
- reflect?: number;
96
- /** If defined, apply this surface reflectance color; if undefined, defaults to whatever the specularColor is */
97
- reflectColor?: number[];
98
- /** If defined, specifies the pattern mapping. */
99
- patternMap?: TextureMapProps;
100
- /** Construct a new RenderMaterial.Params object with the specified paletteName. Alter the public members on that object to specify settings. */
101
- constructor(paletteName: string);
102
- }
103
- }
1
+ /** @packageDocumentation
2
+ * @module Elements
3
+ */
4
+ import { Id64String } from "@itwin/core-bentley";
5
+ import { Code, CodeScopeProps, NormalMapProps, RenderMaterialProps, RgbFactorProps, TextureMapProps } from "@itwin/core-common";
6
+ import { DefinitionElement } from "./Element";
7
+ import { IModelDb } from "./IModelDb";
8
+ /** A PhysicalMaterial defines the matter that makes up physical elements.
9
+ * @note See [[RenderMaterialElement]] for the DefinitionElement used to define rendering characteristics.
10
+ * @public
11
+ */
12
+ export declare abstract class PhysicalMaterial extends DefinitionElement {
13
+ /** @internal */
14
+ static get className(): string;
15
+ /** Create a Code for a PhysicalMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
16
+ * @param iModel The IModelDb
17
+ * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
18
+ * @param name The name (codeValue) of the PhysicalMaterial
19
+ */
20
+ static createCode(iModel: IModelDb, definitionModelId: CodeScopeProps, name: string): Code;
21
+ /** Create a PhysicalMaterial
22
+ * @param iModelDb The IModelDb
23
+ * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
24
+ * @param name The name (codeValue) of the PhysicalMaterial
25
+ * @returns The newly constructed PhysicalMaterial
26
+ * @throws [[IModelError]] if there is a problem creating the PhysicalMaterial
27
+ */
28
+ static create<T extends PhysicalMaterial>(iModelDb: IModelDb, definitionModelId: CodeScopeProps, name: string): T;
29
+ }
30
+ /** Defines a rendering material.
31
+ * @note See [[PhysicalMaterial]] for the DefinitionElement used to define the matter that makes up physical elements.
32
+ * @public
33
+ */
34
+ export declare class RenderMaterialElement extends DefinitionElement {
35
+ /** @internal */
36
+ static get className(): string;
37
+ /** The name of a palette that can be used to categorize multiple materials. */
38
+ paletteName: string;
39
+ /** An optional description of the material. */
40
+ description?: string;
41
+ /** @internal */
42
+ constructor(props: RenderMaterialProps, iModel: IModelDb);
43
+ /** @internal */
44
+ toJSON(): RenderMaterialProps;
45
+ /** Create a Code for a RenderMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
46
+ * @param iModel The IModelDb
47
+ * @param scopeModelId The Id of the DefinitionModel that contains the RenderMaterial and provides the scope for its name.
48
+ * @param name The RenderMaterial name
49
+ */
50
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, name: string): Code;
51
+ /**
52
+ * Create a RenderMaterial with given parameters.
53
+ * @param iModelDb The iModel
54
+ * @param definitionModelId The [[DefinitionModel]]
55
+ * @param materialName The name/CodeValue of the RenderMaterial
56
+ * @param params Parameters object which describes how to construct the RenderMaterial
57
+ * @returns The newly constructed RenderMaterial element.
58
+ * @throws [[IModelError]] if unable to create the element.
59
+ */
60
+ static create(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElementParams): RenderMaterialElement;
61
+ /**
62
+ * Insert a new RenderMaterial into a model.
63
+ * @param iModelDb Insert into this iModel
64
+ * @param definitionModelId Insert the new Texture into this DefinitionModel
65
+ * @param materialName The name/CodeValue of the RenderMaterial
66
+ * @param params Parameters object which describes how to construct the RenderMaterial
67
+ * @returns The Id of the newly inserted RenderMaterial element.
68
+ * @throws [[IModelError]] if unable to insert the element.
69
+ */
70
+ static insert(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElementParams): Id64String;
71
+ }
72
+ /** @public */
73
+ export declare namespace RenderMaterialElement {
74
+ /** Parameters used to construct a [[RenderMaterial]].
75
+ * The persistent JSON representation - [RenderMaterialAssetProps]($common) - is quite verbose and unwieldy. This representation simplifies it somewhat.
76
+ * @see [[RenderMaterialElement.create]] and [[RenderMaterialElement.insert]] to create a [[RenderMaterial]] from parameters of this type.
77
+ * @deprecated in 3.6 because it is not useful to use a `class` - just use [[RenderMaterialElementParams]] directly instead.
78
+ */
79
+ class Params {
80
+ /** A required palette name that categorizes this RenderMaterial */
81
+ paletteName: string;
82
+ /** An optional description of this RenderMaterial */
83
+ description?: string;
84
+ /** If defined, the color to use for surface fill or diffuse illumination, overriding the surface's own color. */
85
+ color?: RgbFactorProps;
86
+ /** The color to use for specular illumination. Default: black. */
87
+ specularColor?: RgbFactorProps;
88
+ /** The specular exponent describing the surface's shininess, in the range 0 through 128.
89
+ * Default: 0.
90
+ */
91
+ finish?: number;
92
+ /** A transparency to be applied to the surface, ranging from 0 (fully opaque) to 1 (fully transparent).
93
+ * The surface's own transparency will be multiplied by `(1 - transmit)`. permitting the material to increase but not decrease the surface transparency.
94
+ * Default: 13.5.
95
+ */
96
+ transmit?: number;
97
+ /** The surface's diffuse reflectivity from 0.0 to 1.0. Default: 0.6. */
98
+ diffuse?: number;
99
+ /** The surface's specular reflectivity from 0.0 to 1.0. Default: 0.0. */
100
+ specular?: number;
101
+ /** Currently unused. */
102
+ reflect?: number;
103
+ /** Currently unused. */
104
+ reflectColor?: number[];
105
+ /** Specifies a texture image to map onto the surface, replacing or mixing with the surface's own color and transparency.
106
+ * @note With the exception of `TextureId`, the [TextureMapProps]($common) of [[patternMap]] and [[normalMap]] are expected to be identical. If a property is defined in both
107
+ * [[patternMap]]] and [[normalMap]], the value in [[patternMap]] takes precedence.
108
+ */
109
+ patternMap?: TextureMapProps;
110
+ /** Specifies a [normal map](https://en.wikipedia.org/wiki/Normal_mapping) to apply to the surface to simulate more surface detail than is present in the
111
+ * surface's geometry.
112
+ * @note With the exception of `TextureId`, the [TextureMapProps]($common) of [[patternMap]] and [[normalMap]] are expected to be identical. If a property is defined in both
113
+ * [[patternMap]]] and [[normalMap]], the value in [[patternMap]] takes precedence.
114
+ */
115
+ normalMap?: NormalMapProps & {
116
+ /** A factor by which to multiply the components of the normal vectors read from the texture.
117
+ * Default: 1.
118
+ */
119
+ scale?: number;
120
+ };
121
+ /** Construct a new RenderMaterial.Params object with the specified paletteName. Alter the public members on that object to specify settings. */
122
+ constructor(paletteName: string);
123
+ }
124
+ }
125
+ /** Parameters used to create a [[RenderMaterial]] element.
126
+ * The persistent JSON representation - [RenderMaterialAssetProps]($common) - is quite verbose and unwieldy. This representation simplifies it somewhat.
127
+ * @see [[RenderMaterialElement.create]] and [[RenderMaterialElement.insert]] to create a [[RenderMaterial]] from parameters of this type.
128
+ * @public
129
+ */
130
+ export interface RenderMaterialElementParams extends RenderMaterialElement.Params {
131
+ }
104
132
  //# sourceMappingURL=Material.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Material.d.ts","sourceRoot":"","sources":["../../src/Material.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAe,IAAI,EAAE,cAAc,EAAoC,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/I,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;GAGG;AACH,8BAAsB,gBAAiB,SAAQ,iBAAiB;IAC9D,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA+B;IAC7E;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjG;;;;;;OAMG;WACW,MAAM,CAAC,CAAC,SAAS,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;CAQzH;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA6B;IAE3E,+EAA+E;IACxE,WAAW,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB;gBACJ,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ;IAKxD,gBAAgB;IACA,MAAM,IAAI,mBAAmB;IAM7C;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5F;;;;;;;;OAQG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,GAAG,qBAAqB;IAmC1J;;;;;;;;OAQG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,GAAG,UAAU;CAIhJ;AAED;;EAEE;AACF,yBAAiB,qBAAqB,CAAC;IACrC,yDAAyD;IACzD,MAAa,MAAM;QACjB,6DAA6D;QACtD,WAAW,EAAE,MAAM,CAAC;QAC3B,uDAAuD;QAChD,WAAW,CAAC,EAAE,MAAM,CAAC;QAC5B,2GAA2G;QACpG,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,oGAAoG;QAC7F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,4HAA4H;QACrH,MAAM,CAAC,EAAE,MAAM,CAAC;QACvB,iFAAiF;QAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;QACzB,yFAAyF;QAClF,OAAO,CAAC,EAAE,MAAM,CAAC;QACxB,mRAAmR;QAC5Q,QAAQ,CAAC,EAAE,MAAM,CAAC;QACzB,uJAAuJ;QAChJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACxB,gHAAgH;QACzG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,iDAAiD;QAC1C,UAAU,CAAC,EAAE,eAAe,CAAC;QAEpC,iJAAiJ;oBAC9H,WAAW,EAAE,MAAM;KAGvC;CACF"}
1
+ {"version":3,"file":"Material.d.ts","sourceRoot":"","sources":["../../src/Material.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACQ,IAAI,EAAE,cAAc,EAAoC,cAAc,EAAgC,mBAAmB,EAAE,cAAc,EAAE,eAAe,EACxK,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;GAGG;AACH,8BAAsB,gBAAiB,SAAQ,iBAAiB;IAC9D,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA+B;IAC7E;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjG;;;;;;OAMG;WACW,MAAM,CAAC,CAAC,SAAS,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;CAQzH;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA6B;IAE3E,+EAA+E;IACxE,WAAW,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB;gBACJ,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ;IAKxD,gBAAgB;IACA,MAAM,IAAI,mBAAmB;IAM7C;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5F;;;;;;;;OAQG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,GAAG,qBAAqB;IA2EzJ;;;;;;;;OAQG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,GAAG,UAAU;CAI/I;AAED,cAAc;AACd,yBAAiB,qBAAqB,CAAC;IACrC;;;;OAIG;IACH,MAAa,MAAM;QACjB,mEAAmE;QAC5D,WAAW,EAAE,MAAM,CAAC;QAC3B,qDAAqD;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;QAC5B,iHAAiH;QAC1G,KAAK,CAAC,EAAE,cAAc,CAAC;QAC9B,kEAAkE;QAC3D,aAAa,CAAC,EAAE,cAAc,CAAC;QACtC;;WAEG;QACI,MAAM,CAAC,EAAE,MAAM,CAAC;QACvB;;;WAGG;QACI,QAAQ,CAAC,EAAE,MAAM,CAAC;QACzB,wEAAwE;QACjE,OAAO,CAAC,EAAE,MAAM,CAAC;QACxB,yEAAyE;QAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;QACzB,wBAAwB;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACxB,wBAAwB;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B;;;WAGG;QACI,UAAU,CAAC,EAAE,eAAe,CAAC;QACpC;;;;WAIG;QACI,SAAS,CAAC,EAAE,cAAc,GAAG;YAClC;;eAEG;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QAEF,gJAAgJ;oBAC7H,WAAW,EAAE,MAAM;KAGvC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB,CAAC,MAAM;CAChF"}
@@ -1,148 +1,182 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Elements
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.RenderMaterialElement = exports.PhysicalMaterial = void 0;
11
- const core_common_1 = require("@itwin/core-common");
12
- const Element_1 = require("./Element");
13
- /* eslint-disable @typescript-eslint/naming-convention */
14
- /** A PhysicalMaterial defines the matter that makes up physical elements.
15
- * @note See [[RenderMaterialElement]] for the DefinitionElement used to define rendering characteristics.
16
- * @public
17
- */
18
- class PhysicalMaterial extends Element_1.DefinitionElement {
19
- /** @internal */
20
- static get className() { return "PhysicalMaterial"; }
21
- /** Create a Code for a PhysicalMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
22
- * @param iModel The IModelDb
23
- * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
24
- * @param name The name (codeValue) of the PhysicalMaterial
25
- */
26
- static createCode(iModel, definitionModelId, name) {
27
- const codeSpec = iModel.codeSpecs.getByName(core_common_1.BisCodeSpec.physicalMaterial);
28
- return new core_common_1.Code({ spec: codeSpec.id, scope: definitionModelId, value: name });
29
- }
30
- /** Create a PhysicalMaterial
31
- * @param iModelDb The IModelDb
32
- * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
33
- * @param name The name (codeValue) of the PhysicalMaterial
34
- * @returns The newly constructed PhysicalMaterial
35
- * @throws [[IModelError]] if there is a problem creating the PhysicalMaterial
36
- */
37
- static create(iModelDb, definitionModelId, name) {
38
- const elementProps = {
39
- classFullName: this.classFullName,
40
- model: definitionModelId,
41
- code: this.createCode(iModelDb, definitionModelId, name),
42
- };
43
- return iModelDb.elements.createElement(elementProps);
44
- }
45
- }
46
- exports.PhysicalMaterial = PhysicalMaterial;
47
- /** Defines a rendering material.
48
- * @note See [[PhysicalMaterial]] for the DefinitionElement used to define the matter that makes up physical elements.
49
- * @public
50
- */
51
- class RenderMaterialElement extends Element_1.DefinitionElement {
52
- /** @internal */
53
- constructor(props, iModel) {
54
- super(props, iModel);
55
- this.paletteName = props.paletteName;
56
- this.description = props.description;
57
- }
58
- /** @internal */
59
- static get className() { return "RenderMaterial"; }
60
- /** @internal */
61
- toJSON() {
62
- const val = super.toJSON();
63
- val.paletteName = this.paletteName;
64
- val.description = this.description;
65
- return val;
66
- }
67
- /** Create a Code for a RenderMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
68
- * @param iModel The IModelDb
69
- * @param scopeModelId The Id of the DefinitionModel that contains the RenderMaterial and provides the scope for its name.
70
- * @param name The RenderMaterial name
71
- */
72
- static createCode(iModel, scopeModelId, name) {
73
- const codeSpec = iModel.codeSpecs.getByName(core_common_1.BisCodeSpec.texture);
74
- return 0 === name.length ? core_common_1.Code.createEmpty() : new core_common_1.Code({ spec: codeSpec.id, scope: scopeModelId, value: name });
75
- }
76
- /**
77
- * Create a RenderMaterial with given parameters.
78
- * @param iModelDb The iModel
79
- * @param definitionModelId The [[DefinitionModel]]
80
- * @param materialName The name/CodeValue of the RenderMaterial
81
- * @param params Parameters object which describes how to construct the RenderMaterial
82
- * @returns The newly constructed RenderMaterial element.
83
- * @throws [[IModelError]] if unable to create the element.
84
- */
85
- static create(iModelDb, definitionModelId, materialName, params) {
86
- const map = undefined !== params.patternMap ? { Pattern: params.patternMap } : undefined;
87
- const renderMaterialProps = {
88
- classFullName: this.classFullName,
89
- code: this.createCode(iModelDb, definitionModelId, materialName),
90
- paletteName: params.paletteName,
91
- description: params.description,
92
- jsonProperties: {
93
- materialAssets: {
94
- renderMaterial: {
95
- HasBaseColor: params.color !== undefined,
96
- color: params.color,
97
- HasSpecularColor: params.specularColor !== undefined,
98
- specular_color: params.specularColor,
99
- HasFinish: params.finish !== undefined,
100
- finish: params.finish,
101
- HasTransmit: params.transmit !== undefined,
102
- transmit: params.transmit,
103
- HasDiffuse: params.diffuse !== undefined,
104
- diffuse: params.diffuse,
105
- HasSpecular: params.specular !== undefined,
106
- specular: params.specular,
107
- HasReflect: params.reflect !== undefined,
108
- reflect: params.reflect,
109
- HasReflectColor: params.reflectColor !== undefined,
110
- reflect_color: params.reflectColor,
111
- Map: map,
112
- },
113
- },
114
- },
115
- model: definitionModelId,
116
- isPrivate: false,
117
- };
118
- return new RenderMaterialElement(renderMaterialProps, iModelDb);
119
- }
120
- /**
121
- * Insert a new RenderMaterial into a model.
122
- * @param iModelDb Insert into this iModel
123
- * @param definitionModelId Insert the new Texture into this DefinitionModel
124
- * @param materialName The name/CodeValue of the RenderMaterial
125
- * @param params Parameters object which describes how to construct the RenderMaterial
126
- * @returns The Id of the newly inserted RenderMaterial element.
127
- * @throws [[IModelError]] if unable to insert the element.
128
- */
129
- static insert(iModelDb, definitionModelId, materialName, params) {
130
- const renderMaterial = this.create(iModelDb, definitionModelId, materialName, params);
131
- return iModelDb.elements.insertElement(renderMaterial.toJSON());
132
- }
133
- }
134
- exports.RenderMaterialElement = RenderMaterialElement;
135
- /** @public
136
- * @note color, specularColor and reflectColor are stored as [R,G,B] where each value is between 0 and 1
137
- */
138
- (function (RenderMaterialElement) {
139
- /** Parameters used to construct a [[RenderMaterial]]. */
140
- class Params {
141
- /** Construct a new RenderMaterial.Params object with the specified paletteName. Alter the public members on that object to specify settings. */
142
- constructor(paletteName) {
143
- this.paletteName = paletteName;
144
- }
145
- }
146
- RenderMaterialElement.Params = Params;
147
- })(RenderMaterialElement = exports.RenderMaterialElement || (exports.RenderMaterialElement = {}));
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Elements
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RenderMaterialElement = exports.PhysicalMaterial = void 0;
11
+ const core_common_1 = require("@itwin/core-common");
12
+ const Element_1 = require("./Element");
13
+ /* eslint-disable @typescript-eslint/naming-convention */
14
+ /** A PhysicalMaterial defines the matter that makes up physical elements.
15
+ * @note See [[RenderMaterialElement]] for the DefinitionElement used to define rendering characteristics.
16
+ * @public
17
+ */
18
+ class PhysicalMaterial extends Element_1.DefinitionElement {
19
+ /** @internal */
20
+ static get className() { return "PhysicalMaterial"; }
21
+ /** Create a Code for a PhysicalMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
22
+ * @param iModel The IModelDb
23
+ * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
24
+ * @param name The name (codeValue) of the PhysicalMaterial
25
+ */
26
+ static createCode(iModel, definitionModelId, name) {
27
+ const codeSpec = iModel.codeSpecs.getByName(core_common_1.BisCodeSpec.physicalMaterial);
28
+ return new core_common_1.Code({ spec: codeSpec.id, scope: definitionModelId, value: name });
29
+ }
30
+ /** Create a PhysicalMaterial
31
+ * @param iModelDb The IModelDb
32
+ * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.
33
+ * @param name The name (codeValue) of the PhysicalMaterial
34
+ * @returns The newly constructed PhysicalMaterial
35
+ * @throws [[IModelError]] if there is a problem creating the PhysicalMaterial
36
+ */
37
+ static create(iModelDb, definitionModelId, name) {
38
+ const elementProps = {
39
+ classFullName: this.classFullName,
40
+ model: definitionModelId,
41
+ code: this.createCode(iModelDb, definitionModelId, name),
42
+ };
43
+ return iModelDb.elements.createElement(elementProps);
44
+ }
45
+ }
46
+ exports.PhysicalMaterial = PhysicalMaterial;
47
+ /** Defines a rendering material.
48
+ * @note See [[PhysicalMaterial]] for the DefinitionElement used to define the matter that makes up physical elements.
49
+ * @public
50
+ */
51
+ class RenderMaterialElement extends Element_1.DefinitionElement {
52
+ /** @internal */
53
+ constructor(props, iModel) {
54
+ super(props, iModel);
55
+ this.paletteName = props.paletteName;
56
+ this.description = props.description;
57
+ }
58
+ /** @internal */
59
+ static get className() { return "RenderMaterial"; }
60
+ /** @internal */
61
+ toJSON() {
62
+ const val = super.toJSON();
63
+ val.paletteName = this.paletteName;
64
+ val.description = this.description;
65
+ return val;
66
+ }
67
+ /** Create a Code for a RenderMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.
68
+ * @param iModel The IModelDb
69
+ * @param scopeModelId The Id of the DefinitionModel that contains the RenderMaterial and provides the scope for its name.
70
+ * @param name The RenderMaterial name
71
+ */
72
+ static createCode(iModel, scopeModelId, name) {
73
+ const codeSpec = iModel.codeSpecs.getByName(core_common_1.BisCodeSpec.texture);
74
+ return 0 === name.length ? core_common_1.Code.createEmpty() : new core_common_1.Code({ spec: codeSpec.id, scope: scopeModelId, value: name });
75
+ }
76
+ /**
77
+ * Create a RenderMaterial with given parameters.
78
+ * @param iModelDb The iModel
79
+ * @param definitionModelId The [[DefinitionModel]]
80
+ * @param materialName The name/CodeValue of the RenderMaterial
81
+ * @param params Parameters object which describes how to construct the RenderMaterial
82
+ * @returns The newly constructed RenderMaterial element.
83
+ * @throws [[IModelError]] if unable to create the element.
84
+ */
85
+ static create(iModelDb, definitionModelId, materialName, params) {
86
+ var _a;
87
+ let maps;
88
+ const pbr_normal = (_a = params.normalMap) === null || _a === void 0 ? void 0 : _a.scale;
89
+ if (params.patternMap || params.normalMap) {
90
+ function choose(obj, key) {
91
+ const pat = params.patternMap;
92
+ if (pat && undefined !== pat[key])
93
+ obj[key] = pat[key];
94
+ else if (params.normalMap && undefined !== params.normalMap[key])
95
+ obj[key] = params.normalMap[key];
96
+ }
97
+ const baseProps = {};
98
+ choose(baseProps, "pattern_angle");
99
+ choose(baseProps, "pattern_u_flip");
100
+ choose(baseProps, "pattern_flip");
101
+ choose(baseProps, "pattern_scale");
102
+ choose(baseProps, "pattern_offset");
103
+ choose(baseProps, "pattern_scalemode");
104
+ choose(baseProps, "pattern_mapping");
105
+ choose(baseProps, "pattern_weight");
106
+ maps = {};
107
+ if (params.patternMap)
108
+ maps.Pattern = { ...params.patternMap, ...baseProps };
109
+ if (params.normalMap) {
110
+ maps.Normal = {
111
+ ...params.normalMap,
112
+ ...baseProps,
113
+ };
114
+ delete maps.Normal.scale;
115
+ }
116
+ }
117
+ // const map = undefined !== params.patternMap ? { Pattern: params.patternMap } : undefined;
118
+ const renderMaterialProps = {
119
+ classFullName: this.classFullName,
120
+ code: this.createCode(iModelDb, definitionModelId, materialName),
121
+ paletteName: params.paletteName,
122
+ description: params.description,
123
+ jsonProperties: {
124
+ materialAssets: {
125
+ renderMaterial: {
126
+ HasBaseColor: params.color !== undefined,
127
+ color: params.color,
128
+ HasSpecularColor: params.specularColor !== undefined,
129
+ specular_color: params.specularColor,
130
+ HasFinish: params.finish !== undefined,
131
+ finish: params.finish,
132
+ HasTransmit: params.transmit !== undefined,
133
+ transmit: params.transmit,
134
+ HasDiffuse: params.diffuse !== undefined,
135
+ diffuse: params.diffuse,
136
+ HasSpecular: params.specular !== undefined,
137
+ specular: params.specular,
138
+ HasReflect: params.reflect !== undefined,
139
+ reflect: params.reflect,
140
+ HasReflectColor: params.reflectColor !== undefined,
141
+ reflect_color: params.reflectColor,
142
+ Map: maps,
143
+ pbr_normal,
144
+ },
145
+ },
146
+ },
147
+ model: definitionModelId,
148
+ isPrivate: false,
149
+ };
150
+ return new RenderMaterialElement(renderMaterialProps, iModelDb);
151
+ }
152
+ /**
153
+ * Insert a new RenderMaterial into a model.
154
+ * @param iModelDb Insert into this iModel
155
+ * @param definitionModelId Insert the new Texture into this DefinitionModel
156
+ * @param materialName The name/CodeValue of the RenderMaterial
157
+ * @param params Parameters object which describes how to construct the RenderMaterial
158
+ * @returns The Id of the newly inserted RenderMaterial element.
159
+ * @throws [[IModelError]] if unable to insert the element.
160
+ */
161
+ static insert(iModelDb, definitionModelId, materialName, params) {
162
+ const renderMaterial = this.create(iModelDb, definitionModelId, materialName, params);
163
+ return iModelDb.elements.insertElement(renderMaterial.toJSON());
164
+ }
165
+ }
166
+ exports.RenderMaterialElement = RenderMaterialElement;
167
+ /** @public */
168
+ (function (RenderMaterialElement) {
169
+ /** Parameters used to construct a [[RenderMaterial]].
170
+ * The persistent JSON representation - [RenderMaterialAssetProps]($common) - is quite verbose and unwieldy. This representation simplifies it somewhat.
171
+ * @see [[RenderMaterialElement.create]] and [[RenderMaterialElement.insert]] to create a [[RenderMaterial]] from parameters of this type.
172
+ * @deprecated in 3.6 because it is not useful to use a `class` - just use [[RenderMaterialElementParams]] directly instead.
173
+ */
174
+ class Params {
175
+ /** Construct a new RenderMaterial.Params object with the specified paletteName. Alter the public members on that object to specify settings. */
176
+ constructor(paletteName) {
177
+ this.paletteName = paletteName;
178
+ }
179
+ }
180
+ RenderMaterialElement.Params = Params;
181
+ })(RenderMaterialElement = exports.RenderMaterialElement || (exports.RenderMaterialElement = {}));
148
182
  //# sourceMappingURL=Material.js.map