Compare commits

...

No commits in common. "master" and "pages" have entirely different histories.

133 changed files with 677 additions and 10956 deletions

View file

@ -1,12 +0,0 @@
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.{json,yaml,yml,toml}]
indent_size = 2

1
.envrc
View file

@ -1 +0,0 @@
use flake

30
.gitattributes vendored
View file

@ -1,30 +0,0 @@
# https://github.com/alexkaratarakis/gitattributes/blob/master/Python.gitattributes
# Basic .gitattributes for a python repo.
# Source files
# ============
*.pxd text diff=python
*.py text diff=python
*.py3 text diff=python
*.pyw text diff=python
*.pyx text diff=python
*.pyz text diff=python
*.pyi text diff=python
# Binary files
# ============
*.db binary
*.p binary
*.pkl binary
*.pickle binary
*.pyc binary export-ignore
*.pyo binary export-ignore
*.pyd binary
# Jupyter notebook
*.ipynb text
# Note: .db, .p, and .pkl files are associated
# with the python modules ``pickle``, ``dbm.*``,
# ``shelve``, ``marshal``, ``anydbm``, & ``bsddb``
# (among others).

171
.gitignore vendored
View file

@ -1,171 +0,0 @@
.direnv
data
assets
node_modules
*.blend1
# https://github.com/github/gitignore/blob/main/Python.gitignore
# Basic .gitignore for a python repo.
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

View file

@ -1,7 +0,0 @@
{
"recommendations": [
"editorconfig.editorconfig",
"njpwerner.autodocstring",
"ms-python.python"
]
}

16
.vscode/launch.json vendored
View file

@ -1,16 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/src/main.py",
"console": "integratedTerminal",
"justMyCode": true,
"env": {
"PYGAME_HIDE_SUPPORT_PROMPT": "hide"
}
}
]
}

28
.vscode/settings.json vendored
View file

@ -1,28 +0,0 @@
{
"python.defaultInterpreterPath": ".venv/bin/python",
"python.analysis.typeCheckingMode": "basic",
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"python.linting.enabled": true,
"python.linting.lintOnSave": true,
"python.linting.flake8Enabled": true,
"python.linting.mypyEnabled": true,
"python.linting.banditEnabled": true,
"python.languageServer": "Pylance",
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"**/__pycache__": true,
"**/.mypy_cache": true,
},
"nixEnvSelector.nixFile": "${workspaceRoot}/shell.nix",
}

19
404.html Normal file
View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="https://cdn.jsdelivr.net/gh/slidevjs/slidev/assets/favicon.png">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@200;400;600&family=Roboto+Slab:wght@200;400;600&family=Roboto+Mono:wght@200;400;600&display=swap" type="text/css">
<script type="module" crossorigin src="/projet-probleme-inverse-3D/assets/index-3b482400.js"></script>
<link rel="modulepreload" crossorigin href="/projet-probleme-inverse-3D/assets/nav-1e818d35.js">
<link rel="modulepreload" crossorigin href="/projet-probleme-inverse-3D/assets/index-85fbf1a9.js">
<link rel="stylesheet" href="/projet-probleme-inverse-3D/assets/nav-d18ade04.css">
<link rel="stylesheet" href="/projet-probleme-inverse-3D/assets/index-c91541f2.css">
</head>
<body>
<div id="app"></div>
</body>
</html>

158
README.md
View file

