<?xml version="1.0" encoding="UTF-8"?>

<!--

 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab

 * Copyright (C) INRIA

 *


 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.

 *

 -->

<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="rubberbox">

    <refnamediv>

        <refname>rubberbox</refname>

        <refpurpose>矩形選択用の輪ゴムボックス</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

        <title>呼び出し手順</title>

        <synopsis>[final_rect,btn]=rubberbox()

            [final_rect,btn]=rubberbox(initial_rect)

            [final_rect,btn]=rubberbox(edition_mode)

            [final_rect,btn]=rubberbox(initial_rect, edition_mode)

        </synopsis>

    </refsynopsisdiv>

    <refsection>

        <title>Pパラメータ</title>

        <variablelist>

            <varlistentry>

                <term>initial_rect</term>

                <listitem>

                    <para>2個または4個のエントリを有するベクトル.4個のエントリを有する場合,

                        [x_min, y_max, width, height]で定義される初期矩形を指定し,

                        2個のエントリを有する場合, 幅と高さは0と仮定されます.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>edition_mode</term>

                <listitem>

                    <para>

                        論理値, edition_mode が<literal>%t</literal>の場合,

                        ボタンを押すと最初の角が選択され,開放すると反対の角が選択されます.

                        edition_mode が<literal>%f</literal>の場合, ボタンを押すか

                        クリックすると最初の角,クリックすると反対の角が選択されます.

                        デフォルトは %f です.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>final_rect</term>

                <listitem>

                    <para>[x_min, y_max, width, height]で定義された矩形</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>btn</term>

                <listitem>

                    <para>整数, マウスボタンがクリックされた回数</para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <literal>rubberbox(initial_rect)</literal> はマウスに基づき

            カレントのグラフィックウインドウ内で輪ゴムボックスを

            追跡します.

            ボタンがクリックされると, <literal>rubberbox</literal> は

            <literal>final_Rect</literal>で定義された最後の矩形を返します

            引数<literal>initial_rect</literal>が指定されない場合,

            最初の角の位置を固定するためのクリックが必要です.

        </para>

    </refsection>

    <refsection>

        <title>例</title>

        <programlisting role="example"><![CDATA[

clf

plot2d()

a = gca();

db = a.data_bounds;

x0 = (db(1)*2+db(2))/3;

dx = (db(2)-db(1))/3;

y0 = (db(3)+db(4)*2)/3;

dy = (db(4)-db(3))/3;

xtitle(msprintf("With an initial starting corner: x0 = %0.2f, y0 = %0.2f",x0,y0))

r = rubberbox([x0 y0])

]]></programlisting>

        <programlisting role="example"><![CDATA[

clf

plot2d()

a = gca();

db = a.data_bounds;

x0 = (db(1)*2+db(2))/3;

dx = (db(2)-db(1))/3;

y0 = (db(3)+db(4)*2)/3;

dy = (db(4)-db(3))/3;

xtitle(msprintf("With an initial box: x0 = %0.2f, y0 = %0.2f, width = %0.2f, hight = %0.2f,",x0-dx/4,y0+dy/5,2*dx,dy))

r = rubberbox([x0-dx/4 y0+dy/5 2*dx dy])

]]></programlisting>

        <programlisting role="example"><![CDATA[

clf

plot2d()

a = gca();

db = a.data_bounds;

x0 = (db(1)*2+db(2))/3;

dx = (db(2)-db(1))/3;

y0 = (db(3)+db(4)*2)/3;

dy = (db(4)-db(3))/3;

xtitle("In press -- drag -- release mode selection:")

r = rubberbox(%t)

]]></programlisting>

        <programlisting role="example"><![CDATA[

clf

plot2d()

a = gca();

db = a.data_bounds;

x0 = (db(1)*2+db(2))/3;

dx = (db(2)-db(1))/3;

y0 = (db(3)+db(4)*2)/3;

dy = (db(4)-db(3))/3;

xtitle("In starting click -- drag -- stopping click mode selection:")

r = rubberbox()

 ]]></programlisting>

    </refsection>

    <refsection role="see also">

        <title>参照</title>

        <simplelist type="inline">

            <member>

                <link linkend="xrect">xrect</link>

            </member>

            <member>

                <link linkend="xrects">xrects</link>

            </member>

            <member>

                <link linkend="xclick">xclick</link>

            </member>

            <member>

                <link linkend="xgetmouse">xgetmouse</link>

            </member>

            <member>

                <link linkend="dragrect">dragrect</link>

            </member>

        </simplelist>

    </refsection>

</refentry>

