Compare commits
No commits in common. "4e8488e254dd1be0b257c62ecf3f7bae5b5aa191" and "85b21c843628c1f5fb404546c180c504e546c7b4" have entirely different histories.
4e8488e254
...
85b21c8436
5937
data/half_cow.obj
5937
data/half_cow.obj
File diff suppressed because it is too large
Load Diff
@ -55,69 +55,24 @@
|
|||||||
\begin{frame}{Applications}
|
\begin{frame}{Applications}
|
||||||
\begin{figure}[htb]
|
\begin{figure}[htb]
|
||||||
\includegraphics[width=9cm]{img/symmetry-plane.png}
|
\includegraphics[width=9cm]{img/symmetry-plane.png}
|
||||||
\caption{\label{fig:inria-gamma}
|
\caption{\label{fig:inria-gamma} Image issue du projet GAMMA d'Inria \url{https://team.inria.fr/gamma/}}
|
||||||
Image issue du projet GAMMA d'Inria \url{https://team.inria.fr/gamma/}
|
|
||||||
}
|
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\section{Thèse de Rouxel-Labbé}
|
\section{Présentation de la thèse de Rouxel-Labbé}
|
||||||
|
|
||||||
\begin{frame}
|
|
||||||
\begin{itemize}
|
|
||||||
\item Excellente introduction et état de l'art
|
|
||||||
\item Plusieurs approches proposées
|
|
||||||
\item Des résultats en demi-teinte
|
|
||||||
\end{itemize}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Redéfinition du sujet}
|
\section{Redéfinition du sujet}
|
||||||
|
|
||||||
\begin{frame}
|
|
||||||
Le sujet étant jugé trop complexe, notre encadrant nous guide vers
|
|
||||||
un sujet un peu simplifié.
|
|
||||||
\begin{block}{Nouveau sujet}
|
|
||||||
Adapter un maillage tétrahédrique simple existant au maillage
|
|
||||||
surfacique utilisé pour le générer, tout en préservant sa qualité.
|
|
||||||
\end{block}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Présentation de notre méthode}
|
\section{Présentation de notre méthode}
|
||||||
|
|
||||||
\begin{frame}{Chaîne de traitement}
|
|
||||||
\centering
|
|
||||||
\includegraphics[height=7cm]{img/pipeline.png}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}{Projection des points}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}{« Modification proportionelle »}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}{Relaxation}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Implémentation}
|
\section{Implémentation}
|
||||||
|
|
||||||
\begin{frame}{VTK}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}{Paraview}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Résultats}
|
\section{Résultats}
|
||||||
|
|
||||||
\begin{frame}{Histogrammes}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}{Cas dégénérés}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
@ -142,8 +142,6 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
maxDistanceFilter->Update();
|
maxDistanceFilter->Update();
|
||||||
std::cerr << "Max distance: " << maxDistanceFilter->GetMaxDist() << "\n"
|
std::cerr << "Max distance: " << maxDistanceFilter->GetMaxDist() << "\n"
|
||||||
<< "Max dist point id: " << maxDistanceFilter->GetMaxId()
|
|
||||||
<< " in " << (maxDistanceFilter->GetMaxInput() == 0 ? "tetMesh\n" : "polyMesh\n")
|
|
||||||
<< "Average min angle: " << dihedralAnglesFilter->GetAverageMinDegrees() << "\n"
|
<< "Average min angle: " << dihedralAnglesFilter->GetAverageMinDegrees() << "\n"
|
||||||
<< "Min min angle: " << dihedralAnglesFilter->GetMinMinDegrees() << "\n";
|
<< "Min min angle: " << dihedralAnglesFilter->GetMinMinDegrees() << "\n";
|
||||||
|
|
||||||
|
@ -51,11 +51,7 @@ vtkTypeBool MaxDistanceFilter::RequestData(vtkInformation *request,
|
|||||||
double vec[3];
|
double vec[3];
|
||||||
double dist;
|
double dist;
|
||||||
closestPolyMeshPoint(input2, point, tree2, links2, vec, &dist);
|
closestPolyMeshPoint(input2, point, tree2, links2, vec, &dist);
|
||||||
if (dist > MaxDist) {
|
MaxDist = std::max(dist, MaxDist);
|
||||||
MaxDist = dist;
|
|
||||||
MaxId = i;
|
|
||||||
MaxInput = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (vtkIdType i = 0; i < input2->GetNumberOfPoints(); i++) {
|
for (vtkIdType i = 0; i < input2->GetNumberOfPoints(); i++) {
|
||||||
vtkIdType nCells = links2->GetNcells(i);
|
vtkIdType nCells = links2->GetNcells(i);
|
||||||
@ -65,11 +61,7 @@ vtkTypeBool MaxDistanceFilter::RequestData(vtkInformation *request,
|
|||||||
double vec[3];
|
double vec[3];
|
||||||
double dist;
|
double dist;
|
||||||
closestPolyMeshPoint(input1, point, tree1, links1, vec, &dist);
|
closestPolyMeshPoint(input1, point, tree1, links1, vec, &dist);
|
||||||
if (dist > MaxDist) {
|
MaxDist = std::max(dist, MaxDist);
|
||||||
MaxDist = dist;
|
|
||||||
MaxId = i;
|
|
||||||
MaxInput = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -14,13 +14,9 @@ public:
|
|||||||
vtkInformationVector **inputVector,
|
vtkInformationVector **inputVector,
|
||||||
vtkInformationVector *outputVector) override;
|
vtkInformationVector *outputVector) override;
|
||||||
vtkGetMacro(MaxDist, double);
|
vtkGetMacro(MaxDist, double);
|
||||||
vtkGetMacro(MaxId, vtkIdType);
|
|
||||||
vtkGetMacro(MaxInput, vtkIdType);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
double MaxDist;
|
double MaxDist;
|
||||||
vtkIdType MaxId;
|
|
||||||
vtkIdType MaxInput;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user