@ -77,6 +77,10 @@  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define PI 3.14159265358979323846f   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# ifndef EPSILON  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define EPSILON 0.000001f   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# ifndef DEG2RAD  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define DEG2RAD (PI / 180.0f)   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -155,6 +159,7 @@ typedef struct float16 {  
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  float16 ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  <math.h>       // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), fminf(), fmaxf(), fabs()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  <stdbool.h>    // Required for: bool, false, true  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Module  Functions  Definition  -  Utils  math  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -194,6 +199,14 @@ RMAPI float Remap(float value, float inputStart, float inputEnd, float outputSta  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Check  whether  two  given  floats  are  almost  equal  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  bool  FloatEquals ( float  x ,  float  y )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    bool  result  =  ( fabsf ( x  -  y ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( x ) ,  fabsf ( y ) ) ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Module  Functions  Definition  -  Vector2  math  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -414,6 +427,63 @@ RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Invert  the  given  vector  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  Vector2  Vector2Invert ( Vector2  v )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Vector2  result  =  {  1.0f  /  v . x ,  1.0f  /  v . y  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Clamp  the  components  of  the  vector  between  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  min  and  max  values  specified  by  the  given  vectors  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  Vector2  Vector2Clamp ( Vector2  v ,  Vector2  min ,  Vector2  max )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Vector2  result  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    result . x  =  fminf ( max . x ,  fmaxf ( min . x ,  v . x ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    result . y  =  fminf ( max . y ,  fmaxf ( min . y ,  v . y ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Clamp  the  magnitude  of  the  vector  between  two  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  given  min  and  max  values  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  Vector2  Vector2ClampValue ( Vector2  v ,  float  minMag ,  float  maxMag )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Vector2  result  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    float  length  =  ( v . x  *  v . x )  +  ( v . y  *  v . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( length  >  0.0f )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        length  =  sqrtf ( length ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( length  <  minMag )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            float  scale  =  minMag  /  length ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . x  =  v . x  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . y  =  v . y  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        else  if  ( length  >  maxMag )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            float  scale  =  maxMag  /  length ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . x  =  v . x  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . y  =  v . y  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Check  whether  two  given  vectors  are  almost  equal  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  bool  Vector2Equals ( Vector2  p ,  Vector2  q )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    bool  result  =  ( ( fabsf ( p . x  -  q . x ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . x ) ,  fabsf ( q . x ) ) ) ) )  & &   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                  ( ( fabsf ( p . y  -  q . y ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . y ) ,  fabsf ( q . y ) ) ) ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Module  Functions  Definition  -  Vector3  math  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -851,6 +921,96 @@ RMAPI float3 Vector3ToFloatV(Vector3 v)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  buffer ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Invert  the  given  vector  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  Vector3  Vector3Invert ( Vector3  v )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Vector3  result  =  {  1.0f  /  v . x ,  1.0f  /  v . y ,  1.0f  /  v . z  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Clamp  the  components  of  the  vector  between  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  min  and  max  values  specified  by  the  given  vectors  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  Vector3  Vector3Clamp ( Vector3  v ,  Vector3  min ,  Vector3  max )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Vector3  result  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    result . x  =  fminf ( max . x ,  fmaxf ( min . x ,  v . x ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    result . y  =  fminf ( max . y ,  fmaxf ( min . y ,  v . y ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    result . z  =  fminf ( max . z ,  fmaxf ( min . z ,  v . z ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Clamp  the  magnitude  of  the  vector  between  two  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  given  min  and  max  values  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  Vector3  Vector3ClampValue ( Vector3  v ,  float  minMag ,  float  maxMag )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Vector3  result  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    float  length  =  ( v . x  *  v . x )  +  ( v . y  *  v . y )  +  ( v . z  *  v . z ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( length  >  0.0f )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        length  =  sqrtf ( length ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( length  <  minMag )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            float  scale  =  minMag  /  length ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . x  =  v . x  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . y  =  v . y  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . z  =  v . z  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        else  if  ( length  >  maxMag )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            float  scale  =  maxMag  /  length ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . x  =  v . x  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . y  =  v . y  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            result . z  =  v . z  *  scale ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Check  whether  two  given  vectors  are  almost  equal  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  bool  Vector3Equals ( Vector3  p ,  Vector3  q )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    bool  result  =  ( ( fabsf ( p . x  -  q . x ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . x ) ,  fabsf ( q . x ) ) ) ) )  & &   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                  ( ( fabsf ( p . y  -  q . y ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . y ) ,  fabsf ( q . y ) ) ) ) )  & &   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                  ( ( fabsf ( p . z  -  q . z ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . z ) ,  fabsf ( q . z ) ) ) ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Compute  the  direction  of  a  refracted  ray  where  v  specifies  the  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  normalized  direction  of  the  incoming  ray ,  n  specifies  the  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  normalized  normal  vector  of  the  interface  of  two  optical  media ,  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  and  r  specifies  the  ratio  of  the  refractive  index  of  the  medium  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  from  where  the  ray  comes  to  the  refractive  index  of  the  medium  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  on  the  other  side  of  the  surface  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  Vector3  Vector3Refract ( Vector3  v ,  Vector3  n ,  float  r )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Vector3  result  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    float  dot  =  v . x  *  n . x  +  v . y  *  n . y  +  v . z  *  n . z ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    float  d  =  1.0f  -  r  *  r  *  ( 1.0f  -  dot  *  dot ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( d  <  0.0f )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Total  internal  reflection   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        d  =  sqrtf ( d ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        v . x  =  r  *  v . x  -  ( r  *  dot  +  d )  *  n . x ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        v . y  =  r  *  v . y  -  ( r  *  dot  +  d )  *  n . y ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        v . z  =  r  *  v . z  -  ( r  *  dot  +  d )  *  n . z ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Module  Functions  Definition  -  Matrix  math  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1844,4 +2004,15 @@ RMAPI Quaternion QuaternionTransform(Quaternion q, Matrix mat)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Check  whether  two  given  quaternions  are  almost  equal  
			
		 
		
	
		
			
			 
			 
			
			 
			
			RMAPI  bool  QuaternionEquals ( Quaternion  p ,  Quaternion  q )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    bool  result  =  ( ( fabsf ( p . x  -  q . x ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . x ) ,  fabsf ( q . x ) ) ) ) )  & &   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                  ( ( fabsf ( p . y  -  q . y ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . y ) ,  fabsf ( q . y ) ) ) ) )  & &   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                  ( ( fabsf ( p . z  -  q . z ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . z ) ,  fabsf ( q . z ) ) ) ) )  & &   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                  ( ( fabsf ( p . w  -  q . w ) )  < =  ( EPSILON  *  fmaxf ( 1.0f ,  fmaxf ( fabsf ( p . w ) ,  fabsf ( q . w ) ) ) ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  result ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif   / /  RAYMATH_H