Compounds | |
class | gul::AllocError |
struct | gul::bounding_box |
struct | gul::curve |
class | gul::debug_streambuf |
class | gul::dump_curve |
class | gul::dump_defaults |
class | gul::dump_line |
class | gul::dump_list |
class | gul::dump_matrix |
class | gul::dump_point |
class | gul::dump_surf |
class | gul::dump_vector |
class | gul::Error |
class | gul::hpoint |
class | gul::hpoint1 |
class | gul::hpoint2 |
class | gul::InternalError |
class | gul::IntervalDivZeroError |
struct | gul::itriangle |
class | gul::kdarray |
struct | gul::kdpoint |
struct | gul::knot_vec |
struct | gul::line |
struct | gul::line2 |
class | gul::List |
class | gul::List2 |
class | gul::ListNode |
struct | gul::ListNodeInfo |
struct | gul::Map |
struct | gul::mat4x4 |
struct | gul::Map::Node |
class | gul::pool_bytealloc |
class | gul::pool_object |
class | gul::poolalloc |
struct | gul::poolalloc::rebind |
class | gul::poolalloc< void > |
struct | gul::poolalloc< void >::rebind |
struct | gul::RefMap::Node |
class | gul::point |
class | gul::point1 |
class | gul::point2 |
struct | gul::point_net |
struct | gul::point_vec |
struct | gul::polyline |
class | gul::PoolAllocError |
class | gul::pooldeque |
class | gul::poolmap |
class | gul::poolstack |
class | gul::Ptr |
union | gul::ptr_int_union |
struct | gul::Ptr::Ptr_rep |
struct | gul::RefMap |
struct | gul::rtr |
struct | gul::rtr< double > |
struct | gul::rtr< float > |
struct | gul::rtr< guar::rational > |
struct | gul::rtr< int > |
struct | gul::rtr< unsigned int > |
class | gul::SingularMatrixError |
struct | gul::Stack |
class | gul::streambufrec |
struct | gul::surface |
struct | gul::triangle |
struct | gul::triangle2 |
class | gul::vec4 |
Typedefs | |
typedef basic_string< char, char_traits< char >, gul::poolalloc< char > > | poolstring |
typedef unsigned long long | uint64 |
typedef long long | int64 |
typedef unsigned long | uint32 |
typedef long | int32 |
typedef int | sub_range [2] |
Enumerations | |
enum | dump_format { human_readable = 0, gul_format } |
enum | dump_point_format { homogeneous = 0, euclidian, mixed } |
enum | DomainDirection { u_direction, v_direction } |
Functions | |
template<> int | test (const guar::rational &a) |
template<> int | compare (const guar::rational &A, const guar::rational &B) |
std::ostream & | operator<< (std::ostream &s, const guar::rational &r) |
template<class X, class A> void | Assert (A assertion) |
template<class T> bool | rel_equal (const T &a, const T &b, const T &eps) |
template<class T> bool | rel_equal (const gul::hpoint< T > &a, const gul::hpoint< T > &b, const T &eps) |
template<class T> bool | rel_equal (const gul::hpoint2< T > &a, const gul::hpoint2< T > &b, const T &eps) |
template<class T> bool | rel_equal (const gul::hpoint1< T > &a, const gul::hpoint1< T > &b, const T &eps) |
template<class T> bool | rel_equal (const gul::point< T > &a, const gul::point< T > &b, const T &eps) |
template<class T> bool | rel_equal (const gul::point2< T > &a, const gul::point2< T > &b, const T &eps) |
template<class T> bool | rel_equal (const gul::point1< T > &a, const gul::point1< T > &b, const T &eps) |
template<class T> T | max_norm (const point< T > &a) |
template<class T> T | max_norm (const point2< T > &a) |
template<class T> bool | zero_sine (const point< T > &ina, const point< T > &inb, const T &eps) |
template<class T> bool | zero_sine (const point2< T > &ina, const point2< T > &inb, const T &eps) |
template<class T> bool | abs_equal (const T &a, const T &b, const T &eps) |
template<class T> bool | abs_equal (const gul::hpoint< T > &a, const gul::hpoint< T > &b, const T &eps) |
template<class T> bool | abs_equal (const gul::hpoint2< T > &a, const gul::hpoint2< T > &b, const T &eps) |
template<class T> bool | abs_equal (const gul::hpoint1< T > &a, const gul::hpoint1< T > &b, const T &eps) |
template<class T> bool | abs_equal (const gul::point< T > &a, const gul::point< T > &b, const T &eps) |
template<class T> bool | abs_equal (const gul::point2< T > &a, const gul::point2< T > &b, const T &eps) |
template<class T> bool | abs_equal (const gul::point1< T > &a, const gul::point1< T > &b, const T &eps) |
template<class EP> std::ostream & | operator<< (std::ostream &os, const gul::dump_point< EP > &P) |
template<class T> ostream & | operator<< (ostream &s, const point1< T > &p) |
template<class T> ostream & | operator<< (ostream &s, const hpoint1< T > &p) |
template<class T> ostream & | operator<< (ostream &s, const point2< T > &p) |
template<class T> ostream & | operator<< (ostream &s, const hpoint2< T > &p) |
template<class T> ostream & | operator<< (ostream &s, const point< T > &p) |
template<class T> ostream & | operator<< (ostream &s, const hpoint< T > &p) |
template<class EP, class L> ostream & | operator<< (ostream &os, const dump_line< EP, L > &l) |
template<class T> ostream & | operator<< (ostream &os, const line< T > &l) |
template<class T> ostream & | operator<< (ostream &os, const line2< T > &l) |
template<class T> ostream & | operator<< (ostream &os, const dump_list< T > &L) |
template<class T, class HP> ostream & | operator<< (ostream &os, const dump_surf< T, HP > &s) |
template<class T, class HP> ostream & | operator<< (ostream &os, const dump_curve< T, HP > &c) |
template<class HP> ostream & | operator<< (ostream &os, const dump_matrix< HP > &m) |
template<class HP> ostream & | operator<< (ostream &os, const dump_vector< HP > &m) |
template<class T> mat4x4< T > | operator * (mat4x4< T > a, mat4x4< T > b) |
template<class T, class T2> void | MCopy (int m, int n, const Ptr< Ptr< T2 > > &A, Ptr< Ptr< T > > &C) |
template<class T, class T2> void | MCopy (int m, int n, const Ptr< Ptr< T2 > > &A, Ptr< T > &C) |
template<class T, class T2> void | MCopy (int m, int n, const Ptr< T2 > &A, Ptr< Ptr< T > > &C) |
template<class T> void | MMProduct (int r, int s, int t, Ptr< Ptr< T > > &A, Ptr< Ptr< T > > &B, Ptr< Ptr< T > > &C) |
template<class T> void | MMProduct (int r, int s, int t, Ptr< T > &A, Ptr< T > &B, Ptr< T > &C) |
template<class T> vec4< T > | operator * (mat4x4< T > a, vec4< T > b) |
template<class T> void | MVProduct (int n, int m, Ptr< Ptr< T > > &A, Ptr< T > &x, Ptr< T > &b) |
template<class T> void | VMProduct (int n, int m, const Ptr< T > &x, const Ptr< Ptr< T > > &A, Ptr< T > &b) |
template<class T> void | VMProduct (int n, int m, const Ptr< T > &x, const Ptr< T > &A, Ptr< T > &b) |
template<class T> vec4< T > | operator * (vec4< T > b, mat4x4< T > a) |
template<class T> void | CubeVerts (const T &xmin, const T &xmax, const T &ymin, const T &ymax, const T &zmin, const T &zmax, vec4< T > *v) |
template<class T> void | CubeVerts (const T &xmin, const T &xmax, const T &ymin, const T &ymax, const T &zmin, const T &zmax, point< T > *v) |
template<class T> void | CubeVerts (const Ptr< T > &bb, Ptr< point< T > > &v) |
template<class T> int | compare (const T &a, const T &b) |
template<class T> int | test (const T &a) |
template<class T> T | Max (const T &a, const T &b) |
template<class T> T | Min (const T &a, const T &b) |
template<class T> T | Max (const T &a, const T &b, const T &c) |
template<class T> T | Min (const T &a, const T &b, const T &c) |
template<class T> void | Swap (T &a, T &b) |
template<class T> T | Square (const T &a) |
template<class T> T | Sign (const T &a, const T &b) |
template<class T> bool | operator== (const poolalloc< T > &, const poolalloc< T > &) throw () |
template<class T> bool | operator!= (const poolalloc< T > &, const poolalloc< T > &) throw () |
template<class T> void | set (hpoint< T > &c, T a) |
template<class T> hpoint< T > | operator+ (const hpoint< T > &a, const hpoint< T > &b) |
template<class T> hpoint< T > | operator- (const hpoint< T > &a) |
template<class T> hpoint< T > | operator- (const hpoint< T > &a, const hpoint< T > &b) |
template<class T> hpoint< T > | operator * (const T op, const hpoint< T > &a) |
template<class T> T | operator * (const hpoint< T > &a, const hpoint< T > &b) |
template<class T> point< T > | euclid (const hpoint< T > &a) |
template<class T> T | weight (const hpoint< T > &a) |
template<class T> void | set (hpoint2< T > &c, T a) |
template<class T> hpoint2< T > | operator+ (const hpoint2< T > &a, const hpoint2< T > &b) |
template<class T> hpoint2< T > | operator- (const hpoint2< T > &a) |
template<class T> hpoint2< T > | operator- (const hpoint2< T > &a, const hpoint2< T > &b) |
template<class T> hpoint2< T > | operator * (const T op, const hpoint2< T > &a) |
template<class T> T | operator * (const hpoint2< T > a, const hpoint2< T > &b) |
template<class T> point2< T > | euclid (const hpoint2< T > &a) |
template<class T> T | weight (const hpoint2< T > &a) |
template<class T> void | set (hpoint1< T > &c, T a) |
template<class T> hpoint1< T > | operator+ (const hpoint1< T > &a, const hpoint1< T > &b) |
template<class T> hpoint1< T > | operator- (const hpoint1< T > &a) |
template<class T> hpoint1< T > | operator- (const hpoint1< T > &a, const hpoint1< T > &b) |
template<class T> hpoint1< T > | operator * (const T op, const hpoint1< T > &a) |
template<class T> T | operator * (const hpoint1< T > &a, const hpoint1< T > &b) |
template<class T> point1< T > | euclid (const hpoint1< T > &a) |
template<class T> T | weight (const hpoint1< T > &a) |
template<class T> void | set (point< T > &c, T a) |
template<class T> point< T > | operator+ (const point< T > &a, const point< T > &b) |
template<class T> point< T > | operator- (const point< T > &a) |
template<class T> point< T > | operator- (const point< T > &a, const point< T > &b) |
template<class T> point< T > | operator * (const T op, const point< T > &a) |
template<class T> T | operator * (const point< T > &a, const point< T > &b) |
template<class T> point< T > | euclid (const point< T > &a) |
template<class T> T | weight (const point< T > &a) |
template<class T> bool | operator!= (const point2< T > &a, const point2< T > &b) |
template<class T> void | set (point2< T > &c, T a) |
template<class T> point2< T > | operator+ (const point2< T > &a, const point2< T > &b) |
template<class T> point2< T > | operator- (const point2< T > &a) |
template<class T> point2< T > | operator- (const point2< T > &a, const point2< T > &b) |
template<class T> point2< T > | operator * (const T op, const point2< T > &a) |
template<class T> T | operator * (const point2< T > &a, const point2< T > &b) |
template<class T> point2< T > | euclid (const point2< T > &a) |
template<class T> T | weight (const point2< T > &a) |
template<class T> void | set (point1< T > &c, T a) |
template<class T> point1< T > | operator+ (const point1< T > &a, const point1< T > &b) |
template<class T> point1< T > | operator- (const point1< T > &a) |
template<class T> point1< T > | operator- (const point1< T > &a, const point1< T > &b) |
template<class T> point1< T > | operator * (const T op, const point1< T > &a) |
template<class T> T | operator * (const point1< T > a, const point1< T > &b) |
template<class T> point1< T > | euclid (const point1< T > &a) |
template<class T> T | weight (const point1< T > &a) |
template<class T> point< T > | ortho (const hpoint< T > &a) |
template<class T> point2< T > | ortho (const hpoint2< T > &a) |
template<class T> point1< T > | ortho (const hpoint1< T > &a) |
template<class T> point< T > | ortho (const point< T > &a) |
template<class T> point2< T > | ortho (const point2< T > &a) |
template<class T> point1< T > | ortho (const point1< T > &a) |
template<class T> point< T > | cross_product (const point< T > &a, const point< T > &b) |
template<class T> point< T > | cross_product (const point2< T > &a, const point2< T > &b) |
template<class T> T | length (const point< T > &a) |
template<class T> T | normalize (point< T > *c, const point< T > &a) |
template<class T> T | normalize (point2< T > *c, const point2< T > &a) |
template<class T> T | distance (const point< T > &a, const point< T > &b) |
template<class T> T | distance (const point2< T > &a, const point2< T > &b) |
template<class T> T | distance (const point1< T > &a, const point1< T > &b) |
template<class T> T | euclidian_distance (const hpoint< T > &a, const hpoint< T > &b) |
template<class T> T | euclidian_distance (const hpoint2< T > &a, const hpoint2< T > &b) |
template<class T> T | euclidian_distance (const hpoint1< T > &a, const hpoint1< T > &b) |
template<class T> T | euclidian_distance (const point< T > &a, const point< T > &b) |
template<class T> T | euclidian_distance (const point2< T > &a, const point2< T > &b) |
template<class T> T | euclidian_distance (const point1< T > &a, const point1< T > &b) |
template<class HP> HP | ProjectToLine (const HP &S, const HP &T, const HP &P) |
Project a point onto a line (in 3-D). More... | |
Variables | |
const bool | ndebug = false |
|
Definition at line 140 of file gul_types.h. |
|
Definition at line 129 of file gul_types.h. |
|
|
|
Definition at line 667 of file gul_types.h. Referenced by gul::Ptr< EP >::realloc(). |
|
Definition at line 139 of file gul_types.h. |
|
Definition at line 128 of file gul_types.h. |
|
Definition at line 661 of file gul_types.h. Referenced by gul::Ptr< EP >::realloc().
00662 { 00663 u_direction, 00664 v_direction 00665 }; |
|
Definition at line 27 of file gul_io.h. Referenced by gul::dump_line::dump_line(), gul::dump_point::dump_point(), gul::dump_surf::dump_surf(), and gul::dump_defaults::set_format().
00028 { 00029 human_readable = 0, 00030 gul_format 00031 }; |
|
Definition at line 33 of file gul_io.h. Referenced by gul::dump_line::dump_line(), gul::dump_point::dump_point(), gul::dump_surf::dump_surf(), and gul::dump_defaults::set_point_format().
00034 { 00035 homogeneous = 0, 00036 euclidian, 00037 mixed 00038 }; |
|
Definition at line 258 of file gul_float.h.
|
|
Definition at line 246 of file gul_float.h.
|
|
Definition at line 233 of file gul_float.h.
|
|
Definition at line 221 of file gul_float.h.
|
|
Definition at line 208 of file gul_float.h.
|
|
Definition at line 194 of file gul_float.h.
|
|
Definition at line 180 of file gul_float.h.
00181 { 00182 return rtr<T>::fabs(a-b) <= eps; 00183 } |
|
Definition at line 72 of file gul_error.h.
00073 { 00074 if(!assertion) throw X(); 00075 } |
|
Definition at line 143 of file gul_types.h.
00144 { 00145 if( a < b ) 00146 return -1; 00147 else if( a == b ) 00148 return 0; 00149 return 1; 00150 } |
|
Definition at line 626 of file guar_exact.h.
00627 { 00628 guar::Interval i; 00629 00630 if( A.m == B.m ) 00631 return 0; 00632 00633 if( !A.m->m_bounds ) A.calc_bounds(); 00634 if( !B.m->m_bounds ) B.calc_bounds(); 00635 i = A.m->m_i - B.m->m_i; 00636 if( i.m_high < 0.0 ) return(-1); 00637 else if( i.m_low > 0.0 ) return(1); 00638 00639 guar::rational c = A - B; 00640 if( c.m->m_sign ) return(-1); 00641 if( c.m->m_na == 0 ) return(0); 00642 00643 return(1); 00644 } |
|
Definition at line 399 of file gul_vector.h.
00400 { 00401 return point<T>((T)0, 00402 (T)0, 00403 a.x*b.y-b.x*a.y); 00404 } |
|
Definition at line 392 of file gul_vector.h.
00393 { 00394 return point<T>(a.y*b.z-b.y*a.z, 00395 b.x*a.z-a.x*b.z, 00396 a.x*b.y-b.x*a.y); 00397 } |
|
Definition at line 296 of file gul_matrix.h.
00297 { 00298 CubeVerts<T>( bb[0], bb[1], bb[2], bb[3], bb[4], bb[5], &v[0] ); 00299 } |
|
Definition at line 257 of file gul_matrix.h.
00261 { 00262 v[0].x = xmin; 00263 v[0].y = ymin; 00264 v[0].z = zmin; 00265 00266 v[1].x = xmax; 00267 v[1].y = ymin; 00268 v[1].z = zmin; 00269 00270 v[2].x = xmax; 00271 v[2].y = ymax; 00272 v[2].z = zmin; 00273 00274 v[3].x = xmin; 00275 v[3].y = ymax; 00276 v[3].z = zmin; 00277 00278 v[4].x = xmin; 00279 v[4].y = ymin; 00280 v[4].z = zmax; 00281 00282 v[5].x = xmax; 00283 v[5].y = ymin; 00284 v[5].z = zmax; 00285 00286 v[6].x = xmax; 00287 v[6].y = ymax; 00288 v[6].z = zmax; 00289 00290 v[7].x = xmin; 00291 v[7].y = ymax; 00292 v[7].z = zmax; 00293 } |
|
Definition at line 209 of file gul_matrix.h.
00213 { 00214 v[0][0] = xmin; 00215 v[0][1] = ymin; 00216 v[0][2] = zmin; 00217 v[0][3] = (T)1.0; 00218 00219 v[1][0] = xmax; 00220 v[1][1] = ymin; 00221 v[1][2] = zmin; 00222 v[1][3] = (T)1.0; 00223 00224 v[2][0] = xmax; 00225 v[2][1] = ymax; 00226 v[2][2] = zmin; 00227 v[2][3] = (T)1.0; 00228 00229 v[3][0] = xmin; 00230 v[3][1] = ymax; 00231 v[3][2] = zmin; 00232 v[3][3] = (T)1.0; 00233 00234 00235 v[4][0] = xmin; 00236 v[4][1] = ymin; 00237 v[4][2] = zmax; 00238 v[4][3] = (T)1.0; 00239 00240 v[5][0] = xmax; 00241 v[5][1] = ymin; 00242 v[5][2] = zmax; 00243 v[5][3] = (T)1.0; 00244 00245 v[6][0] = xmax; 00246 v[6][1] = ymax; 00247 v[6][2] = zmax; 00248 v[6][3] = (T)1.0; 00249 00250 v[7][0] = xmin; 00251 v[7][1] = ymax; 00252 v[7][2] = zmax; 00253 v[7][3] = (T)1.0; 00254 } |
|
Definition at line 459 of file gul_vector.h.
00460 { 00461 T x = a.x-b.x, d; 00462 00463 d = rtr<T>::fabs( x ); 00464 return d; 00465 } |
|
Definition at line 451 of file gul_vector.h.
00452 { 00453 T x = a.x-b.x, y = a.y-b.y, d; 00454 00455 d = rtr<T>::sqrt( x*x + y*y ); 00456 return d; 00457 } |
|
Definition at line 443 of file gul_vector.h.
00444 { 00445 T x = a.x-b.x, y = a.y-b.y, z = a.z-b.z, d; 00446 00447 d = rtr<T>::sqrt( x*x + y*y + z*z ); 00448 return d; 00449 } |
|
Definition at line 344 of file gul_vector.h.
00345 { 00346 return a; 00347 } |
|
Definition at line 292 of file gul_vector.h.
00293 { 00294 return a; 00295 } |
|
Definition at line 225 of file gul_vector.h.
00226 { 00227 return a; 00228 } |
|
Definition at line 173 of file gul_vector.h.
00174 { 00175 return point1<T>(a.x/a.w); 00176 } |
|
Definition at line 121 of file gul_vector.h.
00122 { 00123 return point2<T>(a.x/a.w, a.y/a.w); 00124 } |
|
Definition at line 69 of file gul_vector.h.
00070 { 00071 return point<T>(a.x/a.w, a.y/a.w, a.z/a.w); 00072 } |
|
Definition at line 510 of file gul_vector.h.
00511 { 00512 return distance(a,b); 00513 } |
|
Definition at line 504 of file gul_vector.h.
00505 { 00506 return distance(a,b); 00507 } |
|
Definition at line 498 of file gul_vector.h.
00499 { 00500 return distance(a,b); 00501 } |
|
Definition at line 486 of file gul_vector.h.
|
|
Definition at line 477 of file gul_vector.h.
|
|
Definition at line 468 of file gul_vector.h.
|
|
Definition at line 407 of file gul_vector.h.
00408 { 00409 return rtr<T>::sqrt(a.x*a.x + a.y*a.y + a.z*a.z); 00410 } |
|
Definition at line 355 of file gul_types.h.
00356 { if((a > b) && (a > c)) return a; 00357 else if(b > c) return b; 00358 return c; 00359 } |
|
Definition at line 350 of file gul_types.h.
00350 { return a > b ? a : b; } |
|
Definition at line 120 of file gul_float.h.
00121 { 00122 T m; 00123 00124 m = rtr<T>::fabs(a.x); 00125 if( rtr<T>::fabs(a.y) > m ) m = rtr<T>::fabs(a.y); 00126 return m; 00127 } |
|
Definition at line 109 of file gul_float.h.
00110 { 00111 T m; 00112 00113 m = rtr<T>::fabs(a.x); 00114 if( rtr<T>::fabs(a.y) > m ) m = rtr<T>::fabs(a.y); 00115 if( rtr<T>::fabs(a.z) > m ) m = rtr<T>::fabs(a.z); 00116 return m; 00117 } |
|
Definition at line 66 of file gul_matrix.h.
00067 { 00068 int i,j; 00069 00070 for( i = 0; i < m; i++) 00071 for( j =0; j < n; j++) 00072 C[i][j] = (T)A[i*n+j]; 00073 } |
|
Definition at line 57 of file gul_matrix.h.
00058 { 00059 int i,j; 00060 00061 for( i = 0; i < m; i++) 00062 for( j =0; j < n; j++) 00063 C[i*n+j] = (T)A[i][j]; 00064 } |
|
Definition at line 48 of file gul_matrix.h.
00049 { 00050 int i,j; 00051 00052 for( i = 0; i < m; i++) 00053 for( j =0; j < n; j++) 00054 C[i][j] = (T)A[i][j]; 00055 } |
|
Definition at line 361 of file gul_types.h.
00362 { if((a < b) && (a < c)) return a; 00363 else if(b < c) return b; 00364 return c; 00365 } |
|
Definition at line 352 of file gul_types.h.
00352 { return a < b ? a : b; } |
|
Definition at line 98 of file gul_matrix.h.
00099 { 00100 int i,j,k; 00101 T sum; 00102 00103 for( i = 0; i < r; i++) 00104 { 00105 for( j =0; j < t; j++) 00106 { 00107 sum = (T)0.0; 00108 00109 for( k = 0; k < s; k++) 00110 sum += A[i*s+k]*B[k*t+j]; 00111 00112 C[i*t+j] = sum; 00113 } 00114 } 00115 } |
|
Definition at line 77 of file gul_matrix.h.
00079 { 00080 int i,j,k; 00081 T sum; 00082 00083 for( i = 0; i < r; i++) 00084 { 00085 for( j =0; j < t; j++) 00086 { 00087 sum = (T)0.0; 00088 00089 for( k = 0; k < s; k++) 00090 sum += A[i][k]*B[k][j]; 00091 00092 C[i][j] = sum; 00093 } 00094 } 00095 } |
|
Definition at line 138 of file gul_matrix.h.
00139 { 00140 int i,k; 00141 T sum; 00142 00143 for( i = 0; i < n; i++) 00144 { 00145 sum = (T)0.0; 00146 00147 for( k = 0; k < m; k++) 00148 sum += A[i][k]*x[k]; 00149 00150 b[i] = sum; 00151 } 00152 } |
|
Definition at line 428 of file gul_vector.h.
00429 { 00430 T d; 00431 00432 d = rtr<T>::sqrt( a.x*a.x + a.y*a.y ); 00433 if( d != (T)0 ) 00434 { 00435 c->x = a.x / d; 00436 c->y = a.y / d; 00437 } 00438 return d; 00439 } |
|
Definition at line 414 of file gul_vector.h.
00415 { 00416 T d; 00417 00418 d = rtr<T>::sqrt( a.x*a.x + a.y*a.y + a.z*a.z ); 00419 if( d != (T)0 ) 00420 { 00421 c->x = a.x / d; 00422 c->y = a.y / d; 00423 c->z = a.z / d; 00424 } 00425 return d; 00426 } |
|
Definition at line 338 of file gul_vector.h.
00339 { 00340 return a.x*b.x; 00341 } |
|
Definition at line 332 of file gul_vector.h.
00333 { 00334 return point1<T>(op*a.x); 00335 } |
|
Definition at line 286 of file gul_vector.h.
00287 { 00288 return a.x*b.x + a.y*b.y; 00289 } |
|
Definition at line 280 of file gul_vector.h.
00281 { 00282 return point2<T>(op*a.x, op*a.y); 00283 } |
|
Definition at line 219 of file gul_vector.h.
00220 { 00221 return a.x*b.x + a.y*b.y + a.z*b.z; 00222 } |
|
Definition at line 213 of file gul_vector.h.
00214 { 00215 return point<T>(op*a.x, op*a.y, op*a.z); 00216 } |
|
Definition at line 167 of file gul_vector.h.
00168 { 00169 return a.x*b.x + a.w*b.w; 00170 } |
|
Definition at line 161 of file gul_vector.h.
00162 { 00163 return hpoint1<T>(op*a.x, op*a.w); 00164 } |
|
Definition at line 115 of file gul_vector.h.
00116 { 00117 return a.x*b.x + a.y*b.y + a.w*b.w; 00118 } |
|
Definition at line 109 of file gul_vector.h.
00110 { 00111 return hpoint2<T>(op*a.x, op*a.y, op*a.w); 00112 } |
|
Definition at line 63 of file gul_vector.h.
00064 { 00065 return a.x*b.x + a.y*b.y + a.z*b.z + a.w*b.w; 00066 } |
|
Definition at line 57 of file gul_vector.h.
00058 { 00059 return hpoint<T>(op*a.x, op*a.y, op*a.z, op*a.w); 00060 } |
|
Definition at line 190 of file gul_matrix.h.
00191 { 00192 int i,k; 00193 vec4<T> c; 00194 T sum; 00195 00196 for( i = 0; i < 4; i++) 00197 { 00198 sum = (T)0.0; 00199 00200 for( k = 0; k < 4; k++) 00201 sum += b[k] * a[k][i]; 00202 00203 c[i] = sum; 00204 } 00205 return c; 00206 } |
|
Definition at line 119 of file gul_matrix.h.
00120 { 00121 int i,k; 00122 vec4<T> c; 00123 T sum; 00124 00125 for( i = 0; i < 4; i++) 00126 { 00127 sum = (T)0.0; 00128 00129 for( k = 0; k < 4; k++) 00130 sum += a[i][k]*b[k]; 00131 00132 c[i] = sum; 00133 } 00134 return c; 00135 } |
|
Definition at line 26 of file gul_matrix.h.
00027 { 00028 int i,j,k; 00029 mat4x4<T> c; 00030 T sum; 00031 00032 for( i = 0; i < 4; i++) 00033 { 00034 for( j =0; j < 4; j++) 00035 { 00036 sum = (T)0.0; 00037 00038 for( k = 0; k < 4; k++) 00039 sum += a[i][k]*b[k][j]; 00040 00041 c[i][j] = sum; 00042 } 00043 } 00044 return c; 00045 } |
|
Definition at line 241 of file gul_vector.h.
00242 { 00243 if( (a.x != b.x) || (a.y != b.y) ) return true; 00244 return false; 00245 } |
|
Definition at line 1906 of file gul_types.h.
01907 { return false; } |
|
Definition at line 314 of file gul_vector.h.
00315 { 00316 return point1<T>(a.x+b.x); 00317 } |
|
Definition at line 262 of file gul_vector.h.
00263 { 00264 return point2<T>(a.x+b.x, a.y+b.y); 00265 } |
|
Definition at line 195 of file gul_vector.h.
00196 { 00197 return point<T>(a.x+b.x, a.y+b.y, a.z+b.z); 00198 } |
|
Definition at line 143 of file gul_vector.h.
00144 { 00145 return hpoint1<T>(a.x+b.x, a.w+b.w); 00146 } |
|
Definition at line 91 of file gul_vector.h.
00092 { 00093 return hpoint2<T>(a.x+b.x, a.y+b.y, a.w+b.w); 00094 } |
|
Definition at line 38 of file gul_vector.h.
00039 { 00040 return hpoint<T>(a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w); 00041 } |
|
Definition at line 326 of file gul_vector.h.
00327 { 00328 return point1<T>(a.x-b.x); 00329 } |
|
Definition at line 320 of file gul_vector.h.
00321 { 00322 return point1<T>(-a.x); 00323 } |
|
Definition at line 274 of file gul_vector.h.
00275 { 00276 return point2<T>(a.x-b.x, a.y-b.y); 00277 } |
|
Definition at line 268 of file gul_vector.h.
00269 { 00270 return point2<T>(-a.x, -a.y); 00271 } |
|
Definition at line 207 of file gul_vector.h.
00208 { 00209 return point<T>(a.x-b.x, a.y-b.y, a.z-b.z); 00210 } |
|
Definition at line 201 of file gul_vector.h.
00202 { 00203 return point<T>(-a.x, -a.y, -a.z); 00204 } |
|
Definition at line 155 of file gul_vector.h.
00156 { 00157 return hpoint1<T>(a.x-b.x, a.w-b.w); 00158 } |
|
Definition at line 149 of file gul_vector.h.
00150 { 00151 return hpoint1<T>(-a.x, -a.w); 00152 } |
|
Definition at line 103 of file gul_vector.h.
00104 { 00105 return hpoint2<T>(a.x-b.x, a.y-b.y, a.w-b.w); 00106 } |
|
Definition at line 97 of file gul_vector.h.
00098 { 00099 return hpoint2<T>(-a.x, -a.y, -a.w); 00100 } |
|
Definition at line 51 of file gul_vector.h.
00052 { 00053 return hpoint<T>(a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w); 00054 } |
|
Definition at line 44 of file gul_vector.h.
00045 { 00046 return hpoint(-a.x, -a.y, -a.z, -a.w); 00047 } |
|
Definition at line 520 of file gul_io.h.
00521 { 00522 int i; 00523 00524 os << "Vector:\n"; 00525 for( i = 0; i < m.m_nV; i++ ) 00526 { 00527 os << "(" << m.m_V[i] << ") "; 00528 os << "\n"; 00529 } 00530 os.flush(); 00531 00532 return os; 00533 } |
|
Definition at line 490 of file gul_io.h.
00491 { 00492 int i,j; 00493 00494 os << "Matrix:\n"; 00495 for( i = 0; i < m.m_nRows; i++ ) 00496 { 00497 for( j = 0; j < m.m_nCols; j++ ) 00498 os << "(" << m.m_M[i][j] << ") "; 00499 os << "\n"; 00500 } 00501 os.flush(); 00502 00503 return os; 00504 } |
|
Definition at line 454 of file gul_io.h.
00455 { 00456 int i; 00457 00458 os << "Knot Vector U\n"; 00459 for( i = 0; i < c.m_n+c.m_p+2; i++ ) 00460 cout << c.m_U[i] << " "; 00461 os << "\n"; 00462 os.flush(); 00463 00464 os << "Control Points:\n"; 00465 for( i = 0; i < c.m_n+1; i++ ) 00466 { 00467 os << "(" << c.m_Pw[i] << ") "; 00468 } 00469 os.flush(); 00470 00471 return os; 00472 } |
|
Definition at line 423 of file gul_io.h.
00424 { 00425 if( s.m_f == human_readable ) 00426 s.out_human(os); 00427 else if( s.m_f == gul_format ) 00428 s.out_gul(os); 00429 00430 return os; 00431 } |
|
Definition at line 287 of file gul_io.h.
00288 { 00289 L.out_gul(os); 00290 00291 return os; 00292 } |
|
Definition at line 247 of file gul_io.h.
00248 { 00249 os << dump_line<point2<T>,line2<T> >(l); 00250 return os; 00251 } |
|
Definition at line 240 of file gul_io.h.
00241 { 00242 os << dump_line<point<T>,line<T> >(l); 00243 return os; 00244 } |
|
Definition at line 229 of file gul_io.h.
00230 { 00231 if( l.m_f == human_readable ) 00232 l.out_human(os); 00233 else if( l.m_f == gul_format ) 00234 l.out_gul(os); 00235 00236 return os; 00237 } |
|
Definition at line 187 of file gul_io.h.
00188 { 00189 return s << gul::dump_point<gul::hpoint<T> >(p); 00190 } |
|
Definition at line 182 of file gul_io.h.
00183 { 00184 return s << gul::dump_point<gul::point<T> >(p); 00185 } |
|
Definition at line 176 of file gul_io.h.
00177 { 00178 return s << gul::dump_point<gul::hpoint2<T> >(p); 00179 } |
|
Definition at line 171 of file gul_io.h.
00172 { 00173 return s << gul::dump_point<gul::point2<T> >(p); 00174 } |
|
Definition at line 165 of file gul_io.h.
00166 { 00167 return s << gul::dump_point<gul::hpoint1<T> >(p); 00168 } |
|
Definition at line 160 of file gul_io.h.
00161 { 00162 return s << gul::dump_point<gul::point1<T> >(p); 00163 } |
|
Definition at line 148 of file gul_io.h.
00149 { 00150 if( P.m_f == human_readable ) 00151 P.out_human(os); 00152 else if( P.m_f == gul_format ) 00153 P.out_gul(os); 00154 00155 return os; 00156 } |
|
Definition at line 646 of file guar_exact.h.
00647 { 00648 return s << r.dump(); 00649 } |
|
Definition at line 1903 of file gul_types.h.
01904 { return true; } |
|
Definition at line 385 of file gul_vector.h.
00386 { 00387 return point1<T>(a.x); 00388 } |
|
Definition at line 380 of file gul_vector.h.
00381 { 00382 return point2<T>(a.x, a.y); 00383 } |
|
Definition at line 375 of file gul_vector.h.
00376 { 00377 return point<T>(a.x, a.y, a.z); 00378 } |
|
Definition at line 369 of file gul_vector.h.
00370 { 00371 return point1<T>(a.x); 00372 } |
|
Definition at line 364 of file gul_vector.h.
00365 { 00366 return point2<T>(a.x, a.y); 00367 } |
|
Definition at line 359 of file gul_vector.h.
00360 { 00361 return point<T>(a.x, a.y, a.z); 00362 } |
|
Project a point onto a line (in 3-D). S = a point on the line T = direction vector of the line ( |T| = 1 !!!! ) Definition at line 521 of file gul_vector.h.
00522 { 00523 return S + ((P-S)*T)*T; 00524 } |
|
Definition at line 95 of file gul_float.h.
|
|
Definition at line 83 of file gul_float.h.
|
|
Definition at line 70 of file gul_float.h.
|
|
Definition at line 58 of file gul_float.h.
|
|
Definition at line 45 of file gul_float.h.
|
|
Definition at line 31 of file gul_float.h.
|
|
Definition at line 17 of file gul_float.h.
00018 { 00019 return rtr<T>::fabs(a-b) <= rtr<T>::fabs(b) * eps; 00020 } |
|
Definition at line 308 of file gul_vector.h.
00309 { 00310 c.x = a; 00311 } |
|
Definition at line 256 of file gul_vector.h.
00257 { 00258 c.x = a; c.y = a; 00259 } |
|
Definition at line 189 of file gul_vector.h.
00190 { 00191 c.x = a; c.y = a; c.z = a; 00192 } |
|
Definition at line 137 of file gul_vector.h.
00138 { 00139 c.x = a; c.w = a; 00140 } |
|
Definition at line 85 of file gul_vector.h.
00086 { 00087 c.x = a; c.y = a; c.w = a; 00088 } |
|
Definition at line 32 of file gul_vector.h.
00033 { 00034 c.x = a; c.y = a; c.z = a; c.w = a; 00035 } |
|
Definition at line 372 of file gul_types.h.
00373 { return (b < 0.0 ? -rtr<T>::fabs(a) : rtr<T>::fabs(a)); } |
|
Definition at line 370 of file gul_types.h.
00370 { return a*a; } |
|
Definition at line 368 of file gul_types.h. Referenced by guma::rkdtree_base::nearest_neighbors().
00368 { T tmp=a; a=b; b=tmp; } |
|
Definition at line 152 of file gul_types.h.
00153 { 00154 if( a < 0 ) return -1; 00155 else if( a == 0 ) return 0; 00156 return 1; 00157 } |
|
Definition at line 610 of file guar_exact.h.
00611 { 00612 return a.test(); 00613 } |
|
Definition at line 172 of file gul_matrix.h.
00173 { 00174 int i,k; 00175 T sum; 00176 00177 for( i = 0; i < m; i++) 00178 { 00179 sum = (T)0.0; 00180 00181 for( k = 0; k < n; k++) 00182 sum += x[k]*A[k*m+i]; 00183 00184 b[i] = sum; 00185 } 00186 } |
|
Definition at line 155 of file gul_matrix.h.
00156 { 00157 int i,k; 00158 T sum; 00159 00160 for( i = 0; i < m; i++) 00161 { 00162 sum = (T)0.0; 00163 00164 for( k = 0; k < n; k++) 00165 sum += x[k]*A[k][i]; 00166 00167 b[i] = sum; 00168 } 00169 } |
|
Definition at line 349 of file gul_vector.h.
00350 { 00351 return (T)1; 00352 } |
|
Definition at line 297 of file gul_vector.h.
00298 { 00299 return (T)1; 00300 } |
|
Definition at line 230 of file gul_vector.h.
00231 { 00232 return (T)1; 00233 } |
|
Definition at line 178 of file gul_vector.h.
00179 { 00180 return a.w; 00181 } |
|
Definition at line 126 of file gul_vector.h.
00127 { 00128 return a.w; 00129 } |
|
Definition at line 74 of file gul_vector.h.
00075 { 00076 return a.w; 00077 } |
|
Definition at line 156 of file gul_float.h.
00157 { 00158 T la,lb; 00159 00160 // normalize a,b (approximately) 00161 la = max_norm(a); 00162 if( !la ) return true; 00163 a = ((T)1/la)*ina; 00164 00165 lb = max_norm(b); 00166 if( !lb ) return true; 00167 b = ((T)1/lb)*inb; 00168 00169 if( rel_equal(a.x*b.y-b.x*a.y,eps) ) 00170 return true; 00171 00172 return false; 00173 } |
|
Definition at line 133 of file gul_float.h.
00134 { 00135 T la,lb; 00136 point<T> a,b; 00137 00138 // normalize a,b (approximately) 00139 la = max_norm(ina); 00140 if( !la ) return true; 00141 a = ((T)1/la)*ina; 00142 00143 lb = max_norm(inb); 00144 if( !lb ) return true; 00145 b = ((T)1/lb)*inb; 00146 00147 if( rel_equal(a.y*b.z,b.y*a.z,eps) && 00148 rel_equal(b.x*a.z,a.x*b.z,eps) && 00149 rel_equal(a.x*b.y,b.x*a.y,eps) ) 00150 return true; 00151 00152 return false; 00153 } |
|
Definition at line 109 of file gul_types.h. Referenced by gugr::monpoly_info::AppendRight(), gugr::edge_interval_tree::dump_edge_interval(), and gugr::segnode::insert(). |