Ignore:
Timestamp:
Nov 10, 2005, 8:08:09 PM (17 years ago)
Author:
Sam Hocevar
Message:
  • shitloads of long -> int32_t changes for 64 bit safety.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • abuse/trunk/src/intsect.cpp

    r2 r16  
    22#include <stdlib.h>
    33
    4 void pushback(long x1,long y1,long &x2,long &y2,
    5                      long xp1, long yp1, long xp2, long yp2, int xdir, int ydir, int inside)
     4void pushback(int32_t x1,int32_t y1,int32_t &x2,int32_t &y2,
     5                     int32_t xp1, int32_t yp1, int32_t xp2, int32_t yp2, int xdir, int ydir, int inside)
    66{
    77
     
    1515
    1616
    17 /* int setback_intersect(long x1,long y1,long &x2,long &y2,
    18                      long xp1, long yp1, long xp2, long yp2)
     17/* int setback_intersect(int32_t x1,int32_t y1,int32_t &x2,int32_t &y2,
     18                     int32_t xp1, int32_t yp1, int32_t xp2, int32_t yp2)
    1919{
    20   long mx1,my1,b1,mx2,my2,b2,side1,side2,tx2,ty2;
     20  int32_t mx1,my1,b1,mx2,my2,b2,side1,side2,tx2,ty2;
    2121  my1=(y2-y1);
    2222  if (!my1)                  // is the first line strait across?
     
    110110          if (abs(mx1)>abs(my1))
    111111          {
    112             long ae_bd=my1*mx2-mx1*my2;
     112            int32_t ae_bd=my1*mx2-mx1*my2;
    113113            CONDITION(ae_bd,"line intersect fuck up");
    114114            tx2=(mx1*mx2*(b2-b1))/ae_bd+xadd;
     
    117117          else
    118118          {
    119             long db_ea=(my2*mx1-mx2*my1);
     119            int32_t db_ea=(my2*mx1-mx2*my1);
    120120            CONDITION(db_ea,"line intersect fuck up");
    121121            ty2=(mx1*b1*my2-my1*mx2*b2)/db_ea+yadd;
     
    137137
    138138
    139 int setback_intersect(long x1,long y1,long &x2,long &y2,
    140                       long xp1, long yp1, long xp2, long yp2,
    141                      long inside)  // which side is inside the polygon? (0 always setback)
     139int setback_intersect(int32_t x1,int32_t y1,int32_t &x2,int32_t &y2,
     140                      int32_t xp1, int32_t yp1, int32_t xp2, int32_t yp2,
     141                     int32_t inside)  // which side is inside the polygon? (0 always setback)
    142142{
    143143  // the line equations will be put in the form
     
    145145  //     A        B        C 
    146146
    147   long a1,b1,c1,a2,b2,c2,r1,r2;             
     147  int32_t a1,b1,c1,a2,b2,c2,r1,r2;             
    148148
    149149  a1=y2-y1;       
     
    157157  }
    158158
    159   long xdiff,ydiff;
    160 /*  long xdiff=abs(xp1-xp2),ydiff=yp1-yp2; 
     159  int32_t xdiff,ydiff;
     160/*  int32_t xdiff=abs(xp1-xp2),ydiff=yp1-yp2; 
    161161  if (xdiff>=ydiff)                              // increment the endpoints
    162162    if (xp2<xp1) { xp2--; xp1++; }                               
     
    187187           inside==0 || r2==0)
    188188      {
    189         long ae=a1*b2,bd=b1*a2;
     189        int32_t ae=a1*b2,bd=b1*a2;     
    190190        if (ae!=bd)         // co-linear returns 0
    191191        {
Note: See TracChangeset for help on using the changeset viewer.