16 #ifndef FERMAT_SELECTOR 17 #define FERMAT_SELECTOR 41 vec3 receptorPos( static_cast<Recepteur*> (r->getRecepteur())->getPosition() );
42 vec3 finalPos( r->getFinalPosition() );
46 decimal trueLength = r->computeTrueLength(receptorPos, finalPos, closestPoint);
49 decimal epaisseur = r->getThickness( trueLength,
false );
52 decimal closestDistance =
static_cast<Recepteur*
> ( r->getRecepteur() )->getPosition().distance(closestPoint);
55 if ( closestDistance >= ( epaisseur/2. ) )
63 virtual void insert(T* r,
unsigned long long& replace) {
return; }
67 vec3 receptorPos( static_cast<Recepteur*> (r->getRecepteur())->getPosition() );
68 vec3 finalPos( r->getFinalPosition() );
72 decimal trueLength = r->computeTrueLength(receptorPos, finalPos, closestPoint);
75 decimal epaisseur = r->getThickness( trueLength,
false );
78 decimal closestDistance =
static_cast<Recepteur*
> ( r->getRecepteur() )->getPosition().distance(closestPoint);
81 if ( closestDistance >= ( epaisseur/2.) )
93 return typeid(
this).
name();
virtual void insert(T *r, unsigned long long &replace)
Keep the ray.
FermatSelector()
Constructor.
bool deletable
Flag to know if the selector may be deleted or not.
base_vec3< decimal > vec3
virtual SELECTOR_RESPOND canBeInserted(T *r, unsigned long long &replace)
Check if the ray respects the criteria of this Selector and return a SELECTOR_RESPOND.
: Rays can be seen as long cones that get thicker as their length increases based on their associated...
Base class for Selector (used to keep or disable rays according different criterias) ...
virtual const char * getSelectorName()
Return the class type of the selector.
virtual Selector< T > * Copy()
Copy Selector.
void setIsDeletable(bool _isDeletable)
Set deletable flag.
virtual bool insertWithTest(T *r)
Select the ray if it respects the criteria of this Selector.
Receptor inherits from a Sphere Shape.