@configura/web-core 2.1.0-alpha.2 → 2.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/.eslintrc.json +5 -5
  2. package/LICENSE +201 -201
  3. package/README.md +1 -1
  4. package/dist/cm/basic/Color.d.ts +16 -16
  5. package/dist/cm/basic/Color.js +18 -18
  6. package/dist/cm/basic/ColorF.d.ts +9 -9
  7. package/dist/cm/basic/ColorF.js +10 -10
  8. package/dist/cm/basic/boolean.d.ts +2 -2
  9. package/dist/cm/basic/boolean.js +11 -11
  10. package/dist/cm/basic/number.d.ts +3 -3
  11. package/dist/cm/basic/number.js +18 -18
  12. package/dist/cm/basic/string.d.ts +2 -2
  13. package/dist/cm/basic/string.js +11 -11
  14. package/dist/cm/core3D/ATriMeshF.d.ts +96 -96
  15. package/dist/cm/core3D/ATriMeshF.js +197 -197
  16. package/dist/cm/core3D/GMaterial3D.d.ts +62 -62
  17. package/dist/cm/core3D/GMaterial3D.js +112 -112
  18. package/dist/cm/core3D/GMaterialClassic.d.ts +55 -55
  19. package/dist/cm/core3D/GMaterialClassic.js +171 -171
  20. package/dist/cm/core3D/GMaterialPBR.d.ts +73 -73
  21. package/dist/cm/core3D/GMaterialPBR.js +314 -314
  22. package/dist/cm/core3D/MultiGMaterial3D.d.ts +8 -8
  23. package/dist/cm/core3D/MultiGMaterial3D.js +17 -17
  24. package/dist/cm/core3D/uvmapper/UVMapEnv.d.ts +19 -19
  25. package/dist/cm/core3D/uvmapper/UVMapEnv.js +47 -47
  26. package/dist/cm/core3D/uvmapper/UVMapper.d.ts +41 -41
  27. package/dist/cm/core3D/uvmapper/UVMapper.js +94 -94
  28. package/dist/cm/core3D/uvmapper/UVMapperBox.d.ts +4 -4
  29. package/dist/cm/core3D/uvmapper/UVMapperBox.js +181 -181
  30. package/dist/cm/core3D/uvmapper/UVMapperCylinder.d.ts +9 -9
  31. package/dist/cm/core3D/uvmapper/UVMapperCylinder.js +96 -96
  32. package/dist/cm/core3D/uvmapper/UVMapperPlane.d.ts +3 -3
  33. package/dist/cm/core3D/uvmapper/UVMapperPlane.js +84 -84
  34. package/dist/cm/core3D/uvmapper/UVTransformer.d.ts +5 -5
  35. package/dist/cm/core3D/uvmapper/UVTransformer.js +5 -5
  36. package/dist/cm/core3D/uvmapper/instantiateUVMapper.d.ts +3 -3
  37. package/dist/cm/core3D/uvmapper/instantiateUVMapper.js +4 -4
  38. package/dist/cm/format/cmsym/InvalidationEnv.d.ts +9 -9
  39. package/dist/cm/format/cmsym/InvalidationEnv.js +13 -13
  40. package/dist/cm/format/cmsym/SymImportEnv.d.ts +9 -9
  41. package/dist/cm/format/cmsym/SymImportEnv.js +9 -9
  42. package/dist/cm/format/cmsym/SymInv.d.ts +8 -8
  43. package/dist/cm/format/cmsym/SymInv.js +17 -17
  44. package/dist/cm/format/cmsym/SymNode.d.ts +94 -94
  45. package/dist/cm/format/cmsym/SymNode.js +652 -652
  46. package/dist/cm/format/cmsym/components/SymBox.d.ts +15 -15
  47. package/dist/cm/format/cmsym/components/SymBox.js +39 -39
  48. package/dist/cm/format/cmsym/components/SymComponent.d.ts +29 -29
  49. package/dist/cm/format/cmsym/components/SymComponent.js +56 -56
  50. package/dist/cm/format/cmsym/components/SymConnector.d.ts +5 -5
  51. package/dist/cm/format/cmsym/components/SymConnector.js +10 -10
  52. package/dist/cm/format/cmsym/components/SymDexObj.d.ts +11 -11
  53. package/dist/cm/format/cmsym/components/SymDexObj.js +10 -10
  54. package/dist/cm/format/cmsym/components/SymGFX.d.ts +11 -11
  55. package/dist/cm/format/cmsym/components/SymGFX.js +20 -20
  56. package/dist/cm/format/cmsym/components/SymGMaterial.d.ts +19 -19
  57. package/dist/cm/format/cmsym/components/SymGMaterial.js +88 -88
  58. package/dist/cm/format/cmsym/components/SymGMaterialSelector.d.ts +17 -17
  59. package/dist/cm/format/cmsym/components/SymGMaterialSelector.js +22 -22
  60. package/dist/cm/format/cmsym/components/SymGetMeshEnv.d.ts +9 -9
  61. package/dist/cm/format/cmsym/components/SymGetMeshEnv.js +9 -9
  62. package/dist/cm/format/cmsym/components/SymLODGroup.d.ts +9 -9
  63. package/dist/cm/format/cmsym/components/SymLODGroup.js +13 -13
  64. package/dist/cm/format/cmsym/components/SymLight.d.ts +8 -8
  65. package/dist/cm/format/cmsym/components/SymLight.js +10 -10
  66. package/dist/cm/format/cmsym/components/SymLines2D.d.ts +5 -5
  67. package/dist/cm/format/cmsym/components/SymLines2D.js +7 -7
  68. package/dist/cm/format/cmsym/components/SymMeasure.d.ts +33 -33
  69. package/dist/cm/format/cmsym/components/SymMeasure.js +149 -149
  70. package/dist/cm/format/cmsym/components/SymMesh.d.ts +29 -29
  71. package/dist/cm/format/cmsym/components/SymMesh.js +130 -130
  72. package/dist/cm/format/cmsym/components/SymMeshLight.d.ts +8 -8
  73. package/dist/cm/format/cmsym/components/SymMeshLight.js +10 -10
  74. package/dist/cm/format/cmsym/components/SymMultiSelector.d.ts +13 -13
  75. package/dist/cm/format/cmsym/components/SymMultiSelector.js +48 -48
  76. package/dist/cm/format/cmsym/components/SymParams.d.ts +16 -16
  77. package/dist/cm/format/cmsym/components/SymParams.js +58 -58
  78. package/dist/cm/format/cmsym/components/SymPlane.d.ts +15 -15
  79. package/dist/cm/format/cmsym/components/SymPlane.js +30 -30
  80. package/dist/cm/format/cmsym/components/SymPlaneDivider.d.ts +4 -4
  81. package/dist/cm/format/cmsym/components/SymPlaneDivider.js +7 -7
  82. package/dist/cm/format/cmsym/components/SymPrimitive2D.d.ts +3 -3
  83. package/dist/cm/format/cmsym/components/SymPrimitive2D.js +3 -3
  84. package/dist/cm/format/cmsym/components/SymProgs.d.ts +32 -32
  85. package/dist/cm/format/cmsym/components/SymProgs.js +120 -120
  86. package/dist/cm/format/cmsym/components/SymProps.d.ts +54 -54
  87. package/dist/cm/format/cmsym/components/SymProps.js +171 -171
  88. package/dist/cm/format/cmsym/components/SymRep.d.ts +13 -13
  89. package/dist/cm/format/cmsym/components/SymRep.js +28 -28
  90. package/dist/cm/format/cmsym/components/SymReps.d.ts +36 -36
  91. package/dist/cm/format/cmsym/components/SymReps.js +230 -230
  92. package/dist/cm/format/cmsym/components/SymShape.d.ts +10 -10
  93. package/dist/cm/format/cmsym/components/SymShape.js +17 -17
  94. package/dist/cm/format/cmsym/components/SymSphere.d.ts +18 -18
  95. package/dist/cm/format/cmsym/components/SymSphere.js +33 -33
  96. package/dist/cm/format/cmsym/components/SymSpotlight.d.ts +8 -8
  97. package/dist/cm/format/cmsym/components/SymSpotlight.js +10 -10
  98. package/dist/cm/format/cmsym/components/SymTags.d.ts +11 -11
  99. package/dist/cm/format/cmsym/components/SymTags.js +20 -20
  100. package/dist/cm/format/cmsym/components/SymText2D.d.ts +5 -5
  101. package/dist/cm/format/cmsym/components/SymText2D.js +8 -8
  102. package/dist/cm/format/cmsym/components/SymText3D.d.ts +5 -5
  103. package/dist/cm/format/cmsym/components/SymText3D.js +8 -8
  104. package/dist/cm/format/cmsym/components/SymTransform.d.ts +23 -23
  105. package/dist/cm/format/cmsym/components/SymTransform.js +101 -101
  106. package/dist/cm/format/cmsym/components/SymUVMapper.d.ts +13 -13
  107. package/dist/cm/format/cmsym/components/SymUVMapper.js +50 -50
  108. package/dist/cm/format/cmsym/components/instantiate.d.ts +2 -2
  109. package/dist/cm/format/cmsym/components/instantiate.js +121 -121
  110. package/dist/cm/format/cmsym/components/legacy.d.ts +7 -7
  111. package/dist/cm/format/cmsym/components/legacy.js +27 -27
  112. package/dist/cm/format/cmsym/components/mesh.d.ts +8 -8
  113. package/dist/cm/format/cmsym/components/mesh.js +28 -28
  114. package/dist/cm/format/cmsym/invalidation.d.ts +4 -4
  115. package/dist/cm/format/cmsym/invalidation.js +72 -72
  116. package/dist/cm/format/dex/DexIRef.d.ts +9 -9
  117. package/dist/cm/format/dex/DexIRef.js +18 -18
  118. package/dist/cm/format/dex/DexInt.d.ts +11 -11
  119. package/dist/cm/format/dex/DexInt.js +18 -18
  120. package/dist/cm/format/dex/DexInternalizedXRef.d.ts +19 -19
  121. package/dist/cm/format/dex/DexInternalizedXRef.js +65 -65
  122. package/dist/cm/format/dex/DexLoader.d.ts +8 -8
  123. package/dist/cm/format/dex/DexLoader.js +12 -12
  124. package/dist/cm/format/dex/DexManager.d.ts +20 -20
  125. package/dist/cm/format/dex/DexManager.js +78 -78
  126. package/dist/cm/format/dex/DexObj.d.ts +15 -15
  127. package/dist/cm/format/dex/DexObj.js +86 -86
  128. package/dist/cm/format/dex/DexReader.d.ts +90 -90
  129. package/dist/cm/format/dex/DexReader.js +532 -532
  130. package/dist/cm/format/dex/DexRef.d.ts +6 -6
  131. package/dist/cm/format/dex/DexRef.js +8 -8
  132. package/dist/cm/format/dex/DexReplacedXRefs.d.ts +9 -9
  133. package/dist/cm/format/dex/DexReplacedXRefs.js +22 -22
  134. package/dist/cm/format/dex/DexURL.d.ts +4 -4
  135. package/dist/cm/format/dex/DexURL.js +5 -5
  136. package/dist/cm/format/dex/DexVersion.d.ts +15 -15
  137. package/dist/cm/format/dex/DexVersion.js +53 -53
  138. package/dist/cm/format/dex/DexXRef.d.ts +18 -18
  139. package/dist/cm/format/dex/DexXRef.js +51 -51
  140. package/dist/cm/format/dex/DexXRefTargetFilter.d.ts +4 -4
  141. package/dist/cm/format/dex/DexXRefTargetFilter.js +5 -5
  142. package/dist/cm/geometry/Angle.d.ts +9 -9
  143. package/dist/cm/geometry/Angle.js +18 -18
  144. package/dist/cm/geometry/AngleF.d.ts +5 -5
  145. package/dist/cm/geometry/AngleF.js +8 -8
  146. package/dist/cm/geometry/Box.d.ts +7 -7
  147. package/dist/cm/geometry/Box.js +9 -9
  148. package/dist/cm/geometry/DetailMask.d.ts +37 -37
  149. package/dist/cm/geometry/DetailMask.js +114 -114
  150. package/dist/cm/geometry/LayerExpr.d.ts +2 -2
  151. package/dist/cm/geometry/LayerExpr.js +2 -2
  152. package/dist/cm/geometry/Matrix22.d.ts +7 -7
  153. package/dist/cm/geometry/Matrix22.js +9 -9
  154. package/dist/cm/geometry/Matrix33.d.ts +42 -42
  155. package/dist/cm/geometry/Matrix33.js +124 -124
  156. package/dist/cm/geometry/Orientation.d.ts +7 -7
  157. package/dist/cm/geometry/Orientation.js +7 -7
  158. package/dist/cm/geometry/Plane.d.ts +8 -8
  159. package/dist/cm/geometry/Plane.js +14 -14
  160. package/dist/cm/geometry/Point.d.ts +21 -21
  161. package/dist/cm/geometry/Point.js +65 -65
  162. package/dist/cm/geometry/Point2D.d.ts +9 -9
  163. package/dist/cm/geometry/Point2D.js +23 -23
  164. package/dist/cm/geometry/PointF.d.ts +11 -11
  165. package/dist/cm/geometry/PointF.js +27 -27
  166. package/dist/cm/geometry/Transform.d.ts +11 -11
  167. package/dist/cm/geometry/Transform.js +61 -61
  168. package/dist/cm/geometry/Transform2D.d.ts +7 -7
  169. package/dist/cm/geometry/Transform2D.js +6 -6
  170. package/dist/cm/io/Semver.d.ts +18 -18
  171. package/dist/cm/io/Semver.js +61 -61
  172. package/dist/index.js +1 -1
  173. package/package.json +4 -4
