void view::point_added(size_t idx, ani::point_pos const& new_pos)
{

    extra_route_chart_->point_added(idx, new_pos);
    
    points_changed();
    reset_points();
}
view::view(kernel::object_create_t const& oc, std::vector<geo_point_2> const& points)
    : base_view_presentation(oc)
    , obj_data_base         (settings_t(),make_anchor_points(points))
    , extra_route_chart_    (extra_route_chart(this))
{
    points_changed();
    msg_disp()
        .add<msg::add_point_msg   >(boost::bind(&view::on_point_added   , this, _1))
        .add<msg::settings_msg_t>  (boost::bind(&view::on_settings, this, _1))
        ;
}
view::view(kernel::object_create_t const& oc, dict_copt dict)
    : base_view_presentation(oc)
    , obj_data_base         (dict)
    , extra_route_chart_    (extra_route_chart(this))
{
    points_changed();
    msg_disp()
        .add<msg::add_point_msg   >(boost::bind(&view::on_point_added   , this, _1))
        .add<msg::settings_msg_t>  (boost::bind(&view::on_settings, this, _1))
        ;
}
ctrl::ctrl(kernel::object_create_t const& oc, std::vector<cg::geo_point_2> && points)
    : view                    (oc, points)
    , ani_                    (find_first_object<ani_object::info_ptr>(collection_))
    , extra_route_chart_      (extra_route_chart(this))
{
    init();
    check_segments();
    points_changed();
    reset_points();

    //visible(false) ;
}
void ctrl::point_removed(size_t idx)
{
    extra_route_chart_->point_removed(idx);
    points_changed();
    reset_points();
}
void ctrl::point_dragged(size_t idx, ani::point_pos const& new_pos)
{
    extra_route_chart_->point_dragged(idx, new_pos);
    points_changed();
    reset_points();
}