Ignore:
Timestamp:
Jan 3, 2010, 7:13:32 PM (11 years ago)
Author:
rbri
Message:

DJVU plugin: djvulibre updated to version 3.5.22

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libdjvu/GMapAreas.cpp

    r206 r280  
    5454//C- +------------------------------------------------------------------
    5555//
    56 // $Id: GMapAreas.cpp,v 1.10 2007/03/25 20:48:31 leonb Exp $
    57 // $Name: release_3_5_19 $
     56// $Id: GMapAreas.cpp,v 1.11 2008/08/05 20:50:35 bpearlmutter Exp $
     57// $Name: release_3_5_22 $
    5858
    5959#ifdef HAVE_CONFIG_H
     
    464464
    465465   if (xmax<grect.xmin || xmin>grect.xmax ||
    466        ymax<grect.ymin || ymin>grect.ymax) return false;
     466       ymax<grect.ymin || ymin>grect.ymax)
     467     return false;
    467468
    468469   return
    469       x1>=grect.xmin && x1<=grect.xmax && y1>=grect.ymin && y1<=grect.ymax ||
    470       x2>=grect.xmin && x2<=grect.xmax && y2>=grect.ymin && y2<=grect.ymax ||
    471       do_segments_intersect(grect.xmin, grect.ymin, grect.xmax, grect.ymax,
    472                             x1, y1, x2, y2) ||
    473       do_segments_intersect(grect.xmax, grect.ymin, grect.xmin, grect.ymax,
    474                             x1, y1, x2, y2);
     470     (x1>=grect.xmin && x1<=grect.xmax && y1>=grect.ymin && y1<=grect.ymax) ||
     471     (x2>=grect.xmin && x2<=grect.xmax && y2>=grect.ymin && y2<=grect.ymax) ||
     472     do_segments_intersect(grect.xmin, grect.ymin, grect.xmax, grect.ymax,
     473                           x1, y1, x2, y2) ||
     474     do_segments_intersect(grect.xmax, grect.ymin, grect.xmin, grect.ymax,
     475                           x1, y1, x2, y2);
    475476}
    476477
     
    515516GMapPoly::check_data(void)
    516517{
    517   if (open && points<2 || !open && points<3)
     518  if ((open && points<2) || (!open && points<3))
    518519    return error_too_few_points;
    519520  for(int i=0;i<sides;i++)
    520   {
    521     for(int j=i+2;j<sides;j++)
    522521    {
    523       if (i != (j+1)%points )
    524       {
    525         if (do_segments_intersect(xx[i], yy[i], xx[i+1], yy[i+1],
     522      for(int j=i+2;j<sides;j++)
     523        {
     524          if (i != (j+1)%points )
     525            if (do_segments_intersect(xx[i], yy[i], xx[i+1], yy[i+1],
    526526                                      xx[j], yy[j], xx[(j+1)%points], yy[(j+1)%points]))
    527         {
    528           return error_intersect;
    529         }
    530       }
     527              return error_intersect;
     528        }
    531529    }
    532   }
    533530  return "";
    534531}
     
    537534GMapPoly::optimize_data(void)
    538535{
    539    // Removing segments of length zero
    540    int i;
    541    for(i=0;i<sides;i++)
    542    {
     536  // Removing segments of length zero
     537  int i;
     538  for(i=0;i<sides;i++)
     539    {
    543540      while(xx[i]==xx[(i+1)%points] && yy[i]==yy[(i+1)%points])
    544       {
    545          for(int k=(i+1)%points;k<points-1;k++)
    546          {
    547             xx[k]=xx[k+1]; yy[k]=yy[k+1];
    548          }
    549          points--; sides--;
    550          if (!points) return;
    551       }
    552    }
    553    // Concatenating consequitive parallel segments
    554    for(i=0;i<sides;i++)
    555    {
    556       while((open && i+1<sides || !open) &&
     541        {
     542          for(int k=(i+1)%points;k<points-1;k++)
     543            {
     544              xx[k]=xx[k+1]; yy[k]=yy[k+1];
     545            }
     546          points--; sides--;
     547          if (!points) return;
     548        }
     549    }
     550  // Concatenating consequitive parallel segments
     551  for(i=0;i<sides;i++)
     552    {
     553      while(((open && i+1<sides) || !open) &&
    557554            are_segments_parallel(xx[i], yy[i],
    558555                                  xx[(i+1)%points], yy[(i+1)%points],
    559556                                  xx[(i+1)%points], yy[(i+1)%points],
    560557                                  xx[(i+2)%points], yy[(i+2)%points]))
    561       {
    562          for(int k=(i+1)%points;k<points-1;k++)
    563          {
    564             xx[k]=xx[k+1]; yy[k]=yy[k+1];
    565          }
    566          points--; sides--;
    567          if (!points) return;
    568       }
    569    }
     558        {
     559          for(int k=(i+1)%points;k<points-1;k++)
     560            {
     561              xx[k]=xx[k+1]; yy[k]=yy[k+1];
     562            }
     563          points--; sides--;
     564          if (!points) return;
     565        }
     566    }
    570567}
    571568
     
    575572   if (open)
    576573     return false;
    577    
     574
    578575   int xfar=get_xmax()+(get_xmax()-get_xmin());
    579    
     576
    580577   int intersections=0;
    581578   for(int i=0;i<points;i++)
     
    595592         }
    596593      }
    597       if (res1<0 && res2>0 || res1>0 && res2<0)
     594      if ((res1<0 && res2>0) || (res1>0 && res2<0))
    598595      {
    599596         int x1=xx[i%points], y1=yy[i%points];
Note: See TracChangeset for help on using the changeset viewer.