@itwin/core-backend 3.5.0 → 3.5.1

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 (244) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/AliCloudStorageService.d.ts +23 -23
  3. package/lib/cjs/AliCloudStorageService.js +71 -71
  4. package/lib/cjs/AliCloudStorageService.js.map +1 -1
  5. package/lib/cjs/BackendHubAccess.d.ts +224 -224
  6. package/lib/cjs/BackendHubAccess.js +41 -41
  7. package/lib/cjs/BackendHubAccess.js.map +1 -1
  8. package/lib/cjs/BackendLoggerCategory.d.ts +91 -91
  9. package/lib/cjs/BackendLoggerCategory.js +99 -99
  10. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  11. package/lib/cjs/BisCoreSchema.d.ts +21 -21
  12. package/lib/cjs/BisCoreSchema.js +60 -60
  13. package/lib/cjs/BisCoreSchema.js.map +1 -1
  14. package/lib/cjs/BriefcaseManager.d.ts +170 -170
  15. package/lib/cjs/BriefcaseManager.js +413 -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 +120 -120
  30. package/lib/cjs/CheckpointManager.js +343 -343
  31. package/lib/cjs/CheckpointManager.js.map +1 -1
  32. package/lib/cjs/ClassRegistry.d.ts +79 -79
  33. package/lib/cjs/ClassRegistry.js +249 -249
  34. package/lib/cjs/ClassRegistry.js.map +1 -1
  35. package/lib/cjs/CloudSqlite.d.ts +350 -350
  36. package/lib/cjs/CloudSqlite.js +152 -152
  37. package/lib/cjs/CloudSqlite.js.map +1 -1
  38. package/lib/cjs/CloudStorageBackend.d.ts +58 -58
  39. package/lib/cjs/CloudStorageBackend.js +173 -173
  40. package/lib/cjs/CloudStorageBackend.js.map +1 -1
  41. package/lib/cjs/CodeService.d.ts +396 -396
  42. package/lib/cjs/CodeService.js +63 -63
  43. package/lib/cjs/CodeService.js.map +1 -1
  44. package/lib/cjs/CodeSpecs.d.ts +50 -50
  45. package/lib/cjs/CodeSpecs.js +112 -112
  46. package/lib/cjs/CodeSpecs.js.map +1 -1
  47. package/lib/cjs/ConcurrentQuery.d.ts +13 -13
  48. package/lib/cjs/ConcurrentQuery.js +36 -36
  49. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  50. package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
  51. package/lib/cjs/CustomViewState3dCreator.js +81 -81
  52. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  53. package/lib/cjs/DevTools.d.ts +71 -71
  54. package/lib/cjs/DevTools.js +154 -154
  55. package/lib/cjs/DevTools.js.map +1 -1
  56. package/lib/cjs/DisplayStyle.d.ts +106 -106
  57. package/lib/cjs/DisplayStyle.js +256 -256
  58. package/lib/cjs/DisplayStyle.js.map +1 -1
  59. package/lib/cjs/ECDb.d.ts +191 -191
  60. package/lib/cjs/ECDb.js +350 -350
  61. package/lib/cjs/ECDb.js.map +1 -1
  62. package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
  63. package/lib/cjs/ECSchemaXmlContext.js +41 -41
  64. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  65. package/lib/cjs/ECSqlStatement.d.ts +466 -466
  66. package/lib/cjs/ECSqlStatement.js +791 -791
  67. package/lib/cjs/ECSqlStatement.js.map +1 -1
  68. package/lib/cjs/Element.d.ts +1102 -1102
  69. package/lib/cjs/Element.js +1416 -1416
  70. package/lib/cjs/Element.js.map +1 -1
  71. package/lib/cjs/ElementAspect.d.ts +176 -176
  72. package/lib/cjs/ElementAspect.js +211 -211
  73. package/lib/cjs/ElementAspect.js.map +1 -1
  74. package/lib/cjs/ElementGraphics.d.ts +9 -9
  75. package/lib/cjs/ElementGraphics.js +41 -41
  76. package/lib/cjs/ElementGraphics.js.map +1 -1
  77. package/lib/cjs/ElementTreeWalker.d.ts +162 -162
  78. package/lib/cjs/ElementTreeWalker.js +409 -409
  79. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  80. package/lib/cjs/Entity.d.ts +106 -106
  81. package/lib/cjs/Entity.js +134 -134
  82. package/lib/cjs/Entity.js.map +1 -1
  83. package/lib/cjs/EntityReferences.d.ts +49 -49
  84. package/lib/cjs/EntityReferences.js +95 -95
  85. package/lib/cjs/EntityReferences.js.map +1 -1
  86. package/lib/cjs/ExportGraphics.d.ts +317 -317
  87. package/lib/cjs/ExportGraphics.js +208 -208
  88. package/lib/cjs/ExportGraphics.js.map +1 -1
  89. package/lib/cjs/ExternalSource.d.ts +96 -96
  90. package/lib/cjs/ExternalSource.js +131 -131
  91. package/lib/cjs/ExternalSource.js.map +1 -1
  92. package/lib/cjs/GeoCoordConfig.d.ts +19 -19
  93. package/lib/cjs/GeoCoordConfig.js +85 -85
  94. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  95. package/lib/cjs/GeometrySummary.d.ts +4 -4
  96. package/lib/cjs/GeometrySummary.js +380 -380
  97. package/lib/cjs/GeometrySummary.js.map +1 -1
  98. package/lib/cjs/HubMock.d.ts +94 -94
  99. package/lib/cjs/HubMock.js +222 -222
  100. package/lib/cjs/HubMock.js.map +1 -1
  101. package/lib/cjs/IModelCloneContext.d.ts +8 -8
  102. package/lib/cjs/IModelCloneContext.js +15 -15
  103. package/lib/cjs/IModelCloneContext.js.map +1 -1
  104. package/lib/cjs/IModelDb.d.ts +1183 -1183
  105. package/lib/cjs/IModelDb.js +2374 -2374
  106. package/lib/cjs/IModelDb.js.map +1 -1
  107. package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
  108. package/lib/cjs/IModelElementCloneContext.js +159 -159
  109. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  110. package/lib/cjs/IModelHost.d.ts +370 -370
  111. package/lib/cjs/IModelHost.js +496 -496
  112. package/lib/cjs/IModelHost.js.map +1 -1
  113. package/lib/cjs/IModelJsFs.d.ts +62 -62
  114. package/lib/cjs/IModelJsFs.js +140 -140
  115. package/lib/cjs/IModelJsFs.js.map +1 -1
  116. package/lib/cjs/IpcHost.d.ts +104 -104
  117. package/lib/cjs/IpcHost.js +278 -278
  118. package/lib/cjs/IpcHost.js.map +1 -1
  119. package/lib/cjs/LineStyle.d.ts +311 -311
  120. package/lib/cjs/LineStyle.js +295 -295
  121. package/lib/cjs/LineStyle.js.map +1 -1
  122. package/lib/cjs/LocalHub.d.ts +162 -162
  123. package/lib/cjs/LocalHub.js +587 -587
  124. package/lib/cjs/LocalHub.js.map +1 -1
  125. package/lib/cjs/LocalhostIpcHost.d.ts +20 -20
  126. package/lib/cjs/LocalhostIpcHost.js +81 -81
  127. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  128. package/lib/cjs/Material.d.ts +103 -103
  129. package/lib/cjs/Material.js +147 -147
  130. package/lib/cjs/Material.js.map +1 -1
  131. package/lib/cjs/Model.d.ts +392 -392
  132. package/lib/cjs/Model.js +485 -485
  133. package/lib/cjs/Model.js.map +1 -1
  134. package/lib/cjs/NativeAppStorage.d.ts +51 -51
  135. package/lib/cjs/NativeAppStorage.js +202 -202
  136. package/lib/cjs/NativeAppStorage.js.map +1 -1
  137. package/lib/cjs/NativeHost.d.ts +52 -52
  138. package/lib/cjs/NativeHost.js +163 -163
  139. package/lib/cjs/NativeHost.js.map +1 -1
  140. package/lib/cjs/NavigationRelationship.d.ts +156 -156
  141. package/lib/cjs/NavigationRelationship.js +225 -225
  142. package/lib/cjs/NavigationRelationship.js.map +1 -1
  143. package/lib/cjs/PromiseMemoizer.d.ts +51 -51
  144. package/lib/cjs/PromiseMemoizer.js +101 -101
  145. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  146. package/lib/cjs/PropertyStore.d.ts +132 -132
  147. package/lib/cjs/PropertyStore.js +11 -11
  148. package/lib/cjs/PropertyStore.js.map +1 -1
  149. package/lib/cjs/Relationship.d.ts +416 -416
  150. package/lib/cjs/Relationship.js +494 -494
  151. package/lib/cjs/Relationship.js.map +1 -1
  152. package/lib/cjs/RpcBackend.d.ts +5 -5
  153. package/lib/cjs/RpcBackend.js +31 -31
  154. package/lib/cjs/RpcBackend.js.map +1 -1
  155. package/lib/cjs/SQLiteDb.d.ts +219 -219
  156. package/lib/cjs/SQLiteDb.js +214 -214
  157. package/lib/cjs/SQLiteDb.js.map +1 -1
  158. package/lib/cjs/Schema.d.ts +55 -55
  159. package/lib/cjs/Schema.js +83 -83
  160. package/lib/cjs/Schema.js.map +1 -1
  161. package/lib/cjs/ServerBasedLocks.d.ts +57 -57
  162. package/lib/cjs/ServerBasedLocks.js +168 -168
  163. package/lib/cjs/ServerBasedLocks.js.map +1 -1
  164. package/lib/cjs/SqliteStatement.d.ts +360 -360
  165. package/lib/cjs/SqliteStatement.js +586 -586
  166. package/lib/cjs/SqliteStatement.js.map +1 -1
  167. package/lib/cjs/Texture.d.ts +58 -58
  168. package/lib/cjs/Texture.js +82 -82
  169. package/lib/cjs/Texture.js.map +1 -1
  170. package/lib/cjs/TileStorage.d.ts +18 -18
  171. package/lib/cjs/TileStorage.js +90 -90
  172. package/lib/cjs/TileStorage.js.map +1 -1
  173. package/lib/cjs/TxnManager.d.ts +202 -202
  174. package/lib/cjs/TxnManager.js +356 -356
  175. package/lib/cjs/TxnManager.js.map +1 -1
  176. package/lib/cjs/ViewDefinition.d.ts +439 -439
  177. package/lib/cjs/ViewDefinition.js +646 -646
  178. package/lib/cjs/ViewDefinition.js.map +1 -1
  179. package/lib/cjs/ViewStateHydrator.d.ts +13 -13
  180. package/lib/cjs/ViewStateHydrator.js +103 -103
  181. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  182. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  183. package/lib/cjs/assets/Settings/Schemas/Cloud.Schema.json +67 -67
  184. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +31 -31
  185. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +52 -52
  186. package/lib/cjs/assets/Settings/backend.setting.json5 +138 -138
  187. package/lib/cjs/core-backend.d.ts +184 -184
  188. package/lib/cjs/core-backend.js +204 -204
  189. package/lib/cjs/core-backend.js.map +1 -1
  190. package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
  191. package/lib/cjs/domains/FunctionalElements.js +145 -145
  192. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  193. package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
  194. package/lib/cjs/domains/FunctionalSchema.js +40 -40
  195. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  196. package/lib/cjs/domains/GenericElements.d.ts +177 -177
  197. package/lib/cjs/domains/GenericElements.js +263 -263
  198. package/lib/cjs/domains/GenericElements.js.map +1 -1
  199. package/lib/cjs/domains/GenericSchema.d.ts +10 -10
  200. package/lib/cjs/domains/GenericSchema.js +28 -28
  201. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  202. package/lib/cjs/rpc/multipart.d.ts +11 -11
  203. package/lib/cjs/rpc/multipart.js +70 -70
  204. package/lib/cjs/rpc/multipart.js.map +1 -1
  205. package/lib/cjs/rpc/tracing.d.ts +28 -28
  206. package/lib/cjs/rpc/tracing.js +73 -73
  207. package/lib/cjs/rpc/tracing.js.map +1 -1
  208. package/lib/cjs/rpc/web/logging.d.ts +9 -9
  209. package/lib/cjs/rpc/web/logging.js +42 -42
  210. package/lib/cjs/rpc/web/logging.js.map +1 -1
  211. package/lib/cjs/rpc/web/request.d.ts +6 -6
  212. package/lib/cjs/rpc/web/request.js +73 -73
  213. package/lib/cjs/rpc/web/request.js.map +1 -1
  214. package/lib/cjs/rpc/web/response.d.ts +6 -6
  215. package/lib/cjs/rpc/web/response.js +105 -105
  216. package/lib/cjs/rpc/web/response.js.map +1 -1
  217. package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
  218. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
  219. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  220. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
  221. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +291 -291
  222. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  223. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +22 -22
  224. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +202 -202
  225. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  226. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
  227. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +168 -168
  228. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  229. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
  230. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +43 -43
  231. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  232. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
  233. package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
  234. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
  235. package/lib/cjs/workspace/Settings.d.ts +186 -186
  236. package/lib/cjs/workspace/Settings.js +155 -155
  237. package/lib/cjs/workspace/Settings.js.map +1 -1
  238. package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
  239. package/lib/cjs/workspace/SettingsSchemas.js +191 -191
  240. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  241. package/lib/cjs/workspace/Workspace.d.ts +414 -414
  242. package/lib/cjs/workspace/Workspace.js +543 -543
  243. package/lib/cjs/workspace/Workspace.js.map +1 -1
  244. package/package.json +12 -12
