void ContourManager::process(Mat & _mat, SelectionFlags _flags)
{
    setImage(_mat);

    m_lastFlags = _flags;

    if (_flags & SFHierarchy)
        buildContours(m_tempContours,m_tempHierarchy);
    else
        buildContours(m_tempContours);

    if (_flags & SFBoundings)
        buildBoundings(m_tempContours,m_tempBoundings);

    if (_flags & SFMassCenters)
        buildMassCenters(m_tempContours,m_tempMassCenters);
}//process Mat
const DVRTriangleList &DVRClipGeometry::getContours(
          Real32  dist2RefPlane, 
          bool    positiveWinding, 
    const Vec3f  &sliceNormal    )
{  
    if(!initialized) 
        return contours;

    // compute new active triangle set and for this slice 
    // and update seed vertex set
    updateActiveTriangles(dist2RefPlane, sliceNormal);

    // build contours from active triangle set
    buildContours(dist2RefPlane, positiveWinding, sliceNormal);

    return contours;
}