void BoundaryVisitor::visit( const LineString& g ) { if ( g.isEmpty() ) { _boundary.reset(); return ; } if ( g.startPoint().coordinate() == g.endPoint().coordinate() ) { _boundary.reset() ; } else { std::auto_ptr< MultiPoint > boundary( new MultiPoint ); boundary->addGeometry( g.startPoint() ); boundary->addGeometry( g.endPoint() ); _boundary.reset( boundary.release() ); } }