public class SVoxelSpace extends SAbstractVoxelSpace
La classe SVoxelSpace représentant un espace de géométries distribuées dans un espace de voxels (en trois dimensions). Cette organisation permettra d'effecter l'intersection d'un rayon avec un nombre plus limités de géométries ce qui va accélérer les calculs.
Distribuée dans une grille régulière de voxel, chaque géométrie sera localisée dans un ou plusieurs voxels et le lancer d'un rayon parcourera un nombre limité de voxels ce qui ainsi limitera le nombre de tests d'intersection.
LINEAR, MULTI_VOXEL, TYPE_OF_SPACE, VOXEL
Constructor and Description |
---|
SVoxelSpace()
Constructeur d'un espace de voxel par défaut.
|
Modifier and Type | Method and Description |
---|---|
void |
initialize()
Méthode pour initialiser l'espace des géométries.
|
java.util.List<SGeometry> |
listInsideGeometry(SVector3d v)
Méthode pour obtenir la liste des géométries où la position du vecteur v se retrouve à l'intérieur.
|
SRay |
nearestIntersection(SRay ray,
double t_max)
Méthode qui évalue l'intersection la plus près entre un rayon et les différentes géométries de l'espace ne dépassant pas un certain temps maximal.
|
java.util.List<SRay> |
nearestOpaqueIntersection(SRay ray,
double t_max)
Méthode qui évalue l'intersection la plus près entre un rayon et les différentes géométries opaque de l'espace ne dépassant pas un certain temps maximal.
|
addGeometry, addGeometry, getIntersectionTestCount, resetIntersectinonTestCount, toString
public SRay nearestIntersection(SRay ray, double t_max) throws SRuntimeException
SGeometrySpace
ray
- - Le rayon à intersecter avec les géométries de l'espace.t_max
- - Le temps maximal.SRuntimeException
- Si le rayon a déjà intersecté une autre géométrie.public java.util.List<SRay> nearestOpaqueIntersection(SRay ray, double t_max) throws SRuntimeException
SGeometrySpace
ray
- - Le rayon à intersecter avec les géométries de l'espace.t_max
- - Le temps maximal.SRuntimeException
- Si le rayon a déjà intersecté une autre géométrie.public java.util.List<SGeometry> listInsideGeometry(SVector3d v)
SGeometrySpace
v
- - La position d'un point de l'espace.public void initialize()
SGeometrySpace
initialize
in interface SGeometrySpace
initialize
in class SAbstractGeometrySpace