Skip to content

Commit c57d30f

Browse files
committed
feat(architecture): add UpdatePathTracingCPJobEntity
pass unit test;
1 parent 4f1ce41 commit c57d30f

File tree

50 files changed

+3743
-46
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3743
-46
lines changed

src/construct/application_layer/scene/BSDFMaterialApService.re

+8
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,11 @@ let getTransmissionMapImageId = material => {
5151
let getSpecularMapImageId = material => {
5252
OperateBSDFMaterialDoService.getSpecularMapImageId(material);
5353
};
54+
55+
let isSame = (material1, material2) => {
56+
OperateBSDFMaterialDoService.isSame(material1, material2);
57+
};
58+
59+
let getId = material => {
60+
OperateBSDFMaterialDoService.getId(material);
61+
};

src/construct/application_layer/scene/GameObjectApService.re

+9-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,18 @@ let getBSDFMaterial = gameObject => {
1818
GetComponentGameObjectDoService.getBSDFMaterial(gameObject);
1919
};
2020

21+
let getGeometry = gameObject => {
22+
GetComponentGameObjectDoService.getGeometry(gameObject);
23+
};
24+
2125
let getAllRenderGameObjects = sceneGameObject => {
2226
AllRenderGameObjectsDoService.getAllRenderGameObjects(sceneGameObject);
2327
};
2428

25-
let getAllRenderBSDFMaterials = (sceneGameObject) => {
29+
let getAllRenderGeometries = sceneGameObject => {
30+
AllRenderGameObjectsDoService.getAllRenderGeometries(sceneGameObject);
31+
};
32+
33+
let getAllRenderBSDFMaterials = sceneGameObject => {
2634
AllRenderGameObjectsDoService.getAllRenderBSDFMaterials(sceneGameObject);
2735
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
let getVertices = geometry => {
2+
VerticesGeometryDoService.getVertices(geometry);
3+
};
4+
5+
let getTexCoords = geometry => {
6+
TexCoordsGeometryDoService.getTexCoords(geometry);
7+
};
8+
9+
let getNormals = geometry => {
10+
NormalsGeometryDoService.getNormals(geometry);
11+
};
12+
13+
let getTangents = geometry => {
14+
TangentsGeometryDoService.getTangents(geometry);
15+
};
16+
17+
let getIndices = geometry => {
18+
IndicesGeometryDoService.getIndices(geometry);
19+
};
20+
21+
let isSame = (geometry1, geometry2) => {
22+
OperateGeometryDoService.isSame(geometry1, geometry2);
23+
};
24+
25+
let getId = geometry => {
26+
OperateGeometryDoService.getId(geometry);
27+
};

src/construct/application_layer/scene/TransformApService.re

+8
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ let getRotation = transform => {
1414
OperateTransformDoService.getRotation(transform);
1515
};
1616

17+
let getLocalEulerAngles = transform => {
18+
OperateTransformDoService.getLocalEulerAngles(transform);
19+
};
20+
21+
let getEulerAngles = transform => {
22+
OperateTransformDoService.getEulerAngles(transform);
23+
};
24+
1725
let getLocalScale = transform => {
1826
OperateTransformDoService.getLocalScale(transform);
1927
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
let buildContainers = BuildAccerlerationContainerDoService.buildContainers;

src/construct/domain_layer/dependency/container/DpContainer.re

+3-3
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ let unsafeGetBSDFMaterialRepoDp = () => {
5050
_unsafeGetSceneGraphRepoDp().bsdfMaterialRepo;
5151
};
5252

53-
// let unsafeGetGeometryRepoDp = () => {
54-
// _unsafeGetSceneGraphRepoDp().geometryRepo;
55-
// };
53+
let unsafeGetGeometryRepoDp = () => {
54+
_unsafeGetSceneGraphRepoDp().geometryRepo;
55+
};
5656

5757
let unsafeGetDirectionLightRepoDp = () => {
5858
_unsafeGetSceneGraphRepoDp().directionLightRepo;

src/construct/domain_layer/dependency/interface/engine/ISceneGraphRepoDp.re

+17-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ type sceneRepo = {getSceneGameObject: unit => sceneGameObject};
55
type gameObjectRepo = {
66
getTransform: gameObject => option(transform),
77
getBSDFMaterial: gameObject => option(bsdfMaterial),
8-
// getGeometry: gameObject => option(geometry),
8+
getGeometry: gameObject => option(geometry),
99
getDirectionLight: gameObject => option(directionLight),
1010
getBasicCameraView: gameObject => option(basicCameraView),
1111
getPerspectiveCameraProjection:
1212
gameObject => option(perspectiveCameraProjection),
1313
getAllGeometryGameObjects: sceneGameObject => list(gameObject),
14-
// getAllGameObjectGeometries: sceneGameObject => list(geometry),
14+
getAllGameObjectGeometries: sceneGameObject => list(geometry),
1515
getAllGameObjectBSDFMaterials: sceneGameObject => list(bsdfMaterial),
1616
};
1717

@@ -20,9 +20,11 @@ type transformRepo = {
2020
getNormalMatrix: transform => normalMatrix,
2121
getLocalPosition: transform => position,
2222
getLocalRotation: transform => rotation,
23+
getLocalEulerAngles: transform => eulerAngles,
2324
getLocalScale: transform => scale,
2425
getPosition: transform => position,
2526
getRotation: transform => rotation,
27+
getEulerAngles: transform => eulerAngles,
2628
getScale: transform => scale,
2729
};
2830

@@ -62,6 +64,18 @@ type bsdfMaterialRepo = {
6264
getNormalMapImageId: bsdfMaterial => option(ImageRepoType.id),
6365
getTransmissionMapImageId: bsdfMaterial => option(ImageRepoType.id),
6466
getSpecularMapImageId: bsdfMaterial => option(ImageRepoType.id),
67+
isSame: (bsdfMaterial, bsdfMaterial) => bool,
68+
getId: bsdfMaterial => int,
69+
};
70+
71+
type geometryRepo = {
72+
getVertices: geometry => Js.Typed_array.Float32Array.t,
73+
getNormals: geometry => option(Js.Typed_array.Float32Array.t),
74+
getTexCoords: geometry => option(Js.Typed_array.Float32Array.t),
75+
getTangents: geometry => option(Js.Typed_array.Float32Array.t),
76+
getIndices: geometry => option(Js.Typed_array.Uint32Array.t),
77+
isSame: (geometry, geometry) => bool,
78+
getId: geometry => int,
6579
};
6680

6781
type sceneGraphRepo = {
@@ -71,5 +85,6 @@ type sceneGraphRepo = {
7185
basicCameraViewRepo,
7286
perspectiveCameraProjectionRepo,
7387
bsdfMaterialRepo,
88+
geometryRepo,
7489
gameObjectRepo,
7590
};

src/construct/domain_layer/dependency/interface/engine/SceneGraphRepoType.re

+4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,14 @@ type perspectiveCameraProjection;
1212

1313
type bsdfMaterial;
1414

15+
type geometry;
16+
1517
type position = (float, float, float);
1618

1719
type rotation = (float, float, float, float);
1820

21+
type eulerAngles = (float, float, float);
22+
1923
type scale = (float, float, float);
2024

2125
type localToWorldMatrix = Js.Typed_array.Float32Array.t;

0 commit comments

Comments
 (0)