Herror ::drag_region3 (
    Hobject SourceRegion,
    Hobject MaskRegion,
    Hobject *DestinationRegion,
    const HTuple &WindowHandle,
    const HTuple &Row,
    const HTuple &Column
)
HRegionArray HRegionArray::DragRegion3 (
    const HRegionArray &MaskRegion,
    const HTuple &WindowHandle,
    const HTuple &Row,
    const HTuple &Column
) const

Interactive movement of a region with restriction of positions.

You use ::drag_region3 to move a region on the display by mouse. It corresponds to the procedure ::drag_region2 with the enhancement, that all points are specified which can be entered by mouse. If you move the mouse outside of this area (MaskRegion), the region on the point with the smallest distance inside MaskRegion will be displayed.


Attention

The region's gray values are not moved. With moving the input region it is not sure whether the gray values of the output regions are filled reasonable. This may occur if the gray values of the input regions do not comprise the whole image.


Parameters

SourceRegion (input_object)
region-array -> Hobject: HRegionArray
Regions to move.

MaskRegion (input_object)
region-array -> Hobject: HRegionArray
Points on which it is allowed for a region to move.

DestinationRegion (output_object)
region-array -> Hobject * : HRegionArray
Moved regions.

WindowHandle (input_control)
window -> HTuple.long
Window_id.

Row (input_control)
point.y -> HTuple.long
Row index of the reference point.
Default value: 100
Suggested values: 0, 64, 128, 256, 512
Typical range of values: 0 <= Row <= 1024

Column (input_control)
point.x -> HTuple.long
Column index of the reference point.
Default value: 100
Suggested values: 0, 64, 128, 256, 512
Typical range of values: 0 <= Column <= 1024


Result

::drag_region3 returns H_MSG_TRUE, if a region is entered, if the window is valid and the needed drawing mode (see ::set_insert) is available. If necessary, an exception handling is raised. You may determine the behavior after an empty input with ::set_system('no_object_result',<Result>).


Possible Predecessors

::open_window, ::get_mposition


Possible Successors

::reduce_domain, ::disp_region, ::set_colored, ::set_line_width, ::set_draw, ::set_insert, ::affine_trans_image


Alternatives

::get_mposition, ::move_region, ::drag_region1, ::drag_region2


See also

::set_insert, ::set_draw, ::affine_trans_image


Module

System



Copyright © 1996-2002 MVTec Software GmbH