本文整理汇总了C++中BLOBNBOX_IT::data方法的典型用法代码示例。如果您正苦于以下问题:C++ BLOBNBOX_IT::data方法的具体用法?C++ BLOBNBOX_IT::data怎么用?C++ BLOBNBOX_IT::data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BLOBNBOX_IT
的用法示例。
在下文中一共展示了BLOBNBOX_IT::data方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: plot_to_row
void plot_to_row( //draw a row
TO_ROW *row, //row to draw
ScrollView::Color colour, //colour to draw in
FCOORD rotation //rotation for line
) {
FCOORD plot_pt; //point to plot
//blobs
BLOBNBOX_IT it = row->blob_list();
float left, right; //end of row
if (it.empty()) {
tprintf("No blobs in row at %g\n", row->parallel_c());
return;
}
left = it.data()->bounding_box().left();
it.move_to_last();
right = it.data()->bounding_box().right();
plot_blob_list(to_win, row->blob_list(), colour, ScrollView::BROWN);
to_win->Pen(colour);
plot_pt = FCOORD(left, row->line_m() * left + row->line_c());
plot_pt.rotate(rotation);
to_win->SetCursor(plot_pt.x(), plot_pt.y());
plot_pt = FCOORD(right, row->line_m() * right + row->line_c());
plot_pt.rotate(rotation);
to_win->DrawTo(plot_pt.x(), plot_pt.y());
}
示例2: plot_parallel_row
void plot_parallel_row( //draw a row
TO_ROW *row, //row to draw
float gradient, //gradients of lines
inT32 left, //edge of block
ScrollView::Color colour, //colour to draw in
FCOORD rotation //rotation for line
) {
FCOORD plot_pt; //point to plot
//blobs
BLOBNBOX_IT it = row->blob_list();
float fleft = (float) left; //floating version
float right; //end of row
// left=it.data()->bounding_box().left();
it.move_to_last();
right = it.data()->bounding_box().right();
plot_blob_list(to_win, row->blob_list(), colour, ScrollView::BROWN);
to_win->Pen(colour);
plot_pt = FCOORD(fleft, gradient * left + row->max_y());
plot_pt.rotate(rotation);
to_win->SetCursor(plot_pt.x(), plot_pt.y());
plot_pt = FCOORD(fleft, gradient * left + row->min_y());
plot_pt.rotate(rotation);
to_win->DrawTo(plot_pt.x(), plot_pt.y());
plot_pt = FCOORD(fleft, gradient * left + row->parallel_c());
plot_pt.rotate(rotation);
to_win->SetCursor(plot_pt.x(), plot_pt.y());
plot_pt = FCOORD(right, gradient * right + row->parallel_c());
plot_pt.rotate(rotation);
to_win->DrawTo(plot_pt.x(), plot_pt.y());
}
示例3: plot_blob_list
void plot_blob_list(ScrollView* win, // window to draw in
BLOBNBOX_LIST *list, // blob list
ScrollView::Color body_colour, // colour to draw
ScrollView::Color child_colour) { // colour of child
BLOBNBOX_IT it = list;
for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
it.data()->plot(win, body_colour, child_colour);
}
}
示例4: clear_blobnboxes
static void clear_blobnboxes(BLOBNBOX_LIST* boxes) {
BLOBNBOX_IT it = boxes;
// A BLOBNBOX generally doesn't own its blobs, so if they do, you
// have to delete them explicitly.
for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
BLOBNBOX* box = it.data();
delete box->cblob();
}
}
示例5: plot_box_list
void plot_box_list( //make gradients win
ScrollView *win, //window to draw in
BLOBNBOX_LIST *list, //blob list
ScrollView::Color body_colour //colour to draw
) {
BLOBNBOX_IT it = list; //iterator
win->Pen(body_colour);
win->Brush(ScrollView::NONE);
for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
it.data()->bounding_box().plot(win);
}
}
示例6: insert_blob
void TO_ROW::insert_blob( //constructor
BLOBNBOX *blob //first blob
) {
BLOBNBOX_IT it = &blobs; //list of blobs
if (it.empty ())
it.add_before_then_move (blob);
else {
it.mark_cycle_pt ();
while (!it.cycled_list ()
&& it.data ()->bounding_box ().left () <=
blob->bounding_box ().left ())
it.forward ();
if (it.cycled_list ())
it.add_to_end (blob);
else
it.add_before_stay_put (blob);
}
}