@ -1,158 +0,0 @@
# BE PI3D : MVS par level set
## Usefull resources
### Level set method, Wikipedia
https://en.wikipedia.org/wiki/Level-set_method
![](https://upload.wikimedia.org/wikipedia/commons/7/78/Level_set_method.png)
### Level set, Wikipedia
https://en.wikipedia.org/wiki/Level_set
### TP3, Stéréoscopie multi-vues (MVS)
https://moodle-n7.inp-toulouse.fr/pluginfile.php/116746/mod_resource/content/2/sujet_TP3.pdf
### Coding Adventure: Terraforming, Sebastian Lague
[![](https://i.ytimg.com/vi_webp/vTMEdHcKgM4/maxresdefault.webp)](https://www.youtube.com/watch?v=vTMEdHcKgM4)
### 3D Signed Distance function (NVIDIA Research)
2022
Towaki Takikawa
Andrew Glassner
Morgan McGuire
https://tovacinni.github.io/sdf-explorer/
### A GPU Implementation of Level Set Multiview Stereo
2006
Patrick Labatut
Renaud Keriven
Jean-Philippe Pons
https://link.springer.com/chapter/10.1007/11758549_33
https://link.springer.com/content/pdf/10.1007/11758549_33.pdf?pdf=inline%20link
### Fast Level Set Multi-View Stereo on Graphics Hardware
2006
Patrick Labatut
Renaud Keriven
Jean-Philippe Pons
https://ieeexplore.ieee.org/document/4155801
https://sci-hub.hkvisa.net/10.1109/3dpvt.2006.62
### Model-based multiview stereo via level sets with statistical shape prior
2011
Moumen El-Melegy
Nagi Al-Ashwal
Aly A. Farag
https://ieeexplore.ieee.org/document/6365368
https://sci-hub.hkvisa.net/https://ieeexplore.ieee.org/document/6365368
### Équation bizarre de l'idée générale
`g(x,y)=exp(-((0.2*x)^(2)+((y^(2))/(x^(2)+0.1))))*sig(-10*x)-5*exp(-((y^(2))/((0.1*x)^(2))))*sig(10*x)`
$$g(x,y) = \exp\left(-\left(\left(0.2x\right)^2 + \left(\frac{y^2}{x^2 + 0.1}\right)\right)\right)\sigma\left(-10x\right) - 5\exp\left(-\frac{y^2}{\left(0.1x\right)^2}\right)\sigma\left(10x\right)$$
### A Level-Set Approach to 3D Reconstruction from Range Data
1998
Ross T. Whitaker
https://www.cs.utah.edu/~whitaker/sceneRecon/papers/sparse_report.pdf
https://link.springer.com/article/10.1023/A:1008036829907
https://link.springer.com/content/pdf/10.1023/A:1008036829907.pdf?pdf=button
### Level Set Methods in Computer Vision (Slides)
2006
Daniel Cremers
Department of Computer Science
University of Bonn
https://www.csd.uwo.ca/~yboykov/Presentations/ECCV06_tutorial_partII_dan.pdf
On part d'un solide qu'on rogne en soustrayant les valeurs obtenues avec les gaussiennes => jusqu'à obtenir le solide étudié.
### Variational principles, surface evolution, PDEs, level set methods, and the stereo problem
1996/1998
Olivier Faugeras
Renaud Keriven
https://hal.inria.fr/inria-00073673/document
https://ieeexplore.ieee.org/document/661183
### Multi-View Stereo: A Tutorial
2015
Yasutaka Furukawa
Carlos Hernández
https://carlos-hernandez.org/papers/fnt_mvs_2015.pdf
### amy-tabb/tabb-level-set-segmentation
https://github.com/amy-tabb/tabb-level-set-segmentation
### Ramesh-X/Level-Set
https://github.com/Ramesh-X/Level-Set
### 3D Image Reconstruction and Level Set Methods
Introduction and derivation of the level set methods.
https://scholarsarchive.byu.edu/cgi/viewcontent.cgi?article=3811&context=etd
### J. A. Sethian, Level set methods and fast marching methods - evolving interfaces in computational geometry, fluid mechanics, computer vision, and materials science (1999)
https://math.berkeley.edu/~sethian/2006/level_set.html
# Les bons tuyaux de Lilian
 
Voici les références pour le groupe de BE de Laurant, des références pour lesquelles la reconstruction 3D sont les zeros d'un level set (entre parenthèses : la nature de la fonction dont les paramètres sont optimisés) :
- IDR (fonction de distance signée) : Multiview Neural Surface Reconstruction by Disentangling Geometry and Appearance
- Neus (fonction de distance signée) : NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction
- Unisurf (fonction d'occupation, terme traduit de l'anglais occupancy) : UNISURF, Unifying Neural Implicit Surfaces and Radiance Fields for Multi-View Reconstruction
- VolSDF (fonction de distance signée) : Volume rendering of neural implicit surfaces
 
Les quatre méthodes font du rendu dit surfacique, les trois dernières (Neus, Unisurf and VolSDF) étant "hybrides", à savoir utilisant du rendu surfacique et volumique.
 
N'hésitez pas à nous demander plus d'informations si besoin.
 
Une autre référence avec un mélange de MVS et de PS qui considère le niveau d'incertitude des deux méthodes respectivement pour utiliser en chaque pixel le résultat le plus fiable (level set et equation eikonale dans leur fonction de cout) :
https://openaccess.thecvf.com/content/CVPR2022/html/Kaya_Uncertainty-Aware_Deep_Multi-View_Photometric_Stereo_CVPR_2022_paper.html
Un autre article à lire :
https://hal.inria.fr/inria-00266287/file/GargalloPradosSturm-iccv2007.pdf
 
A Fast Voxel Traversal Algorithm for Ray Tracing :
http://www.cse.yorku.ca/~amana/research/grid.pdf
https://www.youtube.com/watch?v=NbSee-XM7WA
# Note
Eviter papier de BOYKOV CREMERS
# A demander
Quel estla différence avec la méthode vu en TP ?
- On calcule le MVS comme d'hab
-> Carte de profondeur par image
- Pas de projection en nuage de points dense
-> Utilisation de la carte de prof pour modifier le level set initiale ?

1
_redirects Normal file
View file

@ -0,0 +1 @@
/projet-probleme-inverse-3D/* /projet-probleme-inverse-3D/index.html 200

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
import{f as l,h as s,j as i,b5 as c,A as u,K as m,b3 as n,w as d,b6 as p,M as _,l as f,m as v,ar as g,y as o,aT as t,_ as w}from"./nav-1e818d35.js";const b=l({__name:"DrawingLayer",setup(h){s(i);const r=s(c),e=u();return m(()=>{n.mount(e.value,e.value.parentElement),d(r,a=>n.options.coordinateScale=1/a,{immediate:!0}),p()}),_(()=>{n.unmount()}),(a,j)=>(f(),v("svg",{ref_key:"svg",ref:e,class:g(["w-full h-full absolute top-0",{"pointer-events-none":!o(t),"touch-none":o(t)}])},null,2))}}),x=w(b,[["__file","/tmp/projet-probleme-inverse-3D/docs/node_modules/@slidev/client/internals/DrawingLayer.vue"]]);export{x as default};

View file

@ -0,0 +1 @@
function E(l,w){for(var f=0;f<w.length;f++){const r=w[f];if(typeof r!="string"&&!Array.isArray(r)){for(const s in r)if(s!=="default"&&!(s in l)){const c=Object.getOwnPropertyDescriptor(r,s);c&&Object.defineProperty(l,s,c.get?c:{enumerable:!0,get:()=>r[s]})}}}return Object.freeze(Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}))}var d=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},v={},O={get exports(){return v},set exports(l){v=l}};(function(l,w){(function(f,r){r()})(d,function(){function f(e,t){return typeof t>"u"?t={autoBom:!1}:typeof t!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\uFEFF",e],{type:e.type}):e}function r(e,t,i){var n=new XMLHttpRequest;n.open("GET",e),n.responseType="blob",n.onload=function(){p(n.response,t,i)},n.onerror=function(){console.error("could not download file")},n.send()}function s(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function c(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof d=="object"&&d.global===d?d:void 0,b=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),p=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!b?function(e,t,i){var n=a.URL||a.webkitURL,o=document.createElement("a");t=t||e.name||"download",o.download=t,o.rel="noopener",typeof e=="string"?(o.href=e,o.origin===location.origin?c(o):s(o.href)?r(e,t,i):c(o,o.target="_blank")):(o.href=n.createObjectURL(e),setTimeout(function(){n.revokeObjectURL(o.href)},4e4),setTimeout(function(){c(o)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){if(t=t||e.name||"download",typeof e!="string")navigator.msSaveOrOpenBlob(f(e,i),t);else if(s(e))r(e,t,i);else{var n=document.createElement("a");n.href=e,n.target="_blank",setTimeout(function(){c(n)})}}:function(e,t,i,n){if(n=n||open("","_blank"),n&&(n.document.title=n.document.body.innerText="downloading..."),typeof e=="string")return r(e,t,i);var o=e.type==="application/octet-stream",j=/constructor/i.test(a.HTMLElement)||a.safari,g=/CriOS\/[\d]+/.test(navigator.userAgent);if((g||o&&j||b)&&typeof FileReader<"u"){var m=new FileReader;m.onloadend=function(){var u=m.result;u=g?u:u.replace(/^data:[^;]*;/,"data:attachment/file;"),n?n.location.href=u:location=u,n=null},m.readAsDataURL(e)}else{var h=a.URL||a.webkitURL,y=h.createObjectURL(e);n?n.location=y:location.href=y,n=null,setTimeout(function(){h.revokeObjectURL(y)},4e4)}});a.saveAs=p.saveAs=p,l.exports=p})})(O);const A=v,L=E({__proto__:null,default:A},[v]);export{L as F};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
import{f as a,h as c,j as m,l as s,m as i,ar as l,aj as u,_ as d}from"./nav-1e818d35.js";const p=["innerHTML"],f=["textContent"],v=a({__name:"NoteViewer",props:{class:{type:String,required:!1},noteHtml:{type:String,required:!1},note:{type:String,required:!1}},emits:["click"],setup(e){const n=e;return c(m),(o,t)=>e.noteHtml?(s(),i("div",{key:0,class:l(["prose overflow-auto outline-none",n.class]),onClick:t[0]||(t[0]=r=>o.$emit("click")),innerHTML:e.noteHtml},null,10,p)):(s(),i("div",{key:1,class:l(["prose overflow-auto outline-none",n.class]),onClick:t[1]||(t[1]=r=>o.$emit("click")),textContent:u(e.note)},null,10,f))}}),C=d(v,[["__file","/tmp/projet-probleme-inverse-3D/docs/node_modules/@slidev/client/internals/NoteViewer.vue"]]);export{C as N};

View file

@ -0,0 +1 @@
.slidev-presenter[data-v-574fd206]{--slidev-controls-foreground: current}.timer-btn[data-v-574fd206]:hover>:first-child{opacity:0}.timer-btn[data-v-574fd206]:hover>:last-child{opacity:1}.section-title[data-v-574fd206]{font-size:1.25rem;line-height:1.75rem;padding:.5rem 1rem}.grid-container[data-v-574fd206]{--tw-bg-opacity: 1;background-color:rgba(156,163,175,var(--tw-bg-opacity));--tw-bg-opacity: .15;height:100%;width:100%;display:grid;gap:1px 1px;grid-template-columns:1fr 1fr;grid-template-rows:min-content 2fr 1fr min-content;grid-template-areas:"top top" "main main" "note next" "bottom bottom"}@media (max-aspect-ratio: 3/5){.grid-container[data-v-574fd206]{grid-template-columns:1fr;grid-template-rows:min-content 1fr 1fr 1fr min-content;grid-template-areas:"top" "main" "note" "next" "bottom"}}@media (min-aspect-ratio: 1/1){.grid-container[data-v-574fd206]{grid-template-columns:1fr 1.1fr .9fr;grid-template-rows:min-content 1fr 2fr min-content;grid-template-areas:"top top top" "main main next" "main main note" "bottom bottom bottom"}}.progress-bar[data-v-574fd206]{position:fixed;left:0px;right:0px;bottom:0px}.grid-section[data-v-574fd206]{--tw-bg-opacity: 1;background-color:rgba(255,255,255,var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgba(24,24,24,var(--tw-text-opacity))}.dark .grid-section[data-v-574fd206]{--tw-bg-opacity: 1;background-color:rgba(18,18,18,var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgba(221,221,221,var(--tw-text-opacity))}.grid-section.top[data-v-574fd206]{grid-area:top}.grid-section.main[data-v-574fd206]{grid-area:main}.grid-section.next[data-v-574fd206]{grid-area:next}.grid-section.note[data-v-574fd206]{grid-area:note}.grid-section.bottom[data-v-574fd206]{grid-area:bottom}.context[data-v-574fd206]{--tw-bg-opacity: 1;background-color:rgba(156,163,175,var(--tw-bg-opacity));--tw-bg-opacity: .5;border-bottom-right-radius:.375rem;font-size:.75rem;line-height:1rem;opacity:.75;padding-left:.25rem;padding-right:.25rem;position:absolute;top:0px;left:0px}

View file

@ -0,0 +1 @@
import{l as d,m as k,ai as e,A as y,as as z,t as h,f as T,h as B,j as D,at as S,au as v,ar as P,y as t,_ as j,av as H,aw as A,c as C,K as I,q,ax as F,ay as L,w as R,az as E,aA as O,aB as G,n as u,aj as K,al as x,am as $,aC as N,aD as V,aq as U,d as W,ao as Z,aE as w,af as J,aF as Q,F as X,b as M,aG as Y,aH as ee,aI as te,aJ as se,aK as oe,aL as ae,aM as ne,aN as le,aO as re,aP as ie}from"./nav-1e818d35.js";import{N as ce}from"./NoteViewer-0b2b5e23.js";import ue from"./DrawingControls-43cafd8c.js";import{u as de}from"./index-85fbf1a9.js";const _e={class:"slidev-icon",viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},pe=e("path",{fill:"currentColor",d:"M12 10H6.78A11 11 0 0 1 27 16h2A13 13 0 0 0 6 7.68V4H4v8h8zm8 12h5.22A11 11 0 0 1 5 16H3a13 13 0 0 0 23 8.32V28h2v-8h-8z"},null,-1),me=[pe];function ve(a,l){return d(),k("svg",_e,me)}const he={name:"carbon-renew",render:ve},fe={class:"slidev-icon",viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},ge=e("path",{fill:"currentColor",d:"M16 30a14 14 0 1 1 14-14a14 14 0 0 1-14 14Zm0-26a12 12 0 1 0 12 12A12 12 0 0 0 16 4Z"},null,-1),xe=e("path",{fill:"currentColor",d:"M20.59 22L15 16.41V7h2v8.58l5 5.01L20.59 22z"},null,-1),we=[ge,xe];function ye(a,l){return d(),k("svg",fe,we)}const Se={name:"carbon-time",render:ye},ke="/projet-probleme-inverse-3D/assets/logo-title-horizontal-96c3c915.png";function be(){const a=y(Date.now()),l=z({interval:1e3}),_=h(()=>{const s=(l.value-a.value)/1e3,n=Math.floor(s%60).toString().padStart(2,"0");return`${Math.floor(s/60).toString().padStart(2,"0")}:${n}`});function p(){a.value=l.value}return{timer:_,resetTimer:p}}const Ce=T({__name:"NoteStatic",props:{class:{type:String,required:!1}},setup(a){const l=a;B(D);const _=h(()=>{var s,n,o;return(o=(n=(s=S.value)==null?void 0:s.meta)==null?void 0:n.slide)==null?void 0:o.note}),p=h(()=>{var s,n,o;return(o=(n=(s=S.value)==null?void 0:s.meta)==null?void 0:n.slide)==null?void 0:o.notesHTML});return(s,n)=>(d(),v(ce,{class:P(l.class),note:t(_),"note-html":t(p)},null,8,["class","note","note-html"]))}}),$e=j(Ce,[["__file","/tmp/projet-probleme-inverse-3D/docs/node_modules/@slidev/client/internals/NoteStatic.vue"]]),f=a=>(re("data-v-574fd206"),a=a(),ie(),a),Ne={class:"bg-main h-full slidev-presenter"},Ve={class:"grid-container"},Me={class:"grid-section top flex"},Te=f(()=>e("img",{src:ke,class:"ml-2 my-auto h-10 py-1 lg:h-14 lg:py-2"},null,-1)),Be=f(()=>e("div",{class:"flex-auto"},null,-1)),De={class:"text-2xl pl-2 pr-6 my-auto tabular-nums"},Pe=f(()=>e("div",{class:"context"}," current ",-1)),je=f(()=>e("div",{class:"context"}," next ",-1)),ze={class:"grid-section note overflow-auto"},He={class:"grid-section bottom"},Ae={class:"progress-bar"},Ie=T({__name:"Presenter",setup(a){B(D);const l=y();H(),A(l);const _=C.titleTemplate.replace("%s",C.title||"Slidev");de({title:`Presenter - ${_}`});const{timer:p,resetTimer:s}=be(),n=y([]),o=h(()=>M.value<Y.value?{route:S.value,clicks:M.value+1}:ee.value?{route:te.value,clicks:0}:null);return I(()=>{const b=l.value.querySelector("#slide-content"),i=q(F()),g=L();R(()=>{if(!g.value||O.value||!G.value)return;const c=b.getBoundingClientRect(),r=(i.x-c.left)/c.width*100,m=(i.y-c.top)/c.height*100;if(!(r<0||r>100||m<0||m>100))return{x:r,y:m}},c=>{E.cursor=c})}),(b,i)=>{const g=Se,c=he;return d(),k(X,null,[e("div",Ne,[e("div",Ve,[e("div",Me,[Te,Be,e("div",{class:"timer-btn my-auto relative w-22px h-22px cursor-pointer text-lg",opacity:"50 hover:100",onClick:i[0]||(i[0]=(...r)=>t(s)&&t(s)(...r))},[u(g,{class:"absolute"}),u(c,{class:"absolute opacity-0"})]),e("div",De,K(t(p)),1)]),e("div",{ref_key:"main",ref:l,class:"relative grid-section main flex flex-col p-2 lg:p-4",style:x(t($))},[u(V,{key:"main",class:"h-full w-full"},{default:N(()=>[u(se,{context:"presenter"})]),_:1}),Pe],4),e("div",{class:"relative grid-section next flex flex-col p-2 lg:p-4",style:x(t($))},[t(o)?(d(),v(V,{key:"next",class:"h-full w-full"},{default:N(()=>{var r;return[u(t(ae),{is:(r=t(o).route)==null?void 0:r.component,"clicks-elements":n.value,"onUpdate:clicks-elements":i[1]||(i[1]=m=>n.value=m),clicks:t(o).clicks,"clicks-disabled":!1,class:P(t(oe)(t(o).route)),route:t(o).route,context:"previewNext"},null,8,["is","clicks-elements","clicks","class","route"])]}),_:1})):U("v-if",!0),je],4),e("div",ze,[(d(),v($e,{key:1,class:"w-full h-full overflow-auto p-2 lg:p-4"}))]),e("div",He,[u(ne,{persist:!0})]),(d(),v(ue,{key:0}))]),e("div",Ae,[e("div",{class:"progress h-2px bg-primary transition-all",style:x({width:`${(t(W)-1)/(t(Z)-1)*100}%`})},null,4)])]),u(le),u(Q,{modelValue:t(w),"onUpdate:modelValue":i[2]||(i[2]=r=>J(w)?w.value=r:null)},null,8,["modelValue"])],64)}}});const Ee=j(Ie,[["__scopeId","data-v-574fd206"],["__file","/tmp/projet-probleme-inverse-3D/docs/node_modules/@slidev/client/internals/Presenter.vue"]]);export{Ee as default};

View file

@ -0,0 +1,17 @@
import{f as _,h as d,j as p,ag as h,c as m,ah as u,l as n,m as r,ai as t,aj as o,y as s,F as f,ak as g,al as v,am as x,an as y,ao as b,ap as N,n as k,aq as j,_ as w}from"./nav-1e818d35.js";import{N as P}from"./NoteViewer-0b2b5e23.js";import{u as V}from"./index-85fbf1a9.js";const S={class:"m-4"},L={class:"mb-10"},T={class:"text-4xl font-bold mt-2"},B={class:"opacity-50"},C={class:"text-lg"},D={class:"font-bold flex gap-2"},H={class:"opacity-50"},z=t("div",{class:"flex-auto"},null,-1),F={key:0,class:"border-gray-400/50 mb-8"},M=_({__name:"PresenterPrint",setup(q){d(p),h(`
@page {
size: A4;
margin-top: 1.5cm;
margin-bottom: 1cm;
}
* {
-webkit-print-color-adjust: exact;
}
html,
html body,
html #app,
html #page-root {
height: auto;
overflow: auto !important;
}
`),V({title:`Notes - ${m.title}`});const i=u(()=>y.slice(0,-1).map(a=>{var l;return(l=a.meta)==null?void 0:l.slide}).filter(a=>a!==void 0&&a.notesHTML!==""));return(a,l)=>(n(),r("div",{id:"page-root",style:v(s(x))},[t("div",S,[t("div",L,[t("h1",T,o(s(m).title),1),t("div",B,o(new Date().toLocaleString()),1)]),(n(!0),r(f,null,g(s(i),(e,c)=>(n(),r("div",{key:c,class:"flex flex-col gap-4 break-inside-avoid-page"},[t("div",null,[t("h2",C,[t("div",D,[t("div",H,o(e==null?void 0:e.no)+"/"+o(s(b)),1),N(" "+o(e==null?void 0:e.title)+" ",1),z])]),k(P,{"note-html":e.notesHTML,class:"max-w-full"},null,8,["note-html"])]),c<s(i).length-1?(n(),r("hr",F)):j("v-if",!0)]))),128))])],4))}}),W=w(M,[["__file","/tmp/projet-probleme-inverse-3D/docs/node_modules/@slidev/client/internals/PresenterPrint.vue"]]);export{W as default};

View file

Before

Width:  |  Height:  |  Size: 877 KiB

After

Width:  |  Height:  |  Size: 877 KiB

1
assets/index-3b482400.js Normal file

File diff suppressed because one or more lines are too long

1
assets/index-85fbf1a9.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
assets/logo-b72bde5d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View file

Before

Width:  |  Height:  |  Size: 25 MiB

After

Width:  |  Height:  |  Size: 25 MiB

View file

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 205 KiB

View file

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 208 KiB

0
docs/figs/lvl7_3D.gif → assets/lvl7_3D-14d1abe7.gif Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 32 MiB

After

Width:  |  Height:  |  Size: 32 MiB

609
assets/nav-1e818d35.js Normal file

File diff suppressed because one or more lines are too long

1
assets/nav-d18ade04.css Normal file
View file

@ -0,0 +1 @@
#slide-container{overflow:hidden;position:relative}#slide-content{--tw-bg-opacity: 1;background-color:rgba(255,255,255,var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgba(24,24,24,var(--tw-text-opacity));overflow:hidden;position:relative;position:absolute;left:50%;top:50%}.dark #slide-content{--tw-bg-opacity: 1;background-color:rgba(18,18,18,var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgba(221,221,221,var(--tw-text-opacity))}.slides-overview{position:fixed;left:0px;right:0px;top:0px;backdrop-filter:blur(5px);height:100vh;height:calc(var(--vh, 1vh) * 100)}.slidev-info-dialog{max-width:37.5rem;padding:1rem!important}.select-list[data-v-3f89fa11]{padding-top:.5rem;padding-bottom:.5rem}.item[data-v-3f89fa11]:hover{--tw-bg-opacity: 1;background-color:rgba(156,163,175,var(--tw-bg-opacity));--tw-bg-opacity: .1}.item[data-v-3f89fa11]{border-radius:.25rem;cursor:default;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;padding:.25rem 1rem;white-space:nowrap}.item svg[data-v-3f89fa11]{margin-right:.25rem;margin-left:-.5rem;margin-top:auto;margin-bottom:auto}.title[data-v-3f89fa11]{font-size:.75rem;line-height:1rem;opacity:.5;padding:.25rem 1.75rem;text-transform:uppercase;letter-spacing:.1em}#print-content{--tw-bg-opacity: 1;background-color:rgba(255,255,255,var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgba(24,24,24,var(--tw-text-opacity))}.dark #print-content{--tw-bg-opacity: 1;background-color:rgba(18,18,18,var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgba(221,221,221,var(--tw-text-opacity))}.slide-container{break-after:page;overflow:hidden;position:relative}html.print,html.print body,html.print #app,html.print #page-root{height:auto;overflow:auto}html.print *{-webkit-print-color-adjust:exact}html.print{width:100%;height:100%;overflow:visible}html.print body{margin:0 auto;border:0;padding:0;float:none;overflow:visible}.slidev-layout.end[data-v-e532b98d]{--tw-bg-opacity: 1;background-color:rgba(0,0,0,var(--tw-bg-opacity));display:-ms-grid;display:grid;place-content:center;height:100%;font-size:1.25rem;line-height:1.75rem;text-align:center;--tw-text-opacity: 1;color:rgba(255,255,255,var(--tw-text-opacity));--tw-text-opacity: .85;letter-spacing:.1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}img.shadowy[data-v-efc7048b]{box-shadow:0 0 6px #0000004d}

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Some files were not shown because too many files have changed in this diff Show more