VMarkerForTraversor<MAP, ORBIT>::VMarkerForTraversor(MAP& map, bool forceDartMarker, unsigned int thread) :
    m_map(map),
    m_dmark(NULL),
    m_cmark(NULL)
{
    if(!forceDartMarker && map.isOrbitEmbedded(ORBIT))
        m_cmark = new CellMarkerStore<ORBIT>(map, thread) ;
    else
        m_dmark = new DartMarkerStore(map, thread) ;
}
VTraversor3XY<MAP, ORBX, ORBY>::VTraversor3XY(MAP& map, Dart dart, bool forceDartMarker, unsigned int thread) :
    m_map(map),
    m_dmark(NULL),
    m_cmark(NULL),
    m_tradoo(map, dart, thread),
    m_QLT(NULL),
    m_allocated(true),
    m_first(true)
{
    AttributeMultiVector<NoTypeNameAttribute<std::vector<Dart> > >* quickTraversal = map.template getQuickIncidentTraversal<ORBX,ORBY>() ;
    if (quickTraversal != NULL)
    {
        m_QLT  = &(quickTraversal->operator[](map.template getEmbedding<ORBX>(dart)));
    }
    else
    {
        if(!forceDartMarker && map.isOrbitEmbedded(ORBY))
            m_cmark = new CellMarkerStore<ORBY>(map, thread) ;
        else
            m_dmark = new DartMarkerStore(map, thread) ;
    }
}