# axes_properties

axesエンティティプロパティの説明

## 説明

Axesエンティティはグラフィックエンティティ階層の第2レベルのエンティティです. このエンティティは 座標系を変更するパラメータと子の作成時のパラメータのデフォルト値と共に 描画する軸を定義します.

Axesプロパティs
  parent:

    このフィールドは親の図のハンドルを有します.

  children:

    FA ベクトルは,軸の子である全てのグラフィックオブジェクトのハンドルを有します. これらのグラフィックオブジェクトは以下の型となります: `"Compound"`, `"Rectangle"`, `"Polyline"`, `"Segs"`, `"Arc"`, `"Grayplot"`,.. (Compound_properties, rectangle_properties, champ_properties, axis_properties, polyline_properties, segs_properties, grayplot_properties, surface_properties, fec_properties, text_properties, legend_properties参照)

  visible:

    このフィールドは軸の`visible`プロパティの値を有します. この値は`"on"` または`"off"`となります. デフォルトで,軸の visibleは `"on"`で, この場合, 全ての "visible" な子は画面に表示されます. `"off"` の場合, 軸とその全ての子は描画されません.

  axes_visible:

    `1x3` 文字列ベクトル. このプロパティは 各軸が描画されるかどうかを指定します. この値はグローバル設定の場合`"on"` または `"off"` となります. 一つの軸のみ変更する場合, 構文は `axes_visible(N)`となります. ただし, `N` は `1,2` または `3`で, それぞれ, `x,y` または `z`軸に対応します. データは必要に応じてスケーリングされ,値が `"on"`の場合, グリッドが描画されます. `gca()`コマンド(`get"current_axes")`のショートカット) または`gcf()`(`get(current_figure)`のショートカット) により簡単な軸エンティティを作成する際,軸の可視性(axes visiblibilty)は `"off"`に設定されます.

  axes_reverse:

    3つの軸(X,Y,Z)に対応する`1x3`文字列ベクトル. 各軸について,このプロパティは値の増加方向を指定します. `"off"`の場合,デフォルトの方向が使用されます. `"on"`の場合, 方向は逆になります. 一つの文字列のみ(`"on"` または `"off"`) を使用することも可能です. この場合, 3つのデータは同じ値に設定されます.

  grid:

    フィールドの値はベクトル`[x-grid,y-grid,z-grid]`です. ただし,`x-grid`はx軸の描画グリッドを制御し, `y-grid,z-grid`はそれぞれy軸,z軸に対応します. デフォルト値は `-1`で,グリッドは描画されません. それ以外の場合, grid の値により指定された色添字により

  grid_position:

    この文字列は他のグラフィックエンティティに相対的なグリッドの位置 を指定します.その値には 他のグラフィックエンティティの前にグリッドを描画する `"foreground"`, もしくは グリッドの背後に描画する`"background"`のどちらかを指定します.

  x_location:

    x軸の位置を指定します.指定可能な値は:

    - `"bottom"`. この場合,x軸は軸の矩形の最下部に描画されます.

    - `"top"`. この場合,x軸は軸の矩形の 最上部に描画されます.

    - `"middle"`. この場合,x軸は中心部に描画されます.

    - `"origin"`. この場合,x軸は原点に描画されます.

  y_location:

    y軸の位置を指定します. 以下の値を指定可能です:

    - `"left"`.この場合,y軸は軸の矩形の左に描画されます.

    - `"right"`. この場合,y軸は軸の矩形の右に描画されます.

    - `"middle"`. この場合,y軸は中心に描画されます.

    - `"origin"`. この場合,y軸は原点に描画されます.

  title:

    Axesエンティティに付属するオブジェクトで,Label構造体の グラフィックハンドルを返します (label_properties参照). このフィールドはこのラベルのオプションで,タイトルを定義します.

  x_label:

    Axesエンティティに付属するオブジェクトで, Label構造体のハンドルを 返します(label_properties参照). このフィールドはこのラベルのオプションで,x軸のラベルを定義します.

  y_label:

    Axesエンティティに付属するオブジェクトで, Label構造体のハンドルを 返します(label_properties参照). このフィールドはこのラベルのオプションで,y軸のラベルを定義します.

  z_label:

    Axesエンティティに付属するオブジェクトで, Label構造体のハンドルを 返します(label_properties参照). このフィールドはこのラベルのオプションで,z軸のラベルを定義します.

  auto_ticks:

    各軸のauto_ticksステータスを指定する `1x3` 文字列ベクトル. このプロパティは,各軸に計算アルゴリズムに基づく目盛が付くか否か (目盛をユーザが指定)を指定します. この値は,グローバルな設定値で, `"on"` または `"off"`とします. 1つの軸にのみ適用する場合の構文は`auto_ticks(N)`で, `N`は`1,2` または `3` とし,それぞれ,`x,y` または `z`軸に 対応します. `x_ticks, y_ticks` または`z_ticks`により 目盛(テキストまたは文字)を編集すると,対応する軸の `auto_ticks`が自動的に`"off"`に設定 されることに注意してください.

  x_ticks.locations:

    x軸の目盛の位置を有する実数ベクトル. このプロパティは(同じ大きさの)新しい実数ベクトルを指定することにより 編集可能です. 目盛を多くまたは少なくするには,対応する文字列ベクトル`x_ticks.labels` を定義する`tlist` `x_ticks` も操作することができます.

  y_ticks.locations:

    y軸の目盛の位置を有する実数ベクトル. このプロパティは(同じ大きさの)新しい実数ベクトルを指定することにより 編集可能です. 目盛を多くまたは少なくするには,対応する文字列ベクトル`y_ticks.labels` を定義する`tlist` `y_ticks` も操作することができます.

  z_ticks.locations:

    z軸の目盛の位置を有する実数ベクトル. このプロパティは(同じ大きさの)新しい実数ベクトルを指定することにより 編集可能です. 目盛を多くまたは少なくするには,対応する文字列ベクトル`z_ticks.labels` を定義する`tlist` `z_ticks` も操作することができます.

  x_ticks.labels:

    x軸の目盛のラベルを有する文字列ベクトル. このプロパティは(同じ大きさの)新しい実数ベクトルを指定することにより 編集可能です. 目盛を多くまたは少なくするには,対応する実数ベクトル`x_ticks.locations` を定義する`tlist` `x_ticks` も操作することができます.

    Scilab 5.2以降, LaTeX または MathML式を 書くことができます.

  y_ticks.labels:

    y軸の目盛のラベルを有する文字列ベクトル. このプロパティは(同じ大きさの)新しい実数ベクトルを指定することにより 編集可能です. 目盛を多くまたは少なくするには,対応する実数ベクトル`y_ticks.locations` を定義する`tlist` `y_ticks` も操作することができます.

    Scilab 5.2以降, LaTeX または MathML式を 書くことができます.

  z_ticks.labels:

    z軸の目盛のラベルを有する文字列ベクトル. このプロパティは(同じ大きさの)新しい実数ベクトルを指定することにより 編集可能です. 目盛を多くまたは少なくするには,対応する実数ベクトル`z_ticks.locations` を定義する`tlist` `z_ticks` も操作することができます.

    Scilab 5.2以降, LaTeX または MathML式を 書くことができます.

  box:

    このプロパティは軸を箱で囲うかどうかを指定します. 値には, `"off"`, `"hidden_axes"`, `"back_half"` または `"on".`のどれかを指定します. プロパティが `"off"`の場合,箱は描画されません. プロパティが`"hidden_axes"`の場合, 背景枠のみが描画されます. プロパティが`"back_half"`の場合, X, Y および Z 軸も描画されます. プロパティが`"on"`の場合,箱全体が描画されます.

  filled:

    このプロパティは軸の背景が描画されるかどうかを指定します. 値には, `"off"` または `"on".`を指定します. このプロパティが `"off"`の場合, `background`プロパティで指定された色により 背景が描画されます.

  sub_ticks:

    このフィールドは主目盛の間に描画される目盛の数を設定します. このフィールドの値はベクトル `[nx,ny]`で, `nx`はx軸の副目盛の数, `ny`はy軸の副目盛の数となります.

  font_style:

    目盛ラベルの表示に使用するフォントを指定します. この値はロード済みのフォントの一つを指す正の整数です. この値は最初のフォントを指す 0 と最後のフォントを指す (ロード済みのフォントの数 - 1) の間である必要があります. より詳細な情報についてはgraphics_fonts を参照ください.

  font_size:

    スカラーで,目盛ラベルに使用する文字の大きさを指定します. `fractional_font`プロパティが `"off"`の場合, 値の整数部分のみが使用されます. より詳細な情報についてはgraphics_fonts を参照ください.

  font_color:

    このプロパティは目盛ラベルの色を定義します.

  fractional_font:

    このプロパティは目盛ラベルが分数のフォントの大きさにより表示されるかどうかを指定します. 値には`"on"` または `"off"`を指定します. `"on"`の場合,`font_size`の浮動小数点の値が 表示に使用され,フォントにアンチエイリアス処理が適用されます. `"off"` の場合整数部のみが使用され,フォントのスムージングは 行われません.

  isoview:

    このプロパティは x, y および z軸を等軸スケールにするため (例えば曲線 sin(x) および cos(x) を表示する際に楕円ではなく円となるように) に使用されます. 値には`"on"` または `"off"`を指定します. 値が `"on"` の場合,対応する図のプロパティ `figure_size`の値に基づき 軸の `data_bounds` は自動的に変更されます.

  cube_scaling:

    このプロパティは`3d mode`で使用され, x, y および z軸の再スケーリングを行います. `data`を 1x1x1 の立方体に適合させることができます ; 目的は, 軸スケールが個々に非常に異なる場合に3次元グラフィックをより よく表示することです. 値には `"on"` または `"off"` (デフォルト値)を指定します. 多くの場合, Matlabのような3次元表示の生成を容易にします.

  view:

    このフィールドは,グラフィック領域に関係します. `"3d"`を3次元視点に対応する値として指定する ことができます. その他の場合,初期値である2次元プロットを意味する `"2d"` (デフォルト値)とすることができます. このフラグはユーザが入力したプロットにも依存します: 例えば, `plot3d` コマンドは `view`フラグを`"2d"`から `"3d"`に切り替えます.

  rotation_angles:

    このフィールドはベクトル `[alpha,theta]`です. この2つの値は視点の球座標(単位:度)を指定します.

  log_flags:

    各軸のスケール(線形または対数)を指定する3文字の文字列. 各文字はそれぞれX, YおよびZ軸のスケールを指定します. 値には,線形スケールの場合に`'n'`, 対数スケールの場合に `'l'`を指定します.

  tight_limits:

    このプロパティの値が `"on"` の場合, 軸は厳密に`data_bounds`の最小値と最大値に 調整されます. このフィールドの値が `"off"`の場合, 目盛ラベルを見栄え良く表示するなどのために境界が拡大される 場合があります.

  data_bounds:

    このフィールドにはx,yおよびz座標の境界値が含まれます. このフィールドは行列 `[xmin,ymin,zmin;xmax,ymax,zmax]`または `[xmin,ymin;xmax,ymax]`となります. 厳密に指定したデータ境界にするためには`tight_limits` を `"on"`に設定する必要があることに注意してください (上記参照).

  zoom_box:

    このフィールドには座標系が指定された場合の カレントのズームボックスが含まれます. この値は空の行列(ズームなし)または(より小さな軸ボックスを指定する)ベクトル `[xmin,ymin,xmax,ymax,zmin,zmax]`となります.

  margins:

    A vector `[margin_left,margin_right,margin_top,margin_bottom]` はこの軸の余白部を指定します.このベクトルは[0 1]の範囲の数値で構成され, デフォルト値は [0.125 0.125 0.125 0.125]です. これらの数値は`axes_bounds`プロパティの対応する値, つまり, `margin_left` および `margin_right` の場合は `width`, `margin_top` および `margin_bottom`の場合は`height` に関する相対比です.

  axes_bounds:

    ベクトル `[x_left,y_up,width,height]` はこの軸で 使用される図の部分を指定します. ただし, `x_left`, `y_up`, `width` および`height`は[0 1]の範囲の数値で, それぞれ左上隅の位置と軸の寸法を指定します. (これらの数値は対応する図`figure_size`プロパティの値 に対する比です.)

  hidden_axis_color:

    このプロパティはhidden軸の色を定義します. カレントのカラーマップに関連する添字を指定します.

  user_data:

    このフィールドは軸データ構造に任意のScilab変数を保存し, 再度取得するために使用できます.

