diff --git a/paper/__drawio/layer-stack.drawio b/paper/__drawio/layer-stack.drawio new file mode 100644 index 000000000..a18f57a69 --- /dev/null +++ b/paper/__drawio/layer-stack.drawio @@ -0,0 +1,514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/paper/fig_layer-stack.svg b/paper/fig_layer-stack.svg new file mode 100644 index 000000000..a534bddae --- /dev/null +++ b/paper/fig_layer-stack.svg @@ -0,0 +1,2 @@ +
Application.h/.cpp
Application.h/.cpp
AIAC_APP
AIAC_APP
AIAC_APP
AIAC_APP +
PushLayer()
PushLayer()
Run()
Run()
Main AR loop
Main AR loop
<AIAC::LayerCamera>
<AIAC::LayerCamera>
<AIAC::LayerSlam>
<AIAC::LayerSlam>
<AIAC::LayerModel>
<AIAC::LayerModel>
<AIAC::LayerToolhead>
<AIAC::LayerToolhead>
<AIAC::LayerFeedback>
<AIAC::LayerFeedback>
<AIAC::LayerUI>
<AIAC::LayerUI>
<AIAC::...>
<AIAC::...>
 o o x
 o o x
ac
ac
OnRender()
OnRender()
Layer stack
Layer stack
Shutdown()
Shutdown()
AIAC_APP
AIAC_APP
Start
Start
0
0
1
1
2
2
3
3
4
4
5
5
n
n
OnDetach()
OnDetach()
0
0
1
1
2
2
..
..
n
n
yes
yes
Close?
Close?
End
End
OnAttach()
OnAttach()
0
0
1
1
2
2
..
..
n
n
virtual void 
OnAttach()
OnFrameAwake()
OnFrameStart()
OnFrameEnd()
OnFrameFall()
OnDetach()
virtual void...
Layer.h (interface)
Layer.h (interface)
OnFrameAwake()
OnFrameAwake()
OnFrameStart()
OnFrameStart()
OnFrameEnd()
OnFrameEnd()
OnFrameFall()
OnFrameFall()
n
n
..
..
2
2
1
1
0
0
Buffer
Buffer
n
n
..
..
2
2
1
1
0
0
n
n
..
..
2
2
1
1
0
0
n
n
..
..
2
2
1
1
0
0
Text is not SVG - cannot display
\ No newline at end of file diff --git a/paper/paper.md b/paper/paper.md index a93fb2c14..c3a4edc6d 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -47,7 +47,6 @@ bibliography: paper.bib # Summary -test 52 @@ -75,12 +74,11 @@ this section illustrates the layer stack system and the applicaton.h how ti work -b) a description (MAX 150 words) --> -The layer stack is primarily responsible for managing the flow control of the AR engine. Designed as a modular system, each layer encapsulates the logic for a specific domain of the AR application, such as camera processing, object tracking, UI, and rendering. The general order and expansion of these layers can be configured in the top-level main file `ACApp.cpp`. +The layer stack is primarily responsible for managing the flow control of the AR engine. Designed as a modular system, each layer encapsulates the code for a specific domain of the AR application, such as camera processing, object tracking, UI, and rendering. The general order and expansion of these layers can be configured in the top-level main file `ACApp.cpp`. Each layer in the stack inherits from a superclass interface defined in `Layer.h`, which includes event-like methods triggered at various points during frame processing (e.g., `OnFrameAwake()`, `OnFrameStart()`, ). These methods are invoked by the main `Run()` function in the singleton application loop from `Application.h`. This design allows application tasks to be containerized and executed sequentially while facilitating data exchange between specific layers through the `AIAC_APP` macro, enabling the retrieval of any particular layer data. Exchange between layers can also take place in a more structured way with the integrated event system (ApplicationEvent.h), which is capable of queuing events from layers and trigger in the next main loop. - - +![Test image captation.](fig_layer-stack.svg) ## Geometry framework