Institut de Robòtica i Informàtica Industrial
KRD Group

The CuikSuite Project

geom.h

Go to the documentation of this file.
00001 #ifndef GEOMH
00002 #define GEOMH
00003 
00004 #include "interval.h"
00005 #include <gsl/gsl_linalg.h>
00006 
00034 boolean pointLeftOfLine(double px,double py,
00035                         double x1,double y1,double x2,double y2);
00036 
00054 boolean pointRightOfLine(double px,double py,
00055                          double x1,double y1,double x2,double y2);
00056 
00068 void ComputeBoundingBox(unsigned int n,double *x,double *y,
00069                         Tinterval *ix,Tinterval *iy);
00070 
00084 void ComputeBoundingBox3d(unsigned int n,double *x,double *y,double *z,
00085                           Tinterval *ix,Tinterval *iy,Tinterval *iz);
00086 
00101 boolean RectangleCircleClipping(double r2,
00102                                 Tinterval *x,Tinterval *y,
00103                                 Tinterval *x_new,Tinterval *y_new);
00104 
00105 
00122 boolean BoxSphereClipping(double r2,
00123                           Tinterval *x,Tinterval *y,Tinterval *z,
00124                           Tinterval *x_new,Tinterval *y_new,Tinterval *z_new);
00125 
00140 boolean RectangleParabolaClipping(Tinterval *x,double alpha,Tinterval *y,
00141                                   Tinterval *x_new,Tinterval *y_new);
00142 
00159 boolean BoxSaddleClipping(Tinterval *x,Tinterval *y,double alpha,Tinterval *z,
00160                           Tinterval *x_new,Tinterval *y_new,Tinterval *z_new);
00161 
00172 void DefineNormalVector(double *v,double *n);
00173 
00183 void CrossProduct(double *v1,double *v2,double *v3);
00184 
00195 double DotProduct(double *v1,double *v2);
00196 
00213 int tolerant_SV_decomp(int M,int N,gsl_matrix *U,gsl_matrix *V,gsl_vector* S);
00214 
00215 #endif