# datatipInitStruct

指定したポリラインに関するdatatip構造体を初期化する.

## 呼び出し手順

    ok=datatipInitStruct(curve_handle,varargin)

## パラメータ

curve_handle

  datatipsと互換性があるエンティティのハンドル

varargin

  datatipsデータ構造体のフィールドを追加またはカスタマイズする際に使用される 一連の対(<field name>,<field value>)

## 説明

この関数は,polylineエンティティのuser_sataフィールドに保存されるtips用の データ構造体を作成する際に datatipCreateによりコールされます.

この関数をコールするのは,datatipsデータ構造体フィールドをカスタマイズしたいユーザ のみです.

## datatip データ構造体

datatipsデータ構造体は少なくとも以下のフィールドを有する`"datatips"` 型の`tlist` です.

interpolate

  論理値で, tipsの位置をメッシュ点の間で補間するかどうかを指定します.

replace

  論理値で,新しいtipを追加する際に他のtipを消去するかどうかを指定します.

formatfunction

  Scilab関数で, datatipsに表示されるテキストを整形する際に コールされます.この関数は以下のようにコールされます: `str=datatipDefaultDisplay(curve_handle,pt,index)` ただし, `curve_handle` はポリラインまたは曲面のハンドル, `pt` は点の座標, `index` は データの中の点のインデックス(補間モードの場合は空)です.

tips

  ハンドルの配列. これらの各々は曲線の指定されたtipを指します.

プログラマは,オプション引数`datatipInitStruct` `varargin`により 他のフィールドをdatatipsデータ構造体に追加することが できます.

## 参照

- datatipCreate
- datatips

## 例

        t=linspace(0,10,1000);
        clf();
        plot(t.*sin(t),t.*cos(t),1.5*t.*sin(t),1.5*t.*cos(1.5*t));
        e=gce();
        p1=e.children(1);//ポリラインのハンドルを取得
        p2=e.children(2);//ポリラインのハンドルを取得

        function str=mytipfmt(curve,pt,index)
          ds=datatipGetStruct(curve)
          if index<>[] then
            t=ds.param(index);
          else //interpolated
            [d,ptp,i,c]=orthProj(curve.data,pt);
            t=ds.param(i)+(ds.param(i+1)-ds.param(i))*c;
          end
          str=msprintf("%s\nt=%-0.3g",ds.name,t);
        endfunction

        ok=datatipInitStruct(p1,"formatfunction","mytipfmt","param",t,"name","spiral");
        ok=datatipInitStruct(p2,"formatfunction","mytipfmt","param",t,"name","curve");

        datatipCreate(p1,500);
        datatipCreate(p1,900);
        datatipCreate(p2,750);