Obstacle::Obstacle(Router *router, Polygon ply, const unsigned int id) : m_router(router), m_polygon(ply), m_active(false), m_in_move_list(false), m_first_vert(NULL), m_last_vert(NULL) { COLA_ASSERT(m_router != NULL); m_id = m_router->assignId(id); VertID i = VertID(m_id, 0); const bool addToRouterNow = false; VertInf *last = NULL; VertInf *node = NULL; for (size_t pt_i = 0; pt_i < m_polygon.size(); ++pt_i) { node = new VertInf(m_router, i, m_polygon.ps[pt_i], addToRouterNow); if (!m_first_vert) { m_first_vert = node; } else { node->shPrev = last; last->shNext = node; //node->lstPrev = last; //last->lstNext = node; } last = node; i++; } m_last_vert = node; m_last_vert->shNext = m_first_vert; m_first_vert->shPrev = m_last_vert; }
VertID VertID::operator-(const int& rhs) const { return VertID(objID, vn - rhs, props); }
VertID VertID::operator-(const int& rhs) const { return VertID(objID, isShape, vn - rhs); }