34 #define NO_INTERSECTION -99
35 #define NULL_VALUE -99
54 long l,s,l_po1,l_po2,icnt;
61 if (!pca) printf(
"Error: polygon_connection_attributes was not allocated at %ld polygon",polygon->
index);
66 A_min=fmax(polygon->
index-displacement,polygons->
nl);
67 A_max=fmin(polygon->
index+displacement,polygons->
nh);
69 for (l=A_min;l<=A_max;l++){
70 if (l!=polygon->
index) {
78 if (l_po1>polygon->
edge_indices->
nh) printf (
"Error: Line %ld : (%ld for polygon %ld) Not coherent data!!! \n ",s,l_po1,polygon->
index);
108 if (!apv)
t_error(
"polygon_connection_attribute_array was not allocated");
116 if (!apv)
t_error(
"polygon_connection_attribute_array element struct was not allocated");
143 printf (
"pca Allocated!\n");
145 for(l=pca->
nl;l<=pca->nh;l++){
147 if (print==1) printf (
"Polygons %ld (%ld connections) of %ld (displacement=%ld)!! \n",l,pca->
element[l]->
connections->
nh,pca->
nh,displacement);
150 if (print==1) printf (
" Finished polygon_connection_array struct filling!! \n ");
173 long i,nh,nl,l,link_val;
177 for (i=pca->
nl;i<=pca->nh;i++){
182 fd=fopen(filename,
"w");
184 fprintf(fd,
"index{%ld}\n",pca->
nh);
185 fprintf(fd,
"/*!* FILE CONTAINIG NECESSARY INFORMATION FOR POLOYGON CONNECTION \n");
186 fprintf(fd,
" each polygon connection array is expressed as a double array containing the following information \n");
187 fprintf(fd,
"polygon_index ");
189 for (l=nl;l<=nh;l++) {
190 fprintf(fd,
"P%ld ",l);
191 fprintf(fd,
"d_P%ld ",l);
193 fprintf(fd,
" */ \n ");
196 for (i=pca->
nl;i<=pca->nh;i++){
198 fprintf(fd,
"%ld: double array connections %ld {",i,i);
199 fprintf(fd,
"%ld ",i);
201 for (l=nl;l<=nh;l++){
206 fprintf(fd,
",%ld, ",link_val);
207 fprintf(fd,
"%lf ",d_link_val);
234 long i,nh,nl,l,link_val;
238 for (i=pca->
nl;i<=pca->nh;i++){
243 fd=fopen(filename,
"w");
247 fprintf(fd,
"polygon_index ");
249 for (l=nl;l<=nh;l++) {
250 fprintf(fd,
"P%ld ",l);
251 fprintf(fd,
"d_P%ld ",l);
254 for (i=pca->
nl;i<=pca->nh;i++){
257 fprintf(fd,
"%ld ",i);
259 for (l=nl;l<=nh;l++){
264 fprintf(fd,
"%ld ",link_val);
265 fprintf(fd,
"%lf ",d_link_val);
291 for (i=pca->
nl;i<=pca->nh;i++) {
302 printf(
"Error in pca: struct is not symmetric in the calls %ld , %ld /n",i,kl);
336 long l,s,l_po1,l_po2,icnt;
338 long r_min,r_max,c_min,c_max;
344 if (!pca) printf(
"Error: polygon_connection_attributes was not allocated at %ld polygon",polygon->
index);
349 r_min=fmax(r-1,mask->
nrl);
350 r_max=fmin(r+1,mask->
nrh);
351 c_min=fmax(c-1,mask->
ncl);
352 c_max=fmin(c+1,mask->
nch);
354 for (rs=r_min;rs<=r_max;rs++) {
355 for (cs=c_min;cs<=c_max;cs++) {
356 l=mask->element[rs][cs];
357 if ((l!=polygon->
index) && (l!=novalue)) {
365 if (l_po1>polygon->
edge_indices->
nh) printf (
"Error: Line %ld : (%ld for polygon %ld) Not coherent data!!! \n ",s,l_po1,polygon->
index);
405 printf (
"pca Allocated!\n");
407 for (r=pixels->
nrl;r<=pixels->nrh;r++) {
408 for (c=pixels->
ncl;c<=pixels->nch;c++){
409 l=pixels->element[r][c];
412 if (print==1) printf (
"Polygons %ld (%ld connections) of %ld !! \n",l,pca->
element[l]->
connections->
nh,pca->
nh);
416 for(l=pca->
nl;l<=pca->nh;l++){
417 if (pca->
element[l]==NULL) printf(
"Error: Polygon connections %ld of %ld were not allocated!! \n",l,pca->
nh);
421 if (print==1) printf (
" Finished polygon_connection_array struct filling!! \n ");