ME10マクロのページです
(ビューポート)

2000.03.26 更新 



リスト


macro.lzh#(マクロファィルです。)

   (注)まずは分 割ビューポートの使い方を見て下さい。   

     1.初 期描画位置の記憶
     2.ビュー ポート再区画



分割ビューポートの使い 方


1.まず最初に Ma_viewlocation を実行して下さい。描画領域が記憶されます。(最初に1回だけ実行)
  最初に実行する Custom.mac 等のファィルの最後にでも1行追加して下さい。
  もちろん Ma_viewarea を実行する前にコマンドの 入力をしても良いです。

   Ma_viewlocation

2.Ma_viewarea を実行すると各種の分割が可能となります。  



{初期描画位置の記憶
 1998.08.02
      Gl_view_ld    左下の位置
      Gl_view_ru    右上の位置
      Gl_view_vol   ビューポートの数}
DEFINE Ma_viewlocation
  LOCAL Viewnow


  LET Gl_view_vol 1                               {ビューポートの数を初期化}

  SHOW DIMENSIONS OFF
  INQ_ENV 1                                       {ビューポートのデータの取得}
  LET Viewnow (INQ 2)                             {ビューポートの記憶}
  IF (Viewnow <> 1)
    CURRENT_VIEWPORT 1                            {ビューポート1に移動}
  END_IF
 
  INQ_ENV 1
  LET Gl_view_ld (INQ 101)                        {左下の位置}
  LET Gl_view_ru (INQ 102)                        {右上の位置}
  IF (Viewnow <> 1)
    CURRENT_VIEWPORT Viewnow                      {ビューポートの復元}
    LET Gl_view_vol Viewnow
  END_IF
 
  SHOW DIMENSIONS ON

END_DEFINE



ビューポート再区画
  1998.08.02
  1998.09.17
  1998.10.31  全窓のFITを止める
}
DEFINE Ma_viewarea
  PARAMETER Kubun

  LOCAL Ld
  LOCAL Ru
  LOCAL Xx0
  LOCAL Xx1
  LOCAL X1
  LOCAL X2
  LOCAL Yy0
  LOCAL Yy1
  LOCAL Y1
  LOCAL Y2

  DELETE_VIEWPORT ALL                             {ビューボートをすべて削除}
  VIEWPORT_CATCH OFF                              {キャッチ機能をOFF}

  LET Xx0 (X_OF Gl_view_ld)
  LET Yy0 (Y_OF Gl_view_ld)
  LET Xx1 (X_OF Gl_view_ru)
  LET Yy1 (Y_OF Gl_view_ru)

  IF ((Kubun >= 1) AND (Kubun <= 4))              {全面でなければ}
    LET Gl_view_vol 3                             {3ポート}
  ELSE_IF (Kubun = 5)
    LET Gl_view_vol 4                             {4ポート}
  END_IF


  LET Gl_view_vol 3                               {取りあえず3ポートを記憶}
  IF (Kubun = 1)                                  {┫の指定なら}
    LET X1 (Xx0 + (Xx1 - Xx0)/3)
    LET Y1 (Yy0 + (Yy1 - Yy0)/2)
    CREATE_VIEWPORT (PNT_XY X1 Yy0) Gl_view_ru
    CREATE_VIEWPORT Gl_view_ld (PNT_XY X1 Y1)
    CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY X1 Yy1)
  ELSE_IF (Kubun = 2)                             {川の指定なら}
    LET X1 (Xx0 + (Xx1 - Xx0)/4)
    LET X2 (Xx1 - (Xx1 - Xx0)/4)
    CREATE_VIEWPORT (PNT_XY X1 Yy0) (PNT_XY X2 Yy1)
    CREATE_VIEWPORT Gl_view_ld (PNT_XY X1 Yy1)
    CREATE_VIEWPORT (PNT_XY X2 Yy0) Gl_view_ru
  ELSE_IF (Kubun = 3)                             {┻の指定なら}
    LET X1 (Xx0 + (Xx1 - Xx0)/2)
    LET Y1 (Yy1 - (Yy1 - Yy0)/3)
    CREATE_VIEWPORT Gl_view_ld (PNT_XY Xx1 Y1)
    CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY X1 Yy1)
    CREATE_VIEWPORT (PNT_XY X1 Y1) Gl_view_ru
  ELSE_IF (Kubun = 4)                             {≡の指定なら}
    LET Y1 (Yy0 + (Yy1 - Yy0)/4)
    LET Y2 (Yy1 - (Yy1 - Yy0)/4)
    CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY Xx1 Y2)
    CREATE_VIEWPORT Gl_view_ld (PNT_XY Xx1 Y1)
    CREATE_VIEWPORT (PNT_XY Xx0 Y2) Gl_view_ru
  ELSE_IF (Kubun = 5)                             {田の指定なら}
    LET X1 (Xx0 + (Xx1 - Xx0)/2)
    LET Y1 (Yy1 - (Yy1 - Yy0)/2)
    CREATE_VIEWPORT Gl_view_ld (PNT_XY X1 Y1)
    CREATE_VIEWPORT (PNT_XY X1 Yy0) (PNT_XY Xx1 Y1)
    CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY X1 Yy1)
    CREATE_VIEWPORT (PNT_XY X1 Y1) Gl_view_ru
  ELSE_IF (Kubun = 6)                             {全面の指定なら}
    CREATE_VIEWPORT Gl_view_ld Gl_view_ru
    LET Gl_view_vol 1                             {1ポートを記憶}
  END_IF

  CURRENT_VIEWPORT 1
  VIEWPORT_CATCH ON                               {キャッチ機能をON}

END_DEFINE



気をつけて作りました、使用してのトラブルに責任は持てませんが、
自由にお使い下さい。(伏 見 表