home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / VPR_DATA / DOGA / SOURCES / POLYEDIT.LZH / MACRO / EDITE.M < prev    next >
Text File  |  1996-06-24  |  2KB  |  109 lines

  1. function CopyMoveSufVec( flag )
  2. {
  3.     var    org, temp, i;
  4.     var    len, vect, sels, sel;
  5.     var    mat, move_vec[3];
  6.  
  7.     if ( SelectPolygons() == 0 )
  8.     {
  9.         Warning();
  10.         if( MESSAGE == ON )
  11.             Message( error_msg3 );
  12.         return ;
  13.     }
  14.  
  15.     PushMenu();
  16.     Status_org = Status_title;
  17.     ClearStatus();
  18.     if( flag == ON )
  19.     {
  20.         MenuPosition( Menu( " 動作設定(&S)",
  21.             "動作中止    ESC",    MenuQuit
  22.             ), Menu_Title );
  23.         Status_title[0] = "【複写中】";
  24.     }
  25.     else
  26.     {
  27.         MenuPosition( Menu( " 動作設定(&S)",
  28.             "移動中止    ESC",    MenuQuit
  29.             ), Menu_Title );
  30.         Status_title[0] = "【移動中】";
  31.     }
  32.     DrawStatus();
  33.     quit_flag = FALSE;
  34.  
  35.     org = Cursor();
  36.     while( TRUE )
  37.     {
  38.         temp = _MakeVector( org, OFF );
  39.         if( temp == -1 | temp == -2 )
  40.         {
  41.             PopandClear( OVERWRITE );
  42.             return;
  43.         }
  44.         else
  45.         {
  46.             if( cur == org )
  47.             {
  48.                 Warning();
  49.                 if( MESSAGE == ON )
  50.                     Message( "2点目は移動量を指定してください" );
  51.             }
  52.             else
  53.                 break;
  54.         }
  55.     }
  56.     Clear( OVERWRITE );
  57.     len = abs(Position( cur ) - Position( org ));
  58.     sels = SelectPolygons();
  59.     sel = Select();
  60.     for( i = 0; i< sels; i++ )
  61.     {
  62.         SelectNumber( sel, i );
  63.         PolyLoadInit();
  64.         PolyLoad();
  65.         vect = unit( PolyVector())*len;
  66.         if( flag == ON )
  67.             PolyAppend( FALSE );
  68.         mat = move( UNIT_MATRIX, vect );
  69.         PolyMove( mat );
  70.     }
  71.     Select( sel );
  72.     UpdateObject();
  73.     Update( CLEAR );
  74.     pers_rotation_flag = FALSE;
  75.     PopMenu();
  76.     Status_title = Status_org;
  77.     DrawStatus();
  78. }
  79.  
  80. function private _MoveSufVec()
  81.     CopyMoveSufVec( OFF );
  82.  
  83. //
  84. //    面方向への平行移動
  85. //
  86. function MoveSufVec()
  87. {
  88.     ClearStatus();
  89.     Status_title[0] = "【モード:面方向への平行移動】";
  90.     DrawStatus();
  91.     InputEvent( _MoveSufVec );
  92.     KeyEvent( _MoveSufVec, INPUT_KEY );
  93. }
  94.  
  95. function private _CopySufVec()
  96.     CopyMoveSufVec( ON );
  97.  
  98. //
  99. //    面方向への複写
  100. //
  101. function CopySufVec()
  102. {
  103.     ClearStatus();
  104.     Status_title[0] = "【モード:面方向への複写】";
  105.     DrawStatus();
  106.     InputEvent( _CopySufVec );
  107.     KeyEvent( _CopySufVec, INPUT_KEY );
  108. }
  109.