高レベル関数のプロパティ

  `plot`, `plot2dx`, `grayplot` および `matplot` 関数は, 引数`frameflag`により指定されない場合, 以降のプロットをマージする方法を決定するために 以下のプロパティを使用します. マージの結果は以下の2つのプロパティにより決定されます:

  auto_clear:

    このプロパティが`"on"`に等しい場合, 高レベルグラフィクをコールする際に カレントの軸は再初期化され,描画前に全ての子が消去されます. この値が`"off"`の場合, 描画内容が`"auto_scale"`プロパティに基づき カレントの軸に追加されます.

  auto_scale:

    軸データ境界を更新するためのプロパティ. この値が `"on"`の場合, プロットを新規に行うとカレントの軸プロパティは 以前とカレントのプロットに適合するよう調整されます. この値が `"off"`の場合, 新規のプロットはカレントの軸データ境界内に描画されます.

子のデフォルト値:
  hiddencolor:

    このプロパティは,隠蔽された部分の色を制御します. カレントの色マップへの相対インデックスを値として指定します. その他の場合,値が負の時,隠蔽された部分は面と同じ色となります.

  line_mode:

    このフィールドには, Segs Rectangle Legend Axis Plot3d Fac3d および Polylineオブジェクトに関する デフォルトの`line_mode` プロパティの値が含まれます. この値には, `"on"` (デフォルト) または `"off"`を指定します.

  line_style:

    このフィールドには, Segs, Arcs, Rectangle および Polylineオブジェクトに関する デフォルトの`line_style` プロパティの値が含まれます. `line_style` は線を描画する際に使用される線の種類を 選択します. その値には, [0 8] の範囲の整数を指定します. 0 および 1は実線, その他の値は破線(破線,1点鎖線,長い1点鎖線,非常に大きい1点鎖線, 非常に大きく長い1点鎖線,点,2点)の選択を意味します.

  thickness:

    このフィールドは線の描画を行う全てのオブジェクトの`thickness` プロパティのデフォルト値を含みます. この値は,ピクセル単位の線幅を指定する正の実数です. 実際に表示される幅は指定された幅を最も近い整数に丸めることにより定義されます. 唯一の例外は,`thickness`の合計値が使用されるベクトルの エキスポートの場合です.

  mark_mode:

    このフィールドには,Segs Rectangle Legend Axis Plot3d Fac3d および Polyline オブジェクトに関する`mark_mode`プロパティの デフォルト値が含まれます. この値には,`"on"` または `"off"` (デフォルト)を指定します.

  mark_style:

    このフィールドには,Segs Rectangle Legend Axis Plot3d Fac3d および Polyline オブジェクトに関する`mark_style`プロパティの デフォルト値が含まれます. `mark_style` は表示される記号の種類を選択します. この値には, 以下を意味する[0 9]の範囲の整数を指定します: ドット, プラス, 十宇, 星型, 塗りつぶされた菱形, 菱形, 上三角, 下三角, 三つ葉および円.

  mark_size_unit:

    このフィールドには,Segs Rectangle Legend Axis Plot3d Fac3d および Polyline に関する`mark_size_unit`プロパティのデフォルト値が 含まれます. `mark_size_unit`に`"point"`が 指定された場合,`mark_size`の値は 直接ポイント単位で指定されます. `mark_size_unit`に`"tabulated"`が 指定された場合,`mark_size`は フォントサイズ配列に相対的に設定されます: この場合,値には [0 5]の範囲の整数値を指定し, それぞれ, 8pt, 10pt, 12pt, 14pt, 18pt および 24ptを意味します. plot2dおよびScilabの組み込み関数は `tabulated`モードがデフォルトであることに注意 してください; plotを使用する場合, `point`モードが自動的に有効になります.

  mark_size:

    このフィールドには,Segs Rectangle Legend Axis Plot3d Fac3d および Polylineオブジェクトに関する`mark_size`プロパティの デフォルト値が含まれます. `mark_size` は表示される記号のフォントの大きさを 選択します. この値は [0 5]の範囲の整数である必要があり,それぞれ, 8pt, 10pt, 12pt, 14pt, 18pt および 24pt ( getmark参照)を意味します.

  mark_foreground:

    このフィールドには, この軸のもとで作成された全てのオブジェクトに関する`mark_foreground` プロパティのデフォルト値が含まれます. Polyline, rectangle, legend, surface, segment および axisオブジェクトは 記号の表面(縁)色を指定する際にこのプロパティを使用します. 値には,(カレントのカラーマップに基づく)色のインデックスまたは 透明な輪郭を意味する 0 を指定します. デフォルト値は`-1`(デフォルトの黒)で, `color_map`を変更した場合でも, この値`-1`は常にデフォルトの黒色を指し続けることに 注意してください.

  mark_background:

    このフィールドには, この軸のもとで作成された全てのオブジェクトに関する `mark_background` プロパティのデフォルト値が含まれます. Polyline, rectangle, legend, surface, segment および axisオブジェクトは 背景(表面)色を指定する際にこのプロパティを使用します. 値には,(カレントのカラーマップに基づく)色のインデックスまたは 透明な輪郭を意味する 0 を指定します. デフォルト値は`-2`(デフォルトの白)で, `color_map`を変更した場合でも, この値`-2`は常にデフォルトの白色を指し続けることに 注意してください.

  foreground:

    このフィールドには, この軸のもとで作成された全てのオブジェクトに関する `foreground` プロパティのデフォルト値が含まれます. 値には,(カレントのカラーマップに基づく)色のインデックスを指定します. デフォルト値は`-1`(デフォルトの黒)で, `color_map`を変更した場合でも, この値`-1`は常にデフォルトの黒色を指し続けることに 注意してください.

  background:

    このフィールドには, この軸のもとで作成された全てのオブジェクトに関する `background` プロパティのデフォルト値が含まれます. 値には,(カレントのカラーマップに基づく)色のインデックスを指定します. デフォルト値は`-2`(デフォルトの白)で, `color_map`を変更した場合でも, この値`-2`は常にデフォルトの白色を指し続けることに 注意してください.

  arc_drawing_mode:

    このプロパティは,この Axes オブジェクトの元で作成された全ての Arc オブジェクトの`arc_drawing_mode`プロパティの デフォルト値を制御します. 値には, `"nurbs"` または `"lines"` のどちらかを指定します.

  clip_state:

    このフィールドには全てのオブジェクトに関する`clip_state` プロパティのデフォルト値が含まれます.以下の値を指定します:

    - `"off"` 以降に作成される全てのオブジェクトはクリップされない ことを意味します (デフォルト値).

    - `"clipgrf"` 以降に作成される全てのオブジェクトはAxesの境界の外側はクリップされる ことを意味します.

    - `"on"` 以降に作成される全てのオブジェクトは プロパティ clip_box で指定した矩形の外側はクリップされることを 意味します.

  clip_box:

    このフィールドには全てのオブジェクトに関する`clip_box` プロパティのデフォルト値が含まれます. clip_state が `"off"`の場合, この値は空の行列となります.その他の場合,このクリッピングは ベクトル`[x,y,w,h]`(左上の点, 幅, 高さ)により指定されます.

  デフォルト値に関する注意 :

      上記のプロパティとフィールドは軸モデルに保存された デフォルト値を継承します. これらのデフォルト値は参照および変更が可能です. これを行うには,`get("default_axes")` コマンドを使用してください: これにより軸モデルのグラフィックハンドルが返されます. このコマンドによりグラフィックウインドウが作成されるわけではないことに 注意してください. 次に生成される軸はこのモデルを継承します (以下の"軸モデルの例"を参照ください).

