Differences From Artifact [05f672d15009c4b5]:
- File        
_lib/geo/pt_in_poly.cpp
- 2011-02-23 09:21:16 - part of checkin [4fd800b3a8] on branch trunk - Copied from private svn repository. (user: kinaba) [annotate]
 
- File        
lib/geo/pt_in_poly.cpp
- 2011-02-23 11:18:09 - part of checkin [23dfcca431] on branch trunk - renamed _lib to lib (user: kinaba) [annotate]
 
To Artifact [f28d7402b7cb4529]:
- File        
lib/geo/pt_in_poly.cpp
- 2013-06-30 08:35:05 - part of checkin [07ad2e1283] on branch trunk - Geocon library update. (user: kinaba) [annotate]
 
     2      2   //-------------------------------------------------------------
     3      3   // The circle passing three points
     4      4   //
     5      5   // Verified by
     6      6   //   - AOJ 0012 (only triangles)
     7      7   //-------------------------------------------------------------
     8      8   
     9         -double outer_prod( CMP a, CMP b )
    10         -{
    11         - return (a.real()*b.imag() - b.real()*a.imag())/2;
    12         -}
            9  +double outer_prod(const CMP& a, const CMP& b) { return imag(conj(a)*b); }
    13     10   
    14     11   bool point_in_polygon( vector<CMP>& ps, CMP p )
    15     12   {
    16     13    bool in = false;
    17     14    for(int i=0; i<ps.size(); ++i) {
    18     15     CMP a = ps[i] - p;
    19     16     CMP b = ps[(i+1)%ps.size()] - p;