2#ifndef SI_FOLD_INERTIALDOMAINBOX_H
3#define SI_FOLD_INERTIALDOMAINBOX_H
7#include <cartodata/volume/volume.h>
44 virtual void changeRef(
double & x,
double & y,
double & z );
51 const std::vector<float> & scale,
52 const std::vector<float> & transl,
53 const std::vector<float> & vsz,
carto::VolumeRef< float > _inertia
Matrice d'inertie.
virtual void diagonalize()
Diagonalise la matrice d'inertie.
virtual void nextPass()
Effectue le changement de phase d'apprentissage.
virtual bool canBeFound(const Vertex *v, const Graph *g=0)
Renvoie si le noeud de graphe peut appartenir au modèle concerné (donc avoir le label considéré)
float tolerenceMargin() const
Point3df _eigenValues
Valeurs propres de la matrice d'inertie.
virtual void reset()
Réinitialise l'apprentissage (remet les stats à zéro)
virtual void learnBucket(const Vertex *v, const Graph *g)
apprends 2e phase, bornes des buckets dans le repère d'inertie
carto::VolumeRef< float > _rotation
Matrice de rotation.
virtual void buildTree(Tree &tr) const
Conversion en arbre (pour IO)
static void buildInertialDomBox(Tree *parent, Tree *tr)
Point3df _gravity
Centre de gravité.
virtual ~InertialDomainBox()
void learnVoxel(const std::vector< float > &rot, const std::vector< float > &scale, const std::vector< float > &transl, const std::vector< float > &vsz, const AimsVector< short, 3 > &pt)
Apprends un voxel (2e passe)
virtual Domain * clone() const
Duplication.
virtual void firstPass()
Revient à la première passe d'apprentissage.
bool _transfUpToDate
Flag.
virtual bool needsMorePasses() const
Dit s'il faut encore un passage sur une base pour que l'apprentissage soit complet.
void setTolerenceMargin(float tm)
float _tolMargin
Marge de tolérence supplémentaire.
virtual void learn(const Vertex *v, const Graph *g=0)
Apprends le domaine d'un morceau de sillon donné.
virtual void changeRef(double &x, double &y, double &z)
Change de repère vers celui de la matrice d'inertie.
void learnTalVoxel(double x, double y, double z)
Apprends un voxel (2e passe) pour un point dans Talairach.
bool canBeFound(double x, double y, double z)
Renvoie si le point peut se trouver aux coordonnées (x, y, z)
virtual void cubeTalairach(std::vector< std::vector< double > > &pts) const
Donne les coordonnées des coins dans Talairach (pas forcément les minmax internes, cf InertialDomainBox),...