#include "eRectangle.h"
#include "tError.h"
Go to the source code of this file.
Functions | |
static void | se_Clamp (REAL &toClamp, REAL reference, REAL direction, REAL &max) |
static REAL | se_Clip (eCoord const &start, eCoord &stop, eCoord const &reference, eCoord const &normal) |
static void se_Clamp | ( | REAL & | toClamp, | |
REAL | reference, | |||
REAL | direction, | |||
REAL & | max | |||
) | [inline, static] |
Definition at line 120 of file eRectangle.cpp.
References REAL.
Referenced by eRectangle::Clamp().
00121 { 00122 REAL move = (toClamp - reference)*direction; 00123 if (move > max) 00124 max = move; 00125 if (move > 0) 00126 toClamp = reference; 00127 }
static REAL se_Clip | ( | eCoord const & | start, | |
eCoord & | stop, | |||
eCoord const & | reference, | |||
eCoord const & | normal | |||
) | [inline, static] |
Definition at line 152 of file eRectangle.cpp.
Referenced by eRectangle::Clip().
00154 { 00155 // calculate how far out on the other side of the reference point the stop point is 00156 REAL out = eCoord::F( normal, stop-reference ); 00157 if ( out <= 0 ) 00158 return 1; // nothing to clamp 00159 00160 // calculate how far inside the startpoint lies 00161 REAL in = eCoord::F( normal, reference-start ); 00162 if ( in < 0 ) 00163 in = 0; 00164 00165 // clip 00166 if ( out+in > 0 ) 00167 { 00168 stop = (start * out + stop * in)*(1/(in+out)); 00169 return in/(in+out); 00170 } 00171 00172 return 1; 00173 }