@@ -1,63 +1,63 @@
1
- import { Logger } from "@configura/web-utilities";
2
- import { DexObj } from "../format/dex/DexObj.js";
3
- import { DexSerializable } from "../format/dex/DexReader.js";
4
- import { DexURL } from "../format/dex/DexURL.js";
5
- export declare const enum TextureWrap {
6
- repeat = 0,
7
- mirroredRepeat = 1,
8
- clamp = 2,
9
- clampToEdge = 3,
10
- clampToBorder = 4
11
- }
12
- export declare const enum TextureFilter {
13
- linear = 0,
14
- nearest = 1
15
- }
16
- export declare const enum TextureType {
17
- classicDiffuse = 0,
18
- classicAmbient = 1,
19
- classicEmission = 2,
20
- classicSpecular = 3,
21
- classicTransparency = 4,
22
- classicReflection = 5,
23
- classicRefraction = 6,
24
- classicBump = 7,
25
- pbrBase = "base",
26
- pbrEmissive = "emissive",
27
- pbrMetallic = "metallic",
28
- pbrNormal = "normal",
29
- pbrOcclusion = "occlusion",
30
- pbrOpacity = "opacity",
31
- pbrRefraction = "refraction",
32
- pbrRoughness = "roughness"
33
- }
34
- /** Common texture class used both by Classic and PBR GMaterials. */
35
- export declare class GMaterial3DTexture {
36
- readonly type: TextureType;
37
- constructor(type: TextureType);
38
- textureUrl?: DexURL;
39
- uScale: number;
40
- vScale: number;
41
- uOffset: number;
42
- vOffset: number;
43
- /** Texture rotation in radians. */
44
- rot: number;
45
- wrapU: TextureWrap;
46
- wrapV: TextureWrap;
47
- minFilter: TextureFilter;
48
- magFilter: TextureFilter;
49
- /** mipFilter is tristate. Also not (yet) included in the CmSym PBR specification. */
50
- mipFilter: TextureFilter | undefined;
51
- }
52
- /** Common settings for both Classic and PBR GMaterials. */
53
- export declare class GMaterial3D {
54
- materialKey?: string;
55
- doubleSided: boolean;
56
- solid: boolean;
57
- misc?: Map<string, DexSerializable>;
58
- redCustomProperties?: Map<string, DexSerializable>;
59
- constructor(log: Logger, obj?: DexObj);
60
- }
61
- export declare function imageUrlFromDex(log: Logger, dex: DexObj): DexURL | undefined;
62
- export declare function textureWrapFromDex(dex: DexObj): TextureWrap | undefined;
1
+ import { Logger } from "@configura/web-utilities";
2
+ import { DexObj } from "../format/dex/DexObj.js";
3
+ import { DexSerializable } from "../format/dex/DexReader.js";
4
+ import { DexURL } from "../format/dex/DexURL.js";
5
+ export declare const enum TextureWrap {
6
+ repeat = 0,
7
+ mirroredRepeat = 1,
8
+ clamp = 2,
9
+ clampToEdge = 3,
10
+ clampToBorder = 4
11
+ }
12
+ export declare const enum TextureFilter {
13
+ linear = 0,
14
+ nearest = 1
15
+ }
16
+ export declare const enum TextureType {
17
+ classicDiffuse = 0,
18
+ classicAmbient = 1,
19
+ classicEmission = 2,
20
+ classicSpecular = 3,
21
+ classicTransparency = 4,
22
+ classicReflection = 5,
23
+ classicRefraction = 6,
24
+ classicBump = 7,
25
+ pbrBase = "base",
26
+ pbrEmissive = "emissive",
27
+ pbrMetallic = "metallic",
28
+ pbrNormal = "normal",
29
+ pbrOcclusion = "occlusion",
30
+ pbrOpacity = "opacity",
31
+ pbrRefraction = "refraction",
32
+ pbrRoughness = "roughness"
33
+ }
34
+ /** Common texture class used both by Classic and PBR GMaterials. */
35
+ export declare class GMaterial3DTexture {
36
+ readonly type: TextureType;
37
+ constructor(type: TextureType);
38
+ textureUrl?: DexURL;
39
+ uScale: number;
40
+ vScale: number;
41
+ uOffset: number;
42
+ vOffset: number;
43
+ /** Texture rotation in radians. */
44
+ rot: number;
45
+ wrapU: TextureWrap;
46
+ wrapV: TextureWrap;
47
+ minFilter: TextureFilter;
48
+ magFilter: TextureFilter;
49
+ /** mipFilter is tristate. Also not (yet) included in the CmSym PBR specification. */
50
+ mipFilter: TextureFilter | undefined;
51
+ }
52
+ /** Common settings for both Classic and PBR GMaterials. */
53
+ export declare class GMaterial3D {
54
+ materialKey?: string;
55
+ doubleSided: boolean;
56
+ solid: boolean;
57
+ misc?: Map<string, DexSerializable>;
58
+ redCustomProperties?: Map<string, DexSerializable>;
59
+ constructor(log: Logger, obj?: DexObj);
60
+ }
61
+ export declare function imageUrlFromDex(log: Logger, dex: DexObj): DexURL | undefined;
62
+ export declare function textureWrapFromDex(dex: DexObj): TextureWrap | undefined;
63
63
  //# sourceMappingURL=GMaterial3D.d.ts.map
