Commit 1f5c4e3e authored by maesius's avatar maesius

Binder Grille regulier : pas fini.

Init grille : ok.
parent 70da7e4d
......@@ -2,13 +2,13 @@
* @brief OBJET : represente un octree pour la structure acceleratrice
* @file LrBinder.h
* @date Lundi 10 Mars 2008
* @note
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
*
* Ce fichier contient la classe qui gère la creation d'un octree
*/
......@@ -19,7 +19,10 @@
#include "LrBinder.h"
LrBinder::LrBinder()
: m_liste_objets(), min(0.0, 0.0, 0.0), max(0.0, 0.0, 0.0)
:
m_liste_objets(),
min(INFINITY, INFINITY, INFINITY),
max(-INFINITY, -INFINITY, -INFINITY)
{
}
......@@ -31,9 +34,12 @@ LrBinder::LrBinder(const LrBinder & source)
}
LrBinder::LrBinder(const LrEntityList liste_objets)
: m_liste_objets(liste_objets), min(0.0, 0.0, 0.0), max(0.0,0.0, 0.0)
:
m_liste_objets(liste_objets),
min(INFINITY, INFINITY, INFINITY),
max(-INFINITY, -INFINITY, -INFINITY)
{
}
}
LrBinder::~LrBinder()
{
......
......@@ -2,15 +2,15 @@
* @brief OBJET : represente la structure acceleratrice
* @file LrBinder.h
* @date Lundi 10 Mars 2008
* @note
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
*
* Ce fichier contient la classe qui gère la creation d'une structure acceleratrice pour la gestion des objets 3D
*/
*/
#ifndef LRBINDER_H
#define LRBINDER_H
......@@ -22,7 +22,7 @@
class LrBinder
{
public :
typedef std::list<LrEntity *> LrEntityList;
......@@ -33,11 +33,11 @@ class LrBinder
/**
* @brief constructeur par copie
* @param source l'instance source à copier
*/
*/
LrBinder(const LrBinder & source);
LrBinder(const LrEntityList m_liste_objets);
/**
* @brief destructeur
* @brief destructeur
*/
virtual ~LrBinder();
......@@ -70,12 +70,11 @@ class LrBinder
protected :
LrEntityList m_liste_objets;//la liste d'objet
LrEntityList m_liste_objets; //la liste d'objet
LrPoint min;
LrPoint max;
Real maxIntersection(Real tx, Real ty, Real tz) const;
Real minIntersection(Real tx, Real ty, Real tz) const;
};
......
This diff is collapsed.
......@@ -2,22 +2,24 @@
* @brief OBJET : represente la structure acceleratrice simple (une simple boite)
* @file LrBinder.h
* @date Lundi 10 Mars 2008
* @note
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
*
* Ce fichier contient la classe qui gère la creation d'une structure acceleratrice simple pour la gestion des objets 3D
*/
*/
#ifndef LRBINDERREGULARGRID_H
#define LRBINDERREGULARGRID_H
#include <list>
#include "LrBinder.h"
#include "LrEntity.h"
#include "LrEntity.h"
#include "LrVector.h"
#include <vector>
class LrBinderRegularGrid : public LrBinder
......@@ -28,11 +30,11 @@ class LrBinderRegularGrid : public LrBinder
LrBinderRegularGrid();
LrBinderRegularGrid(const LrBinderRegularGrid & source);
LrBinderRegularGrid(const LrEntityList &entities);
LrBinderRegularGrid(const LrEntityList &entities, int nbVoxelX, int nbVoxelY, int nbVoxelZ);
virtual ~LrBinderRegularGrid();
/**
* @brief Donne d'intersection entre un rayon et la structure accélératrice
* @param ray Référence d'un objet LrRay.
......@@ -48,15 +50,39 @@ class LrBinderRegularGrid : public LrBinder
* compte pour ce calcul.
*/
virtual bool getIntersection(const LrRay &ray, LrHit *hit,
Real minBound=0, Real maxBound=INFINITY) const;
Real minbound=0, Real maxbound=INFINITY) const;
virtual void initBinder();
private :
Real Xpas;
Real Ypas;
Real Zpas;
private :
class LrInfoVoxel {
public:
LrEntity* m_entite;
int m_numFragment;
};
/// @brief nombre de voxel en X dans la structure accélératrice.
int m_nbVoxelX;
/// @brief nombre de voxel en Y dans la structure accélératrice.
int m_nbVoxelY;
/// @brief nombre de voxel en Z dans la structure accélératrice.
int m_nbVoxelZ;
/// @brief vecteur diagonale en point min et max de la structure accélératrice.
LrVector m_lenBinder;
/// @brief vecteur diagonale en point min et max d'un voxel.
LrVector m_lenVoxel;
/// @brief Tableau de tableau de structure infoVoxel.
std::vector<std::vector< LrInfoVoxel> > m_tabVoxel;
};
#endif
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment