bool CSpaceRestrictorWrapper::inside (u32 level_vertex_id, bool partially_inside, float radius) const { const Fvector &position = level_graph().vertex_position(level_vertex_id); float offset = level_graph().header().cell_size()*.5f - EPS_L; if (partially_inside) return ( inside (construct_position(level_graph(),level_vertex_id,position.x + offset,position.z + offset),radius) || inside (construct_position(level_graph(),level_vertex_id,position.x + offset,position.z - offset),radius) || inside (construct_position(level_graph(),level_vertex_id,position.x - offset,position.z + offset),radius) || inside (construct_position(level_graph(),level_vertex_id,position.x - offset,position.z - offset),radius) || inside (Fvector().set(position.x,position.y,position.z),radius) ); else return ( inside (construct_position(level_graph(),level_vertex_id,position.x + offset,position.z + offset),radius) && inside (construct_position(level_graph(),level_vertex_id,position.x + offset,position.z - offset),radius) && inside (construct_position(level_graph(),level_vertex_id,position.x - offset,position.z + offset),radius) && inside (construct_position(level_graph(),level_vertex_id,position.x - offset,position.z - offset),radius) && inside (Fvector().set(position.x,position.y,position.z),radius) ); }
bool CSpaceRestrictionBase::inside (u32 level_vertex_id, bool partially_inside, float radius) { const Fvector &position = ai().level_graph().vertex_position(level_vertex_id); float offset = ai().level_graph().header().cell_size()*.5f - EPS_L; if (partially_inside) return ( CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x + offset,position.z + offset),radius) || CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x + offset,position.z - offset),radius) || CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x - offset,position.z + offset),radius) || CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x - offset,position.z - offset),radius) || CSpaceRestrictionBase_inside(this,Fvector().set(position.x,position.y,position.z),radius) ); else return ( CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x + offset,position.z + offset),radius) && CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x + offset,position.z - offset),radius) && CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x - offset,position.z + offset),radius) && CSpaceRestrictionBase_inside(this,construct_position(level_vertex_id,position.x - offset,position.z - offset),radius) && CSpaceRestrictionBase_inside(this,Fvector().set(position.x,position.y,position.z),radius) ); }