@@ -1,112 +1,112 @@
1
- import { DexObj } from "../format/dex/DexObj.js";
2
- import { DexURL } from "../format/dex/DexURL.js";
3
- import { DexXRef } from "../format/dex/DexXRef.js";
4
- /** Common texture class used both by Classic and PBR GMaterials. */
5
- export class GMaterial3DTexture {
6
- constructor(type) {
7
- this.type = type;
8
- // Texture rotation
9
- this.uScale = 1;
10
- this.vScale = 1;
11
- this.uOffset = 0;
12
- this.vOffset = 0;
13
- /** Texture rotation in radians. */
14
- this.rot = 0;
15
- // Texture wrap modes
16
- this.wrapU = 0 /* repeat */;
17
- this.wrapV = 0 /* repeat */;
18
- // Texture filtering. Default to trilinear.
19
- this.minFilter = 0 /* linear */;
20
- this.magFilter = 0 /* linear */;
21
- /** mipFilter is tristate. Also not (yet) included in the CmSym PBR specification. */
22
- this.mipFilter = 0 /* linear */;
23
- }
24
- }
25
- /** Common settings for both Classic and PBR GMaterials. */
26
- export class GMaterial3D {
27
- constructor(log, obj) {
28
- this.doubleSided = false;
29
- this.solid = false;
30
- if (obj === undefined) {
31
- return;
32
- }
33
- if (obj.type !== "gm") {
34
- throw log.errorAsObject("bad obj.type:", obj.type);
35
- }
36
- // The code below loads the parts common to both Classic and PBR GMaterials.
37
- //
38
- // According to the CET source code, it means the following objects:
39
- // fileVersion, version, materialKey, debugKey, doubleSided, misc & redCustomProperties.
40
- //
41
- // "fresnel" is also included in that list but we skip it. It was never implemented in this
42
- // SDK for classic materials and is assumed to always be on for PBR materials.
43
- let property = obj.get("materialKey");
44
- if (typeof property === "string") {
45
- this.materialKey = property;
46
- }
47
- const doubleSided = obj.get("doubleSided");
48
- if (typeof doubleSided === "boolean") {
49
- this.doubleSided = doubleSided;
50
- }
51
- const solid = obj.get("solid");
52
- if (typeof solid === "boolean") {
53
- this.solid = solid;
54
- }
55
- property = obj.get("misc");
56
- if (property instanceof DexObj) {
57
- this.misc = property.props;
58
- }
59
- else if (property !== undefined) {
60
- log.warn("material property 'misc' is of an unexpected type", property);
61
- }
62
- property = obj.get("redCustomProperties");
63
- if (property instanceof DexObj) {
64
- this.redCustomProperties = property.props;
65
- }
66
- else if (property !== undefined) {
67
- log.warn("material property 'redCustomProperties' is of an unexpected type", property);
68
- }
69
- }
70
- }
71
- export function imageUrlFromDex(log, dex) {
72
- if (dex.has("imageUrl")) {
73
- const url = dex.get("imageUrl");
74
- if (url instanceof DexURL) {
75
- return url;
76
- }
77
- if (url instanceof DexObj) {
78
- const dexURL = url.get("url");
79
- if (dexURL instanceof DexURL) {
80
- return dexURL;
81
- }
82
- log.warn("material property 'imageUrl/url' (DexObj) is not of type DexURL", dexURL);
83
- return undefined;
84
- }
85
- if (url instanceof DexXRef) {
86
- const dexURL = url.url !== undefined ? url.load(url.url) : undefined;
87
- if (dexURL instanceof DexURL) {
88
- return dexURL;
89
- }
90
- log.warn("material property 'imageUrl/url' (DexXRef) is not of type DexURL", dexURL);
91
- return undefined;
92
- }
93
- log.warn("material property 'imageUrl' is is of an unexpected type", url);
94
- }
95
- return undefined;
96
- }
97
- export function textureWrapFromDex(dex) {
98
- switch (dex.get("wrap")) {
99
- case "repeat":
100
- return 0 /* repeat */;
101
- case "mirroredRepeat":
102
- return 1 /* mirroredRepeat */;
103
- case "clamp":
104
- return 2 /* clamp */;
105
- case "clampToEdge":
106
- return 3 /* clampToEdge */;
107
- case "clampToBorder":
108
- return 4 /* clampToBorder */;
109
- default:
110
- return undefined;
111
- }
112
- }
1
+ import { DexObj } from "../format/dex/DexObj.js";
2
+ import { DexURL } from "../format/dex/DexURL.js";
3
+ import { DexXRef } from "../format/dex/DexXRef.js";
4
+ /** Common texture class used both by Classic and PBR GMaterials. */
5
+ export class GMaterial3DTexture {
6
+ constructor(type) {
7
+ this.type = type;
8
+ // Texture rotation
9
+ this.uScale = 1;
10
+ this.vScale = 1;
11
+ this.uOffset = 0;
12
+ this.vOffset = 0;
13
+ /** Texture rotation in radians. */
14
+ this.rot = 0;
15
+ // Texture wrap modes
16
+ this.wrapU = 0 /* repeat */;
17
+ this.wrapV = 0 /* repeat */;
18
+ // Texture filtering. Default to trilinear.
19
+ this.minFilter = 0 /* linear */;
20
+ this.magFilter = 0 /* linear */;
21
+ /** mipFilter is tristate. Also not (yet) included in the CmSym PBR specification. */
22
+ this.mipFilter = 0 /* linear */;
23
+ }
24
+ }
25
+ /** Common settings for both Classic and PBR GMaterials. */
26
+ export class GMaterial3D {
27
+ constructor(log, obj) {
28
+ this.doubleSided = false;
29
+ this.solid = false;
30
+ if (obj === undefined) {
31
+ return;
32
+ }
33
+ if (obj.type !== "gm") {
34
+ throw log.errorAsObject("bad obj.type:", obj.type);
35
+ }
36
+ // The code below loads the parts common to both Classic and PBR GMaterials.
37
+ //
38
+ // According to the CET source code, it means the following objects:
39
+ // fileVersion, version, materialKey, debugKey, doubleSided, misc & redCustomProperties.
40
+ //
41
+ // "fresnel" is also included in that list but we skip it. It was never implemented in this
42
+ // SDK for classic materials and is assumed to always be on for PBR materials.
43
+ let property = obj.get("materialKey");
44
+ if (typeof property === "string") {
45
+ this.materialKey = property;
46
+ }
47
+ const doubleSided = obj.get("doubleSided");
48
+ if (typeof doubleSided === "boolean") {
49
+ this.doubleSided = doubleSided;
50
+ }
51
+ const solid = obj.get("solid");
52
+ if (typeof solid === "boolean") {
53
+ this.solid = solid;
54
+ }
55
+ property = obj.get("misc");
56
+ if (property instanceof DexObj) {
57
+ this.misc = property.props;
58
+ }
59
+ else if (property !== undefined) {
60
+ log.warn("material property 'misc' is of an unexpected type", property);
61
+ }
62
+ property = obj.get("redCustomProperties");
63
+ if (property instanceof DexObj) {
64
+ this.redCustomProperties = property.props;
65
+ }
66
+ else if (property !== undefined) {
67
+ log.warn("material property 'redCustomProperties' is of an unexpected type", property);
68
+ }
69
+ }
70
+ }
71
+ export function imageUrlFromDex(log, dex) {
72
+ if (dex.has("imageUrl")) {
73
+ const url = dex.get("imageUrl");
74
+ if (url instanceof DexURL) {
75
+ return url;
76
+ }
77
+ if (url instanceof DexObj) {
78
+ const dexURL = url.get("url");
79
+ if (dexURL instanceof DexURL) {
80
+ return dexURL;
81
+ }
82
+ log.warn("material property 'imageUrl/url' (DexObj) is not of type DexURL", dexURL);
83
+ return undefined;
84
+ }
85
+ if (url instanceof DexXRef) {
86
+ const dexURL = url.url !== undefined ? url.load(url.url) : undefined;
87
+ if (dexURL instanceof DexURL) {
88
+ return dexURL;
89
+ }
90
+ log.warn("material property 'imageUrl/url' (DexXRef) is not of type DexURL", dexURL);
91
+ return undefined;
92
+ }
93
+ log.warn("material property 'imageUrl' is is of an unexpected type", url);
94
+ }
95
+ return undefined;
96
+ }
97
+ export function textureWrapFromDex(dex) {
98
+ switch (dex.get("wrap")) {
99
+ case "repeat":
100
+ return 0 /* repeat */;
101
+ case "mirroredRepeat":
102
+ return 1 /* mirroredRepeat */;
103
+ case "clamp":
104
+ return 2 /* clamp */;
105
+ case "clampToEdge":
106
+ return 3 /* clampToEdge */;
107
+ case "clampToBorder":
108
+ return 4 /* clampToBorder */;
109
+ default:
110
+ return undefined;
111
+ }
112
+ }
@@ -1,56 +1,56 @@
1
- import { Logger } from "@configura/web-utilities";
2
- import { ColorF } from "../basic/ColorF.js";
3
- import { DexObj } from "../format/dex/DexObj.js";
4
- import { DexURL } from "../format/dex/DexURL.js";
5
- import { GMaterial3D, GMaterial3DTexture } from "./GMaterial3D.js";
6
- export declare class GMaterialClassic extends GMaterial3D {
7
- diffuse?: Diffuse3D;
8
- ambient?: Ambient3D;
9
- specular?: Specular3D;
10
- transparency?: Transparency3D;
11
- reflection?: Reflection3D;
12
- refraction?: Refraction3D;
13
- bump?: Bump3D;
14
- emission?: Emission3D;
15
- constructor(log: Logger, obj?: DexObj);
16
- }
17
- export declare class GMaterialProp3D extends GMaterial3DTexture {
18
- c?: ColorF;
19
- _avgTextureColor?: ColorF;
20
- setTextureUrl(url: DexURL): void;
21
- }
22
- export declare class Diffuse3D extends GMaterialProp3D {
23
- amount: number;
24
- constructor(amount?: number);
25
- }
26
- export declare class Ambient3D extends GMaterialProp3D {
27
- amount: number;
28
- constructor(amount?: number);
29
- }
30
- export declare class Emission3D extends GMaterialProp3D {
31
- }
32
- export declare class Specular3D extends GMaterialProp3D {
33
- exponent?: number | undefined;
34
- amount: number;
35
- constructor(exponent?: number | undefined, amount?: number);
36
- }
37
- export declare class Transparency3D extends GMaterialProp3D {
38
- alphaThreshold?: number | undefined;
39
- opacity?: number | undefined;
40
- constructor(alphaThreshold?: number | undefined, opacity?: number | undefined);
41
- }
42
- export declare class Reflection3D extends GMaterialProp3D {
43
- amount?: number | undefined;
44
- constructor(amount?: number | undefined);
45
- }
46
- export declare class Refraction3D extends GMaterialProp3D {
47
- index?: number | undefined;
48
- constructor(index?: number | undefined);
49
- }
50
- export declare class Bump3D extends GMaterialProp3D {
51
- amount?: number | undefined;
52
- effectRR?: number | undefined;
53
- prepared?: boolean | undefined;
54
- constructor(amount?: number | undefined, effectRR?: number | undefined, prepared?: boolean | undefined);
55
- }
1
+ import { Logger } from "@configura/web-utilities";
2
+ import { ColorF } from "../basic/ColorF.js";
3
+ import { DexObj } from "../format/dex/DexObj.js";
4
+ import { DexURL } from "../format/dex/DexURL.js";
5
+ import { GMaterial3D, GMaterial3DTexture } from "./GMaterial3D.js";
6
+ export declare class GMaterialClassic extends GMaterial3D {
7
+ diffuse?: Diffuse3D;
8
+ ambient?: Ambient3D;
9
+ specular?: Specular3D;
10
+ transparency?: Transparency3D;
11
+ reflection?: Reflection3D;
12
+ refraction?: Refraction3D;
13
+ bump?: Bump3D;
14
+ emission?: Emission3D;
15
+ constructor(log: Logger, obj?: DexObj);
16
+ }
17
+ export declare class GMaterialProp3D extends GMaterial3DTexture {
18
+ c?: ColorF;
19
+ _avgTextureColor?: ColorF;
20
+ setTextureUrl(url: DexURL): void;
21
+ }
22
+ export declare class Diffuse3D extends GMaterialProp3D {
23
+ amount: number;
24
+ constructor(amount?: number);
25
+ }
26
+ export declare class Ambient3D extends GMaterialProp3D {
27
+ amount: number;
28
+ constructor(amount?: number);
29
+ }
30
+ export declare class Emission3D extends GMaterialProp3D {
31
+ }
32
+ export declare class Specular3D extends GMaterialProp3D {
33
+ exponent?: number | undefined;
34
+ amount: number;
35
+ constructor(exponent?: number | undefined, amount?: number);
36
+ }
37
+ export declare class Transparency3D extends GMaterialProp3D {
38
+ alphaThreshold?: number | undefined;
39
+ opacity?: number | undefined;
40
+ constructor(alphaThreshold?: number | undefined, opacity?: number | undefined);
41
+ }
42
+ export declare class Reflection3D extends GMaterialProp3D {
43
+ amount?: number | undefined;
44
+ constructor(amount?: number | undefined);
45
+ }
46
+ export declare class Refraction3D extends GMaterialProp3D {
47
+ index?: number | undefined;
48
+ constructor(index?: number | undefined);
49
+ }
50
+ export declare class Bump3D extends GMaterialProp3D {
51
+ amount?: number | undefined;
52
+ effectRR?: number | undefined;
53
+ prepared?: boolean | undefined;
54
+ constructor(amount?: number | undefined, effectRR?: number | undefined, prepared?: boolean | undefined);
55
+ }
56
56
  //# sourceMappingURL=GMaterialClassic.d.ts.map