@@ -4,110 +4,6 @@ open WDType;
4
4
5
5
open Js . Typed_array ;
6
6
7
- let _getAccessorComponentType = ({accessors}, accessorIndex) => {
8
- let accessor = Array . unsafe_get(accessors, accessorIndex);
9
-
10
- accessor. componentType;
11
- };
12
-
13
- let _getBufferData =
14
- (
15
- {accessors, bufferViews, buffers},
16
- (accessorIndex, dataViewArr, bytes_per_element),
17
- ) => {
18
- WonderLog . Contract . requireCheck(
19
- () =>
20
- WonderLog . (
21
- Contract . (
22
- Operators . (
23
- test(
24
- Log . buildAssertMessage(
25
- ~expect= { j | not support interleaved buffer data| j } ,
26
- ~actual= { j | is interleaved| j } ,
27
- ),
28
- () => {
29
- let accessor = Array . unsafe_get(accessors, accessorIndex);
30
- let {byteStride} =
31
- Array . unsafe_get(bufferViews, accessor. bufferView);
32
-
33
- byteStride |> OptionService . isJsonSerializedValueNone ?
34
- assertPass() :
35
- byteStride
36
- |> OptionService . unsafeGetJsonSerializedValue
37
- == BufferUtils . getAccessorTypeSize(accessor. type_)
38
- * bytes_per_element;
39
- },
40
- )
41
- )
42
- )
43
- ),
44
- IsDebugMainService . getIsDebug(StateDataMain . stateData),
45
- );
46
-
47
- let accessor = Array . unsafe_get(accessors, accessorIndex);
48
- let bufferView = Array . unsafe_get(bufferViews, accessor. bufferView);
49
- let dataView = Array . unsafe_get(dataViewArr, bufferView. buffer);
50
-
51
- let offset = accessor. byteOffset + bufferView. byteOffset;
52
-
53
- (
54
- dataView |> DataView . buffer,
55
- offset,
56
- BufferUtils . computeTypeArrayLengthByAccessorData(
57
- accessor. count,
58
- accessor. type_,
59
- ),
60
- );
61
- };
62
-
63
- let _getBufferPointData =
64
- (
65
- (accessorIndex, bytes_per_element, dataViewArr, wd),
66
- fromBufferRangeFunc,
67
- ) => {
68
- let (arrayBuffer , offset , length ) =
69
- _getBufferData(wd, (accessorIndex, dataViewArr, bytes_per_element));
70
-
71
- fromBufferRangeFunc(arrayBuffer, ~offset, ~length);
72
- };
73
-
74
- let _getBufferAttributeData = (accessorIndex, dataViewArr, wd) =>
75
- _getBufferPointData(
76
- (accessorIndex, Float32Array . _BYTES_PER_ELEMENT, dataViewArr, wd),
77
- Float32Array . fromBufferRange,
78
- );
79
-
80
- let _getBufferIndex16Data = (componentType, accessorIndex, dataViewArr, wd) =>
81
- switch (componentType) {
82
- | UNSIGNED_BYTE =>
83
- Uint16Array . from(
84
- _getBufferPointData(
85
- (accessorIndex, Uint8Array . _BYTES_PER_ELEMENT, dataViewArr, wd),
86
- Uint8Array . fromBufferRange,
87
- )
88
- |> Obj . magic,
89
- )
90
- -> Some
91
- | UNSIGNED_SHORT =>
92
- _getBufferPointData(
93
- (accessorIndex, Uint16Array . _BYTES_PER_ELEMENT, dataViewArr, wd),
94
- Uint16Array . fromBufferRange,
95
- )
96
- -> Some
97
- | _ => None
98
- };
99
-
100
- let _getBufferIndex32Data = (componentType, accessorIndex, dataViewArr, wd) =>
101
- switch (componentType) {
102
- | UNSIGNED_INT =>
103
- _getBufferPointData(
104
- (accessorIndex, Uint32Array . _BYTES_PER_ELEMENT, dataViewArr, wd),
105
- Uint32Array . fromBufferRange,
106
- )
107
- -> Some
108
- | _ => None
109
- };
110
-
111
7
let _batchSetGeometryData =
112
8
({geometrys} as wd, geometryArr, bufferArr, state) => {
113
9
let dataViewArr =
@@ -128,15 +24,19 @@ let _batchSetGeometryData =
128
24
let state =
129
25
VerticesGeometryMainService . setVerticesByTypeArray(
130
26
geometry,
131
- _getBufferAttributeData(position, dataViewArr, wd),
27
+ BatchOperateWholeGeometrySystem . getBufferAttributeData(
28
+ position,
29
+ dataViewArr,
30
+ wd,
31
+ ),
132
32
state,
133
33
);
134
34
let state =
135
35
normal |> OptionService . isJsonSerializedValueNone ?
136
36
state :
137
37
NormalsGeometryMainService . setNormalsByTypeArray(
138
38
geometry,
139
- _getBufferAttributeData (
39
+ BatchOperateWholeGeometrySystem . getBufferAttributeData (
140
40
normal |> OptionService . unsafeGetJsonSerializedValue,
141
41
dataViewArr,
142
42
wd,
@@ -148,18 +48,27 @@ let _batchSetGeometryData =
148
48
state :
149
49
TexCoordsGeometryMainService . setTexCoordsByTypeArray(
150
50
geometry,
151
- _getBufferAttributeData (
51
+ BatchOperateWholeGeometrySystem . getBufferAttributeData (
152
52
texCoord |> OptionService . unsafeGetJsonSerializedValue,
153
53
dataViewArr,
154
54
wd,
155
55
),
156
56
state,
157
57
);
158
58
159
- let componentType = _getAccessorComponentType(wd, index);
59
+ let componentType =
60
+ BatchOperateWholeGeometrySystem . getAccessorComponentType(
61
+ wd,
62
+ index,
63
+ );
160
64
let state =
161
65
switch (
162
- _getBufferIndex16 Data(componentType, index, dataViewArr, wd)
66
+ BatchOperateWholeGeometrySystem . getBufferIndex16Data(
67
+ componentType,
68
+ index,
69
+ dataViewArr,
70
+ wd,
71
+ )
163
72
) {
164
73
| Some (data ) =>
165
74
IndicesGeometryMainService . setIndicesByUint16Array(
@@ -169,7 +78,7 @@ let _batchSetGeometryData =
169
78
)
170
79
| None =>
171
80
switch (
172
- _getBufferIndex 32 Data (
81
+ BatchOperateWholeGeometrySystem . getBufferIndex32Data (
173
82
componentType,
174
83
index,
175
84
dataViewArr,
0 commit comments