## 例

    lines(0) // 垂直方向のページングを無効にする
    a=get("current_axes")//新規に作成された軸のハンドルを取得
    a.axes_visible="on"; // 軸を可視にする
    a.font_size=3; //目盛ラベルのフォントサイズを設定
    a.x_location="top"; //x軸の位置を設定
    a.data_bounds=[-100,-2,-1;100,2,1]; //x, y および z 座標の境界値を設定
    a.sub_tics=[5,0];
    a.labels_font_color=5;
    a.grid=[2,2];
    a.box="off";

    // 3D軸の例
    clf(); //グラフィックウインドウを消去
    x=0.1:0.1:2*%pi;plot2d(x-.3,sin(x)*7+.2);
    a=gca(); // カレントの軸のハンドルを取得
    a.grid=[1 -1 -1]; //x-グリッドを作成
    a.rotation_angles=[70 250]; //指定した角度に軸を回転
    a.grid=[1 6 -1]; //y-グリッドを作成
    a.view="2d"; //2d視点に戻す
    a.box="back_half";
    a.labels_font_color=5;
    a.children.children.thickness=4;
    a.children.children.polyline_style=3;
    a.view="3d"; //return te the 3d view
    a.children.children.thickness=1;
    a.children.children.foreground=2;
    a.grid=[1 6 3]; //make z-grid
    a.parent.background=4;
    a.background=7;
    plot2d(cos(x)+1,3*sin(x)-3);
    plot2d(cos(x)+7,3*sin(x)+3);
    a.children(2).children.polyline_style=2;
    a.children(1).children.polyline_style=4;
    a.children(1).children.foreground=5;
    a.children(2).children.foreground=14;
    a.parent.figure_size= [1200,800];
    a.box="on";
    a.labels_font_size=4;
    a.parent.background=8;
    a.parent.figure_size= [400,200];
    a.rotation_angles=[0 260];
    delete(a.children(2));
    delete(); // カレントオブジェクトを削除

    a = gca();
    a.labels_font_size=1;
    a.auto_clear= "on";
    x=0:0.1:2.5*%pi;plot2d(10*cos(x),sin(x));

    a.data_bounds(:,1) = [1;15] ; // X 軸の正の境界を設定
    a.log_flags = "lnn" ; // X軸を対数スケールに設定
    a.log_flags = "nnn" ; // 線形軸に戻す

    a=gca();
    a.rotation_angles=[45 45];
    a.data_bounds=[-20,-3,-2;20 3 ,2];
    xrect([-4 0.5 8 1]);
    a.auto_clear = "off" ;
    a.isoview="on"; // 等軸モード
    xrect([-2 0.25 4 0.5]);
    a.children(1).fill_mode="on";
    a.axes_visible="off";
    a.children(1).data=[-2 0.25 -1 4 0.5];
    a.children(2).data=[-4 0.5 1 8 1];
    x=2*%pi*(0:7)/8;
    xv=[.2*sin(x);.9*sin(x)];yv=[.2*cos(x);.9*cos(x)];
    xsegs(10*xv,yv,1:8)
    s=a.children(1);
    s.arrow_size=1;
    s.segs_color=5;
    a.data_bounds //x,y および z 座標の境界値
    a.view="2d";
    a.data_bounds=[-10,-1; 10,1]; // 二次元視点の境界値を設定

    // 軸モデルの例
    da=gda() // 軸もでるのハンドルを取得し,フィールドを参照,編集する
    // デフォルトのタイトル
    da.title.text="My Default@Title"
    da.title.foreground = 12;
    da.title.font_size = 4;
    // x ラベルのデフォルト
    da.x_label.text="x";
    da.x_label.text="x"; // Latex または MathML をここで使用することもできます
    da.x_label.font_style = 8;
    da.x_label.font_size = 2;
    da.x_label.foreground = 5;
    da.x_location = "middle";
    // y ラベルのデフォルト
    da.y_label.text="y";
    da.y_label.font_style = 3;
    da.y_label.font_size = 5;
    da.y_label.foreground = 3;
    da.y_location = "right";
    da.thickness = 2;
    da.foreground = 7;
    // プロット
    x=(0:0.1:2*%pi)';
    plot2d(x,[sin(x),sin(2*x),sin(3*x)],style=[1,2,3],rect=[0,-2,2*%pi,2]);
    sda() // デフォルトの軸モデルに戻す

    // LaTeX / MathML 目盛の例:
    plot2d();
    a=gca();

    mathml="<mrow><mfrac><mrow><mi>d</mi>  <mi>y</mi></mrow><mrow>  <mi>d</mi>  <mi>x</mi></mrow></mfrac> <mo>=</mo>..
    <mfrac><mn>1</mn><msup> <mi>y</mi>  <mn>2</mn></msup> </mfrac> </mrow>";
    // LaTeX 式のみ
    a.x_ticks = tlist(["ticks", "locations", "labels"], (0:6)', [mathml;"1";"$\sin(x)$";"3";"$\cos(a) - test$";"5";"6"]);

    // 式の混用: MathML と LaTex
    a.y_ticks = tlist(["ticks", "locations", "labels"], (-2:0.5:2)', ["0";"1";"2";"3";"$\cos(a)$";"5";"6";mathml;"8"]);

## 参照

- lines
- set
- get
- gca
- gda
- gcf
- sda
- sdf
- scf
- graphics_entities