pub fn los(&self, from:&Location, to:&Location) -> bool {
        if Rc::ptr_eq(&from.map, &to.map) {
            return from.map.borrow().los(&from.pos, &to.pos).0;
        }
        return false;
    }
// \todo exceptionally GC-thrashing
// * need variants that just return bool in the Map class
// * need backing caches within Map class

\todo exceptionally GC-thrashing
need variants that just return bool in the Map class
need backing caches within Map class
\ todo exceptionally GC - thrashing need variants that just return bool in the Map class need backing caches within Map class
pub fn los(&self, from:&Location, to:&Location) -> bool {
        if Rc::ptr_eq(&from.map, &to.map) {
            return from.map.borrow().los(&from.pos, &to.pos).0;
        }
        return false;
    }
pub fn los ( & self , from : & Location , to : & Location ) -> bool { if Rc :: ptr_eq ( & from . map , & to . map ) { return from . map . borrow ( ) . los ( & from . pos , & to . pos ) . 0 ; } return false ; }
\todo exceptionally GC-thrashing
 need variants that just return bool in the Map class
 need backing caches within Map class
\ todo exceptionally GC - thrashing need variants that just return bool in the Map class need backing caches within Map class
&self
from
&Location
to
&Location
&self
from
&Location
to
&Location