@@ -1,104 +1,104 @@
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, 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
+ }
104
104
  //# sourceMappingURL=Material.d.ts.map
@@ -1,148 +1,148 @@
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
+ 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 = {}));
148
148
  //# sourceMappingURL=Material.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Material.js","sourceRoot":"","sources":["../../src/Material.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { BisCodeSpec, Code, CodeScopeProps, CodeSpec, DefinitionElementProps, RenderMaterialProps, TextureMapProps } from \"@itwin/core-common\";\r\nimport { DefinitionElement } from \"./Element\";\r\nimport { IModelDb } from \"./IModelDb\";\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\n/** A PhysicalMaterial defines the matter that makes up physical elements.\r\n * @note See [[RenderMaterialElement]] for the DefinitionElement used to define rendering characteristics.\r\n * @public\r\n */\r\nexport abstract class PhysicalMaterial extends DefinitionElement {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalMaterial\"; }\r\n /** Create a Code for a PhysicalMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.\r\n * @param iModel The IModelDb\r\n * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.\r\n * @param name The name (codeValue) of the PhysicalMaterial\r\n */\r\n public static createCode(iModel: IModelDb, definitionModelId: CodeScopeProps, name: string): Code {\r\n const codeSpec: CodeSpec = iModel.codeSpecs.getByName(BisCodeSpec.physicalMaterial);\r\n return new Code({ spec: codeSpec.id, scope: definitionModelId, value: name });\r\n }\r\n /** Create a PhysicalMaterial\r\n * @param iModelDb The IModelDb\r\n * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.\r\n * @param name The name (codeValue) of the PhysicalMaterial\r\n * @returns The newly constructed PhysicalMaterial\r\n * @throws [[IModelError]] if there is a problem creating the PhysicalMaterial\r\n */\r\n public static create<T extends PhysicalMaterial>(iModelDb: IModelDb, definitionModelId: CodeScopeProps, name: string): T {\r\n const elementProps: DefinitionElementProps = {\r\n classFullName: this.classFullName,\r\n model: definitionModelId,\r\n code: this.createCode(iModelDb, definitionModelId, name),\r\n };\r\n return iModelDb.elements.createElement(elementProps);\r\n }\r\n}\r\n\r\n/** Defines a rendering material.\r\n * @note See [[PhysicalMaterial]] for the DefinitionElement used to define the matter that makes up physical elements.\r\n * @public\r\n */\r\nexport class RenderMaterialElement extends DefinitionElement {\r\n /** @internal */\r\n public static override get className(): string { return \"RenderMaterial\"; }\r\n\r\n /** The name of a palette that can be used to categorize multiple materials. */\r\n public paletteName: string;\r\n /** An optional description of the material. */\r\n public description?: string;\r\n /** @internal */\r\n constructor(props: RenderMaterialProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n this.paletteName = props.paletteName;\r\n this.description = props.description;\r\n }\r\n /** @internal */\r\n public override toJSON(): RenderMaterialProps {\r\n const val = super.toJSON() as RenderMaterialProps;\r\n val.paletteName = this.paletteName;\r\n val.description = this.description;\r\n return val;\r\n }\r\n /** Create a Code for a RenderMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.\r\n * @param iModel The IModelDb\r\n * @param scopeModelId The Id of the DefinitionModel that contains the RenderMaterial and provides the scope for its name.\r\n * @param name The RenderMaterial name\r\n */\r\n public static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, name: string): Code {\r\n const codeSpec: CodeSpec = iModel.codeSpecs.getByName(BisCodeSpec.texture);\r\n return 0 === name.length ? Code.createEmpty() : new Code({ spec: codeSpec.id, scope: scopeModelId, value: name });\r\n }\r\n /**\r\n * Create a RenderMaterial with given parameters.\r\n * @param iModelDb The iModel\r\n * @param definitionModelId The [[DefinitionModel]]\r\n * @param materialName The name/CodeValue of the RenderMaterial\r\n * @param params Parameters object which describes how to construct the RenderMaterial\r\n * @returns The newly constructed RenderMaterial element.\r\n * @throws [[IModelError]] if unable to create the element.\r\n */\r\n public static create(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElement.Params): RenderMaterialElement {\r\n const map = undefined !== params.patternMap ? { Pattern: params.patternMap } : undefined;\r\n const renderMaterialProps: RenderMaterialProps = {\r\n classFullName: this.classFullName,\r\n code: this.createCode(iModelDb, definitionModelId, materialName),\r\n paletteName: params.paletteName,\r\n description: params.description,\r\n jsonProperties: {\r\n materialAssets: {\r\n renderMaterial: {\r\n HasBaseColor: params.color !== undefined,\r\n color: params.color,\r\n HasSpecularColor: params.specularColor !== undefined,\r\n specular_color: params.specularColor,\r\n HasFinish: params.finish !== undefined,\r\n finish: params.finish,\r\n HasTransmit: params.transmit !== undefined,\r\n transmit: params.transmit,\r\n HasDiffuse: params.diffuse !== undefined,\r\n diffuse: params.diffuse,\r\n HasSpecular: params.specular !== undefined,\r\n specular: params.specular,\r\n HasReflect: params.reflect !== undefined,\r\n reflect: params.reflect,\r\n HasReflectColor: params.reflectColor !== undefined,\r\n reflect_color: params.reflectColor,\r\n Map: map,\r\n },\r\n },\r\n },\r\n model: definitionModelId,\r\n isPrivate: false,\r\n };\r\n return new RenderMaterialElement(renderMaterialProps, iModelDb);\r\n }\r\n /**\r\n * Insert a new RenderMaterial into a model.\r\n * @param iModelDb Insert into this iModel\r\n * @param definitionModelId Insert the new Texture into this DefinitionModel\r\n * @param materialName The name/CodeValue of the RenderMaterial\r\n * @param params Parameters object which describes how to construct the RenderMaterial\r\n * @returns The Id of the newly inserted RenderMaterial element.\r\n * @throws [[IModelError]] if unable to insert the element.\r\n */\r\n public static insert(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElement.Params): Id64String {\r\n const renderMaterial = this.create(iModelDb, definitionModelId, materialName, params);\r\n return iModelDb.elements.insertElement(renderMaterial.toJSON());\r\n }\r\n}\r\n\r\n/** @public\r\n * @note color, specularColor and reflectColor are stored as [R,G,B] where each value is between 0 and 1\r\n*/\r\nexport namespace RenderMaterialElement { // eslint-disable-line no-redeclare\r\n /** Parameters used to construct a [[RenderMaterial]]. */\r\n export class Params {\r\n /** The palette name which categorizes this RenderMaterial */\r\n public paletteName: string;\r\n /** The optional description for this RenderMaterial */\r\n public description?: string;\r\n /** If defined, use this color for surface fill or diffuse illumination; if undefined, defaults to black */\r\n public color?: number[];\r\n /** If defined, use this color for surface specular illumination; if undefined, defaults to black */\r\n public specularColor?: number[];\r\n /** If defined, apply this specular exponent(surface shininess); range is 0 to 128; if undefined, defaults to 15.0 * 0.9 */\r\n public finish?: number;\r\n /** If defined, apply this surface transparency; if undefined, defaults to 0.0 */\r\n public transmit?: number;\r\n /** If defined, apply this surface diffuse reflectivity; if undefined, defaults to 0.6 */\r\n public diffuse?: number;\r\n /** 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. */\r\n public specular?: number;\r\n /** If defined, apply this surface environmental reflectivity; stored as fraction of specular in V8 material settings; if undefined, defaults to 0.0 */\r\n public reflect?: number;\r\n /** If defined, apply this surface reflectance color; if undefined, defaults to whatever the specularColor is */\r\n public reflectColor?: number[];\r\n /** If defined, specifies the pattern mapping. */\r\n public patternMap?: TextureMapProps;\r\n\r\n /** Construct a new RenderMaterial.Params object with the specified paletteName. Alter the public members on that object to specify settings. */\r\n public constructor(paletteName: string) {\r\n this.paletteName = paletteName;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Material.js","sourceRoot":"","sources":["../../src/Material.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Elements\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport { BisCodeSpec, Code, CodeScopeProps, CodeSpec, DefinitionElementProps, RenderMaterialProps, TextureMapProps } from \"@itwin/core-common\";\nimport { DefinitionElement } from \"./Element\";\nimport { IModelDb } from \"./IModelDb\";\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/** A PhysicalMaterial defines the matter that makes up physical elements.\n * @note See [[RenderMaterialElement]] for the DefinitionElement used to define rendering characteristics.\n * @public\n */\nexport abstract class PhysicalMaterial extends DefinitionElement {\n /** @internal */\n public static override get className(): string { return \"PhysicalMaterial\"; }\n /** Create a Code for a PhysicalMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.\n * @param iModel The IModelDb\n * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.\n * @param name The name (codeValue) of the PhysicalMaterial\n */\n public static createCode(iModel: IModelDb, definitionModelId: CodeScopeProps, name: string): Code {\n const codeSpec: CodeSpec = iModel.codeSpecs.getByName(BisCodeSpec.physicalMaterial);\n return new Code({ spec: codeSpec.id, scope: definitionModelId, value: name });\n }\n /** Create a PhysicalMaterial\n * @param iModelDb The IModelDb\n * @param definitionModelId The Id of the DefinitionModel that will contain the PhysicalMaterial and provide the scope for its name.\n * @param name The name (codeValue) of the PhysicalMaterial\n * @returns The newly constructed PhysicalMaterial\n * @throws [[IModelError]] if there is a problem creating the PhysicalMaterial\n */\n public static create<T extends PhysicalMaterial>(iModelDb: IModelDb, definitionModelId: CodeScopeProps, name: string): T {\n const elementProps: DefinitionElementProps = {\n classFullName: this.classFullName,\n model: definitionModelId,\n code: this.createCode(iModelDb, definitionModelId, name),\n };\n return iModelDb.elements.createElement(elementProps);\n }\n}\n\n/** Defines a rendering material.\n * @note See [[PhysicalMaterial]] for the DefinitionElement used to define the matter that makes up physical elements.\n * @public\n */\nexport class RenderMaterialElement extends DefinitionElement {\n /** @internal */\n public static override get className(): string { return \"RenderMaterial\"; }\n\n /** The name of a palette that can be used to categorize multiple materials. */\n public paletteName: string;\n /** An optional description of the material. */\n public description?: string;\n /** @internal */\n constructor(props: RenderMaterialProps, iModel: IModelDb) {\n super(props, iModel);\n this.paletteName = props.paletteName;\n this.description = props.description;\n }\n /** @internal */\n public override toJSON(): RenderMaterialProps {\n const val = super.toJSON() as RenderMaterialProps;\n val.paletteName = this.paletteName;\n val.description = this.description;\n return val;\n }\n /** Create a Code for a RenderMaterial given a name that is meant to be unique within the scope of the specified DefinitionModel.\n * @param iModel The IModelDb\n * @param scopeModelId The Id of the DefinitionModel that contains the RenderMaterial and provides the scope for its name.\n * @param name The RenderMaterial name\n */\n public static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, name: string): Code {\n const codeSpec: CodeSpec = iModel.codeSpecs.getByName(BisCodeSpec.texture);\n return 0 === name.length ? Code.createEmpty() : new Code({ spec: codeSpec.id, scope: scopeModelId, value: name });\n }\n /**\n * Create a RenderMaterial with given parameters.\n * @param iModelDb The iModel\n * @param definitionModelId The [[DefinitionModel]]\n * @param materialName The name/CodeValue of the RenderMaterial\n * @param params Parameters object which describes how to construct the RenderMaterial\n * @returns The newly constructed RenderMaterial element.\n * @throws [[IModelError]] if unable to create the element.\n */\n public static create(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElement.Params): RenderMaterialElement {\n const map = undefined !== params.patternMap ? { Pattern: params.patternMap } : undefined;\n const renderMaterialProps: RenderMaterialProps = {\n classFullName: this.classFullName,\n code: this.createCode(iModelDb, definitionModelId, materialName),\n paletteName: params.paletteName,\n description: params.description,\n jsonProperties: {\n materialAssets: {\n renderMaterial: {\n HasBaseColor: params.color !== undefined,\n color: params.color,\n HasSpecularColor: params.specularColor !== undefined,\n specular_color: params.specularColor,\n HasFinish: params.finish !== undefined,\n finish: params.finish,\n HasTransmit: params.transmit !== undefined,\n transmit: params.transmit,\n HasDiffuse: params.diffuse !== undefined,\n diffuse: params.diffuse,\n HasSpecular: params.specular !== undefined,\n specular: params.specular,\n HasReflect: params.reflect !== undefined,\n reflect: params.reflect,\n HasReflectColor: params.reflectColor !== undefined,\n reflect_color: params.reflectColor,\n Map: map,\n },\n },\n },\n model: definitionModelId,\n isPrivate: false,\n };\n return new RenderMaterialElement(renderMaterialProps, iModelDb);\n }\n /**\n * Insert a new RenderMaterial into a model.\n * @param iModelDb Insert into this iModel\n * @param definitionModelId Insert the new Texture into this DefinitionModel\n * @param materialName The name/CodeValue of the RenderMaterial\n * @param params Parameters object which describes how to construct the RenderMaterial\n * @returns The Id of the newly inserted RenderMaterial element.\n * @throws [[IModelError]] if unable to insert the element.\n */\n public static insert(iModelDb: IModelDb, definitionModelId: Id64String, materialName: string, params: RenderMaterialElement.Params): Id64String {\n const renderMaterial = this.create(iModelDb, definitionModelId, materialName, params);\n return iModelDb.elements.insertElement(renderMaterial.toJSON());\n }\n}\n\n/** @public\n * @note color, specularColor and reflectColor are stored as [R,G,B] where each value is between 0 and 1\n*/\nexport namespace RenderMaterialElement { // eslint-disable-line no-redeclare\n /** Parameters used to construct a [[RenderMaterial]]. */\n export class Params {\n /** The palette name which categorizes this RenderMaterial */\n public paletteName: string;\n /** The optional description for this RenderMaterial */\n public description?: string;\n /** If defined, use this color for surface fill or diffuse illumination; if undefined, defaults to black */\n public color?: number[];\n /** If defined, use this color for surface specular illumination; if undefined, defaults to black */\n public specularColor?: number[];\n /** If defined, apply this specular exponent(surface shininess); range is 0 to 128; if undefined, defaults to 15.0 * 0.9 */\n public finish?: number;\n /** If defined, apply this surface transparency; if undefined, defaults to 0.0 */\n public transmit?: number;\n /** If defined, apply this surface diffuse reflectivity; if undefined, defaults to 0.6 */\n public diffuse?: number;\n /** 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. */\n public specular?: number;\n /** If defined, apply this surface environmental reflectivity; stored as fraction of specular in V8 material settings; if undefined, defaults to 0.0 */\n public reflect?: number;\n /** If defined, apply this surface reflectance color; if undefined, defaults to whatever the specularColor is */\n public reflectColor?: number[];\n /** If defined, specifies the pattern mapping. */\n public patternMap?: TextureMapProps;\n\n /** Construct a new RenderMaterial.Params object with the specified paletteName. Alter the public members on that object to specify settings. */\n public constructor(paletteName: string) {\n this.paletteName = paletteName;\n }\n }\n}\n"]}