本文整理汇总了C++中PoolVector::remove方法的典型用法代码示例。如果您正苦于以下问题:C++ PoolVector::remove方法的具体用法?C++ PoolVector::remove怎么用?C++ PoolVector::remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PoolVector
的用法示例。
在下文中一共展示了PoolVector::remove方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: forward_gui_input
//.........这里部分代码省略.........
if (edited_point != -1) {
//apply
PoolVector<Vector2> poly = node->get_navigation_polygon()->get_outline(edited_outline);
ERR_FAIL_INDEX_V(edited_point, poly.size(), false);
poly.set(edited_point, edited_point_pos);
undo_redo->create_action(TTR("Edit Poly"));
undo_redo->add_do_method(node->get_navigation_polygon().ptr(), "set_outline", edited_outline, poly);
undo_redo->add_undo_method(node->get_navigation_polygon().ptr(), "set_outline", edited_outline, pre_move_edit);
undo_redo->add_do_method(node->get_navigation_polygon().ptr(), "make_polygons_from_outlines");
undo_redo->add_undo_method(node->get_navigation_polygon().ptr(), "make_polygons_from_outlines");
undo_redo->add_do_method(canvas_item_editor->get_viewport_control(), "update");
undo_redo->add_undo_method(canvas_item_editor->get_viewport_control(), "update");
undo_redo->commit_action();
edited_point = -1;
return true;
}
}
} else if (mb->get_button_index() == BUTTON_RIGHT && mb->is_pressed() && edited_point == -1) {
int closest_outline = -1;
int closest_idx = -1;
Vector2 closest_pos;
real_t closest_dist = 1e10;
for (int j = 0; j < node->get_navigation_polygon()->get_outline_count(); j++) {
PoolVector<Vector2> points = node->get_navigation_polygon()->get_outline(j);
int pc = points.size();
PoolVector<Vector2>::Read poly = points.read();
for (int i = 0; i < pc; i++) {
Vector2 cp = xform.xform(poly[i]);
real_t d = cp.distance_to(gpoint);
if (d < closest_dist && d < grab_threshold) {
closest_dist = d;
closest_pos = cp;
closest_outline = j;
closest_idx = i;
}
}
}
if (closest_idx >= 0) {
PoolVector<Vector2> poly = node->get_navigation_polygon()->get_outline(closest_outline);
if (poly.size() > 3) {
undo_redo->create_action(TTR("Edit Poly (Remove Point)"));
undo_redo->add_undo_method(node->get_navigation_polygon().ptr(), "set_outline", closest_outline, poly);
poly.remove(closest_idx);
undo_redo->add_do_method(node->get_navigation_polygon().ptr(), "set_outline", closest_outline, poly);
undo_redo->add_do_method(node->get_navigation_polygon().ptr(), "make_polygons_from_outlines");
undo_redo->add_undo_method(node->get_navigation_polygon().ptr(), "make_polygons_from_outlines");
undo_redo->add_do_method(canvas_item_editor->get_viewport_control(), "update");
undo_redo->add_undo_method(canvas_item_editor->get_viewport_control(), "update");
undo_redo->commit_action();
} else {
undo_redo->create_action(TTR("Remove Poly And Point"));
undo_redo->add_undo_method(node->get_navigation_polygon().ptr(), "add_outline_at_index", poly, closest_outline);
poly.remove(closest_idx);
undo_redo->add_do_method(node->get_navigation_polygon().ptr(), "remove_outline", closest_outline);
undo_redo->add_do_method(node->get_navigation_polygon().ptr(), "make_polygons_from_outlines");
undo_redo->add_undo_method(node->get_navigation_polygon().ptr(), "make_polygons_from_outlines");
undo_redo->add_do_method(canvas_item_editor->get_viewport_control(), "update");
undo_redo->add_undo_method(canvas_item_editor->get_viewport_control(), "update");
undo_redo->commit_action();
}
return true;
}
}
} break;
}
}
Ref<InputEventMouseMotion> mm = p_event;
if (mm.is_valid()) {
if (edited_point != -1 && (wip_active || mm->get_button_mask() & BUTTON_MASK_LEFT)) {
Vector2 gpoint = mm->get_position();
Vector2 cpoint = canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint);
cpoint = canvas_item_editor->snap_point(cpoint);
edited_point_pos = node->get_global_transform().affine_inverse().xform(cpoint);
canvas_item_editor->get_viewport_control()->update();
}
}
return false;
}
示例2: godot_pool_byte_array_remove
void GDAPI godot_pool_byte_array_remove(godot_pool_byte_array *p_self, const godot_int p_idx) {
PoolVector<uint8_t> *self = (PoolVector<uint8_t> *)p_self;
self->remove(p_idx);
}
示例3:
void GDAPI godot_pool_vector3_array_remove(godot_pool_vector3_array *p_self, const godot_int p_idx) {
PoolVector<Vector3> *self = (PoolVector<Vector3> *)p_self;
self->remove(p_idx);
}
示例4: godot_pool_color_array_remove
void GDAPI godot_pool_color_array_remove(godot_pool_color_array *p_self, const godot_int p_idx) {
PoolVector<Color> *self = (PoolVector<Color> *)p_self;
self->remove(p_idx);
}
示例5: godot_pool_string_array_remove
void GDAPI godot_pool_string_array_remove(godot_pool_string_array *p_self, const godot_int p_idx) {
PoolVector<String> *self = (PoolVector<String> *)p_self;
self->remove(p_idx);
}