Je suis en train de programmer un ray tracer et je suis confronté au problème suivant :
J´utilise le polymorphisme afin de traiter les entitées qui constituent la scène de facon générique, et nottament la collision avec les rayons lumineux, par le biais d´une fonction "Intersection" virtual, redéfinie pour chaque type d´entitées.
Seulement, les informations que doivent retourner la fonction "Intersection" sont assez nombreuses (true or false selon collision, distance à l´origine du rayon, coordonnées du point d´impact etc...) et je ne vois pas de meilleure solution pour garder un code propre.
Soit ma fonction se contente de retourner true ou false et prends en argument les variables concernant les infos qu´elle devra remplir.
Ce qu´il y a d´idiot, c´est qu´au final ma fonction possède pas mal d´arguments, qui sont inutiles dans le cas où il n´y a pas collision.
Soit retourner une structure avec toutes les infos, mais bon...
Le but étant bien entendu de s´épargner le recalcul des valeurs plusieurs fois...