8 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
13 double minimum_distance(
double x1,
double y1,
double x2,
double y2,
double x0,
double y0);
14 void ContourToLevelSet(
double* distance,
double* contourx,
double* contoury,
int contournods,
double* x,
double* y,
int i0,
int i10);
26 int my_thread = handle->
id;
27 int num_threads = handle->
num;
31 int nods = gate->
nods;
40 for(i=0;i<contours->Size();i++){
48 void ContourToLevelSet(
double* dist,
double* contourx,
double* contoury,
int contournods,
double* x,
double* y,
int i0,
int i1){
55 for(
int i=i0;i<i1;i++){
62 for(
int j=0;j<contournods-1;j++){
64 x1=contourx[j]; y1=contoury[j];
65 x2=contourx[j+1]; y2=contoury[j+1];
68 dist[i]=
min(dist[i],mind);
71 double minimum_distance(
double x1,
double y1,
double x2,
double y2,
double x0,
double y0){
79 double l2 = pow(x2-x1,2)+pow(y2-y1,2);
82 if(l2 == 0.)
return sqrt(pow(x1-x0,2)+pow(y1-y0,2));
86 double t = ((x0-x1)*(x2-x1) + (y0-y1)*(y2-y1)) / l2;
89 return sqrt(pow(x1-x0,2)+pow(y1-y0,2));
93 return sqrt(pow(x2-x0,2)+pow(y2-y0,2));
97 double projx= x1 + t* (x2-x1);
98 double projy= y1 + t* (y2-y1);
99 return sqrt(pow(projx-x0,2)+pow(projy-y0,2));